优化器:从SGD到 Adam

总结学习视频 https://www.bilibili.com/video/av94067702/

所有的优化器都是可以套进这个基本框架的。
在这里插入图片描述

SGD

这里的E指的是单位矩阵。SGD 没有动量概念,因为一阶动量就是当前梯度,二阶梯度就是单位矩阵。
在这里插入图片描述
缺点:容易陷入局部最优。由于SGD只考虑当前时刻的梯度,在局部最优点的当前梯度为0。由计算公式可知,此时参数不再进行更新,故陷入局部最优的状态。

显而易见,引入历史梯度值,引入动量(momentum)的概念可以帮助我们跳出鞍点。

EMA,指数滑动平均

咱比如要算 θ t \theta_t θt 的平均,一般大家就用相加求和/总数的方法。
而EMA(指数滑动平均)是指数式的平均。

第一行最重要,方便理解。
当前时刻 v t v_t vt 等于 衰减因子 β \beta β 与上一个时刻的值 v t − 1 v_{t-1} vt1 的乘积 加上 ( 1 − β ) × θ t (1-\beta) \times \theta_t (1β)×θt。这个式子可以递归化简为第二行,也就是把 θ t \theta_t θt的历史做一个指数的求和,所以很形象的称为滑动平均。
在这里插入图片描述
而对于那些权重小于 1 e \frac{1}{e} e1的项,我们可以忽略不记。然后可以数学推导(极限),指数滑动平均肯定有个范围啊,就是到底与多宽的历史时刻有关,答案是 1 1 − β \frac{1}{1-\beta} 1β1,所以一般 β = 0.999 \beta=0.999 β=0.999的时候,就是1000个时刻取指数平均。

此时,我们知道了EMA,就可以把 θ t \theta_t θt换成 g t g_t gt,目的是引入梯度的历史值,进而可以计算出梯度的动量(momentum)。

EMA的一个小问题

当t比较小的时候,EMA会把平均值拉的很小。
在这里插入图片描述
所以这里大家一般都会引入一个修正因子 1 − β t 1-\beta^t 1βt,我们可以分析,
在这里插入图片描述

SGD w/ Momentum

在SGD上,加入一阶动量,还是没有引入二阶动量。
在这里插入图片描述
这里没有严格使用EMA,具体为,没有使用 1 − β t 1-\beta^t 1βt,而是使用了 η \eta η,无伤大雅,原理上一致。

NAG (Nesterov Accelerated Gradient)

同样使用了一阶动量而没有使用二阶动量。没有使用 ( 1 − β ) × g t (1-\beta) \times g_t (1β)×gt,而是预测t-1时刻下一时刻梯度,没有引入当前的观测值,可以理解为跟着惯性走了一步。
在这里插入图片描述


加下来的都是引入二阶后的方法。二阶动量出现,才说明了自适应学习率的优化算法时代到来。

AdaGrad

如图,我们希望经常被刺激到的神经元参数更新幅度小一些,那些不经常被用到的神经元更新的慢一点。
在这里插入图片描述

有一种归一化的感觉。对于那些更新幅度很大的参数,通常历史累计梯度的平方和会很大(可以理解为能量很大),所以希望能量大的更新慢一点,能量小的更新快一点。

在这里插入图片描述
所以,如图式一,计算以往梯度的平方和作为二阶动量,梯度本身作为一阶动量,就可以得到第二行的式子。此时,二阶动量大的参数就会更新的小一点啦。

缺点:随着时间步的拉长,历史累计梯度平方和会越来越大,这样会使得所有维度参数的学习率都不断减小(单调递减),无论更新幅度如何。

显然,一直累计肯定不好,这里可以想到momentum,利用EMA不就好了吗?

RMSProp/AdaDelta

Delta 就是一个小范围嘛,就是使用了历史一部分梯度。

  • RMSProp 就是在AdaGrad 基础上将普通的历史累计梯度平方和换成了历史累计梯度平方和的EMA
    在这里插入图片描述

  • AdaDelta
    在 RMSProp上进行,改的分子(忽略)

Adam

Momentum 在SGD 基础上增加了一阶动量,AdaGrad 在SGD 基础上增加了二阶动量, 把一阶和二阶动量都使用了就是Adam。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值