神经网络层中的数据标准化(Batch Norm)


引用

知乎:https://zhuanlan.zhihu.com/p/87117010

一、Batch Normalization

1.1 什么是Batch Normalization?

       顾名思义,batch normalization,就是“批规范化”。
在这里插入图片描述

  1. BN的计算就是把每个通道的NHW单独拿出来归一化处理.

  2. 针对每个channel我们都有一组y,β,所以可学习的参数为2*C.

  3. 当batch size越小,BN的表现效果也越不好,因为计算过程中所得到的均值和方差不能代表全局.

  4. 一批批的去标准化图片数据, 依赖批量化的数据。
    在这里插入图片描述

1.2 Batch Norm的原因

       神经网络学习过程的本质就是为了学习数据分布,如果我们没有做归一化处理,那么每一批次训练数据的分布不一样, 从大的方向上看,神经网络则需要在这多个分布中找到平衡点,从小的方向上看,由于每层网络输入数据分布在不断变化,这也会导致每层网络在找平衡点,显然,神经网络就很难收敛了。

       如果我们只是对输入的数据进行归一化处理(比如将输入的图像除以255,将其归到0到1之间),只能保证输入层数据分布是一样的,并不能保证每层网络输入数据分布是一样的,所以也需要在神经网络的中间层加入归一化处理。

1.3 Batch Norm的优点

  1. 可以使学习快速进行(可以增大学习率)

  2. 减弱对初始化权重的强依赖性

  3. 防止梯度弥散/爆炸

  4. 保持隐藏层中数值的均值、方差不变,让数值更稳定,为后面网络提供坚实的基础。

1.4 其它标准化方法

在这里插入图片描述
       每个子图显示一个特征图张量,N为批处理轴,C为通道轴,(H;W)作 为空间轴。蓝色的像素由相同的均值和方差归一化,通过聚合这些像素的值来计算。

(1)Layer Norm

  1. LN的计算就是把每个CHW单独拿出来归一化处理,不受batchsize的影响。

  2. 常用在RNN网络,但如果输入的特征区别很大,那么就不建议使用它做归一化处理。

  3. 一张张图片去标准化图片数据.

(2)Instance Norm

  1. LN的计算就是把每个CHW单独拿出来归一化处理,不受batchsize的影响。

  2. 常用在RNN网络,但如果输入的特征区别很大,那么就不建议使用它做归一化处理。

  3. 一张张图片去标准化图片数据

.(3)Group Norm

  1. GN的计算就是先把通道C分成G组,然后把每个gHW单独拿出来归一化处理,最后把G组归一化之后的数据合并成CHW

  2. GN介于LN和IN之间,当然可以说LN和IN就是GN的特例,比如G的大小为1或者为C.

  3. 将通道分成组去标准化数据。

(4)Switchable Normalization

  1. 将BN、LN、IN结合,赋予权重,让网络自己去学习归一化
    层应该使用什么方法
  2. 集万千宠爱于一身,但训练复杂.
    在这里插入图片描述
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值