概述:前言为需要优化的原因,正文为梯度下降/随机梯度下降/小批量随机梯度下降/动量法/AdaGrad和RMSProp算法/AdaDelta算法/Adam算法。

前言:需要优化的原因(局部最小值和鞍点):

强化学习NLP场景 nlp优化问题_梯度下降

强化学习NLP场景 nlp优化问题_强化学习NLP场景_02

x=x- η ▽f(x)  :学习率η过大(overshooting):收敛不了越来越偏离最优值;学习率过小(undershooting)收敛速度过慢,费资源。

一、梯度下降、随机梯度下降、小批量随机梯度下降

  • 梯度下降:沿梯度下降最快的方向,梯度为训练集所有样本点梯度之和求平均
  • 随机梯度下降:每次随机挑一个样本点求梯度
  • 小批量随机梯度下降:每次随机挑一个batch的样本点求梯度

强化学习NLP场景 nlp优化问题_随机梯度下降_03

二、动量法

  • 梯度下降存在问题:图一在x2竖直方向移动较大;如果调小lr,可能x1水平方向移动过慢;如果调大lr,可能出现图二的情况,在x2竖直方向移动过大错过了最优值。
  • 可以看到下面两图,图一x2竖直方向变化没上面那么快了,图二增大lr也不会像上面图二那样发散了。
  • 动量法使用了指数加权移动平均的思想,将过去时间步的梯度做了加权平均,且权重按时间步指数衰减。动量法使得相邻时间步的自变量更新在方向上更加一致。

三、AdaGrad(不同维度学习率不同)、RMSProp和AdaDelta算法(AdaGrad的两种改进)

  • AdaGrad根据⾃变量在每个维度的 梯度值的⼤小 来调整各个维度上的学习率
  • 强化学习NLP场景 nlp优化问题_强化学习NLP场景_04


  • 缺点:lr一直在降低(或不变)如果开始lr降的太快然而跟最优解离得比较远,可能难以收敛到最优解。 于是RMSProp算法就出现了~
  • RMSProp算法(Root Mean Sqaure prop):
  • AdaDelta算法(不用学习率):

四、Adam算法(结合了动量法和RMSProp算法)

  • Adam算法在RMSProp算法基础上对小批量随机梯度也做了指数加权移动平均。(对动量做了EMA,对RMSProp做了EMA,对v和s做了偏差修正,解决了冷启动(初始化为0)问题。)
  • 最后,用gt’ 迭代更新自变量x

【参考资料】