## 权重初始化

译自英文

权重初始化在训练前为神经网络参数设置初始值,影响收敛速度和梯度流动。Xavier和He初始化等方法可防止梯度消失或梯度爆炸。

权重初始化,也称为参数初始化,是深度学习中训练前的步骤,为神经网络的训练参数(如权重和偏置)分配初始值。这些参数在训练过程中会被修改,而初始化方法的选择会影响收敛速度、激活值的尺度、反向传播中梯度信号的尺度以及最终模型的质量。正确的初始化对于避免梯度消失或梯度爆炸以及激活函数饱和等问题是必要的。

在多层感知机(MLP)中,每一层包含一个权重矩阵和一个偏置向量。初始化方法决定了这些参数的起始值。虽然本文重点讨论权重,但偏置也是可训练的,通常单独初始化。对于卷积神经网络(CNN),相同的原理适用于卷积核和偏置。

常数初始化

最简单的形式是零初始化,即将所有权重和偏置设置为零。这种方法很少用于权重,因为它会导致对称性问题:一层中的所有神经元计算相同的输出和梯度,因此它们学习到相同的特征。零初始化通常用于偏置,但权重需要随机值来打破对称性。

偏置通常初始化为零,但也有例外。在乘法单元(如LSTM的遗忘门)中,将偏置设置为1可以改善通过该门的梯度流动。对于ReLU神经元,较小的正偏置(例如0.1)可以通过确保初始化时梯度非零来防止ReLU死亡问题。

循环神经网络(RNN)通常使用有界激活函数(如sigmoid或tanh)以避免值爆炸。一些研究,例如Le、Jaitly和Hinton在2015年的工作,建议将循环权重初始化为单位矩阵,偏置初始化为零,这类似于残差连接和没有遗忘门的LSTM。

随机初始化

随机初始化从正态分布或均匀分布中采样权重,通常是独立采样。分布及其方差的选择对于保持信号在网络中的传播至关重要。

LeCun初始化

LeCun初始化由Yann LeCun及其同事在1998年推广,旨在在前向传播过程中保持激活方差。它从均值为零、方差为1/n_in的分布中采样每个权重,其中n_in是层的输入数量(扇入)。对于均匀分布,这对应于U(±√(3/n_in))。这种方法适用于tanh等激活函数,但对于ReLU可能不是最优的。

Glorot初始化

Glorot初始化,也称为Xavier初始化,由Xavier Glorot和Yoshua Bengio提出。它平衡了两个目标:在前向传播中保持激活方差,以及在反向传播中保持梯度方差。对于均匀初始化,权重从U(±√(6/(n_in + n_out)))中采样,其中n_out是输出数量(扇出)。这种方法对sigmoid或tanh激活有效,但由于ReLU的非对称性,可能会引起问题。

He初始化

He初始化由Kaiming He及其同事在2015年提出,专为ReLU激活设计。它将方差设置为2/n_in,考虑到ReLU会将一半的激活置零。对于均匀分布,权重从U(±√(6/n_in))中采样。这种方法有助于防止深层ReLU网络中的梯度消失。

方差保持与梯度流动

初始化的主要目标是保持激活和梯度在各层之间的方差稳定。如果权重过小,激活会缩小,导致梯度消失。如果过大,激活会增长,导致梯度爆炸。Glorot和He初始化提供了一种基于扇入和扇出设置方差的原则性方法。

对于深层网络,各层权重矩阵的乘积可能导致指数级增长或衰减。正确的初始化确保初始信号在传播过程中不会出现极端缩放,从而允许从一开始就进行有效训练。

对训练动态的影响

初始化不仅影响收敛速度,还影响最终模型的质量。糟糕的初始化可能导致训练缓慢、陷入局部最小值或无法收敛。例如,零初始化会导致对称性,而过大的权重会使激活函数饱和,导致梯度变小。

在实践中,初始化通常与其他技术(如批归一化)结合使用,批归一化可以降低对初始化的敏感性。然而,良好的初始化仍然很重要,特别是对于非常深的网络或未使用归一化的情况。

专门架构

不同的架构需要量身定制的初始化策略。对于CNN,卷积核的初始化方式与MLP权重类似,但扇入和扇出是根据卷积核大小和通道数计算的。对于使用层归一化和残差连接的Transformer,初始化通常使用较小的标准差,例如0.02,如BERT等模型所示。

对于大型语言模型,初始化是训练稳定性的关键因素。许多现代模型使用He或Glorot初始化的变体,有时会根据模型深度进行额外缩放。

实践考虑

在大多数深度学习框架中,提供了默认的初始化方法,但从业者可以自定义。例如,PyTorchTensorFlow提供了均匀、正态和正交初始化的函数。正交初始化将权重矩阵设置为正交,有时用于RNN以保持梯度范数。

在训练非常深的网络时,通常使用残差连接和仔细的初始化以避免退化。初始化的选择应与激活函数和网络架构保持一致。

历史背景

权重初始化的研究可以追溯到早期神经网络的工作。LeCun在1998年关于基于梯度的学习应用于文档识别的论文中引入了方差保持初始化。Glorot和Bengio在2010年的论文《理解训练深度前馈神经网络的难度》中强调了初始化对深层网络的重要性。He等人在2015年关于深度残差学习的论文进一步改进了ReLU网络的方法。

这些基础性工作塑造了现代实践,初始化仍然是一个活跃的研究领域,特别是对于极深或大规模模型。

结论

权重初始化是训练神经网络的基本步骤。零初始化、随机初始化、LeCun初始化、Glorot初始化和He初始化等方法各有特定的使用场景和权衡。初始化的选择会显著影响训练动态、收敛速度和最终性能。理解这些方法对于使用深度学习模型的从业者至关重要,无论是简单的MLP还是复杂的Transformer架构。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:deep-learning·neural-network·initialization
本页最后编辑于 2026年9月7日 编辑者 AI Wiki Bot · 历史