Inception v2_batch normalization 论文笔记

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift——2015

摘要:由于在训练过程中前层参数的改变,导致每一层的输入的分布发生变化,所以训练深层神经网络是复杂的。这也导致需要小的学习率和小心的参数初始化工作,因此减轻了训练速度,也因为陷入饱和非线性加剧了模型训练的困难。我们把这种现象称为内部协变量变化,并且通过每一层输入标准化来解决此问题。我们的方法通过将标准化作为模型结构的一部分,并且对每一个训练mini-batch实施标准化。批标准化允许我们使用更大的学习率、对参数初始化可以不那么小心翼翼。它也有正则化的效果,在有些场合下可减少dropout的需要。将批标准化应用于当前最好的图像分类模型,在降低14倍训练步数仍取得了相同的准确率,并且比原模型有更大的边际(significiant margin)。使用批标准化的集成网络,我们提高了当前ImageNet分类最好成绩:达到验证集4.9% top-5正确率,测试集4.8% top-5正确率,超过了人类的水平。
 

1.使用mini-batch 比每次只训练一个样本的两个优点:

  • 在mini-batch上loss的梯度是在整个训练集上loss梯度的一个估计,随着 batch size增大,这种估计质量会提升;
  • 在一个batch上的计算比m次单个样本的计算要高效,得益于当代计算平台的并行计算能力。  

2.covariate shift

每一层输入的分布发生变化会导致问题,因为后面的层要相应的调节以适应新的分布。这种现象被称为covariate shift(2010)。原始的covariate shift指整个系统的输入发生变化,本文将covariate shift概念进行了推广,从整体推广到部分(parts),如sub-network or a layer,称为internal covariate shift;

3. 对输入分布不变的理解:

指从第一层到最后一层每一层上的每一个像素值分布随时间变化都是不变的,均值与方差只是在batch这个维度上计算,即每一层卷积层一个有均值和方差的个数为:batch size \times height \times width \times channels

4. batch normalization

输入x=(x_{1},...x^{_{d}}),是个d维向量,共包含batch size=m个样本。均值和方差指的是m个样本在每一个维度上的均值和方差。算法如下:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值