[论文笔记] [2015] [ICML] Batch Normalization

本文深入解析了深度学习中批量归一化(Batch Normalization)的方法,探讨了其加速网络训练、降低内部协变量转移(Internal Covariate Shift)的影响。论文指出,通过批量归一化,可以使用更高的学习率并减少对初始化和激活函数的敏感性。批量归一化在训练和推断时对每一层输入进行标准化,同时通过学习参数γ和β保持网络的表达能力。实验证明,批量归一化显著提高了模型的训练速度和准确性,甚至在没有Dropout的情况下也能提升泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
论文标题: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
论文链接: https://arxiv.org/pdf/1502.03167.pdf

Introduction


这篇论文的主要工作就是提出了如今深度学习常见的 Batch Normalization,来加速深层网络训练的收敛,以及在 Inception v1 的基础上做了一些训练方式和结构上的改进(Inception v2),其在 ImageNet 分类任务上是超越了当时最好的成绩:4.9% top-5 validation error。

Motivation


这篇论文拟解决的问题是深度学习中很关键的问题,深度神经网络模型的训练为什么困难、收敛慢? 这个问题的解决在之前的工作中,有从尝试新的激活函数角度,如 ReLU、Maxout、PReLU等;有从权值初始化方法角度,如Xavier初始化、Kaiming初始化等,但收益相对都不是很高。

作者也指出了因为这个问题的存在使得在设置 learning rate、初始化方法还有激活函数上得要很慎重,而这个问题的实质是因为在训练过程中,随着前一层参数的改变,哪怕很小的改变,也会因为网络加深而被放大,而这种改变使得每一层输入的分布发生改变,从而每一层需要持续地适应这种改变,这种现象在论文中被称为 Internal covariate shift (ICS)。

从另外一个角度看,把网络的中间层看作是 sub-network 以及采用 sigmoid 激活函数 z = g ( W u + b ) z = g(Wu + b) z=g(Wu+b),其中 u u u 是该层的输入,而 W W W b b b 是学习的参数。随着 ∣ x ∣ |x| x 增大, g ′ ( x ) g'(x) g(x) 趋向于0,这也就意味着会发生我们熟知的梯度消失(本质是落入饱和区),后来 ReLU 和 一些初始化方法是较好的缓解了这个问题。

换一个思路想,造成这个问题比较直观的原因是因为 ∣ x ∣ |x| x 的增大,即输入分布的变化,以及上面提到的 ICS 现象也是因为每一层的输入分布发生改变,那么很自然的想法就是,如果能确保输入的分布稳定,那么就不容易陷入饱和区域,从而梯度消失的问题也就得到很好的缓和,训练收敛的速度也随之提升了,问题就迎刃而解了。

看着好像蛮简单的,但还是有随之而来的问题:

  • 确保输入的分布稳定,即 Normalization ,该怎么做?
  • Normalization 能使得输入不落入饱和区域,反过来就是限制输入落入激活函数的线性区域,那这样网络不就失去了非线性的表达能力了吗,这该怎么弥补?

上面的两个也就是 Batch Normalization 这篇论文工作的核心。

Methods


白化(whitening) 作为一个很重要的数据预处理方法,它能使得模型训练收敛的更快,而白化一般包含两个目的:

  • 去除特征之间的相关性(特征独立);
  • 使得所有特征具有相同的均值和方差(同分布)

白化可以使得模型的输入标准化为均值为0,方差为1,那可以考虑将白化拓展到每一层的输入,就能使得每一层的分布趋于稳定。然而,标准的白化操作代价昂贵,特别是我们还希望白化操作是可微的,保证白化操作可以通过反向传播来更新梯度,即:
∂ N o r m ( x , X ) ∂ x a n d ∂ N o r m ( x , X ) ∂ X \frac{\partial \mathrm{Norm}(x, \mathcal{X})}{\partial x} \quad and \quad \frac{\partial \mathrm{Norm}(x, \mathcal{X})}{\partial \mathcal{X}} xNorm(x,X)andXNorm(x,X)

Training and Inference with Batch-Normalizaed Networks

于是就有了本篇论文的工作,Batch Normalization(BN),即对白化做了简化,将其作用到每一层的输入,使得输入分布稳定。

第一个简化是只对每一个特征维度做 Normalization,并没有考虑特征之间去相关,论文中也提到了,“such normalization speeds up convergence, even when the features are not decorrelated.”,即:
x ^ ( k ) = x ( k ) − E [ x ( k ) ] V a r [ x ( k ) ] \widehat{x}^{(k)} = \frac{x^{(k)}-\mathrm{E}[x^{(k)}]}{\sqrt{\mathrm{Var}[x^{(k)}]}} x (k)=Var[x(k)] x(k)E[

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值