概要
现有的三大类任务:Regression和Classification,做的比较成熟,超级深坑—Generation(产生语句,画图)
怎样告诉机器,你想找什么样的函数
最常见的例子——Supervised Learning
- 需要给机器大量的训练数据,以及理想输出(Label)。
- 函数的Loss,判断这个函数有多好,或者多不好
- 接下来机器自动找出Loss最低的Function
Reinforcement Learning(vs. Supervised Learning)
以围棋为例:
Supervised:给出一张围棋的图像,然后下一步应该走在哪里
Reinforcement Learning:First move->……many moves……->Win!
机器输或赢的结果就是Reward,是机器学习的方向。
UNsupervised Learning
给出大量没有标注的数据
给定机器函数寻找的范围
函数寻找方法 - Gradient Descent

圆圈Easy 三角Normal 五角星Challenging
Network Compression-> 怎么把巨大的模型加载在移动设备或更小的设备上。
Transfer Learning -> 如何基于现有结果的基础上,让他更加试用
Meta Learning -> 让机器学习如何学习(普遍的效率很低)
现在大部分的机器学习天分不佳,只能靠后天刻苦训练来变得更强。
Life-long Learning->让机器终身学习,学习一系列的任务,不限范围。
Regression
Application:
- Stock Market Forecast
- Self-driving Car
- Recommendation
Step1: Model
y=b+w∗x
w 和 b 是可为任意值的参数
线性模型:y=b+∑wixi
xi:输入x的一个属性(feature)wi:权重 b:偏重(bias)
Step2:Goodness of Function
Traning Data:(x1,y^1)(x2,y^2)(x3,y^3)……(xn,y^n)
有了训练集以后就可以定义一个Function的好坏:Loss Function
L:Input:a function,Output:how bad it is
L(f)=L(w,b) 获取一个function告诉你这个function的好坏
L(f)=∑n=1N(y^n−(b+w∗xn))2 估测误差
Step3: Best Function—Gradient Descent
A set of function -》Goodness of function f 《- Training Data
f∗=argfminL(f)
w∗,b∗=argw,bminL(w,b)
=argw,bminn=1∑N(y^n−(b+w∗xn))2
Gradient Descent
一个参数的问题
w∗=argwminL(w)
- 先随机选取一个初始的点w0
- 计算dwdL∣w=w0 理解为切线斜率,如果为负值,证明左高右低,我们的参数应该向右边移动,反之斜率为正,参数向左方移动。
- 移动一步多大取决于两件事情,1.微分值有多大 2.Learning rate η
w1←w0−ηdwdL∣w=w0
- 计算dwdL∣w=w1 w2←w1−ηdwdL∣w=w1
- 经过不断多的迭代找到最优解(现在仍然包括局部最优解和全局最优解的情况)
两个参数的情况
- 随机选择两个参数的初始值w0和b0
- 分别计算在该初始值得情况下对w和b的偏微分
- 初始值减去学习率乘以偏微分分别计算出w1和b1的更新值
- 反复迭代,找到Loss相对小的w和b的值
再线性回归模型中,没有Local Optimal的情况
选择另一个模型
y=b+w1∗x+w2∗x2
测试集上的误差一般比训练集要大一些
还可以选择更加复杂的模型,一般效果会更好一些
y=b+w1∗x+w2∗x2+w3∗x3
在某一个例子中,最佳值
b=6.4,w1=0.66,w2=4.3∗10−3,w3=−1.8∗10−6
当我们的线性模型继续复杂下去,他会越来越符合我们的训练集,可是在测试集上效果越来越差。这就是线性模型上的过拟合。
回到第一步:给线性模型加上If语句
xs = species of x
If xs = species 1: y=b1+w1∗x
If xs = species 2: y=b2+w2∗x
If xs = species 3: y=b3+w3∗x
If xs = species 4: y=b4+w4∗x
转换成线性方程:y=b+∑wixi
y=b1∗δ(xs=s1)+w1∗δ(xs=s1)x
+b2∗δ(xs=s2)+w2∗δ(xs=s2)x
+b3∗δ(xs=s3)+w3∗δ(xs=s3)x
+b4∗δ(xs=s4)+w4∗δ(xs=s4)x
模型更加复杂化
xs = species of x
If xs = species 1: y=b1+w1∗x+w5∗x1
If xs = species 2: y=b2+w2∗x+w6∗x2
If xs = species 3: y=b3+w3∗x+w7∗x3
If xs = species 4: y=b4+w4∗x+w8∗x4
回到第二步:Reguarization
y=b+∑wixi
L(f)=n=1∑N(y^n−(b+w∗xn))2+λ∑(wi)2
为什么 平滑的方程是更受欢迎的呢?
如果一些噪音发生在输入端,他会对输出端产生较小的影响
λ越大,函数越平滑:他会越考虑w本身的值,而减少考虑error的值
我们喜欢比较平滑的function,但不要太平滑
在做Regularization的时候,不需要考虑bias项,他不会对平滑程度产生影响。