Batch Normalization(BN)的基础学习
[TOC]
概述
一般来说,如果模型的输入特征不相关且满足标准正态分布N(0,1)的时候模型的表现一般较好。在训练神经网络模型时,我们可以事先将特征去相关并使得它们满足一个比较好的分布,这样,模型的第一层网络一般都会有一个比较好的输入特征,但是随着模型的层数加深,网络的非线性变换使得每一层的结果变得相关了,且不再满足N(0,1)分布。
更糟糕的是,可能这些隐藏层的特征分布已经发生了偏移。
论文的作者认为上面的问题会使得神经网络的训练变得困难,为了解决这个问题,他们提出在层与层之间加入Batch Normalization层。训练时,BN层利用隐藏层输出结果的均值与方差来标准化每一层特征的分布,并且维护所有mini-batch数据的均值与方差,最后利用样本的均值与方差的无偏估计量用于测试时使用。
BN层的作用
贴出论文中的两张图,就可以说明BN层的作用
- 使得模型训练收敛的速度更快
- 模型隐藏输出特征的分布更稳定,更利于模型的学习
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦溪·在路上!
评论
ValineDisqus