常见优化器总结

优化器简述

神经网络是根据损失函数不断调整网络参数,使得最终能够获得近似最优解。
优化器 是为了让参数根据损失函数更快更准的朝着最优方向更新的一种策略。

符号说明

符号含义备注
W模型参数
J(W)代价函数
▽ J ( W ) \bigtriangledown J(W) J(W)梯度代价函数关于模型参数的偏导
v一阶动量代表惯性
r二阶动量用于控制自适应学习率
q完全自适应学习率自适应学习率
η \eta η学习率
( X , Y ) (X,Y) (X,Y)训练集整体样本
( X ( i ) , Y ( i ) ) (X^{(i)} ,Y^{(i)}) (X(i),Y(i))训练集第i个样本
N N N训练集样本总量
ϵ随机参数ϵ是为了数值稳定性而加上的 通常取10的负10次方

常见优化器介绍

GD

W t + 1 = W t − η t ⋅ ▽ J ( W t ) W_{t+1} = W_{t} - \eta _{t}\cdot \bigtriangledown J(W_{t}) Wt+1=WtηtJ(Wt)

SGD

随机梯度下降(SGD、Stochastic Gradient Descent)
均匀地,随机选择一个样本 ( X ( i ) , Y ( i ) ) (X^{(i)} ,Y^{(i)}) (X(i),Y(i)), 代表整体样本,乘以N(每个epoch参数更新N次);
随机是指每次选取哪个样本是随机的,每个epoch样本更新的顺序是随机的。
W t + 1 = W t − η t ⋅ N ⋅ ▽ J ( W t , X ( i ) , Y ( i ) ) W_{t+1} = W_{t} - \eta _{t}\cdot N\cdot \bigtriangledown J(W_{t}, X^{(i)} ,Y^{(i)}) Wt+1=WtηtNJ(Wt,X(i),Y(i))
优点:参数更新速度快
缺点:由于每次参数更新时采用的数据量很小,造成梯度更新时震荡幅度大,容易受到异常值的影响,在最优解附近会有加大波动,但大多数情况都是向着梯度减小的方向

BGD

每次将所有样本的梯度求和,然后根据梯度和对参数进行更新,每个epoch参数更新1次
优点:由于每次参数更新时采用的数据量很大,梯度更新时很平滑。
缺点:由于每次参数更新时采用的数据量很大,造成参数更新速度慢,内存消耗大,因为梯度更新平滑随机性差,容易陷入局部最优解。

MBGD

小批量梯度下降(MBGD、Mini-batch gradient descent)
每次迭代用m个样本对参数更新;
MBGD 每一次利用一小批样本,即m 个样本进行计算,本质上就是在每个batch内部使用BGD策略,在batch外部使用SGD策略。
W t + 1 = W t − η t ⋅ N ⋅ 1 m ⋅ ∑ i = 1 m − 1 ▽ J ( W t , X ( i ) , Y ( i ) ) W_{t+1} = W_{t} - \eta _{t}\cdot N\cdot \frac{1}{m} \cdot\sum_{i=1}^{m-1} \bigtriangledown J(W_{t}, X^{(i)} ,Y^{(i)}) Wt+1=WtηtNm1i=1m1J(Wt,X(i),Y(i))
优点:相比于SGD,可以降低参数更新时的方差,收敛更稳定,由于每次参数更新时采用的数据量相对较大,梯度更新时相对平滑;相比于BGD,由于每次参数更新时采用的数据量相对较小,参数更新速度相对较快。
缺点:没有考虑数据集的稀疏度和模型的训练时间对参数更新的影响。

SGD-M

参数更新时在一定程度上保留之前更新的方向,同时又利用当前batch的梯度微调最终的更新方向
动量法(Momentum)的思想是,将当前梯度与过去梯度加权平均,来获取即将更新的梯度。
V t = α ⋅ V t − 1 + η t ⋅ N ⋅ ▽ J ( W t , X ( i ) , Y ( i ) ) V_{t} = \alpha \cdot V_{t-1} + \eta _{t} \cdot N\cdot\bigtriangledown J(W_{t}, X^{(i)} ,Y^{(i)}) Vt=αVt1+ηtNJ(Wt,X(i),Y(i))
W t + 1 = W t − V t W_{t+1} = W_{t} - V_{t} Wt+1=WtVt

NAG

(NAG、Nesterov Accelerated Gradient)NAG的思想是在动量法的基础上展开的,NAG直接采用下一时刻的梯度来和上一时刻梯度进行加权平均
V t = α ⋅ V t − 1 + η t ▽ J ( W t − α ⋅ V t − 1 ) V_{t} = \alpha \cdot V_{t-1} + \eta _{t} \bigtriangledown J(W_{t}- \alpha \cdot V_{t-1}) Vt=αVt1+ηtJ(WtαVt1)
W t + 1 = W t − V t W_{t+1} = W_{t} - V_{t} Wt+1=WtVt

AdaGrad

g t = 1 m ⋅ ∑ i = 1 m − 1 ▽ J ( W t , X ( i ) , Y ( i ) ) g_{t}=\frac{1}{m} \cdot\sum_{i=1}^{m-1} \bigtriangledown J(W_{t}, X^{(i)} ,Y^{(i)}) gt=m1i=1m1J(Wt,X(i),Y(i))
r t + 1 = r t + g t ⊙ g t r_{t+1} = r_{t}+g_{t}\odot g_{t} rt+1=rt+gtgt
W t + 1 = W t − η t r t + 1 + ϵ ⊙ g t W_{t+1} = W_{t} -\frac{\eta _{t} }{\sqrt{r_{t+1} + ϵ} }\odot g_{t} Wt+1=Wtrt+1+ϵ ηtgt

RMSProp

均方根反向传播法(RMSProp、Root Mean Square Propagation)
g t = ▽ J ( W t ) g_{t}= \bigtriangledown J(W_{t}) gt=J(Wt)
r t + 1 = β r t + ( 1 − β ) g t ⊙ g t r_{t+1} = \beta r_{t}+(1-\beta )g_{t}\odot g_{t} rt+1=βrt+(1β)gtgt

W t + 1 = W t − η t r t + 1 + ϵ ⊙ g t W_{t+1} = W_{t} -\frac{\eta _{t} }{\sqrt{r_{t+1} + ϵ} }\odot g_{t} Wt+1=Wtrt+1+ϵ ηtgt

Adadelta

An Adaptive learning rate method
g t = ▽ J ( W t ) g_{t}= \bigtriangledown J(W_{t}) gt=J(Wt)
r t + 1 = β r t + ( 1 − β ) g t ⊙ g t r_{t+1} = \beta r_{t}+(1-\beta )g_{t}\odot g_{t} rt+1=βrt+(1β)gtgt
q t = α q t − 1 + ( 1 − α ) ( q t − 1 + ϵ r t + ϵ ⊙ g t ) 2 q_{t} = \alpha q_{t-1}+(1-\alpha ) (\frac{\sqrt{ q_{t-1}+ ϵ}}{\sqrt{r_{t} + ϵ}} \odot g_{t})^2 qt=αqt1+(1α)(rt+ϵ qt1+ϵ gt)2
W t + 1 = W t − q t + ϵ r t + 1 + ϵ ⊙ g t W_{t+1} = W_{t} -\frac{\sqrt{ q_{t}+ ϵ}}{\sqrt{r_{t+1} + ϵ} }\odot g_{t} Wt+1=Wtrt+1+ϵ qt+ϵ gt

Adam

g t = ▽ J ( W t ) g_{t}= \bigtriangledown J(W_{t}) gt=J(Wt)
v t + 1 = α v t + ( 1 − α ) g t v_{t+1} =\alpha v_{t}+(1-\alpha)g_{t} vt+1=αvt+(1α)gt
r t + 1 = β r t + ( 1 − β ) g t ⊙ g t r_{t+1} = \beta r_{t}+(1-\beta)g_{t}\odot g_{t} rt+1=βrt+(1β)gtgt
v t ^ = v t 1 − α \hat{v_{t}} = \frac{ v_{t}}{1-\alpha} vt^=1αvt
r t ^ = r t 1 − β \hat{r_{t}} = \frac{ r_{t}}{1- \beta} rt^=1βrt
W t + 1 = W t − η r t + 1 + ϵ v t ^ W_{t+1} = W_{t} -\frac{\eta}{\sqrt{r_{t+1} + ϵ} } \hat{v_{t}} Wt+1=Wtrt+1+ϵ ηvt^

AdamW

g t = ▽ J ( W t ) g_{t}= \bigtriangledown J(W_{t}) gt=J(Wt)
v t + 1 = α v t + ( 1 − α ) g t v_{t+1} =\alpha v_{t}+(1-\alpha)g_{t} vt+1=αvt+(1α)gt
r t + 1 = β r t + ( 1 − β ) g t ⊙ g t r_{t+1} = \beta r_{t}+(1-\beta)g_{t}\odot g_{t} rt+1=βrt+(1β)gtgt
v t ^ = v t 1 − α \hat{v_{t}} = \frac{ v_{t}}{1-\alpha} vt^=1αvt
r t ^ = r t 1 − β \hat{r_{t}} = \frac{ r_{t}}{1- \beta} rt^=1βrt
W t + 1 = W t − η ( 1 r t + 1 + ϵ v t ^ + λ W t ) W_{t+1} = W_{t} -\eta (\frac{1}{\sqrt{r_{t+1} + ϵ} } \hat{v_{t}}+λ W_{t}) Wt+1=Wtη(rt+1+ϵ 1vt^+λWt)

Adam with L2

g t = ▽ J ( W t ) + λ W t g_{t}= \bigtriangledown J(W_{t}) + λ W_{t} gt=J(Wt)+λWt
v t + 1 = α v t + ( 1 − α ) g t v_{t+1} =\alpha v_{t}+(1-\alpha)g_{t} vt+1=αvt+(1α)gt
r t + 1 = β r t + ( 1 − β ) g t ⊙ g t r_{t+1} = \beta r_{t}+(1-\beta)g_{t}\odot g_{t} rt+1=βrt+(1β)gtgt
v t ^ = v t 1 − α \hat{v_{t}} = \frac{ v_{t}}{1-\alpha} vt^=1αvt
r t ^ = r t 1 − β \hat{r_{t}} = \frac{ r_{t}}{1- \beta} rt^=1βrt
W t + 1 = W t − η r t + 1 + ϵ v t ^ W_{t+1} = W_{t} -\frac{\eta}{\sqrt{r_{t+1} + ϵ} } \hat{v_{t}} Wt+1=Wtrt+1+ϵ ηvt^

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值