当前位置: 首页 > news >正文

Xavier公式的原理

数学原理:

(1) 前向传播的方差一致性

假设输入 x 的均值为 0,方差为 σx2σ_x^2σx2,权重 W的均值为 0,方差为 σW2σ_W^2σW2,则输出 z=Wxz=Wxz=Wx的方差为:
Var(z)=nin⋅Var(W)⋅Var(x) Var(z)=n_{in}⋅Var(W)⋅Var(x) Var(z)=ninVar(W)Var(x)
为了使 Var(z)=Var(x),需要:
nin⋅Var(W)=1  ⟹  Var(W)=1nin n_{in}⋅Var(W)=1  ⟹  Var(W)=\frac{1}{n_{in}} ninVar(W)=1    Var(W)=nin1
其中 ninn_{in}nin是输入维度(fan_in)。这里乘以 nin 的原因是,输出 z 是由 nin 个输入 x 的线性组合得到的,每个输入 x 都与一个权重 W 相乘。因此,输出 z 的方差是 nin 个独立的 Wx 项的方差之和。

(2) 反向传播的梯度方差一致性

在反向传播过程中,梯度 ∂L∂x\frac{∂L}{∂x}xL 是通过链式法则计算得到的,其中 L 是损失函数,x 是输入,z 是输出。梯度∂L∂x\frac{∂L}{∂x}xL可以表示为:
∂L∂x=∂L∂z.∂z∂x \frac{∂L}{∂x}=\frac{∂L}{∂z}.\frac{∂z}{∂x} xL=zL.xz
假设 z=Wx,其中 W 是权重矩阵,那么 ∂z∂x=W\frac{∂z}{∂x}=Wxz=W。因此,梯度 ∂L∂x\frac{∂L}{∂x}xL可以写为: ∂L∂x=∂L∂zW\frac{∂L}{∂x}=\frac{∂L}{∂z}WxL=zLW

反向传播时梯度 ∂L∂x\frac{∂L}{∂x}xL 的方差应与 ∂L∂z\frac{∂L}{∂z}zL 相同,因此:
nout⋅Var(W)=1  ⟹  Var(W)=1nout n_{out}⋅Var(W)=1  ⟹  Var(W)=\frac{1}{n_{out}} noutVar(W)=1    Var(W)=nout1
其中 noutn_{out}nout是输出维度(fan_out)。为了保持梯度的方差一致性,我们需要确保每个输入维度 nin 的梯度方差与输出维度 nout 的梯度方差相同。因此,我们需要将 W 的方差乘以 nout,以确保梯度的方差在反向传播过程中保持一致。

(3) 综合考虑

为了同时平衡前向传播和反向传播,Xavier 采用:
Var(W)=2nin+nout Var(W)=\frac{2}{n_{in}+n_{out}} Var(W)=nin+nout2
权重从以下分布中采样:

均匀分布
W∼U(−6nin+nout,6nin+nout) W\sim\mathrm{U}\left(-\frac{\sqrt{6}}{\sqrt{n_\mathrm{in}+n_\mathrm{out}}},\frac{\sqrt{6}}{\sqrt{n_\mathrm{in}+n_\mathrm{out}}}\right) WU(nin+nout6,nin+nout6)

在Xavier初始化中,我们选择 a=−6nin+nouta=−\sqrt{\frac{6}{n_{in}+n_{out}}}a=nin+nout6b=6nin+noutb=\sqrt{\frac{6}{n_{in}+n_{out}}}b=nin+nout6,这样方差为:
Var(W)=(b−a)212=(26nin+nout)212=4⋅6nin+nout12=2nin+nout Var(W)=\frac{(b−a)^2}{12}=\frac{(2\sqrt{\frac{6}{n_{in}+n_{out}}})^2}{12}=\frac{4⋅\frac{6}{nin+nout}}{12}=\frac{2}{n_{in}+n_{out}} Var(W)=12(ba)2=12(2nin+nout6)2=124nin+nout6=nin+nout2
正态分布
W∼N(0,2nin+nout) W\sim\mathrm{N}\left(0,\frac{2}{n_\mathrm{in}+n_\mathrm{out}}\right) WN(0,nin+nout2)

N(0,std2) \mathcal{N}(0, \text{std}^2) N(0,std2)

其中 ninn_{\text{in}}nin 是当前层的输入神经元数量,noutn_{\text{out}}nout是输出神经元数量。

在前向传播中,输出的方差受 ninn_{in}nin 影响。在反向传播中,梯度的方差受 noutn_{out}nout 影响。

http://www.dtcms.com/a/275168.html

相关文章:

  • 备案是联系主机商还是域名商
  • ESP32语音唤醒
  • 【B题解题思路】2025APMCM亚太杯中文赛B题解题思路+可运行代码参考(无偿分享)
  • 【内赠门票】GoGoGo!NetMarvel邀您出发ChinaJoy啦!
  • UniHttp中HttpApiProcessor生命周期钩子介绍以及公共参数填充-以百度天气接口为例
  • cocos游戏开发中,如何制作一个空气墙
  • WHIP 协商分析研究
  • 背包初步(0-1背包、完全背包)
  • PID 算法的原理与应用 (通俗易懂)
  • CSS 中px、em、rem、%、vw、vh、vm、rpx、fr 介绍和区别对比
  • 【高等数学】第三章 微分中值定理与导数的应用——第三节 泰勒公式
  • Lecture #18:TimeStamp Ordering Concurrency Control
  • “28项评测23项SOTA——GLM-4.1V-9B-Thinking本地部署教程:10B级视觉语言模型的性能天花板!
  • NetworkManager配置网桥(bridge)虚拟网络(vlan) 笔记250711
  • Visual Studio Code 的 settings.json 配置指南
  • 运筹说 第140期 | 从直觉到算法:这些奠基人如何塑造了启发式方法的科学根基?
  • I2C集成电路总线
  • 【机器学习应用】基于集成学习的电力负荷预测系统实战案例
  • Graph Adversarial Self-Supervised Learning 图对抗自监督学习
  • MySQL的使用
  • DPDK性能优化实践:系统级性能调优的方法论与实战(一套通用的方法论)
  • 国产LVDT信号调理芯片XJD698:高精度位移检测的国产化突破,完美替代AD698
  • 基于相似性引导的多视角功能性脑网络融合|文献速递-最新论文分享
  • 我花10个小时,写出了小白也能看懂的数仓搭建方案
  • 有限状态机FSM(Finite State Machine)自动初始化
  • C++:vector(1)
  • 2025Nginx最新版讲解/面试
  • “功能替代”到“智能共创”——深入解读新松多可仿生人形机器人
  • map暨例题
  • 卢比危机下的金融破局:科伦坡交易所技术升级作战图