摘要:
本文主要是总结了深度学习中几种常用的优化器,介绍其设计原理,优缺点等。
1.什么是优化器?
2.有哪些优化器?
3.优化算法的选择与使用策略
4.参考资料
1 什么是优化器?
(1)解释
一言以蔽之,优化器就是在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数让损失函数(目标函数)值不断逼近全局最小。
(2)原理解释
优化问题可以看做是我们站在山上的某个位置(当前的参数信息),想要以最佳的路线去到山下(最优点)。首先,直观的方法就是环顾四周,找到下山最快的方向走一步,然后再次环顾四周,找到最快的方向,直到下山——这样的方法便是朴素的梯度下降——当前的海拔是我们的目标函数值,而我们在每一步找到的方向便是函数梯度的反方向(梯度是函数上升最快的方向,所以梯度的反方向就是函数下降最快的方向)。
事实上,使用梯度下降进行优化,是几乎所有优化器的核心思想。当我们下山时,有两个方面是我们最关心的:
- 首先是优化方向,决定“前进的方向是否正确”,在优化器中反映为梯度或动量。
- 其次是步长,决定“每一步迈多远”,在优化器中反映为学习率。
所有优化器都在关注这两个方面,但同时也有一些其他问题,比如应该在哪里出发、路线错误如何处理……这是一些最新的优化器关注的方向。
(3)公式和定义
待优化参数:
参数更新步骤如下:
Ⅰ.计算目标函数关于当前参数的梯度:
Ⅱ. 根据历史梯度计算一阶动量和二阶动量:
Ⅲ. 计算当前时刻的下降梯度:
Ⅳ. 根据下降梯度进行更新参数:
步骤Ⅲ、Ⅳ对于各个算法都是一致的,主要的差别就体现在步骤Ⅰ、Ⅱ上。
2. 有哪些优化器?
2.1 随机梯度下降法(Stochastic Gradient Descent,SGD)
随机梯度下降算法每次从训练集中随机选择一个样本来进行学习,SGD没有动量的概念,因此
代入步骤Ⅲ,可以得到下降梯度