batch/layer/instance/group normalization正则化方法归纳

假如现有6张图片x1,x2,x3,x4,x5,x6,每张图片在CNN的某一卷积层有6个通道,也就是6个feature map

上图中,从C方向看过去是指一个个通道,从N看过去是一张张图片。每6个竖着排列的小正方体组成的长方体代表一张图片的一个feature map。蓝色的方块是一起进行Normalization的部分。

Batch Normalization

BN作用于一个batch

适用范围:

BN适用于判别模型中,比如图片分类模型。因为BN注重对每个batch进行归一化,从而保证数据分布的一致性,而判别模型的结果正是取决于数据整体分布。但是BN对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布;

计算:

  1. 沿着通道计算每个batch的均值u

  1. 沿着通道计算每个batch的方差σ^2

  1. 对x做归一化,x’=(x-u)/开根号(σ^2+ε)

  1. 加入缩放和平移变量γ和β ,归一化后的值,y=γx’+β

Layer Normalization

LN是指对同一张图片的同一层的所有通道进行Normalization操作。

Instance Normalization

IN是作用于单张图片。对一个批次中单个图片进行归一化,而不是像batch normaliztion一样对整个批次的所有图片进行归一化,提取出平均值等。

适用范围:

IN适用于生成模型中,比如图片风格迁移。因为图片生成的结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,在风格迁移中使用Instance Normalization不仅可以加速模型收敛,并且可以保持每个图像实例之间的独立。

计算:

  1. 沿着通道计算每张图的均值u

  1. 沿着通道计算每张图的方差σ^2

  1. 对x做归一化,x’=(x-u)/开根号(σ^2+ε)

  1. 加入缩放和平移变量γ和β ,归一化后的值,y=γx’+β

论文:https://arxiv.org/abs/1607.08022

Github:https//github.com/DmitryUlyanov/texture_nets

Group Normalization

GN是指对同一张图片的同一层的某几个(不是全部)通道一起进行Normalization操作。这几个通道称为一个Group。

参考:

  1. https://www.zhihu.com/question/68730628/answer/607608890

  1. https://blog.csdn.net/qq_39124762/article/details/82082705?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167936435816800182718803%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167936435816800182718803&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-2-82082705-null-null.142^v74^wechat,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=instance%20normalization&spm=1018.2226.3001.4187

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Batch Normalization(批归一化)、Layer Normalization(层归一化)、Instance Normalization(实例归一化)、Group Normalization(组归一化)是常用的归一化技术,用于在神经网络中提升训练效果和稳定性。它们的区别如下: 1. Batch Normalization(批归一化): - 对每个批次的样本进行归一化,即在每个批次上计算均值和方差。 - 在训练过程中,使用当前批次的均值和方差来进行归一化;在测试过程中,使用整个训练集的均值和方差来进行归一化。 - 常用于卷积神经网络中,对每个通道进行归一化。 2. Layer Normalization(层归一化): - 对每个样本的特征维度进行归一化,即在每个样本上计算均值和方差。 - 在训练和测试过程中都使用当前样本的均值和方差来进行归一化。 - 主要应用于循环神经网络(RNN)等不同长度序列数据中。 3. Instance Normalization(实例归一化): - 对每个样本的每个通道进行归一化,即在每个样本的每个通道上计算均值和方差。 - 在训练和测试过程中都使用当前样本的均值和方差来进行归一化。 - 主要应用于图像风格迁移等任务。 4. Group Normalization(组归一化): - 将通道分成多个组,然后在每个组内对每个样本进行归一化,即在每个样本的每个组上计算均值和方差。 - 在训练和测试过程中都使用当前样本的均值和方差来进行归一化。 - 主要用于通道数较少的情况,例如小型网络或者输入数据通道较少的情况。 总结起来,这些归一化方法的区别在于对数据的归一化范围和维度的不同处理方式,适用于不同类型的神经网络和数据。具体选择哪种归一化方法取决于具体的应用场景和网络结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值