批归一化 BatchNorm

数据的分布不稳定(不平均)会导致模型不收敛(特别是在数据不均匀时还用大的学习率),所以才会在制作数据集或者对数据集进行预处理时,调整数据分布,使数据分布均匀(比如:正负样本是均匀的,别存在数据集中百分之90都是正样本这种情况)。 

标准化也可以应用在中间层中,也就是对feature map做处理,好处见第二个图。

批归一化 BatchNorm

下图为图二: 

批归一化 BatchNorm

 

 

批归一化 BatchNorm

 

批归一化 BatchNorm

上图中个Xi冒后面的式子中加了个 一颗丝绒(一个极小值,哈哈哈没打出来)的原因是,避免分母为零。

 

批归一化 BatchNorm

批归一化 BatchNorm

批归一化 BatchNorm

上图问题的结果是a1和a2不一致,解决预测时使用BatchNorm出现同一样本预测结果不一致问题的方法见下图:

批归一化 BatchNorm

解决方案就是测试时不去管样本内的均值和方差,而是使用训练时保持好的。这样就保证了样本A无论跟谁去组batch,最终对A 的预测结果是一致的。

滚动平均:是上一轮的数和这一轮算出来的数做加权平均,得到新的数。这样一轮一轮滚动就叫滚动平均。