Xavier 初始化

Xavier 初始化

为什么在 W[l]=np.random.randn(shape)×np.sqrt(1n[l−1])W^{[l]}=np.random.randn(shape)\times np.sqrt(\frac{1}{n^{[l-1]}})W[l]=np.random.randn(shape)×np.sqrt(n[l1]1) 中需要乘以 np.sqrt(1n[l−1])np.sqrt(\frac{1}{n^{[l-1]}})np.sqrt(n[l1]1)


Xavier 初始化通过保持输入和输出之间的方差不变来尽可能避免梯度爆炸/消失。

它假设每个神经元的输入和输出是从一个均值 μ\muμ 为零、方差 σ2\sigma^2σ2 相同的分布中抽样得到的,而这个分布的方差可以通过输入和输出的维度来估计。

对于权重矩阵 W[l]W^{[l]}W[l] 采用高斯分布来初始化:N(0,σ2)\mathcal{N}(0, \sigma^2)N(0,σ2)

W[l]W^{[l]}W[l] 方差很大(取值范围非常广泛→\rightarrow lll 层的输出值 zzz 很大

→\rightarrow 激活函数 aaa 的斜率很大(lll 层的输出 zzz 就是 aaa 的输入)

→\rightarrow lll 层权重的梯度变大(lll 层权重的梯度与激活函数的斜率成正比)

→\rightarrow 可能引发梯度爆炸

  • 主要零均值: 高斯分布的均值为零,这意味着在初始化权重时,期望值为零,不会引入任何偏差。

    μ !=0\mu~!=0μ !=0,就会引入一个初始的偏差(记为 bias_orig)。假设 a=g(z)a=g(z)a=g(z),且只有一个输出层。
    在这里插入图片描述

    y^=Wx+b\hat{y}=Wx+by^=Wx+b

    当引入偏差之后,y^=Wx+b+bias_orig\hat{y} = Wx+b +bias\_origy^=Wx+b+bias_orig

    也就是在基本预测函数的基础上加上了额外的偏差。


    即:本来预测函数与真实有一定的偏差,但是加上了额外的偏差,与真实偏差更大。

    • 偏差:模型预测值与真实值之间的差距
  • 其次对称性: 高斯分布是对称的,这意味着权重的正值和负值出现的概率相等,从而可以避免引入偏斜。

那么某一个神经元输出也就是 z=w1x1+w2x2+⋯+wnxn=Σi=1ninwixi,b=0z =w_1x_1+w_2x_2+\cdots+w_nx_n=\mathop{\Sigma}\limits_{i=1}^{n_{in}}w_ix_i,b=0z=w1x1+w2x2++wnxn=i=1Σninwixi,b=0

假设 xxx 的输入也具有均值 μ=0\mu =0μ=0,方差 γ2\gamma^2γ2

E(z)=Σi=1ninE[wixi]E(z) = \mathop{\Sigma}\limits_{i=1}^{n_{in}}E[w_ix_i]E(z)=i=1ΣninE[wixi]
=Σi=1ninE[wi]E[xi]=\mathop{\Sigma}\limits_{i=1}^{n_{in}}E[w_i]E[x_i]=i=1ΣninE[wi]E[xi]
=0=0=0

D(z)=E(z2)−E(z)2D(z)=E(z^2)-E(z)^2D(z)=E(z2)E(z)2
=Σi=1ninE[wi2xi2]−0=\mathop{\Sigma}\limits_{i=1}^{n_{in}}E[w_i^2x_i^2]-0=i=1ΣninE[wi2xi2]0
=Σi=1ninE[wi2]E[xi2]=\mathop{\Sigma}\limits_{i=1}^{n_{in}}E[w_i^2] E[x_i^2]=i=1ΣninE[wi2]E[xi2]

=ninσ2γ2=n_{in}\sigma^2\gamma^2=ninσ2γ2

E[w2]=D(w)−(E[w])2=D(w)=σ2E[w^2] = D(w)-(E[w])^2=D(w)=\sigma^2E[w2]=D(w)(E[w])2=D(w)=σ2

E[x2]=D(x)−(E[x])2=D(x)=γ2E[x^2] = D(x)-(E[x])^2=D(x)=\gamma^2E[x2]=D(x)(E[x])2=D(x)=γ2

由于需要保证输入与输出的方差一致:D(z)=γ2D(z)=\gamma^2D(z)=γ2

那么 ninσ2=1n_{in}\sigma^2 = 1ninσ2=1


若只考虑正向传播,那么 σ=1nin\sigma = \sqrt{\frac{1}{n_{in}}}σ=nin1

也就是 np.sqrt(1n[l−1])np.sqrt(\frac{1}{n^{[l-1]}})np.sqrt(n[l1]1)

那么权重矩阵 W[l]W^{[l]}W[l] 采用高斯分布来初始化:N(0,σ2)\mathcal{N}(0, \sigma^2)N(0,σ2)

  • 其中 σ=1n[l−1]\sigma = \sqrt{\frac{1}{n^{[l-1]}}}σ=n[l1]1

即:W[l]=np.random.randn(shape)×np.sqrt(1n[l−1])W^{[l]}=np.random.randn(shape)\times np.sqrt(\frac{1}{n^{[l-1]}})W[l]=np.random.randn(shape)×np.sqrt(n[l1]1)

  • np.random.randn(shape)np.random.randn(shape)np.random.randn(shape) 默认服从 N(0,1)\mathcal{N}(0, 1)N(0,1)

若即考虑正向传播,也考虑到反向传播

ninσ2=1,noutσ2=1n_{in}\sigma^2 = 1,n_{out}\sigma^2 = 1ninσ2=1,noutσ2=1

不可能同时满足二者

只需满足:ninσ2+noutσ2=2n_{in}\sigma^2 + n_{out}\sigma^2 = 2ninσ2+noutσ2=2

即:
σ=2nin+nout(1) \sigma = \sqrt{\frac{2}{n_{in}+n_{out}}}\tag{1} σ=nin+nout2(1)
通常:xxx 也采用高斯分布


xxx 的输入采用均匀分布 U(−a,a)U(-a,a)U(a,a)

同高斯分布的对称性

那么:σ2=(a−(−a))212=a23\sigma^2 = \frac{(a-(-a))^2}{12}=\frac{a^2}{3}σ2=12(a(a))2=3a2

带入公式 (1)(1)(1) 得出初始化值域:
U(−6nin+nout,6nin+nout) U(-\sqrt{\frac{6}{n_{in}+n_{out}}},\sqrt{\frac{6}{n_{in}+n_{out}}}) U(nin+nout6,nin+nout6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值