权重初始化

1. 权重初始化的核心作用

简单来说,权重初始化的主要作用是打破神经元之间的对称性 ,并控制信号(前向的激活值和后向的梯度)的传播尺度,从而让网络能够高效、稳定地训练。

一个好的初始化方法能让网络在训练初期就处于一个"信号流动顺畅"的状态。

2. 权重初始化的原理

原理建立在对前向传播反向传播 的方差分析之上。核心思想是:让每一层输出的方差尽可能等于其输入的方差 ,同时让每一层梯度的方差也尽可能保持不变

以经典的 Xavier 初始化为例,其推导逻辑是:

  • 假设 :我们使用线性激活函数(或近似线性的激活区间,如tanh),且权重和输入独立同分布,均值为0。

  • 目标Var(y) = Var(x),其中x是输入,y是该层的输出(激活前的值)。

  • 推导 :对于一个线性层 y = Wx + b,如果 Wx 独立且均值为0,则有 Var(y) = n_in * Var(W) * Var(x)n_in 是输入神经元个数。

  • 结论 :为了让 Var(y) = Var(x),需要 Var(W) = 1 / n_in

同样,从反向传播角度考虑(让梯度方差不变),会得到 Var(W) = 1 / n_out。为了同时满足前向和后向,Xavier 初始化通常取两者的调和平均:Var(W) = 2 / (n_in + n_out)

原理的本质 :通过精心设计权重的初始分布(如均匀分布或正态分布)的方差,使其与网络层的尺寸(输入输出神经元个数) 以及激活函数相匹配,从而在训练开始时维持一个稳定的信号尺度。

3. 常见的权重初始化方法

(1) 零初始化
  • 做法:所有权重设为0。

  • 问题 :所有神经元计算相同,梯度相同,更新后仍相同。网络完全无法学习。仅用于偏置(bias)的初始化

(2) 随机初始化
  • 做法 :从小随机数(如正态分布 N(0, 0.01))初始化。

  • 问题 :方差固定,不随层尺寸变化。对于深层网络,极易导致梯度消失或爆炸。现在已不推荐用于深层网络

(3) Xavier / Glorot 初始化
  • 适用激活函数tanhlogisticsoftmaxlinear(即S型函数和无激活函数)。

  • 原理:保持输入和输出的方差一致。

  • 实现方式

    • 正态分布:W ~ N(0, 2 / (n_in + n_out))

    • 均匀分布:W ~ U[-√(6/(n_in+n_out)), √(6/(n_in+n_out))]

(4) He / Kaiming 初始化
  • 适用激活函数ReLU 及其变体(如 Leaky ReLUPReLU)。

  • 原理:考虑到 ReLU 会使大约一半的神经元输出为0(方差减半),所以需要将方差扩大一倍来补偿。

  • 实现方式

    • 正态分布:W ~ N(0, 2 / n_in)

    • 均匀分布:W ~ U[-√(6/n_in), √(6/n_in)]

  • 说明n_in 是输入神经元个数。对于 ReLU,这是最常用且效果很好的选择。

(5) 正交初始化
  • 做法:生成一个随机矩阵,然后将其正交化,作为权重矩阵。

  • 原理:正交矩阵的范数为1,能很好地保持向量的长度(从而防止梯度消失/爆炸)。特别适用于循环神经网络(RNN)和某些深度卷积网络。

  • 优点:比随机初始化更稳定,能让信号在更多层中良好传播。

相关推荐
Risk Actuary5 小时前
快速傅里叶变换与聚合风险精算模型
人工智能·深度学习·机器学习
没有梦想的咸鱼185-1037-16635 小时前
AI-Python机器学习、深度学习核心技术与前沿应用及OpenClaw、Hermes自动化编程
人工智能·python·深度学习·机器学习·chatgpt·数据挖掘·数据分析
m0_634666736 小时前
OpenDeepThink:让大模型不再只沿着一条思路硬想
人工智能·深度学习·机器学习
Wilber的技术分享7 小时前
【大模型面试八股 3】大模型微调技术:LoRA、QLoRA等
人工智能·深度学习·面试·lora·peft·qlora·大模型微调
AI技术控9 小时前
论文解读:AE-TCN-SA——基于自编码器、TCN 与自注意力机制的锂电池内短路诊断方法
人工智能·python·深度学习·算法·机器学习·自然语言处理
数智工坊11 小时前
具身智能人形机器人:从实验室走向现实的下一代通用智能体
人工智能·深度学习·机器人
keineahnung234511 小时前
PyTorch symbolic_shapes 模組的 is_contiguous 從哪來?── sizes_strides_user 安裝與實作解析
人工智能·pytorch·python·深度学习
大模型推理11 小时前
Nano-vLLM 源码解读 - 7. Continuous Batching
深度学习·自然语言处理·vllm
多年小白11 小时前
芯片/半导体/CPO光模块 深度分析报告
人工智能·深度学习·microsoft·ai
初心未改HD11 小时前
深度学习之损失函数详解
人工智能·深度学习