1.数值稳定性: 在机器学习和深度学习中,维持激活函数输入的方差在一个合理范围内(如1)是很重要的,这有助于防止在训练过程中发生梯度消失或梯度爆炸的问题。如果方差过大或过小,经过多层网络后输出结果的方差可能变得极大或极小,这会影响梯度的有效传递,从而影响模型学习。
2.梯度的有效传播: 保持输入方差约为1有助于保持整个网络中的信息和梯度流的稳定性。这是因为当数据经过多个处理层时,未缩放的变量可能会导致变化幅度过大或过小,从而导致训练过程不稳定。【也就是数值不稳定,经过多层网络后方差可能变为极大或者极小,影响模型学习】
3.举个例子(分为方差为1,方差过大,方差过小三种情况)
1、方差为1
输入层:输入数据的方差为1,这意味着数据在0周围分布得比较均匀,没有极端的大值或小值。
第一层:这层的权重初始化为使得输出方差保持为1。因此,当输入数据通过激活函数(如ReLU或Sigmoid)传递时,输出数据的方差仍为1。
第二层和更多层:由于输入方差保持不变,每层都可以在不调整学习率的情况下有效地学习,梯度也不会消失或爆炸。
LSTM的学习(包括sigmoid梯度消失原因解析)
2、方差过大
输入层:假设输入数据的方差非常大。
第一层:输入数据的方差大导致了神经元输出的方差也很大。这可能会导致激活函数(尤其是像Sigmoid或Tanh这样的函数)饱和,导致梯度几乎为零(梯度消失),接下来可能参数并未更新到理想状态(陷入局部极小值情况),但是梯度消失更新不动了。
第二层和更多层:因为梯度消失,网络在这些层的学习效率极低,难以对数据特征做出正确的反应和调整。
3、方差过小
输入层:输入数据的方差非常小。
第一层:小的方差意味着输出的变化幅度很小,这可能导致输出对输入的变化不敏感,同样可能导致梯度非常小。
第二层和更多层:小的梯度导致网络学习非常缓慢,甚至几乎不更新权重,难以达到良好的训练效果。