BatchNormalization:解决神经网络中的内部协变量偏移问题
ICML2015
截至目前51172引
论文链接
代码连接(planing)
文章提出的问题
- 减少神经网络隐藏层中的”内部协变量偏移”问题。
- 在机器学习领域存在“协变量偏移”问题,问题的前提是我们划分数据集的时候,训练集和测试集往往假设是独立同分布(i.i.d)的,这种独立同分布更有利于我们在训练数据中挖掘到的先验可以更好的应用在测试集上。
- 在神经网络的隐藏层中,随着前一层的参数的变化,下一层输入时的数据分布也会发生变化,这种变化使得网络训练十分复杂。
- 神经网络在训练过慢是由于,在训练时需要初始化一个比较小的学习率超参数和需要在初始化参数上浪费经历。
- 在激活函数再做非线性映射的时候往往会出现梯度饱和的问题,比如sigmod函数,在两边容易出现梯度的饱和问题。
解决方案
- 在每层的输入之后及激活函数之前使用batchnormalization(批量归一化,BN),将每一层的输出进行批量归一化,使网络在每一层前可以保证输入数据的独立同分布,从而减少网络内部协变量偏移。
算法详述
- 以下是BN将上一层的输入变换的流程。