神经网络优化器设计中最核心的一个矛盾——随机性与收敛速度的矛盾。_优化器(Optimizer)...

81d91897eeb75c549d3a696e1c9bd391.png

摘要:

本文主要是总结了深度学习中几种常用的优化器,介绍其设计原理,优缺点等。


1.什么是优化器?

2.有哪些优化器?

3.优化算法的选择与使用策略

4.参考资料


1 什么是优化器?

(1)解释

一言以蔽之,优化器就是在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数让损失函数(目标函数)值不断逼近全局最小。

4028da8df4f2e55d20c91e359be1b034.png

(2)原理解释

优化问题可以看做是我们站在山上的某个位置(当前的参数信息),想要以最佳的路线去到山下(最优点)。首先,直观的方法就是环顾四周,找到下山最快的方向走一步,然后再次环顾四周,找到最快的方向,直到下山——这样的方法便是朴素的梯度下降——当前的海拔是我们的目标函数值,而我们在每一步找到的方向便是函数梯度的反方向(梯度是函数上升最快的方向,所以梯度的反方向就是函数下降最快的方向)。

事实上,使用梯度下降进行优化,是几乎所有优化器的核心思想。当我们下山时,有两个方面是我们最关心的:

  • 首先是优化方向,决定“前进的方向是否正确”,在优化器中反映为梯度或动量。
  • 其次是步长,决定“每一步迈多远”,在优化器中反映为学习率。

所有优化器都在关注这两个方面,但同时也有一些其他问题,比如应该在哪里出发、路线错误如何处理……这是一些最新的优化器关注的方向。

(3)公式和定义

待优化参数:

equation?tex=%5Comega ,目标函数:
equation?tex=f%28x%29 ,初始学习率:
equation?tex=%5Calpha ,迭代epoch:
equation?tex=t

参数更新步骤如下:

Ⅰ.计算目标函数关于当前参数的梯度:

equation?tex=g_t%3D%5Cnabla+f%28w_t%29

Ⅱ. 根据历史梯度计算一阶动量和二阶动量:

equation?tex=m_t+%3D+%5Cphi%28g_1%2C+g_2%2C+%5Ccdots%2C+g_t%29%3B+V_t+%3D+%5Csum_%7Bi%3D0%7D%5E%7Bt%7D%7Bx_%7Bi%7D%5E%7B2%7D%7D

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

equation?tex=%5Ceta_t+%3D+%5Calpha+%5Ccdot+m_t+%2F+%5Csqrt%7BV_t%7D

Ⅳ. 根据下降梯度进行更新参数:

equation?tex=w_%7Bt%2B1%7D+%3D+w_t+-+%5Ceta_t

步骤Ⅲ、Ⅳ对于各个算法都是一致的,主要的差别就体现在步骤Ⅰ、Ⅱ上。

2. 有哪些优化器?

2.1 随机梯度下降法(Stochastic Gradient Descent,SGD)

随机梯度下降算法每次从训练集中随机选择一个样本来进行学习,SGD没有动量的概念,因此

equation?tex=m_t+%3D+g_t%3B+V_t+%3D+I%5E2

代入步骤Ⅲ,可以得到下降梯度

equation?tex=%5Ceta_t+%3D+%5Calpha+%5Ccdot+g_t+

<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值