浅析优化算法及其各自特点之间的关系
1 优化算法
https://tangshusen . me/Dive-in-DL-py torch/#/chapter 07 _优化/7.4 _动量
1.1 动量法
动量法是梯度下降法的改进。梯度法自变量的迭代方向只取决于自变量的当前位置,会出现问题。
1/(1?Gamma)时间步长采用指数加权移动平均,使自变量的更新方向更加一致,从而降低发散的可能性。
1.2AdaGrad算法
AdaGrad也是梯度下降法的改进。在梯度法中,目标函数自变量的每个元素在同一时间步长使用相同的学习速率进行自迭代,当存在梯度值不同的元素时会出现问题。
AdaGrad通过维护St变量来调整学习速率,从而根据不同的元素应用不同的学习速率。具体函数如下:如果目标函数自变量中某个元素的偏导数总是较大,那么该元素的学习率会迅速下降;相反,如果目标函数自变量中某个元素的偏导数总是很小,那么该元素的学习率就会慢慢下降。
AdaGrad有一个缺点。因为St一直在累加元素的梯度平方,所以自变量中每个元素的学习率在迭代过程中一直在下降(或不变)。因此,当迭代前期学习率快速下降,当前解仍然不好时,AdaGrad算法可能会因为迭代后期学习率太小而难以找到有用的解。
1.3RMSProp算法
RMSProp是对AdaGrad的改进。如上所述,当学习率在迭代前期快速下降,当前解仍然不好时,AdaGrad算法可能会因为迭代后期学习率太小而难以找到有用的解。
RMSProp利用动量法中指数加权移动平均的思想,对AdaGrad中维护的St变量做指数加权移动平均,可以看作是最近的1/(1?)小批量随机梯度时间步长平方项的加权平均值。这样,自变量各元素的学习率在迭代过程中就不会一直降低(或保持不变)。
1.4AdaDelta算法
AdaDelta是RMSProp的改进。RMSProp需要设置超参数学习速率,但AdaDelta不需要。
AdaDelta维护了一个XT变量,它代表了关于自变量更新平方的指数加权移动平均的项,从而替代学习率。
1.5Adam算法
它是Adam RMSProp算法和动量法的结合。
Adam可以看作是1/(1?给出了)时间步长内小批量随机梯度的指数加权移动平均。
2 优化算法之间的关系
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/116872.html