梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法

释放双眼,带上耳机,听听看~!
本文复习了梯度下降法,并重点介绍了自适应学习率、Adagrad算法和随机梯度下降法,同时讨论了特征缩放的重要性。适合对优化算法感兴趣的人阅读。

复习梯度下降法

在回归问题中。我们需要找到最佳function,评判标准就是Loss(params)小越好。为了找到最小的Loss值,我们需要梯度下降法。

  1. 随机选取起始参数w。
  2. 求出微分值dL/dw,引入学习率η。
  3. 更新参数w = w – η * (dL/dw)
  4. 重复2/3步知道找到最优解,即微分等于0的点。(线性回归只有全局最优解,不考虑局部最优解的情况)

自适应学习率

在之前的学习中,我们的学习率η一直是固定值。

但是最适合的学习率并不是一成不变的,在实际情况中,不同的参数需要各自不同的学习率,并且我们通常都需要随着训练次数的增加而改变学习率的值。

  • 通常刚开始,初始点会里全局最优解比较远,这时候需要的学习率就比较大。
  • 更新参数一段时间之后,较为靠近最优解,学习率应该适当减小。
  • 因此,我们简单地令η = η/(更新次数+1)^1/2即可做到随着参数的更新而自动更新学习率。

Adagrad算法

梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法
定义:每个参数的学习率η都把他除以之前微分的均方根来进行更新。

梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法
如图,对比了普通的梯度下降法和Adagrad算法的差异。

Adagrad最终呈现的结果

分母约掉之后,更新参数的式子变得十分简洁。
梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法

最终式中分母的含义

我们可以直观地看出,微分值越大,乘以的微分会使参数更新步长变得更大;但同时分母均方根的存在又会在微分值越大时令步长变小。这么看似乎两个因素中和了一下步长。
梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法

梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法
实际上,我们知道最好的步长是:一次微分/二次微分
但由于计算二次微分计算量过大,所以我们希望用均方根的形式模拟二次微分,在计算量不增大过多的同时模拟出最佳步长的情况。

以上,Adagrad算法。

随机梯度下降法

定义:损失函数不需要处理完训练集全部的数据再更新参数,而是每处理完一组单独的个体数据之后就即可更新参数。

这种梯度下降法显然随机性更大,精度不高,但是下降得更快。例如训练集中有20组数据,正常梯度下降法处理完20组数据后下降一次,而随机梯度下降法这时候已经下降了20次。

特征缩放

如果不同维度的输入特征数值量级差距过大,则会导致不同的特征值对输出结果的影响权重不同,这时需要对不同维度的特征值进行缩放,以平衡各类特征值的影响权重。

梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法

梯度下降停止的各类情况

梯度下降法复习:自适应学习率、Adagrad算法和随机梯度下降法

  1. 是局部极值点也是全局极值点
  2. 仅是局部极值点
  3. 鞍点
  4. 人为定义微分值小于一定数值就停止,所以在过于平缓的微分非零点也可能停止更新参数。
本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

Transfomer:NLP领域的革命性模型

2023-12-13 20:00:14

AI教程

亚马逊Java架构及机器学习应用实例分享

2023-12-13 20:10:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索