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

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,从而控制权重更新不那么快。这更加繁琐,至于使用哪个公式,顺手就行。

相关推荐
数据的世界011 分钟前
重构智慧书-第4条:让 “有识有胆” 的智慧更具现实张力
人工智能
玖日大大2 分钟前
GenFlow 3.0:重构生成式 AI 工作流的新一代智能编排平台
人工智能·chatgpt·文心一言
存内计算开发者4 分钟前
存算一体架构在空间计算中的应用
人工智能·神经网络·机器学习·计算机视觉·架构·空间计算·存算一体
技术传感器10 分钟前
Prompt工程的艺术与科学:从“对话“到“编程“,掌握与大模型高效协作的元技能
人工智能·microsoft·架构·prompt·aigc
红蒲公英13 分钟前
( 教学 )Agent 构建 Prompt(提示词)2. CommaSeparatedListOutputParser
人工智能·python·langchain·prompt·langgraph
玖日大大1 小时前
JoyAgent-JDGenie:开源多智能体系统的工业级实践
人工智能·开源
子午1 小时前
【民族服饰识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·python·深度学习
Jay20021111 小时前
【机器学习】21-22 机器学习系统开发流程 & 倾斜数据集
人工智能·机器学习·计算机视觉
沃达德软件6 小时前
智慧警务图像融合大数据
大数据·图像处理·人工智能·目标检测·计算机视觉·目标跟踪
QxQ么么6 小时前
移远通信(桂林)26校招-助理AI算法工程师-面试纪录
人工智能·python·算法·面试