keras搬砖系列-BN层

keras搬砖系列-BN层

BN层的作用:

1,加速收敛;2,控制过拟合,可以少用Dropout或者不用Dropout;3,降低网络对初始化权重的不敏感;4,允许使用比较大的学习率。

BN层?

批规范化,每次SGD的时候,采用mini-batch的时候对相应的activation做一次规范化,使得结果的均值为0,方差为1,最后的scale and shift 操作则是为了因训练所需刻意加入的BN能够有可能还原最初的输入当的时候,保证了整个网络上的能力。
keras搬砖系列-BN层_第1张图片
输入:输入数据x1....xm
计算:1,求数据的均值;2,求数据的方差;3,数据进行标准化;4,训练参数伽马,β;5,输出y通过γ,β的线性变换得到新的值。
正向传播:通过可学习的γ,β参数求出新的分布值。

keras搬砖系列-BN层_第2张图片
解决梯度消失与梯度爆炸的问题
1,网络中训练以batch_size为最小单位不断迭代,新的batch_size进入网络,就会产生新的γ与β,在BN层中,有总图片/batch_size组γ与β被保存。
2,图像卷积的过程中,通常使用多个卷积核,得到多张特征图,对于多个卷积核需要保存多个γ与β。


你可能感兴趣的:(keras搬砖系列-BN层)