四、梯度下降Grdient Descent
4.1 梯度下降的技巧
1、调整学习率 Turning your learning rate
谨慎调整learning rate
learning rate太小:速率太慢
learning rate太大:找不到全局最优解
当参数个数大于2时,无法用图像来表示迭代过程。因此可以绘制每个参数对Loss的影响曲线。
2、 自适应学习率Adaptive Learning Rate
通常学习率随着参数的更新而越来越小。刚开始时离目标点较远,经过一段时间的更新之后,离目标会越来越近,所以此时学习率应该较小。
最好的情况:每个参数都给一个不同的learning rate
3、Adagrad
每一个参数的学习率都除以算出来的微分值的均方根差
举例计算过程:
简化计算:
直观解释:Adagrad的分母是为了造成反差
梯度越大,所需要的步长越长。前提是对一个参数。
比较不同的参数:如下图,a点的梯度比c点小,但是a距离最低点的距离却比c点大。
最佳步长公式
4.2 随机梯度下降Stochastic Gradient Descent
随机梯度下降可以提高训练速度,每次取一个值,计算对应的Loss
左图是原来的梯度下降法,看完所有的样本后则更新
依次参数,优点是比较稳定,下降的方向按照梯度建议的方向下降;右图是随机梯度下降法,每看到一个样本就更新依次参数,假设有20个样本,就更新20次参数,速度提升20倍,虽然每一次更新步长很小,但是更新速度很快。
4.3 特征缩放Feature Scaling
输入特征分别为x1和x2,x2的分布范围明显比x1大,考虑进行特征缩放,把两个特征的分布范围调成一致。
1、为什么要进行特征缩放
如果x1,x2取值范围相差较大,如下图左所示,那么绘制的损失函数图像就是个椭圆,w1对y影响较小,w2对y影响较大。
如果x1,x2取值范围比较接近,那么w1和w2对y的影响是差不多的,这样更新参数的效率更高。
2、特征缩放的方法
假设有R个样本,每一个样本都有其对应的特征,对每一个维度i计算其均值,标准差。
进行标准化后,所有维度的均值都为0,方差都为1。
4.4 梯度下降理论基础
1、适用范围
更新参数后,损失值并不一定下降。比如遇到鞍点或者极值点(但不是最小值点),陷入局部最优。
2、数学证明
泰勒级数Talor Series
多参数泰勒级数
基于泰勒级数: 给定一个中心点(a,b),如果划定的范围足够小,我们可以把损失函数用泰勒级数表示为L(θ) = s + u(θ1-a) + v(θ2-b)
令△θ1 = θ1-a ,△θ2 = θ2-b,如何选择最小的△θ1和△θ2?
选择与(u,v)相反方向的,这时△θ1和△θ2最小。
使用Gradient Descent找最小值的前提:划出来的红色区域够小,所以学习率η足够小,不能太大。
4.5 梯度下降法的局限
1、可能卡在局部最优点停止更新参数
2、微分值为0的地方并不仅仅包括局部最优点和全局最优点,还有鞍点的微分值也为0
鞍点Saddle Point:不是局部极值点的驻点