权重初始化决定了神经网络参数在训练开始时的初始值,直接影响模型学习的速度和效率。选择不当的初始权重可能导致梯度消失或爆炸、收敛缓慢或性能欠佳。例如,如果权重初始化为零,则一层中的所有神经元将在前向传播期间产生相同的输出,从而打破对称性并阻止网络学习不同的特征。同样,使用过大的值初始化权重可能会导致激活输出(例如,在 sigmoid 或 tanh 层中)饱和,从而导致反向传播期间接近于零的梯度。这会减慢学习速度,因为权重更新变得微不足道。
初始化方法的选择通过将权重设置为平衡跨层信号传播的值来解决这些问题。一种常见的方法是 Xavier/Glorot 初始化,它根据层输入和输出连接的数量来缩放权重。例如,如果一个层有n个输入和m个输出,则从方差与2/(n + m)成正比的分布中采样权重。这确保了激活在通过网络时既不会消失也不会爆炸。对于基于 ReLU 的网络,通常首选 He 初始化,因为它考虑了 ReLU 倾向于将一半激活归零;它将权重缩放√(2/n),其中n是输入大小。使用这些方法有助于在训练期间保持稳定的梯度,使更深的网络能够可靠地收敛。
初始化的影响在实践中变得尤为明显。例如,使用 He 权重初始化的卷积神经网络 (CNN) 可能在 10 个 epoch 中达到 90% 的准确率,而具有缩放不佳的随机权重的相同模型即使在 50 个 epoch 后也可能停滞在 70%。同样,在循环网络中,不正确的初始化会加剧梯度消失,从而无法学习长期依赖关系。像 TensorFlow 和 PyTorch 这样的现代框架默认采用这些最佳实践,但开发人员仍然需要为他们的架构选择正确的方法——例如,为 ResNet(重度 ReLU)使用 He,或为 LSTM(基于 sigmoid/tanh)使用 Xavier。正确的初始化不是万能药,但它为稳定的训练奠定了基础,降低了早期失败和浪费计算资源的风险。