常用深度学习优化算法简介

本文探讨了梯度下降法的局限性及五种优化策略:Momentum通过积累梯度加速收敛;AdaGrad针对每个参数调整学习率;RMSProp解决AdaGrad学习率过早衰减的问题;AdaDelta避免手动设定学习率;Adam结合了自适应学习率和动量项,提高优化效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度下降法是基于泰勒展开式的,为了保证每一步优化都在领域内,设置了很小的学习率,但固定的学习率产生的问题是很难收敛到最优点,于是出现了一些改进的方法。

1. 动量项梯度下降法Momentum

积累了以前的梯度信息,但是如果如果简单的累积,会导致动量越来越大,于是需要有一个衰减的过程。

                                                                     V_{t+1} = -\alpha \bigtriangledown _{W}L(W_{t})+\mu V_{t}

其中\mu为衰减因子,继续迭代发现

                                     V_{t+1} = -\alpha \bigtriangledown _{W}L(W_{t})+\mu V_{t}

                                     V_{t+1} = -\alpha \bigtriangledown _{W}L(W_{t})+\mu (-\alpha \bigtriangledown _{W}L(W_{t}+\mu V_{t-1}))

                                     V_{t+1} = -\alpha \bigtriangledown _{W}L(W_{t})+\mu (-\alpha \bigtriangledown _{W}L(W_{t}+\mu (-\alpha \bigtriangledown _{W}L(W_{t})+\mu V_{t-2}))

参数更新变为:

                                                                             W_{t+1} = W_{t}+V_{t+1}

 

2. AdaGrad

通过前面迭代的历史梯度值动态调整学习率,且优化每个变量都有自己的学习率

                                                                   (x_{t+1})_{i} = (x_{t})_{i}-\alpha \frac{(g_{t}i)}{\sqrt{\sum_{t}^{j=1}((g_{t})i)^{2}+\varepsilon }}

其中\varepsilon为防止分母为0,随着迭代加深,分母越来越大,学习率则越小,但学习率还是需要初始化,且分母会逐渐趋向正无穷。

 

3. RMSProp

为了避免长期积累后,学习率趋向0,在累积梯度作为学习率下降方法中,添加了衰减因子。

                                                                  (x_{t+1})_{i} = (x_{t})_{i}-\alpha \frac{(g_{t}i)}{\sqrt{RMS((x_{t})_{i}))}}

                                                                   RMS((x_{t})_{i}) = \delta RMS((x_{t-1})_{i})+(1-\delta )(g_{t}) _{i}^{2}

 

4. AdaDelta

在RMSProp的基础上,去掉了对人工设置学习率的依赖。

                                                                          E[g^{2}]_{0} = 0

                                                                         E[\Delta x^{2}]_{_{0}} = 0

                                                                         E[g^{2}]_{t} = \rho E[g^{2}]_{t-1} + (1-\rho )g^{2}_{t}

                                                                         RMS[g]_{t}=\sqrt{E[g^{2}]_{t}+\varepsilon}

                                                                         \Delta x_{t} = \frac{RMS[\Delta x]_{t-1}}{RMS[g]_{t}}g_{t}

                                                                         E[g^{2}]_{t} = \rho E[\Delta x^{2}]_{t-1} + (1-\rho )\Delta x^{2}_{t}

                                                                         x_{t+1}= x_{t}+\Delta x_{t}

其中\Delta x_{t} = \frac{RMS[\Delta x]_{t-1}}{RMS[g]_{t}}g_{t}是为了量纲正确

 

5.Adam

整合了自适应学习率和动量项。

                                                                         (x_{t+1})_{i} = (x_{t})_{i}-\alpha \frac{\sqrt{1-(\beta _{2})^{t}_{i}}}{1-(\beta _{1})^{t}_{i}}\frac{(m_{t})_{i}}{\sqrt{(v_{t})_{i}}+\varepsilon }

                                                                       (m_{t})_{i} =\beta _{1} (m_{t-1})_{i}-(1-\beta _{1})(g_{t})_{i}

                                                                       (v_{t})_{i} =\beta _{2} (v_{t-1})_{i}-(1-\beta _{2})(g_{t})^2_{i}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值