权重矩阵初始化

1. 权重矩阵初始化

权重矩阵初始化是神经网络训练中至关重要的一步,它直接影响模型的收敛速度和性能。不恰当的初始化可能导致梯度消失、梯度爆炸或训练停滞。
以下是常见的几种权重矩阵初始化方法:
  • 零初始化 (Zero Initialization)
    • 将所有权重都设置为零。
    • 问题:这会导致对称性问题(symmetry breaking problem)。所有神经元学习相同的特征,梯度下降法无法区分不同的神经元,导致模型无法有效学习。因此,通常不使用零初始化
  • 随机初始化 (Random Initialization)
    • 将权重矩阵初始化为小的随机值(通常来自均匀分布或高斯分布)。
    • 优点:打破了对称性,使每个神经元可以学习不同的模式。
    • 问题:如果随机值过大,可能导致梯度爆炸;如果随机值过小,可能导致梯度消失,尤其是在深层网络中。
  • Xavier/Glorot 初始化 (Xavier/Glorot Initialization)
    • 旨在保持每一层激活值的方差恒定,从而维持信号在网络中的流动。
    • 适用场景:最适合使用 sigmoidtanh 等关于零对称的激活函数。
    • 方法:权重从均值为 0、方差为2/(fan_in+fan_out)的分布(均匀或高斯)中抽取,其中fan_in是输入连接数,fan_out是输出连接数。
  • He/Kaiming 初始化 (He/Kaiming Initialization)
    • Xavier 初始化的改进版,专门针对 ReLU 及其变体(如 Leaky ReLU)激活函数。
    • 适用场景:使用 ReLU 族激活函数时首选 He 初始化。
    • 方法:权重从均值为 0、方差为2/(fan_in)的分布(通常是高斯分布)中抽取。
  • 预训练模型初始化 (Pre-trained Initialization)
    • 在迁移学习中,使用在大规模数据集上预训练好的模型权重作为新模型的初始值。
    • 优点:能显著加快训练速度,提高模型性能,尤其适用于目标任务数据集较小的情况。 

2. 总结与建议

在现代深度学习实践中:
  • 优先使用 He 初始化,因为 ReLU 是最常用的激活函数之一。
  • 如果使用 tanhsigmoid,则使用 Xavier 初始化。
  • 如果使用批量归一化(Batch Normalization),权重的具体初始化方法变得不那么关键,通常简单的随机初始化(如小的正态分布)即可。

posted @ 2025-11-17 14:44  PKICA  阅读(20)  评论(0)    收藏  举报