参数初始化分类
·
参数初始化方法分类
参数初始化在深度学习中至关重要,直接影响模型训练的收敛速度和最终性能。常见的初始化方法可分为以下几类:
随机初始化
- 均匀分布初始化:参数从均匀分布 $U(-a, a)$ 中随机采样,其中 $a$ 通常设为较小值(如 0.01)。
- 正态分布初始化:参数从正态分布 $N(0, \sigma^2)$ 采样,$\sigma$ 控制初始权重范围。
基于方差缩放的初始化
- Xavier/Glorot 初始化:适用于 Sigmoid/Tanh 激活函数,方差缩放因子为 $\frac{1}{n_{in} + n_{out}}$,其中 $n_{in}$ 和 $n_{out}$ 是层的输入输出维度。
- He 初始化:针对 ReLU 及其变体设计,方差缩放因子为 $\frac{2}{n_{in}}$,能缓解 ReLU 的神经元死亡问题。
正交初始化
通过生成正交矩阵初始化权重,保持前向传播中的范数稳定性,适用于RNN或需要保持长程依赖的场景。
预训练初始化
利用预训练模型(如 ImageNet)的权重作为初始值,适用于迁移学习场景。
特殊场景初始化
- 零初始化:偏置项常初始化为零,但权重零初始化会导致对称性问题。
- 常数初始化:权重设为固定常数(如全1),通常仅用于测试或特定研究。
选择建议
- 默认推荐使用 He 初始化(ReLU 族)或 Xavier 初始化(Sigmoid/Tanh)。
- 对于深层网络,可尝试结合正交初始化防止梯度爆炸/消失。
- 迁移学习优先加载预训练参数,微调部分可用较小标准差初始化。
代码示例(PyTorch):
# He 初始化
torch.nn.init.kaiming_normal_(weight, mode='fan_in', nonlinearity='relu')
# Xavier 初始化
torch.nn.init.xavier_uniform_(weight, gain=1.0)
更多推荐



所有评论(0)