[阅读笔记]An overview of gradient descent optimization algorithms

introdction

个人理解,梯度下降的元素
- 梯度方向
- 步长

梯度下降的种类

根据计算梯度时候,用的数据量的不同,分为三类.数据量不同,决定了准确度和耗时的trade-off

批量gd

随机gd

minibatch gd

吸取了两者的优点

挑战

mini-batch gd 不能保证收敛,而且提出了一些挑战

  • 很难选择学习率
  • 第二点没懂
  • 所有参数的学习率都相同.如果数据很稀疏,并且特征出现频率差异很大,我们不能相同程度低更新,而应该对很少见的特征,更新幅度更大
  • 避免落入次优局部点.Dauphin认为,鞍点比局部极小点跟困难

GD优化算法

动量法

vt=rvt1+nδθJ(θ)

θ=θvt

Nesterov accelerated gradient

动量法,使得模型盲目地冲下slope.模型需要聪明一些,在斜坡变缓之前就慢下来.
NAG有一些先知.
动量法:先用当前的位置的梯度,更新一个文字,然后再加上上一步的动量,这样有个问题,两个子步骤是独立的,没有修正的过程.
NAG的做法,是先用上一步的方向,到一个新位置,然后计算这个新位置的梯度,然后修正.优点是第二个子步骤和第一个子步骤相关的,第二子步骤修正第一个子步骤.

Adagrad

θt+1,i=θtηGt,ii+ϵgt,i

Gt 是一个对角矩阵,每个元素 gi,i θi 到现在的每步梯度的平方的累加
优点:不需要自己调学习率
缺点:学习率不断下降直到不能学到任何新知识

Adadelta

是Adagrad的修正

还有好几个AdaXXX,后面填坑

并行和分布式SGD

Hogwild

前提是输入必须是稀疏的.这样每次只会更新一部分参数.

Downpour SGD

这个不太懂

延时容忍算法

是在AdaGrad基础上发展的.不太理解

TensorFlow

弹性平均SGD

参考资料

http://www.datakit.cn/blog/2016/07/04/sgd_01.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值