自适应学习速率?
前言
在监督学习中,我们都或多或少的意识到学习速率
那么有木有方法,能够让学习速率也可以自适应的调整?
我们知道,超参数是不能通过某个模型自身的学习算法来进行优化的。例如,在多项式回归中,使用普通的范数
故而,对于超参数的训练,我们一般会设计另外一个训练算法而不使用原训练模型,学习速率也是一样。
本文,介绍最近几种吊炸天、鲁棒性比较强的自适应学习速率调整算法。
AdaGrad
Adaptive Gradient
基本原理
这个算法出于的考虑是,如果某个参数的梯度的改变较大就会有一个较小的学习速率,梯度改变较大就有一个较小的学习速率。
伪代码
输入:
全局学习速率
流程:
初始化梯度累计变量
While 算法没有停止 do
从训练集选择某个包含m个样本的batch.
计算这个batch的梯度:
计算累计平方梯度:
计算更新:
更新参数:
end While
缺陷
太过于重视历史梯度,导致学习速率过早的猛增或猛减。
RMSProp
RMSProp算法是由大佬Hinton提出来的,经验上该算法是一种有效且特别实用的自适应算法。与AdaGrad相比,它最大的不同就是引入参数