2015年,Google在论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出了Inception V2模型。
Inception V2学习了VGGNet,用两个3x3的卷积来代替5x5的大卷积(减少了参数,减轻了过拟合。)
另外文中还提出了著名的BN归一化算法。
解读Batch Normalization
BN是一种非常有效的正则化方法,可以让大型卷积网络的训练速度加快很多倍,同时收敛后的分类准确率也得到大幅提升。 BN在用于神经网络某一层时(注: BN层放在**函数之前,使Wx+b具有更加一致和非稀疏的分布。),会对每一个mini-batch的数据内部进行标准化,使输出规范化到N(0,1)正态分布。
BN指出,传统的神经网络在训练时,每一层的输入分布都在发生变化,导致训练困难,我们一般只能使用一个很小的学习率来解决这一问题。BN的使用可以时学习速率增加很多倍,能够减少训练时间。同时BN也具有正则化作用,所以可以取消Dropout层,简化了模型。
只是单纯的使用BN,分类提升效果还不是太明显,论文中使用了几个tricks:
(1)增大学习率,加快学习率衰减速度。
(2)去除Dropout层
(3)去除LRN层(局部归一化层,lrn层放在relu、maxpool层后面,作为单独一层)。