BatchNorm学习笔记

BatchNorm的作用

BatchNorm的主要作用是加速训练
BatchNorm还有轻微的正则化效果

BatchNorm原理

对于神经网络中其中某一层给定的隐藏单元Z(1)…Z(m)有以下操作:
在这里插入图片描述
第一步,求Z(1)…Z(m)的平均值。
第二步,求其方差
第三步,是在做归一化
前三步做完得到的数据是均值是0,方差是1,满足正态分布,用此时的数据就可以达到加速训练的效果了,但是这样就学不到他们的特征了,因为本来这些数据的分布就是不同的,所以我们不能把他们归一化到均值是0,方差是1。所以有了第四步。
第四步加了两个参数γ和β,分别叫做缩放参数和平移参数,通过选择不同的γ和β可以让隐藏单元有不同的分布。
通过第四步 得到y(i),这个是我们最后要的。
这里面的γ和β可以从你的模型中学习,可以用梯度下降,Adam等算法进行更新。

为什么BatchNorm可以奏效

  1. BatchNorm实现了归一化,自然可以加速训练
  2. 在神经网络中,随着第一层和第二层参数的更新,那么就一定会影响到第三层的隐藏单元值,影响他们的分布,但是BatchNorm可以保证不管你怎么影响第三层的隐藏单元的分布就是一定的均值和一定的方差(这个均值和方差是由γ和β控制的)。也就是说BatchNorm减少了隐藏单元值分布的不稳定这个问题,是后面的层有更加稳定的基础,削弱了前面参数和后面参数之间的耦合,允许每一层独立学习,所以提升了整个网络的速度。
  3. 为什么会有轻微的正则化效果呢?
    这个原理和dropout有些类似,因为BatchNorm的平均值和方差都是在mini-batch上计算的,而不是在整个数据集上计算的,这样呢这个均值和方差相当于包含噪声,也就是在隐藏单元上加上了噪声,使后面的隐藏单元不要过渡依赖前面的隐藏单元。
    注意:不要将BatchNorm当作正则化方法用,因为效果比较小,它的主要作用还是加速训练。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值