29、batchnorm

       

  当使用sigmoid时,如果输入的x很大或者很小时,梯度会变化的很慢,使得优化长时间的得不到的更新,导致梯度弥散。当进行归一化之后,将所有的数据划分到相同的范围,无论从哪个方向进行优化,w下降的速度对最后的loss的影响是一样的

1、特征拓展,平移后再放缩。将数据移动到0的周围

     

2、batch Normalization,使用动态的mean和std

     

 对于一个batch[N,C,H,W]表示N张图片C个通道,H行W列的图片。将行和列相乘作为一个维度,假设batch为[6,3,784],在C维度进行均值统计,相当于在每个通道上计算均值mean,即ch0—>mean0,ch1—>mean1,ch2—>mean2,得到一个维度为1的[3]的shape(3个均值),均值和方差根据当前的batch进行计算。

   

 u是均值,σ是方差,z是输出的结果,通过转换使数据接近0-1分布,而加γ和β使数据接近N(β,γ)分布,u和σ是统计出来的而γ和β是学习出来的

    

3、Pipeline

    

 先输入一个batch,统计当前的均值,统计当前方差,normalize,最后进行缩放。

4、BatchNormalization层

center表示β(偏移量),scale表示γ(缩放量),创建和net的前向传播

猜你喜欢

转载自www.cnblogs.com/pengzhonglian/p/12145666.html
29