梯度震荡

梯度震荡:通常指梯度在迭代更新的时候呈现剧烈波动或者不规则变化.

典型表现

1.数值波动大:梯度的大小在不同的迭代中显著起伏,例如某一步的梯度突然骤增或者骤降.
2.方向不稳定:参数路径曲折,并不是平滑的指向最优解.
3.损失函数震荡:损失值不平稳下降,而是频繁的上下波动,难以收敛或收敛速度极慢.

产生原因

1.学习率过高.
2.批量大小过小,容易受个别数据影响.
3.目标函数非凸或存在尖锐鞍点.(非凸函数)
(鞍点:在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点)
4.数据分布不均匀或者噪声大.
5.梯度消失/梯度震荡
6.参数初始化不合理
7.算法的局限性(SGD未适应/Adams震荡)

解决方法

应该是一一对应的
1.降低学习率(学习率衰减)(动态学习调整)
2.增大批量大小
3.改进算法(优化器)(正则化)
4.改进网络设计
5.合理初始化参数
6.标准化,归一化数据
7.清洗/增强数据
8.梯度裁剪:设置梯度模长的阈值,当梯度超过阈值时按比例缩放,防止梯度爆炸引发的震荡

posted @ 2025-06-16 06:15  Merlin·Lee  阅读(38)  评论(0)    收藏  举报