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

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

相关推荐
喜欢吃豆27 分钟前
从指令到智能:大型语言模型提示词工程与上下文工程的综合分析
人工智能·语言模型·自然语言处理·大模型·提示词工程·上下文工程
七元权30 分钟前
论文阅读-FoundationStereo
论文阅读·深度学习·计算机视觉·零样本·基础模型·双目深度估计
Fuly102431 分钟前
prompt构建技巧
人工智能·prompt
智驱力人工智能33 分钟前
使用手机检测的智能视觉分析技术与应用 加油站使用手机 玩手机检测
深度学习·算法·目标检测·智能手机·视觉检测·边缘计算
XXX-X-XXJ36 分钟前
二:RAG 的 “语义密码”:向量、嵌入模型与 Milvus 向量数据库实操
人工智能·git·后端·python·django·milvus
艾醒(AiXing-w)43 分钟前
探索大语言模型(LLM):大模型微调方式全解析
人工智能·语言模型·自然语言处理
科兴第一吴彦祖1 小时前
基于Spring Boot + Vue 3的乡村振兴综合服务平台
java·vue.js·人工智能·spring boot·推荐算法
姚瑞南1 小时前
【AI 风向标】四种深度学习算法(CNN、RNN、GAN、RL)的通俗解释
人工智能·深度学习·算法
渡我白衣1 小时前
深度学习入门(一)——从神经元到损失函数,一步步理解前向传播(上)
人工智能·深度学习·学习
补三补四1 小时前
SMOTE 算法详解:解决不平衡数据问题的有效工具
人工智能·算法