艺考网
全国站

什么是BN、LN、IN 和GN?不同归一化方法的比较

xunaa
2024-10-06 16:39:50
编辑说
批量归一化(BN)已成为许多高级深度学习模型的重要组成部分,特别是在计算机视觉领域。它通过批量计算的均值和方差对层输入进行归一化,因此得名。为了使BN 工作,批量大小必须足够

批量归一化(BN)已成为许多高级深度学习模型的重要组成部分,特别是在计算机视觉领域。它通过批量计算的均值和方差对层输入进行归一化,因此得名。为了使BN 工作,批量大小必须足够大,通常至少为32。但是,在某些情况下,我们必须满足: 的小批量

当每个数据样本都是高度内存密集型时,例如视频或高分辨率图像

当我们训练一个非常大的神经网络时,它只留下很少的GPU 内存来处理数据

因此,我们需要一种适合小批量的BN 替代方案。组归一化(GN) 是一种最先进的归一化方法,它避免利用批量维度,因此与批量大小无关。

不同的归一化方法

为了便于GN的制定,我们首先看一下以前的一些标准化方法。

x (x - )/( + )

对于每个系数x 输入特征。 和 的均值和方差是根据集合S 系数计算的,并且是数值稳定且避免被零除的小常数。唯一的区别是如何选择集合S。

为了说明归一化方法的计算,我们考虑一批N=3,输入特征a、b、c,其通道c=4,高度H=1,宽度W=2:

a=[ [[2, 3]], [[5, 7]], [[11, 13]], [[17, 19]] ]b=[ [[0, 1]], [[1, 2]]、[[3, 5]]、[[8, 13]] ]c=[ [[1, 2]]、[[3, 4]]、[[5, 6]]、[[7 , 8]] ]

因此批次的形状为(N, C, H, W)=(3, 4, 1, 2)。我们输入=0.00001。

Batch Normalization

BN 对通道进行归一化并沿轴(N、H、W) 计算 和。批次 系数定义为同一通道的一组批次x。

什么是BN、LN、IN 和GN?不同归一化方法的比较

=2的第一个系数,i=(0,0,0),计算对应的和系数,b和c的第一个通道:

=均值(2, 3, 0, 1, 1, 2)=1.5=var(2, 3, 0, 1, 1, 2)=0.917

代入归一化公式,

a (2 - 1.5)/(0.917 + 0.00001)=0.522

计算a的所有系数

[ [[0.522, 1.567]], [[0.676, 1.690]], [[1.071, 1.630]], [[1.066, 1.492]] ]

Layer Normalization

层归一化(LN)旨在克服BN 的缺点,包括其批量大小限制。 和 沿(C, H, W) 轴计算,S 定义为属于相同输入特征的所有系数x。因此,一个输入特征的计算完全独立于批次中的其他输入特征。

所有系数均由相同的 和 归一化

=平均值(2, 3, 5, 7, 11, 13, 17, 19)=9.625=var(2, 3, 5, 7, 11, 13, 17, 19)=35.734

计算a的所有系数

[[[-1.276, -1.108]], [[-0.773, -0.439]], [[0.230, 0.565]], [[1.234, 1.568]] ]

Instance Normalization

什么是BN、LN、IN 和GN?不同归一化方法的比较

实例归一化(IN) 可以被认为是将BN 公式单独应用于每个输入特征(也称为实例),就好像它是批次中的唯一成员一样。更准确地说,在沿轴(H,W)计算和时,S的系数被定义为一组相同的输入特征,并且x也在同一通道中。

由于IN 的计算与批量大小为1 的BN 的计算相同,因此IN 在大多数情况下实际上会让情况变得更糟。对于风格迁移任务,IN 在丢弃图像对比度信息方面比BN 更好。

第一个系数a=2,i=i(0,0,0),对应的和就是

=均值(2, 3)=2.5=var(2, 3)=0.25

什么时候

a (2 - 2.5)/(0.25 + 0.00001)=-1.000

得到

a [ [[-1.000, 1.000]], [[-1.000, 1.000]], [[-1.000, 1.000]], [[-1.000, 1.000]] ]

Group Normalization

前面我们说过,当batch size为1时IN的计算和BN的计算是一样的,但是BN是分别应用于每个输入特征的。请注意,IN 也可以视为将LN 单独应用于每个通道,就像通道数为1 的LN 一样。

组标准化(GN) 是IN 和LN 之间的中间点。要将通道组织成不同的组,请沿(H, W) 轴和一组通道计算 和。然后,批次 在相同的输入特征和同一组x 通道上与系数分组。

组数G 是一个预定义的超参数,通常需要对c 进行分区。为简单起见,我们按顺序对通道进行分组。因此通道1,C/G 属于第一组,通道C/G+1,2C/G 属于第二组,依此类推。当G=C时,即每组只有1个通道,则GN变为IN。另一方面,当G=1时,GN变为LN。因此G控制IN和LN之间的差异。

在我们的示例中,考虑G=2。归一化的第一个系数a=2,i=(0,0,0),我们使用4/2=2 个通道中的系数

什么是BN、LN、IN 和GN?不同归一化方法的比较

=均值(2, 3, 5, 7)=4.25=var(2, 3, 5, 7)=3.687

代入归一化公式,

a (2 - 4.25)/(3.687 + 0.00001)=-1.172

a的其他系数,计算方法类似:

[ [[-1.172, -0.651]], [[0.391, 1.432]], [[-1.265, -0.633]], [[0.633, 1.265]] ]

归一化方法比较

蓝色区域对应于集合S,其中计算 和,然后用于标准化蓝色区域中的任何系数。

从这个图中我们可以看到GN是如何插入到IN和LN之间的。 GN 比IN 更好,因为GN 可以利用跨渠道依赖性。它也比LN 更好,因为它允许为每组通道学习不同的分布。

当批量较小时,GN 总是优于BN。然而,当批量大小非常大时,GN 的扩展性不如BN,并且可能无法与BN 的性能相匹配。

引用

1. A. Kolesnikov、L. Beyer、X. Zhai、J. Puigcerver、J. Yung、S. Gelly 和N. Houlsby。 Big Transfer (BiT) : 通用视觉表示学习(2019),arXiv 预印本。

1. S. Qiao、H. Wang、C. Liu、W. Shen 和A. Yuille。体重标准化(2019),arXiv 预印本。

1. S.桑图尔卡、D.齐普拉斯、A.伊利亚斯和A.马德里。批量归一化如何帮助优化? (2018),NIPS 2018。

用户评论

あ浅浅の嘚僾

这篇文章太棒了!终于把这些常用的归一化方法都总结得清清楚楚了。

    有19位网友表示赞同!

采姑娘的小蘑菇

我一直在用BN做图像识别,想了解一下其他方法,LN、IN挺有意思的。

    有12位网友表示赞同!

入骨相思

每次看到GN都觉得好强大,是不是比其他方法好用?

    有18位网友表示赞同!

坠入深海i

不同场景下要用不同的归一化法,这篇文章很实用哦!

    有15位网友表示赞同!

闷骚闷出味道了

感觉BN比较常见,其他方法看起来好像不太常用.

    有9位网友表示赞同!

♂你那刺眼的温柔

这篇博客的知识点都很清晰,让我对这些归一化方法有了更深入的理解。

    有18位网友表示赞同!

青袂婉约

LN是Layer Normalization 的意思吗?它有什么特點?

    有5位网友表示赞同!

余温散尽ぺ

IN挺酷炫的啊,可以把特征提取维度考虑进去还挺棒的。

    有9位网友表示赞同!

矜暮

学习这些归一化方法,可以提升模型的性能,太重要了!

    有19位网友表示赞同!

黑夜漫长

看完这篇文章,我感觉理解BN、LN等归一化方法变得更容易了。

    有18位网友表示赞同!

执笔画眉

对比了一下,发现GN好像在一些任务上表现比较好?

    有20位网友表示赞同!

心安i

这篇文章总结得真好,方便以后查阅参考。

    有15位网友表示赞同!

念安я

我现在在做深度学习项目,需要用到这些归一化方法!

    有9位网友表示赞同!

々爱被冰凝固ゝ

IN和GN的原理是什么?有什么区别?

    有14位网友表示赞同!

ok绷遮不住我颓废的伤あ

这篇博客帮助我了解了不同归一化方法的优缺点,非常好!

    有7位网友表示赞同!

容纳我ii

以后训练模型的时候可以尝试一下LN和GN看效果怎么样

    有14位网友表示赞同!

我怕疼别碰我伤口

想问一下,什么时候使用BN比较好呢?有具体场景吗?

    有17位网友表示赞同!

熟悉看不清

这个博客太棒了,强烈推荐给大家学习!

    有9位网友表示赞同!

免责声明
本站所有收录的学校、专业及发布的图片、内容,均收集整理自互联网,仅用于信息展示,不作为择校或选择专业的建议,若有侵权请联系删除!

大家都在看

什么是BN、LN、IN 和GN?不同归一化方法的比较

什么是BN、LN、IN 和GN?不同归一化方法的比较

批量归一化(BN)已成为许多高级深度学习模型的重要组成部分,特别是在计算机视觉领域。它通过批量计算的均值和方差对层输入进行归一化,因此得名。为了使BN 工作,批量大小必须足够
2024-10-06
Easy Office Excel函数讲解(186)数学与三角LN函数

Easy Office Excel函数讲解(186)数学与三角LN函数

(186) 数学与三角函数LN 函数 1、功能功能 返回数字的自然对数。 自然对数以常数e 为底,记为lnN (N0)。在数学中,logx也常用来表示自然对数。 e是无限不循环小数,其值约等于
2024-10-06
新手学习Linux中的ln命令

新手学习Linux中的ln命令

今天我们就来学习ln命令: 一、ln命令介绍 ln 命令用于创建文件的链接。链接分为软链接(类似于Windows系统中的快捷方式)和硬链接(相当于源文件的副本,通过程序或命令访问文件块
2024-10-06
《代号LN》 试玩体验:大型竞技射击网游先行者

《代号LN》 试玩体验:大型竞技射击网游先行者

LN中有丰富的角色定制内容。玩家进入游戏后,选择性别并输入ID创建自己的角色后,可以进一步塑造自己的角色。 LN捏脸系统的内容量并不比我们熟悉的各种大型网络游戏少。从发色
2024-10-06
漏电开关LN代表什么?

漏电开关LN代表什么?

1P+N漏电保护开关端子旁的外壳上有标志。有的只标识其中一个端子为N,另一个不带符号的端子为L;有些终端的两个终端均带有识别信息。一个标记为N,另一个标记为L;我们以上图中的1P
2024-10-06
心、听、声都是“听”,听八方。

心、听、声都是“听”,听八方。

每晚一篇文章普及英语知识 罐头英语 昨天和前天,Can Fungus讲了“talk/say/tell/speak”的词汇分析和用法,以及“see”(see/look/watch)的词汇分析和用法。每个人都喜欢使用这
2024-10-06
学过英语的人可能不知道listen和hear这两个词的区别。

学过英语的人可能不知道listen和hear这两个词的区别。

你还记得英国女歌手阿黛尔的神曲《Hello》吗? 其中之一是 你好,你能听到我说话吗? “你能听到我的声音吗?”意思是你能清楚地听到我的声音吗? 如果把这里的“hear”改成“listen
2024-10-06
Listen与hear、learn与study、light与lamp的区别,learn L的本义与引申义

Listen与hear、learn与study、light与lamp的区别,learn L的本义与引申义

字母K到底代表什么?国王的王冠和字母K有什么关系? 承接上!现在我们从字母的形、声、义来分析Ll字母本义引申义,同时彻底弄清listen和hear,learn和study,light和lamp的区别,明白let
2024-10-06
两者都有“听”的意思,听和听有什么区别?

两者都有“听”的意思,听和听有什么区别?

听我说,谢谢; 聆听音乐、歌曲和风声; 你听到他们的讨论了吗? 听力课、听力题、听力题; 这么多的“听”用英语怎么表达呢? 1. 听 听:/ls()n/ v.听,听;服从;认真听,专心听 名词听,听 不及
2024-10-06
小学英语语法总结(四)

小学英语语法总结(四)

动词do在句子中的作用可以概括为四句十二字:“do”的实际含义,助动词,代替前面的文字,语气强。 功能1:真正意义上的do 当do用作实动词时,它有五种形式:do、does、did、done和doing,
2024-10-06