深度学习中的Batch normalization

批规范化(Batch normalization)是深度学习中经常见到的一种训练trick,指在采用梯度下降法训练DNN时,对网络层中每个mini-batch的数据进行归一化,使其均值变为0,方差变为1,其主要作用是缓解DNN训练中的梯度消失/爆炸现象,加快模型的训练速度。 
下面是作者原论文中的算法介绍: 
这里写图片描述

关于BN的两点理解: 
1.为什么它能缓解DNN训练中的梯度消失/爆炸现象? 
关于梯度消失的一个简单例子是0.930≈0.040.930≈0.04,而BN通过归范化各层的输入数据使得原本会减小的data value的scale变大,这样反向求出的梯度scale应该也会相应增大。 
2.为什么在normalize后还有一个scale and shift操作? 
就像上面算法注释解释的,仅是简单的对网络层输入作归一化可能会改变原本的输入表示,而加入scale and shift操作,让归一化操作有机会通过对参数γ,βγ,β 的学习将其变回去,不改变输入表示。

关于BN的具体介绍和讨论,可以看知乎上的两个问题 
1.深度学习中 Batch Normalization为什么效果好? 
2.请问batch_normalization做了normalization后为什么要变回来?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值