常见问题:
对于神经网络Loss不下降问题:
1.参数设置问题
2.模型结构
模型结构过于简单(不够深)容易出现拟合缓慢、拟合率低的问题
3.损失函数选择
如果是分类,应该用交叉熵损失函数,如果是做回归,用mse/mae损失函数
4.激活函数选择
sigmoid、relu、tanh
5.优化器选择
Adam、sgg,注意学习率不应太大
梯度爆炸
在深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致 NaN 值。表现形式包括:
- 模型无法从训练数据中获得更新(如低损失)。
- 模型不稳定,导致更新过程中的损失值出现显著变化。
- 训练过程中,模型损失变成 NaN。
1.重新设计网络结构
- 在深度神经网络中,梯度爆炸可以通过重新设计层数更少的网络来解决。
- 使用更小的批尺寸对网络训练也有好处。
- 在循环神经网络中,训练过程中在更少的先前时间步上进行更新(沿时间的截断反向传播,truncated Backpropagation through