打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
各种梯度下降法及其特点

原文链接

文章目录

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

    • 特点

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

    • 特点

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

    • 特点

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

    • 特点

  • Adagrad梯度下降法

    • 特点

    • Adadelta

    • 特点

  • Adam

    • 特点

全量梯度下降/批梯度下降(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介于0和1之间

特点

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

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÷bisa2bias为偏差

  • 结合了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,λ=1e3或5e4是许多模型的一个很好的起点

本人博客: https://xiaoxiablogs.top

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
点击率预估算法:FM与FFM
深度学习中的激活函数与梯度消失
pytorch循环神经网络RNN从结构原理到应用实例
LSTM前向传播与反向传播算法推导
GBDT算法原理深入解析
融合梯度信息的改进引导滤波
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服