随机梯度下降算法
https://www.zhihu.com/question/28728418
1. 定义
http://www.cnblogs.com/maybe2030/p/5089753.html
* 随机梯度下降方法能够收敛?
* 不足
2. 随机梯度下降的修正
2.1 动量法
- 动量法,帮助sgd在相关方向加速前进,减少震荡。
2.2 Nesterov加速梯度法
2.3 Adagrad
Adagrad[3] 是一个基于梯度的优化算法,它的主要功能是:它对不同的参数调整学习率,具体而言,对低频出现的参数进行大的更新,对高频出现的参数进行小的更新。因此,他很适合于处理稀疏数据。
- Adagrad 主要优势之一,是它不需要对每个学习率手工地调节。
- Adagrad 地主要劣势,是他在分母上的项中积累了平方梯度和。因为每次加入的项总是一个正值,所以累积的和将会随着训练过程而增大。因而,这会导致学习率不断缩小,并最终变为一个无限小值——此时,这个算法已经不能从数据中学到额外的信息。而下面的算法,则旨在解决这个问题。
2.4 Adadelta 法
- Adadelta 法 [6] 是 Adagrad 法的一个延伸,它旨在解决它学习率不断单调下降的问题。相比计算之前所有梯度值的平方和,Adadelta 法仅计算在一个大小为 的时间区间内梯度值的累积和。
2.5 adam法
适应性动量估计法(Adam)[15] 是另一种能对不同参数计算适应性学习率的方法。
2.6 RMSprop 法
- RNN效果好