Batch Normalization理解

Batch Normalization理解

Batch Normalization:批归一化

我们在图像预处理过程中通常会对图像进行标准化处理,这样能够加速网络的收敛,如下图所示,对于Conv1来说输入的就是满足某一分布的特征矩阵,但对于Conv2而言输入的feature map就不一定满足某一分布规律了(注意这里所说满足某一分布规律并不是指某一个feature map的数据要满足分布规律,理论上是指整个训练样本集所对应feature map的数据要满足分布规律)。

Batch Normalization理解_第1张图片

使用Batch Normalization以下简称BN)的目的:使一个批次(Batch)feature map满足均值为0,方差为1的分布规律,防止模型过拟合

均值μ和方差σ2 :在正向传播的过程中统计得到

γ 和β:在反向传播中训练得到

使用BN应注意的问题:
(1)batch size 尽可能设置大一点,这样所求的均值和方差更接近整个训练集的均值和方差。
(2)训练时将trainning 参数设置为True,验证时设置为False(当然,要考虑自己的硬件设备折中处理)
(3)将bn层放在卷积层(Conv)和激活层(例如Relu)之间,且卷积层不要使用偏置bias,因为没有用

参考:

Batch Normalization详解以及pytorch实验_pytorch batch normalization-CSDN博客

你可能感兴趣的:(图像处理,人工智能,图像处理)