各种梯度下降法及其特点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
各种梯度下降法及其特点
原文链接
文章目录
•全量梯度下降/批梯度下降(BGD, Batch Gradient Descent)
•
o特点
•随机梯度下降(SGD, Stochastic Gradient Descent)
•
o特点
•小批量梯度下降(Mini-Batch Gradient Descent)
•
o特点
•Momentum梯度下降法(动量梯度下降)
•
o特点
•Adagrad梯度下降法
•
o特点
o Adadelta
o特点
•Adam
•
o特点
全量梯度下降/批梯度下降(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+v∗momemtumω=ω−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=β1∗moment1+(1−β1)∗dwmoment2=β2∗moment2+(1−β2)∗dw2bias1=mome nt1÷(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,λ=1e−3或5e−4是
许多模型的一个很好的起点
本人博客:。