【李宏毅机器学习特训营】之优化器Momentum详解
信息来源:网络    时间:2024-08-12 02:23

【李宏毅机器学习特训营】之优化器Momentum详解

一、梯度爆炸

误差梯度是神经网络训练过程中计算的方向和数量,用于以正确的方向和合适的量更新网络权重。 在深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致 NaN 值。 网络层之间的梯度(值大于 1.0)重复相乘导致的指数级增长会产生梯度爆炸。 梯度爆炸引发的问题 在深度多层感知机网络中,梯度爆炸会引起网络不稳定,最好的结果是无法从训练数据中学习,而最坏的结果是出现无法再更新的 NaN 权重值。

二、梯度梯度消失

某些情况下梯度趋近于0导致无法更新。

在某些情况下,梯度会变得非常小,有效地阻止了权重值的变化。在最坏的情况下,这可能会完全停止神经网络的进一步训练。例如,传统的激活函数(如双曲正切函数)具有范围(0,1)内的梯度,反向传播通过链式法则计算梯度。这样做的效果是,用这些小数字的n乘以n来计算n层网络中“前端”层的梯度,这意味着梯度(误差信号)随n呈指数递减,而前端层的训练非常缓慢。

传统的SGD算法
在这里插入图片描述

Momentum算法
参考链接:https://distill.pub/2017/momentum/
原文链接:On the importance of initialization and momentum in deep learning

在这里插入图片描述
从公式可以看出相对于SGD算法,Momentum算法吸取了之前梯度下降的信息
在这里插入图片描述
在这里插入图片描述
像传统的SGD就会卡在第三个小球那块,而Momentum算法,由于小球在之前的下降过程中,积攒了一些能量,有可能在学习中越过这个局部最优点。

paddlepaddleAPI代码:

 

百度深度学习API连接

在这里插入图片描述

对于学习率,一般训练越久步长应该越小,adagrad算法除以一个时间的根号,可以使学习率随着时间减少。
gt是当前梯度。
ot是之前梯度的累加,如果之前存在大梯度值,可以使这次更新步长减少。
百度API描述链接
最后附上课程链接:https://aistudio.baidu.com/aistudio/course/introduce/1978

| 首页 | 关于顺盈娱乐 | 顺盈新闻 | 顺盈注册 | 顺盈登录 | 顺盈平台 | 顺盈代理 | 顺盈APP下载 |

ICP备案:粤IP******** Copyright © 2002-2022 顺盈平台官方指定注册站 版权所有

平台注册入口