CNN调参笔记

一、卷积层weight和bias初始化(Mnist)

weight的mean为0,标准差待定,bias为常数,待定。

 (1)Bias初始化太大(比如0.5,weight std=0.01),则网络loss初始非常大,即使加了BN层使得Loss减小,亦难以收敛。

         我猜测是Bias太大,其在与Feature Map的博弈中,占了绝对上方,特别是多层网络,原始图的特征逐层递减直至消失。

 (2)Bias和weigh较小(比如Bias=0.0,  weight stddev=0.01),网络可以收敛,但收敛较慢

 (3)Mnist图片反色(即foreground像素值在0这一端,background在255这一端)后收敛速度下降较大(目测2~3倍)。

 (4)Bias=0.1 ,weight stddev=0.1 网络收敛较快。但

看了xavier和he_normal两篇论文,主要是保证feedforward/backpropagation的梯度在传递过程中,每一层分布不变(均值+方差)。

感觉无脑用就好了。(不过测试时,7、8层的网络使用xavier/he_normal效果并不比N(0,0.01))效果更好)


二、Learning Rate

  设置太大无法收敛,比如1e-2。

  ResNet中以0.1为初值训练不知怎么回事。

三、BN层顺序:一个不收敛的例子

当我们采用x->bn->relu->weight的放置顺序,有些情况会导致无法收敛。分析如下:
我们假设图片像素值为0~10,黑色(0)为前景色,白色(10)为背景色。
考虑图片某一行的像素值:(其中像素0位前景色,5,6,7,8,10为背景色)
x->  [10   5   6  0  7  8],mean=6.0,variance=9.667
经过bn层处理 
bn(x) -> [-1.92980254, -0.3216337 ,  0.        ,  0.3216337 ,  0.64326751, 1.28653514]

再经过relu处理
relu(bn(x))->[0,0,0, 0.3216337 ,  0.64326751, 1.28653514]

好了,现在发现前景像素0已经完美和背景像素5,6溶为一体了,此时的图片应该已经变得模糊不清了。

而当图片反色后却不会出现这种情况。

猜你喜欢

转载自blog.csdn.net/vcvycy/article/details/78639929