BatchNorm(归一化/标准化)
归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。
标准化
公式一般为:(X-mean)/std,其中mean是平均值,std是标准差。
从公式我们可以看出,标准化操作(standardization)是将数据按其属性(按列)减去平均值,然后再除以标准差。这个过程从几何上理解就是,先将坐标轴零轴平移到均值这条线上,然后再进行一个缩放,涉及到的就是平移和缩放两个动作。这样处理以后的结果就是,对于每个属性(每列)来说,所有数据都聚集在0附近,标准差为1。计算时对每个属性/每列分别进行。
可视化标准化效果
标准化前:
标准化后:
看到变化了吗,虽然各个点的相对位置看上去还是没变,但是坐标轴变了。均值是0,标准差为1。
参考文献:
数据预处理:标准化和归一化
https://zhuanlan.zhihu.com/p/63911364
模型中的批量规范化
为什么需要批量规范化?
标准化输入特征,使其平均值为0,方差为1.
1.它可以统一参数的量级。
2.如在多层感知机中,假如一个层的值是另一个层的100倍,那么就可能需要对学习率进行补偿调整。
公式