批量归一化 (Batch Normalization)
在机器学习中,会提到这样一种数据处理的操作。首先将数据进行处理时,我们想把数据云变成零中心的,所以我们对每一个数据减去它们的均值,要想让它们在一个小区域内,那就再除以它们的方差。这样一来,网络处理数据就服从均值为0,方差为1的分布,也就是标准高斯分布。值得一提的是,图像处理中第二步基本不需要,因为数据规模是确定的,大概就是0-255,别无它选。总结如下:(图源知乎)
学过高中数学的筒子都知道第一个是均值,第二个是方差。然而第三个均一化公式中为了防止出现被0除而报错或者INF,在分母位置设置一个很小的数字ε。那么第四个公式就相当于第三个公式的一个逆运算,从而回复为恒等函数。再给一张辅助思考这个过程的图解吧!
那么为什么要这么做呢?我们还是用一个二维的图像来辅助理解这件事情!
如下图所示,左边是原图,右边是零中心化和归一化后的图像,我们现在想要进行线性分类。对于这两张图,我们不难画出给它们分类的这条直线,但是考虑它们的学习过程,左边这张图对于一些微小的扰动是非常敏感的。什么意思呢?也就是说左边这张图转1°和右边相比,这个分类更容易被破坏。这就是归一化的一个好处。
更于 2019.8.4 待结更