BN层的全称是Batch Normalization层,中文可以翻译为批标准化层
。
BN层是2015年提出的一种新的层类型,它通过对每一层神经网络的输入信号进行标准化处理,来解决深层神经网络在训练过程中内部协变量变化导致的问题,从而大幅提升深层网络的训练效率和性能。
计算批次中的每个输入特征的均值和方差
。
使用均值和方差对输入信号进行标准化
,使其均值为0、方差为1。
学习缩放参数γ和偏移参数β
对标准化后的信号进行缩放和偏移。
输出经过缩放和偏移后的标准化信号。
减小内部协变量变化对网络训练的影响
。BN层可以标准化每一层的输入,消除输入数据的协变量变化,有利于网络训练。
加速网络训练
。BN层可以让每个层看到的输入分布近似正态分布,这对网络训练收敛速度有很大帮助。
起到正则化效果
。BN层可以防止内部特征过拟合,起到一定的正则化作用。
提高模型性能
。通过BN层的标准化处理,网络可以使用更高的学习率进行训练,从而更快地找到更优的最小值,提高模型性能。
残差连接的补充
。残差网络本身就可以很好地传播梯度,BN层进一步改善梯度流动
,有利于深层网络的训练。