数值稳定性
不稳定梯度带来的风险不止在于数值表示; 不稳定梯度也威胁到我们优化算法的稳定性。
我们可能面临一些问题。 要么是梯度爆炸(gradient exploding)问题: 参数更新过大,破坏了模型的稳定收敛;
要么是梯度消失(gradient vanishing)问题: 参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。(无法让神经网络更深)
对sigmoid函数
当sigmoid函数的输入很大或是很小时,它的梯度都会消失。 此外,当反向传播通过许多层时,除非我们在刚刚好的地方, 这些地方sigmoid函数的输入接近于零,否则整个乘积的梯度可能会消失。
神经网络中的对称性
- 假设我们有一个简单的多层感知机,它有一个隐藏层和两个隐藏单元。在这种情况下,我们可以对第一层的权重W(1)进行重排列, 并且同样对输出层的权重进行重排列,可以获得相同的函数。 第一个隐藏单元与第二个隐藏单元没有什么特别的区别。 换句话说,我们在每一层的隐藏单元之间具有排列对称性。
如何让训练更稳定?
- 这确实是很麻烦的问题。
- 目标:让梯度值在合理的范围内
- 将乘法变加法-ResNet,LSTM
- 归一化(梯度归一化,梯度裁剪)
- 合适的权重初值和激活函数
权重初始化
- 在合适区间内随机初始参数
环境和分布偏移
-
考虑数据分布可能发生变化的各种方式,以及为挽救模型性能可能采取的措施。
-
协变量偏移
- 假设:虽然输入的分布可能随时间而改变, 但标签函数没有改变
- 假设:虽然输入的分布可能随时间而改变, 但标签函数没有改变
-
标签偏移
- 标签偏移(label shift)描述了与协变量偏移相反的问题。 这里我们假设标签边缘概率P(y)可以改变, 但是类别条件分布P(X∣y)在不同的领域之间保持不变。
- 当我们认为y导致x时,标签偏移是一个合理的假设。 例如,预测患者的疾病,我们可以根据症状来判断, 即使疾病的相对流行率随着时间的推移而变化。
-
概念偏移
- 就是对同一名词,在不同场景下可能有着不同的意思