100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 深度学习优化算法大全系列1:概览

深度学习优化算法大全系列1:概览

时间:2019-07-18 21:49:52

相关推荐

深度学习优化算法大全系列1:概览

1.深度学习优化算法概览图

深度学习(其实也包括传统的机器学习)中的优化算法,丰富多彩多种多样。如果没有从逻辑上有条主线理清楚,很容易会陷入混乱。因此我参考前人的总结,特意总结了一张图,将这些优化算法的逻辑关系理顺一下。

上面的图,从两个方面对优化算法进行逻辑梳理:以最基础的SGD为起点,左半部分针对梯度方向进行优化,右半部分针对学习率进行优化。

根据上面图片,不难看出,深度学习优化算法发展过程基本如下:

SGD->SGDM->Nesterov->AdaGrad->AdaDelta->Adam->Nadam

后面我们针对上述算法将分别介绍。

2.优化算法框架

根据参考文献1,提出用一个框架表述所有的优化算法,个人认为总结很赞,因此贴出来供大家参考:

定义待优化参数ω\omegaω,目标函数f(ω)f(\omega)f(ω),初始学习率α\alphaα。

在每个epoch t进行迭代时:

1.根据目标函数计算当前参数的梯度:gt=▽f(ωt)g_t=\bigtriangledown f(\omega_t)gt​=▽f(ωt​)

2.根据历史梯度计算一阶动量与二阶动量

mt=ϕ(g1,g2,⋯,gt)Vt=φ(g1,g2,⋯,gt)m_t = \phi(g_1, g_2, \cdots, g_t)\\ V_t = \varphi(g_1, g_2, \cdots, g_t) mt​=ϕ(g1​,g2​,⋯,gt​)Vt​=φ(g1​,g2​,⋯,gt​)

3.计算当前时刻的下降梯度

ηt=α⋅mt/Vt\eta_t = \alpha \cdot m_t / \sqrt{V_t}ηt​=α⋅mt​/Vt​​

4.根据下降梯度进行更新

ωt+1=ωt−ηt\omega_{t+1} = \omega_t - \eta_t ωt+1​=ωt​−ηt​

各种优化算法基本都是上述框架,步骤3,4都一致,不同就体现在第1,2两点。

以传统的SGD为例:

mt=gtVt=I2m_t=g_t\\ V_t = I^2 mt​=gt​Vt​=I2

则对于步骤三,梯度下降时,ηt=α⋅gt\eta_t = \alpha \cdot g_tηt​=α⋅gt​

这就是我们见到的传统的最简单梯度下降的方式。

参考文献

1./p/32230623

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。