Xavier初始化和He初始化

  1. Xavier初始化:
  • 条件:正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。
  • 初始化方法:
    W ∼ U [ − 6 n i + n i + 1 , 6 n i + n i + 1 ] W\sim U[-\frac{\sqrt6}{\sqrt{n_i+n_{i+1}}},\frac{\sqrt6}{\sqrt{n_i+n_{i+1}}}] WU[ni+ni+1 6 ,ni+ni+1 6 ]
  • 假设激活函数关于0对称,且主要针对于全连接神经网络。适用于tanh和softsign
  • 论文地址:Understanding the difficulty of training deep feedforward neural networks
  • 参考资料:
    深度学习之参数初始化(一)——Xavier初始化
  1. He初始化
  • 条件:正向传播时,状态值的方差保持不变;反向传播时,关于激活值的梯度的方差保持不变。
  • 适用于ReLU的初始化方法:
    W ∼ N [ 0 , 2 n i ^ ] W\sim N[0,\sqrt{\frac{2}{\hat{n_i}}}] WN[0,ni^2 ]
  • 适用于Leaky ReLU的初始化方法:
    W ∼ N [ 0 , 2 ( 1 + α 2 ) n i ^ ] W\sim N[0,\sqrt{\frac{2}{(1+\alpha^2)\hat{n_i}}}] WN[0,(1+α2)ni^2 ]
    n i ^ = h i ∗ w i ∗ d i \hat{n_i}=h_i*w_i*d_i ni^=hiwidi
    其中, h i h_i hi w i w_i wi分别表示卷积层中卷积核的高和宽,而 d i d_i di当前层卷积核的个数。
    • 疑问:在论文里,当前层卷积核个数 d i d_{i} di与当前层输出通道个数 o u t i out_{i} outi(下一层输入通道个数 i n i + 1 in_{i+1} ini+1)是一致的,即 d i = o u t i − 1 = i n i + 1 d_{i}=out_{i-1}=in_{i+1} di=outi1=ini+1。但是在tensorflow的实现中, d i = i n i ∗ o u t i d_{i}=in_{i}*out_{i} di=iniouti。在用tensorflow实现He初始化时,应该以哪个为准?(个人倾向前者)
  • 论文地址:Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
  • 参考资料:
    深度学习之参数初始化(二)——Kaiming初始化
    He初始化论文阅读笔记与实现

你可能感兴趣的:(深度学习)