批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》

批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》读后总结

  • 前言
  • 文章主要内容与贡献
    • 提出了批归一化(Batch Normalization, BN)
    • 数值实验

前言

这是一些对于论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》的简单的读后总结,首先先奉上该文章的下载超链接:Batch Normalization, BN

这篇文章是由谷歌公司(Google Inc.)的人员合作完成的,作者分别是Sergey Ioffe和Christian Szegedy,于2015年发表于arXiv。批归一化(Batch Normalization, BN)是一个在深度学习中非常有用的技术,在其被提出后,非常多的神经网络都运用了BN技术来改善自己的性能。BN通过减少内部协变量的变化,能加速神经网络的收敛速度,能降低最终的测试误差,能代替Dropout的作用;通过减少L2损失的权重、加速学习速率的衰减、增加学习率、删除局部响应规范化、随机打乱样本和减少光度畸变的操作,能使得加入BN的网络的性能更好。

文章主要内容与贡献

该文章的贡献为:

  1. 提出了批归一化(Batch Normalization, BN)。

提出了批归一化(Batch Normalization, BN)

简单来说,在网络正向传播时,应用于小批量算法中的 x x x的BN如下所示(BN被应用于激活函数前):
批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》_第1张图片
其中,BN只增加了一个 γ \gamma γ和一个 β \beta β即完成了BN的操作,且它们的计算也并不复杂,这保持了网络的表示能力。

训练带有BN的神经网络的步骤如下所示(上表即Alg.1):
批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》_第2张图片
其中, E [ x ] = 1 N ∑ i = 1 N x i E[x]=\dfrac 1N\sum\limits^N_{i=1}x_i E[x]=N1i=1Nxi

在批归一化卷积网络(Batch-Normalized Convolutional Networks),学习每个特征的 γ ( k ) \gamma^{(k)} γ(k) β ( k ) \beta^{(k)} β(k),而不是学习每个激活的。因此,在推理过程中,BN变换将相同的线性变换应用于给定特征映射中的每个激活。

数值实验

下图是在MNIST数据集上的对比实验:
批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》_第3张图片
其中,图(a)是带和不带批归一化的MNIST网络的测试精度,横轴是训练步数,由该图可知,带BN的网络起点更高终点也更高,且一直领先于不带BN的网络。BN有助于网络训练速度更快,达到更高的精度。
图(b)和图©是输入分布向典型sigmoid的演化,在训练过程中,显示为{15,50,85}百分位数。批归一化使得分布更加稳定,减少了内部协变量转移。

下图是不同网络的对比图:
批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》_第4张图片
其中,Inception是Inception Network的简称;BN-Baseline是简单的BN嵌入Inception中;BN-x5是将BN-Baseline的学习率提高5倍;BN-x30是将BN-Baseline的学习率提高30倍;BN-x5-Sigmoid是将BN-x5中的ReLU替换为Sigmoid。
下表是和上图配套来看的:
批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》_第5张图片
即各网络达到Inception的最大精度所需要的步数。
从上图和上表可知,BN-x30的性能最优,虽然一开始速度不及BN-x5,但是最终的精度更高,就算不加大学习率,BN-Baseline所需的迭代次数也仅为Inception的一半不到。加入了BN后,使得Sigmoid在Inception网络的训练变为了可能,不然使用Sigmoid的Inception网络从来都没有超过0.1%的精度。

下图为BN-Inception与此前的最先进的网络提供的验证集,包括50000张图像。

批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》_第6张图片
其中,BN-Inception集成在测试服务器报告的ImageNet测试集的100000张图像上达到了4.82%的前5错误,这刷新了当时的纪录。

你可能感兴趣的:(深度学习,卷积神经网络,神经网络,deep,learning,Batch,Normalization,BN,批归一化,深度学习,卷积神经网络,神经网络,deep,learning,Batch,Normalization)