前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >批标准化(Batch Norm)

批标准化(Batch Norm)

作者头像
郭耀华
发布2018-05-09 15:10:22
1.5K0
发布2018-05-09 15:10:22
举报
文章被收录于专栏:郭耀华‘s Blog郭耀华‘s Blog
BN作用:
  1. 加速收敛
  2. 控制过拟合,可以少用或不用Dropout和正则
  3. 降低网络对初始化权重不敏感
  4. 允许使用较大的学习率
一、如何加速收敛?
  1. 通过归一化输入值/隐藏单元值,以获得类似的范围值,可加速学习。
  2. 限制了在前层的参数更新会影响数值分布的程度,使层的输出更加稳定,神经网络的之后的层就会有更坚实的基础(减弱了后层的参数因前层参数发生变化而受到的影响) 减弱了前层参数的作用与后层参数的作用之间的联系,使得网络每层都可以自己学习,稍稍独立于其他层,有助于加速整个网络的学习。
二、为什么说BN也会起到一定的正则化作用?

对于Dropout来讲,给每个隐藏单元一定概率置零的可能,这样就相当于给网络引入了噪声。迫使Dropout后部单元不过分依赖于前面任何一个隐藏单元。

而BN,因为是在Mini-batch上计算mean、variance,而不是整个数据集上。均值和方差有一些小噪音,在进行缩放过程,γ、β也会引入噪声,这样和dropout类似,它往每个隐藏层的激活值上增加了噪音,所以起到了一定的正则化作用。

当mini-batch变大时,由于均值方差更加接近真实值,所以噪声会减小,就会减少正则化的效果。

三、使用BN为何可以不使用参数b?

\[ Z=WX+b \] 无论b为何值,去均值之后结果都是一样的,所以说,使用Batch Norm时可以不使用偏置b。 这个偏置的效果在标准化中缩放过程中能体现。 \[ \tilde{Z} = \gamma Z+\beta \]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • BN作用:
  • 一、如何加速收敛?
  • 二、为什么说BN也会起到一定的正则化作用?
  • 三、使用BN为何可以不使用参数b?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档