深度学习基础—动量梯度下降法

1.算法原理

动量梯度下降法就是在梯度下降法的基础上,使用指数加权移动平均值,来平均梯度,这种算法比梯度下降法更快。

如上图,损失函数的最小值是红点,椭圆是损失函数的图像,梯度下降法就像蓝线和紫线(学习率高,因此计算容易超出范围)一样,摆动着朝最小值移动。但是这种优化算法的计算步骤很多,并且靠近最小值,梯度比较小,此时算法速度减慢,也无法使用更高的学习率(否则就会出现紫色的情况)。

从另一角度讨论,我们希望算法的运行轨迹是x轴处更快点,y轴更慢点,不希望摆动太多(增加计算),因此这就启发我们寻找更加平滑的优化路径。于是指数加权移动平均值就排上用场,因为它可以平滑计算,同时也能反应趋势。

2.算法流程

在梯度下降法或Mini-batch 梯度下降法中添加指数加权移动平均值深度学习基础---指数加权移动平均值http://t.csdnimg.cn/ZY628代替原来的权重更新,得到的算法如下:

这个算法存在两个超参数:学习率a和参数b,参数b通常取值0.9。不加偏差修正的原因是b=0.9表示平均了10次的梯度,我们不需要准确估计网络初期的梯度,而10次迭代后就已经越过了这个时期,此时预估的梯度是比较准确的,因此不需要偏差修正。

结合开始的图可以发现,对于y轴方向,正负值抵消,梯度的估计值接近0,因此减小了摆动,而x轴方向微分始终朝向最小值方向,因此优化更加平缓的向最小值方向移动,因此减少了计算,加快了收敛速度。对于接近最小值的地方,该算法预估出来的梯度值更大,因此也加快了速度。

3.如何理解

如何理解算法:通常优化函数是一个碗状形状,最小值在碗底。优化路径像从碗边滚下的小球,小球的加速度就是梯度(dW、db),小球的速度就是动量项(VdW、Vdb)。梯度下降法更像离散的运动轨迹,因为小球是每计算出一个优化值,就向那个地方直接跳跃。而动量梯度下降法是连续的运动轨迹,指数加权移动平均值平滑了梯度,进而速度也更加平滑,小球有了连续运动的惯性,因此赋予了小球动量。这也是动量梯度下降法名字的由来。

注意:有些文献去掉了(1-b),这也不错,但是去掉(1-b)后往往会导致VdW和Vdb扩大,于是可能需要调整学习率a,从而控制权重更新不那么快。这更加繁琐,至于使用哪个公式,顺手就行。

相关推荐
Elastic 中国社区官方博客1 小时前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
wjkjpcba1 小时前
机器人控制板PCBA怎么加工?从SMT贴片到BGA焊接解析机器人电子制造工艺
大数据·人工智能
青 春 记 忆2 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
小猪妈咪爱学法2 小时前
欧盟最新发布《AI数字综合法案(Digital Omnibus‑on‑AI,AI综合修订法案)
人工智能·网络安全
ZGIAI2 小时前
ZGI Workflow 变量池:接住节点输出
人工智能·架构
梵构广告2 小时前
提升品牌识别度有哪些方法?
人工智能
ZGIAI2 小时前
ZGI 记忆隔离:多人共用不串号
人工智能·架构
星栈独行3 小时前
决定 Agent 交付下限的「操作系统」:Harness 六层架构拆解
人工智能·架构
AKAMAI3 小时前
实时可观测性:Akamai Cloud Pulse 警报功能正式发布
人工智能·云计算
Capricorn19883 小时前
解决全网抄 Karpathy 导致的 LLM Wiki 污染?基于知芽 Notebook Skill 的 raw/ 笔记法排障指南
大数据·论文阅读·人工智能·笔记·论文笔记