权值的初始化—-xavier

对网络中的权值进行合理的初始化是为了保证在训练之前使网络的输出值与目标值的差距不是太大,比如输入(2,3)目标值为4,但网络的输出值为500,那么loss就太大了,训练也就很难进行。因此为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等(在一篇博客上看到的,下面有链接)。

因此就采用xavier来对权重进行初始化,本文只讨论如何使用,不讨论其中原理。
caffe中xavier初始化有三种方式:
方差=1/输入维数
方差=1/(输入维数+1)
方差=2/(输入维数+输出维数+1)

解释:
若输入图像为三个通道,下一层的卷积层有64个过滤器,那么使用xavier对这个卷积层使用高斯分布进行初始化,均值为0,根据输入维数为3,输出维数为64计算出方差。由此可见,不同的层的初始化可能是不一样的。

参考:http://blog.csdn.net/shuzfan/article/details/51338178