链接
http://blog.csdn.net/shuzfan/article/details/51338178
为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。
认为网络学习的是训练数据的空间分布,即训练收敛时,整个输出空间应该是输入空间分布的某种稳定投影。从层的角度来看,假如2层网络:A->B,B希望获得稳定输出,但由于每次学习更新导致A也在变化,所以B想稳定就比较难。怎么办,保证A和B的分布一样,这样学习就简单一点,即可以理解成信息流通更流畅
考虑线性激活函数的情况下, 在初始化的时候使各层神经元的方差保持不变, 即使各层有着相同的分布. 如果每层都用N(0, 0.01)随机初始化的话, 各层的数据分布不一致, 随着层度的增加, 神经元将集中在很大的值或很小的值, 不利于传递信息. 很多初始化策略都是为了保持每层的分布不变, 而BN是通过增加归一化层使得每层数据分布保持在N(0, 1)