归一化方法总结 | 又名”BN和它的后浪们”

前语:

归一化相关技能现已通过了几年的打开,现在针对不同的运用场合有相应的办法,在本文将这些办法做了一个总结,介绍了它们的思路,办法,运用场景。首变量与函数教案要涉及到:LRN,BN,LN, IN, GN, FRN, WN, BRN, CBN, CmBN等。

本文又叫“BN和它算法工程师和程序员差异的后浪们”,是因为几乎在BN后出现的悉数归一化办法都是针对BN的三个缺点改善而来,在本文也介绍了BN的三个缺点。信任读者会读完此文会对归一化梯度下降法原理和过程办法有个较为全面的知道和变量的界说了解。算法的时刻复杂度是指什么

LRN(2012)

部分照应归一化(Local Response Normalization, 即LRN)初次提出于AlexNet。自BN提出后,其底子被抛弃了,因算法是什么此这儿只介绍它的来历和首要思维。

LRN的构思来历于神经生物学的侧抑制,被激活的神经元会抑制相邻的神经算法规划与剖析元。用一句梯度下降法原理和过程话来形容LRN梯度下降法公式:让呼强化学习应值大的feature map变得更大,让照应值小的变得更小。

其首要思维在于让不同卷积核发生feature map之间的相关性更小,以结束不同通道上的feature map专心于不同的特征的作用,例如A特征在一通道上更显着,B特征在算法的有穷性是指另一通道上更显着。

Batch Normalization(2015)

论文:Batch Normalization:变量与函数教案 Accelerating Deep Network Training by Reducing Internal Covariate Shift

论文中关于BN提出的阐明:练习深梯度下降法例题度神经梯度下降法例题网络十分复杂,因为在练习过程中,跟着早年各层的参数发生变量名改动,各层输入的散布也会发生改动,图层输入散布的改动带来了一梯度下降个问题,因为图层需求不断习惯新的散布,因而练习变得复杂,跟着网络变得更深,网络参数的纤细改动也会扩展。

因为要求较低的学习率和仔细的参数初始化,这减慢了算法导论练习速度,并且众所周知,练习具有丰满非线性的模型好不容易。咱们将此现象称为内部协变量偏移,并通过归一化层输入来处理该问题变量

其它的阐明算法工程师:假定输入数据包含多个特征x1,x2,…xn。每个功用或许具有不同的值规划。例如,特征x1的值或许在1到5梯度下降法matlab之间,而特征x2的值或许在1000到999强化学习99之间。

如下左图所梯度下降法原理和过程示,因为两个数据不在变量名的命名规矩同一规划,但它们是运用相同的学习变量类型有哪些率,导致梯度下降轨道沿一维来回振荡,然后需求更多的过程才干抵达最小值。且此时学变量名的命名规矩习率不简略设置,学习率过大则关于规划小的数据来说来回震荡,学习率过小则对规划大的数据来说底子没什么改动。

如下右图所示,当进行归一化后,特征都在同一个巨细规划,则loss landscape像一个碗,学习率更简略设置,且梯度下降比较平稳。


结束算法


在一个batch中,在每一BN层中,算法工程师对每个样本的同一变量类型有哪些通道,核算它们的均值和方差,再对数据进行归一化,归一化的值具有零均算法规划与剖析值和单位方差的特征,毕竟运算法的时刻复杂度取决于用两个可学习参数gamma和beta对归一化的数据进行缩放和移位。

此外,在练习过程中还保存了每个算法规划与剖析mini-batch每一BN层的均值和方差,毕竟求悉数mini-batch均值和方差的期望值,以此来作为推理过程中该BN层的均值和方差。

注:BN放在激活函数后比放在激活函数前作用更好。

实践算法的有穷性是指作用:

1)与没有BN比较,可运用更大的学习率

2)防止过拟合,可去除Dropout和Local Response Normalization

3)因为dataloader打乱次序,因而每个epoch中mini-bat梯度下降算法的正确过程ch都不相同,对不同mini-batch做归一化能够梯度下降法公式起到数据增强的作用梯度下降算法推导

4)显着加快收敛速度

5)防止梯度爆破和梯变量度消失

注:BN存在一些问题,后续的大部分归一化论文,都是在环绕BN的这些缺点来改善的。算法的时刻复杂度取决于为了行文的便利算法的五个特性,这些缺点会在后边各篇论文中逐个说到。

BN、LN、IN和GN的差异与联络

下图比较显着地标明出了梯度下降法公式它们之间的差异。(N标明N个样本,C标明通道,这儿为了表达便利,把HxW的二维用变量的界说H*W的一维标明。)


后边这三个处理的首要问题是BN的作用依托于batch size,当batch s变量名ize比较小时,功用退化算法严峻。能够看到,IN,LN和GN都与batch size无关。

它们之间的差异在于核算均值和方差的数据规划不同,LN核算单个样本在悉数通道上的均值和方差,IN值核算单个样本在每个通道上的均值和方差,GN将每个样本的通道分红g组,核算每组的均值和梯度下降算法的正确过程方差。

它们之间的作用对比。(注:这个作用是只在同一场合下的对比,实践上它们各有自己的运用场景,且后三者在变量名各自的运用场合上都显着跨越了B算法的时刻复杂度取决于N)

Instance Norma变量是什么意思lization(2016)

论文:Instance Normalization: The Missing Ingredient for Fast Stylization

在图画视频等辨认使命上,BN的作用是要优于IN的。但在GAN,st算法工程师和程序员差异yl梯度下降算法推导e transfer和domain adaptation这类生成使命上,IN的作用显着比BN更好。

从BN强化学习与IN的差异来剖析发生这种现象的原因:BN对多个样本核算均值和方差,而这多个样本的domain很变量泵或许是不相同的,相当于模型把不同domain的数据散布进行了归一化。

Layer Norma算法的有穷性是指lization (变量名的命名规矩2016)

论文:Layer Normalization

BN的第一个缺点是依托Batch size,第二个缺点是关于RNN这样的算法工程师动态网络作用不显着,且当推理序列长度跨越练习的悉数序列长度时,简略出问题。为此,提出了Layer Normalization。

当咱们以显着的办法将批归一化运用于变量泵RN变量泵N时,咱们需梯度下降法原理求为序列中的每个时刻步核算并存储单独的核算信息。假定测验序列比任何练习序列都长,这是有问题的。LN没有这样的问题,因为它的归一化项仅取决于当时时刻步长对层的总输入。它还只要一组在悉数时刻步中同梯度下降法公式享的增益和偏置参数。(注:LN中的增益和偏置就相当于BN中的gamma 和beta)

LN的运用场合:RNN,tr梯度下降算法是最常用也是最有用ansf算法规划与剖析ormer等。

Group Normalization(2018)

论文:Group N梯度下降法公式ormalization

如下图所示,当batch size减少时,BN退化显着,而Group Normalization一直一同,在batch size比较大的时分,略算法的时刻复杂度取决于低于BN,但当batch size比较小的时分,显着优于BN。

但GN有两个缺点,其间一个是在b变量名atchsize大时略低于BN,另一个是因为它是在通道上分组,因而它要求通道数是分组数g的倍数。

GN运用场景:在政策检测,语义切开等要求变量的界说尽或许大的分辨率的使命上,因为内存约束,为了更大的分辨率只能取比较小的batch size,能够选择GN这种不依托于batchs变量是什么意思ize的归一化办法。

GN结束算法

Weights Normalization(2016)

论文:Weight Normalization: A Simple Reparameterization to Accelerate Training of Deep Neural Networks

前面的办法都是根据feature map做归一化,这篇论文提出对Weights做归一化。

阐明这个办法要费挺多强化学习翰墨,这儿用一句话来阐明其首要做梯度下降法原理和过程法:将权重向量w分解为一个标量g梯度下降法原理和过程和一个向量v,标量g标明权重向量w的长度,向量v标明权重向量的方向。

这种办法改善了优化问题的条件,并加变量与函数速了随机梯度下降的收敛,不依托于batch size的特征,适用于循环模型梯度下降法公式(如 LSTM)和噪声敏感运用(如深度强化学习或生成模型),而批量归一化不太梯度下降法原理和过程适宜这些运用。

Weight Normalization也有个显着的缺点:WN不像BN有归一化特征标准的作用变量与函数教案,因而WN的初始化需求慎重,为此作者提出了对向量v和标量g的初始化算法工程师和程序员差异办法。

Batch Renormalization(2017)

论文:Batch Ren算法的五个特性ormalization: Towards Reducin算法是什么g Minibatch Dependence in Batch-Normalized Models

前面咱们说到BN运用练习过程中每个梯度下降算法推导mini-batch的均值和方差的期望作为推变量名理过程中的均值和方差,这样做的条件是mini-batch与样本整体是独立同散布的。因而BN的第三个缺点是当mini-batch中算法工程师的样本非独立同散布时,功用比较差。

根据第一个缺点batchsize太小时功用退化和第三个缺点,作者提出了Batch Renormalization(简称BRN)。

BR算法工程师N与BN的首要差异在于BN运用练习过程中每个min算法剖析的目的是i-batch的均变量与函数值和方差的期望来当作整个数据集的均值和方差,而练习过程梯度下降法原理中每个mini-batch都有自己的均值和方差,因而在推理阶段的算法是什么均值和方差与操变量值练时不同,而BRN提出在练习过程中就不断学梯度下降法公式习修改整个数据集的均值和方差,使其尽或许迫临整个数据集的均值和方差,并毕竟用于推理阶段。

BRN结束算法如下:

注:这儿r和d标明标准缩放和平移,不参加反向传达变量泵

当运用小batchsize或非独立同散布的mini-batch进行练习时,运用BRN练习的模型的功用显着优于BN。一同,BRN保留了BN的优势,例如对初始化的敏感性和练习功率

Cross-GPU BN(2018)

论文:MegDet: A Large Mini-Batch Object Detector

在运用多卡散布式练习的情况下,输入数据被等分红多份,在各自的卡上结束前向和回传,参数更新,BN是变量是什么意思针对单卡上的样本做的归一化,因而变量的界说实践的归一化的样本数并不是batchsize。例如batchsize=32,用四张卡练习,实强化学习践上只在32/4=8个样本上做归一化。

Cross-GPU Batch Normalization的思维就是在多张卡上做归一化。

具体结束算法如下:

FRN(2019)

论文:Filter Re算法剖析的目的是spon梯度下降se Normalization L变量类型有哪些ayer: Eliminating Batch Dependence in the Training of Deep Neural Networks

FRN仍然是梯度下降算法是最常用也是最有用根据小batchsize会退化功用的问题改善的。梯度下降法公式

FRN由两个组件构算法导论成,一变量类型有哪些个是Filter Response Normalization (FRN),一个是Thresholded Linear Unit (TLU)。

前者跟Instance Normalizatio变量的界说n十分类似,也是根据单算法的有穷性是指样本单通道,所不同的是IN减去了均值,再除以标准差。而FRN没有减去均值。作者给出的理由如下:尽管减去均值是归一化计划的正常操作,但梯度下降算法的正确过程关于batch independent的归一化计划来说,它是恣意的,没有任何理由。

TLU则是在ReLU的基础上加了一个阈值,这个阈变量之间的关系值是可学习的参数。这是考虑到FRN没有减去均值梯度下降算法的正确过程的操作,这或许使得归一化的成果恣意地偏移0,假定FRN之后是ReLU激活层,或许发生许多0值,这关于模型练习和功用是不利的。

FRN结束算法

试验作用

C梯度下降算法推导ross-Iteration BN(2020)

论文:Cross-Iteration Batch Normalization

CBN的首要思维在于将前k-1个iteration的样本参加当时均值梯度下降法原理和方差的核算。但因为前k-1次iteration的数据更新,因而无法直接拿来运用。论文提出了一个算法是什么处理办法是通过泰勒多项式来近似核算出前k-1次iteration的数据。


变量Yolo_v4中还提出改善版,在每个batch中只核算四个mini-batches的数据,并在第四个mini-batch后才更新算法是什么权重,标准缩放和偏移。

试验作用

总结算法工程师和程序员差异

本文介绍了现在比较经典的归一化办法,其算法的有穷性是指间大部分都是针对BN改善而来,本文比较翔实地介绍了它们的首要思维,改善办法,以及运用场景,部分办法并没有具体介绍结束细节,关于感兴趣或有需求的读者请自行阅读论文原文。

除了以上办法外,还有许多归一化办法,例如Eval Norm,Normalizat变量是什么意思ion propagation,Normalizing th梯度下降算法是最常用也是最有用e normalizers等。但这些办法并不常用,这儿不作赘述。

其他文章

注意力机变量泵制总结

特征金字变量的界说塔总结

数据增强办法总结

CNN可视化技能总结

CNN结构演化总结—经典模型

CNN结构演化总结—轻量化模型

CNN结构演化总结—规划原则

池化技能总结

非极大值抑制总结

英文文献阅读办法总结

论文立异的常见思路总结

本文来历于大众号CV技能攻略的技能总结系列。

在大众号《CV技算法规划与剖析术攻略》中回复“技能总结”可获取以上悉数总结系列文章的汇总pdf

参看论文

  1. Batch Normalization: Accelerating变量的界说 Deep Ne梯度下降法例题twork Training by Reducing Internal Covariate Shift

  2. Instan变量是什么意思ce Normalization: The Missing算法工程师 Ingredient for Fas变量类型有哪些t Stylization

  3. Layer Normalization

  4. Group Normalization

  5. Weight Normalizat算法规划与剖析ion: A Simpl算法的时刻复杂度是指什么e Repar算法工程师和程序员差异ameterizati梯度下降算法的正确过程on to Accelerate Training of Deep Neural Networks

  6. Batch Renorma算法的时刻复杂度取决于lization: Towards Reducing Minibatch Dependence in Batch-Normalized Models

  7. MegDet变量名: A Large Mini-Batch算法规划与剖析 Object Detector

  8. Filter Response Normalization Layer: Eliminating Batch Dependence in the Training of Deep Neural Networks

  9. Cross-Iteration Batch Normalization

  10. YO变量的界说LOv4梯度下降法matlab: Optimal Speed and Accuracy of Ob算法是什么ject Detection

  11. EvalNorm: Estimating Bat算法剖析的目的是ch Normaliz算法规划与剖析a梯度下降法原理和过程tion Statistics for Evaluat梯度下降法原理ion