各种梯度下降法及其特点

全量梯度下降/批梯度下降(BGD, Batch Gradient Descent)

就是正常的梯度下降
ω = ω − λ ∂ J ∂ ω \omega = \omega-\lambda\frac{\partial J}{\partial\omega} ω=ωλωJ

特点

  • 每次更新都会朝着正确的方向进行, 最后收敛于极值点, 凸函数收敛于全局极值点, 非凸函数可能会收敛于局部极值点
  • 缺点: 学习时间长, 消耗内存大

随机梯度下降(SGD, Stochastic Gradient Descent)

SGD每一轮只用一条随机选取的数据

特点

优点

  • 每一次的学习时间很快
  • 如果目标函数有盆地区域, SGD会使优化的方向从当前局部极小值点跳到另一个更好的局部最小值点
  • 最终收敛于一个较好的极值店甚至是全局极值点

缺点

  • 每次更新可能并不会按照正确的方向进行, 参数具有高方差, 从而导致损害函数剧烈波动

小批量梯度下降(Mini-Batch Gradient Descent)

小批量梯度下降指的是从所有数据中选择一部分进行迭代

特点

优点

  • 收敛速度比SGD更快, 更稳定
  • 在最优解附近跳动不会太大, 容易得到更好的解

Momentum梯度下降法(动量梯度下降)

v = λ ∂ J ∂ ω + v ∗ m o m e m t u m ω = ω − v m o m e m t u m 介于 0 和 1 之间 v = \lambda\frac{\partial J}{\partial\omega} +v * momemtum\\ \omega = \omega-v\\ momemtum介于0和1之间 v=λωJ+vmomemtumω=ωvmomemtum介于01之间

特点

  • 减少震荡, 大方向不变, 从而保证了效率和正确的收敛

Adagrad梯度下降法

d w = ∂ J ∂ ω g r a d _ s q u a r e d + = d w 2 ω = ω − λ ∗ d w g r a d _ s q u a r e d dw = \frac{\partial J}{\partial\omega}\\ grad\_squared += dw^2\\ \omega = \omega - \lambda * \frac{dw}{\sqrt{grad\_squared}} dw=ωJgrad_squared+=dw2ω=ωλgrad_squared dw

特点

  • 把每一维度的梯度的平方和记录下来,每次学习率都除以这个和
  • 每一维度的学习率不一样,而且都在不断减小
  • 在梯度大的维度,减小下降速度.在梯度小的维度, 加快下降速度
  • 让学习率适应参数
  • 无需手动调整学习率
  • 缺点: 在训练过程中, 累加的和会持续增长, 这回导致学习率变小以至于最终变得无限小, 那么Adagrad将无法取得额外的信息

Adadelta

d w = ∂ J ∂ ω g r a d _ s q u a r e d = α ∗ g r a d _ s q u a r e d + ( 1 − α ) ∗ d w 2 ω = ω − λ ∗ d w g r a d _ s q u a r e d dw = \frac{\partial J}{\partial\omega}\\ grad\_squared = \alpha * grad\_squared + (1 - \alpha) * dw^2\\ \omega = \omega - \lambda * \frac{dw}{\sqrt{grad\_squared}} dw=ωJgrad_squared=αgrad_squared+(1α)dw2ω=ωλgrad_squared dw

特点

  • 在Adagrad的基础上进行扩展, 以处理Adagrad学习率单调递减的问题

Adam

特点

d w = ∂ J ∂ ω m o m e n t 1 = β 1 ∗ m o m e n t 1 + ( 1 − β 1 ) ∗ d w m o m e n t 2 = β 2 ∗ m o m e n t 2 + ( 1 − β 2 ) ∗ d w 2 b i a s 1 = m o m e n t 1 ÷ ( 1 − β 1 t ) b i a s 2 = m o m e n t 2 ÷ ( 1 − β 2 t ) w − = λ ∗ b i a s 1 ÷ b i s a 2 b i a s 为偏差 dw = \frac{\partial J}{\partial \omega}\\ moment_1 = \beta_1 * moment_1 + (1-\beta_1) * dw\\ moment_2 = \beta_2 * moment_2 + (1-\beta_2) * dw^2\\ bias_1 = moment_1 \div (1-\beta_1^t)\\ bias_2=moment_2 \div (1-\beta_2^t)\\ w -= \lambda * bias_1\div\sqrt{bisa_2}\\ bias为偏差 dw=ωJmoment1=β1moment1+(1β1)dwmoment2=β2moment2+(1β2)dw2bias1=moment1÷(1β1t)bias2=moment2÷(1β2t)w=λbias1÷bisa2 bias为偏差

  • 结合了Momentum和RMSprop的特点
  • 自适应学习率

b e t a 1 = 0.9 , b e t a 2 = 0.999 , λ = 1 e − 3 或 5 e − 4 beta_1=0.9, beta_2=0.999, \lambda=1e-3或5e-4 beta1=0.9,beta2=0.999,λ=1e35e4是许多模型的一个很好的起点

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小夏refresh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值