正确的权重初始化有利于网络收敛,权重初始化的目的是防止**值饱导致梯度不能传播。两种权重初始化方式:Xavier和hekaiming。本文介绍Xavier,论文名:Understanding the difficulty of training deep feedforward neural 。

1 Xavier概述

Xavier初始化是2010年由Xavier提出来的。这篇文章假设条件比较多,模型结构为简单的5层全连阶层,假设**函数有如下性质:

  1. 当**函数是线性**函数。
  2. 满足f(0)=1f'(0)=1
  3. **函数关于原点对称,这样可以使均值为0.

论文首先使用标准的初始化方法Wi,jW_{i,j}~U[1n,1n]U[-\frac{1}{\sqrt n},\frac{1}{\sqrt n}],使用tanh**函数,观察**值(图1.1)、反向梯度(图1.2)和对权重的梯度图。
Xavier

图1.1 **值图:上图是标准初始化,下图是Xavier初始化

Xavier

图1.2 反向梯度值图:上图是标准初始化,下图是Xavier初始化

2 Xavier推导

2.1 前向传播

保证每层**值的方差相等就可以了。推导过程:
zi=wihi1z^i=w^i*h^{i-1}hi=f(zi)h^i=f(z^i),注意本文的公式与论文中的不同。则根据bp推导:
Xavier
Xavier
根据Var(hli)=Var(hli+1)Var(h^i_l)=Var(h^{i+1}_l)可得:
Xavier

2.2 反向传播

保证反向传播的梯度(损失函数对**函数的输入值的求导)的方差相等就可以了。
Xavier
根据Var(Costzi)=Var(Costzi+1)Var(\frac{\partial{Cost}}{\partial z^i})=Var(\frac{\partial{Cost}}{\partial z^{i+1}}),可得:
Xavier
根据前向传播和反向传播,取一个中间值:

Xavier
可得:
Xavier
Var(W)=1nVar(W)=\frac{1}{n}
除此之外还可以求得(并未参与其他计算):
Xavier

3 缺点

  1. 对**函数限制太多。
  2. 只能用于几层的神经网络(论文中为5层)。

注:参考文章

相关文章:

  • 2021-11-18
  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-15
  • 2021-08-04
  • 2021-11-16
猜你喜欢
  • 2021-10-21
  • 2021-12-16
  • 2021-10-09
  • 2021-05-25
  • 2021-07-12
  • 2021-06-06
  • 2021-04-10
相关资源
相似解决方案