神经网络的优化算法

神经网络的优化算法

1. SGD 随机梯度下降

w t ← w t − 1 − η ∇ w L ( x ) w_t \larr w_{t-1}-\eta\nabla_w L(x) wtwt1ηwL(x)

​ 训练速度较快,但是不是全局最优解,容易困在鞍点(saddle point)和极小值点。如果函数的形状非均向,搜索路径效率就会非常低(根本原因:梯度方向没有指向最小值方向)

2. Momentum 动量

​ 动量的引入就是为了加快学习过程,特别是对于高曲率、小但一致的梯度,或者噪声比较大的梯度能够很好的加快学习过程。动量的主要思想是积累了之前梯度指数级衰减的移动平均(前面的指数加权平均)。
v t ← α v t − 1 − η ∇ w L ( x ) w t ← w t − 1 + v t v_t \larr \alpha v_{t-1}-\eta \nabla_w L(x)\\ w_t \larr w_{t-1}+v_t vtαvt1ηwL(x)wtwt1+vt
​ 其中 v t − 1 v_{t-1} vt1为之前所有步骤所累积的动量

3. Nesterov Momentum

Nesterov Momentum是对Momentum的改进,可以理解为Nesterov Momentum在标准动量方法中添加了一个校正因子。
w ^ ← w t − 1 + α v t − 1 v t ← α v t − 1 − η ∇ w L ( x ; w ^ ) w t ← w t − 1 + v t \hat w \larr w_{t-1}+\alpha v_{t-1}\\ v_t \larr \alpha v_{t-1}-\eta \nabla_w L(x;\hat w)\\ w_t \larr w_{t-1}+v_t w^wt1+αvt1vtαvt1ηwL(x;w^)wtwt1+vt

4. AdaGrad (Adaptive Gradient)

​ 保持一个训练过程中的每一步的梯度的平方和的持续估计,在更新时将梯度除以之前梯度的平方和。
g t ← g t − 1 + ∇ w L ( x ) ⊙ ∇ w L ( x ) w t ← w t − 1 − η 1 g t + ϵ ⊙ ∇ w L ( x ) g_t \larr g_{t-1} + \nabla_w L(x) \odot \nabla_w L(x) \\ w_t \larr w_{t-1}-\eta\frac{1}{\sqrt{g_t+\epsilon}} \odot \nabla_wL(x) gtgt1+wL(x)wL(x)wtwt1ηgt+ϵ 1wL(x)

​ 对于梯度较大的参数,学习率会较小,而对于梯度较小的参数,学习率较大。这使得变动较大的参数的学习率减小,增加小梯度维度上的学习速度,不至于在平缓的地方徘徊不前。

​ 但是后期的梯度平方和的估计会很大,导致学习率过小,可能很难找到一个可用的解。

5. RMSProp

​ RMSProp和AdaDelta一样,使用指数加权平均(指数衰减平均),只保留过去给定窗口大小的梯度信息,s使其能够在找到碗装结构后快速收敛。
g t ← γ g t − 1 + ( 1 − γ ) ∇ w L ( x ) ⊙ ∇ w L ( x ) w t ← w t − 1 − η 1 g t + ϵ ⊙ ∇ w L ( x ) g_t \larr \gamma g_{t-1} + (1-\gamma)\nabla_w L(x) \odot \nabla_w L(x) \\ w_t \larr w_{t-1}-\eta\frac{1}{\sqrt{g_t+\epsilon}} \odot \nabla_wL(x) gtγgt1+(1γ)wL(x)wL(x)wtwt1ηgt+ϵ 1wL(x)

6. Adam

​ Adam实际上是把Momentum和RMSProp结合起来的一种算法。
v t ← β 1 t t − 1 + ( 1 − β 1 ) ∇ w L ( x ) v_t \larr \beta_1t_{t-1} +(1-\beta_1)\nabla_w L(x) vtβ1tt1+(1β1)wL(x)

g t ← β 2 g t − 1 + ( 1 − β 2 ) ∇ w L ( x ) ⊙ ∇ w L ( x ) g_t \larr \beta_2g_{t-1}+(1-\beta_2) \nabla_w L(x) \odot \nabla_w L(x) gtβ2gt1+(1β2)wL(x)wL(x)

v ^ t ← v t 1 − β 1 t , g ^ t ← g t 1 − β 2 t w t ← w t − 1 − η v ^ t g ^ t + ϵ \hat v_t \larr\frac{v_t}{1-\beta_1^t}, \qquad \hat g_t \larr\frac{g_t}{1-\beta_2^t} \\ w_t \larr w_{t-1} -\eta \frac{\hat v_t}{\sqrt{\hat g_t + \epsilon}} v^t1β1tvt,g^t1β2tgtwtwt1ηg^t+ϵ v^t

​ 其中 v ^ t ,   g ^ t \hat v_t, \ \hat g_t v^t, g^t v t ,   g t v_t,\ g_t vt, gt的无偏修正,为了修正t较小时指数加权平均的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值