文章

损失&梯度

深度学习之损失函数、梯度。

损失&梯度

损失逐渐增大

训练网络时为什么会出现损失(loss)逐渐增大的情况?

常见原因有:1.学习率过高、2.数据问题、3.网络结构问题、4.初始化问题、5.正则化过强、6.其他外部因素。

原因说明
学习率过高学习率是梯度下降中的一个重要参数。如果学习率设置得过高,可能会导致损失函数在优化过程中”跳过”优异点,从而造成损失函数不断震荡并逐渐增大。
数据问题数据中的噪声、异常值或不均匀的分布可能会导致模型的损失函数上升。此外,如果训练数据和验证数据分布不一致,也可能导致损失逐渐增大。
网络结构问题模型过于复杂或过于简单都可能导致损失增大。过复杂的模型可能会过拟合,而过于简单的模型可能不能捕获数据中的复杂关系。
初始化问题不合适的权重和偏置初始化可能导致训练过程中损失函数快速增大。例如,将所有权重初始化为0可能会导致梯度消失问题。
正则化过强正则化是一种防止过拟合的技术,但如果正则化强度过大,可能会抑制模型的能力,导致损失增大。
其他外部因素例如,硬件问题、数据读取错误或其他外部干扰都可能影响训练过程,导致损失函数的异常变化。

梯度消失&梯度爆炸

样本数据点过小,可能导致梯度消失。

样本数据点过大,可能导致梯度爆炸,模型无法从训练数据中获得更新,损失增大(出现显著变化)甚至变为NaN。

本文由作者按照 CC BY 4.0 进行授权