深度学习 Batch Normalization 论文笔记

深度学习 Batch Normalization 论文笔记

标题: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
作者: Sergey Ioffe, Christian Szegedy
下载地址: http://proceedings.mlr.press/v37/ioffe15.html

1 简介

  • 在深度学习中,调参一直都是很重要的一环,尤其是学习率和初始值的设置。基于数据在网络中的流通方式,输入的一个小改变可能会影响到后面所有的网络层,层数越深影响越大。简单来说,如果输入的分布发生变化,网络就不得不再去适应新的数据分布,进而影响网络的泛化能力。这个现象称作covariate shift
  • covariate shift这个概念不仅存在于整个网络的输入中,深层网络中每个子网络的输入变化也会出现类似covariate shift的现象。作者将内部网络节点输入的分布发生改变称作Internal Covariate Shift。为了消除这个现象,作者提出了batch normalization算法。batch normalization的主要工作是固定每层输入的均值和方差,它有以下几个强大的优点:
    • 使用了batch normalization,可以让网络的梯度不那么依赖于参数和参数初始值的规模。于是我们在训练时可以使用更高的学习速率,而不用担心无法拟合的问题。
    • batch normalization可以正则化模型,有效防止过拟合,因此可以替代Dropout。
    • batch normalization有效防止了网络出现饱和,因此允许我们使用一些饱和的非线性函数,例如sigmoid。

2 Towards Reducing Internal Covariate Shift

  • 作者对Internal Covariate Shift的定义是:“the change in the distribution of network activations due to the change in network parameters during training”。消除Internal Covariate Shift的基本思路,就是在训练时固定每层输入x的分布。传统的方法是对输入进行白化处理,即通过线性变换使其均值为0,方差为1,并且去相关。对网络每层的输入都进行白化处理,可以在一定程度上消除Internal Covariate Shift的病态影响。
  • 然而,白化本身也存在诸多问题。在训练时,“the gradient descent step may attempt to update the parameters in a way that requires the normalization to be updated”。文章中举了一个例子,就不展开说了。作者大只想表达的意思是,如果进行白化,某些节点中数值的更新则被白化消除了,于是参数一直增长,但网络的输出和损失几乎没有变化。除此之外,白化要计算整个训练样本的协方差矩阵,计算量过大。
    image_1bkll6v0u1l5a1ke2bdj1sem9.png-44.4kB
  • 总结一下batch normalization提出的动机,就是希望找到一种算法不仅能够进行可微分的归一化,还能不用在整个训练集上进行操作。

3 Normalization via Mini-Batch Statistics

  • 基于全局白化的问题,作者提出了两个重要的简化。第一个就是按如下方式对特征(神经元)的每个维度单独做归一化,而非以往的所有输入单元联合白化。第二个就是用每个mini-batches的期望和方差来估计全局的期望和方差:
    image_1bklmm5jc189e28b48ih1p1qpfm.png-4.7kB
  • 其中期望和方差都是指这一个批次的,上标k代表x的第k个维度。这便是以样本分布来估计全局分布。然而这样做还是有一个问题,就是生成的x绝对值太小,在sigmoid函数中仅在线性范围,降低了模型表达能力。为此,作者还用两个可学习的参数 γ(k)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值