概览
p5:learning rate,Adagrad,Stochastic Gradient Descent ,Feature Scaling
p6:使用游戏模拟做梯度下降的感觉,局部最低点和全局最低点
p7:使用游戏来模拟为什么loss有时会不降反增。
疑问
笔记
B站19年李宏毅 P5
1.Gradient Descent
2.Learning Rate
- 三个参数以上左边的图就不能画了
- 但是右边的图是每次参数update的时候,lossFunction 的变化。learning rate 小的话,loss下降的很慢,太大的话很快卡住,特别大的话就飞出去了。刚刚好才会比较好。
-
做learning rate的时候,要把右边的图画出来。
3.调整 learning rate
- 大原则:随着参数的update,learning rate 越来越小
- 起始点,通常离最低点比较远,但是经过好几次参数的update,靠近目标了,所以要减少 learning rate
-
最简单的方式看下面,最好的方式是给每一个参数一个learning rate
4.Adagrad
- 每个参数都有自己的learning rate,就是η/σ。也就是设定的learning rate 除以之前所有偏微分的均方根。看下一张ppt,来明白均方根的意思
5.Adagrad简化写法
-
deacy 的learning rate是上面那个,下面的多了点东西,除一下,简化成最下面的式子。
6.Contradiction :矛盾
7.Intuitive Reason:直觉上的原因
-
反差,假设某个参数算出来的很大,或者特别小,造成反差的效果
7.更正常的解释——一个参数的时候
-
只有一个参数的时候,最好的一不的分子,正好就是微分值,所以步伐大小与微分值成正比是没有问题的。但是这个仅限于一个参数的时候。
8.更正常的解释——多个参数的时候
9.更正常的解释——二次微分
-
最好的step不仅要正比与一次微分而且要反比与二次微分(分母的2a就是二次微分)
10.更正常的解释——多个参数的时候
- a的微分值比较小,二次微分也比较小,相除的话,每次的update的step一般大
- c的微分值比较大,二次微分也比较大,相除的话,每次的update的step一般大
-
二次微分考虑进去做调整才可以真正反应当前点与最低点的距离
11.adagred 使用一次微分的值去估计二次微分的值
- 上面是两个曲线,一个是有比较小二次微分的,一个是有比较大二次微分的。
- 下面的两条曲线对应的一次微分值
- 比较平滑的曲线,一次微分通常比较小,比较陡的曲线,一次微分通常比较大。
-
adagred的均方根(把之前所有算过一次微分的平方和加起来取平均值然后再开根号),就是在曲线上sample很多个点,来反应二次微分的大小。
12.Stochastic Gradient Descent :随机梯度下降
-
随机梯度下降,根据每一个样本就更新参数,原来的梯度下降看完所有的 example 才update 一次参数。随即梯度更快
13.Feature Scaling :特征缩放
-
希望让不同的 feature的 scaling 是一样的
14.为什么要Feature Scaling
- w1对y的因影响小,所以对loss的微分也比较小,所以比较平滑
- w2对y的因影响大,所以对loss的微分也比较大,所以比较sharp
-
如果数据都比较接近的话,update参数会比较容易。因为根据等高线走,所以第一个不会往圆心走,第二个是正圆,就会比较往圆心走
15.怎么做 Feature Scaling
- 对每个feature都算一个平均值 m
- 都算一个标准差 standard deviation σ
- 对第r个data的第i个component,减去所有data第i个component的平均值,除以所有data第i个component的标准差
-
所有dimension的均值都是零,方差都是1
16.梯度下降的方法的理论
-
能够做梯度下降的原因是泰勒展开式,但是距离要绝对小。也就是learning rate 比较小
17.More Limitation of Gradient Descent :梯度下降法的限制
- 会卡在 local minima
- 也会卡在不是 local minima 或者微分值为零的地方
- 真正的问题是,可能微分值很小的时候也是在高原的地方,离 local minima 很小