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

文章目录

    • 引用
  • 一、Batch Normalization
    • 1.1 什么是Batch Normalization?
    • 1.2 Batch Norm的原因
    • 1.3 Batch Norm的优点
    • 1.4 其它标准化方法


引用

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

一、Batch Normalization

1.1 什么是Batch Normalization?

       顾名思义,batch normalization,就是“批规范化”。
神经网络层中的数据标准化(Batch Norm)_第1张图片

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

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

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

  4. 一批批的去标准化图片数据, 依赖批量化的数据。
    神经网络层中的数据标准化(Batch Norm)_第2张图片

1.2 Batch Norm的原因

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

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

1.3 Batch Norm的优点

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

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

  3. 防止梯度弥散/爆炸

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

1.4 其它标准化方法

神经网络层中的数据标准化(Batch Norm)_第3张图片
       每个子图显示一个特征图张量,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. 集万千宠爱于一身,但训练复杂.
    神经网络层中的数据标准化(Batch Norm)_第4张图片

你可能感兴趣的:(深度学习,网络,神经网络,深度学习,人工智能)