梯度下降算法
目录
Adagrad
与梯度下降不同的是,更新规则中,对于学习率不在设置固定的值,每次迭代过程中,每个参数优化时使用不同的学习率。
假设 某次迭代时刻t,
而在Adagrad的更新规则中,学习率
Adadelta
为了避免前文提到的问题,削弱单调猛烈下降的减少学习率,Adadelta产生了1。Adadelta限制把历史梯度累积窗口限制到固定的尺寸
Adagrad的一大优势时可以避免手动调节学习率,比如设置初始的缺省学习率为0.01,然后就不管它,另其在学习的过程中自己变化。当然它也有缺点,就是它计算时要在分母上计算梯度平方的和,由于所有的参数平法必为正数,这样就造成在训练的过程中,分母累积的和会越来越大。这样学习到后来的阶段,网络的更新能力会越来越弱,能学到的更多知识的能力也越来越弱,因为学习率会变得极其小,为了解决这样的问题又提出了Adadelta算法。
梯度和是递归的定义成历史梯度平方的衰减平均值。动态平均值
在Adagrad中,
将分母简记为RMS,表示梯度的均方根误差的意思。
[6]作者说,更新中,定义指数衰减均值,代替梯度平方,二用参数平方来更新:
由此看出,甚至不需要设定缺省学习率,因为更新规则已经不受它影响了
1: Duchi et al. give this matrix as an alternative to the full matrix containing the outer products of all previous gradients, as the computation of the matrix square root is infeasible even for a moderate number of parameters dd. http://sebastianruder.com/optimizing-gradient-descent/index.html#fnref:24
2: Zeiler, M. D. (2012). ADADELTA: An Adaptive Learning Rate Method. Retrieved from http://arxiv.org/abs/1212.5701