[阅读笔记]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

梯度下降优化算法概述 梯度下降是一种常用的优化方法,可以帮助我们找到使目标函数最小化或最大化的参数。随着机器学习和深度学习的发展,各种梯度下降算法也不断涌现。以下是一些常用的梯度下降优化算法的概述: 1. 批量梯度下降(Batch Gradient Descent):在每次迭代中,批量梯度下降使用所有样本的梯度来更新模型参数。适用于训练集较小、模型参数较少的情况。 2. 随机梯度下降(Stochastic Gradient Descent):在每次迭代中,随机梯度下降使用一个单独的样本来更新模型参数。适用于训练集较大、模型参数较多的情况。 3. 小批量梯度下降(Mini-batch Gradient Descent):小批量梯度下降是一种介于批量梯度下降和随机梯度下降之间的方法。它在每次迭代中使用一小部分样本的梯度来更新模型参数。适用于训练集规模较大的情况。 4. 动量(Momentum):动量算法加入了“惯性”的概念,可以加速梯度下降的收敛速度。在每次迭代中,动量算法使用上一次的梯度信息来更新模型参数。 5. 自适应梯度下降(Adaptive Gradient Descent):自适应梯度下降可以自适应地调整每个模型参数的学习率,以便更快地收敛到最优解。比如,Adagrad算法可以针对每个参数单独地调整学习率。 6. 自适应矩估计(Adaptive Moment Estimation):Adam算法是一种结合了Momentum和Adaptive Gradient Descent的算法。它可以自适应调整每个参数的学习率,并利用二阶矩来调整动量。 每种梯度下降算法都有其适用的场合,需要根据问题的性质来选择合适的算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值