四种常见Normalization方法の学习笔记

BN

整体结构

前向传播

特点

BN在第一步和第二步中对输入的特征进行求均值和求标准差,后将其标准化,具体公式参考上图2-3部分。[2]

批次标准化最重要的内容是第三步是引入了两个可学习的参数,分别是\beta\gamma\beta用于控制偏移量,而\gamma[\latex]用于控制标量。这一举措使Batch Norm层具备了学习出最佳标准值的能力。

据原论文说明[2],该举措可以解决“内部协变量偏移(nternal Covariate Shift)”问题。

另内部协变量偏移,参考的解释说明是:“在神经网络中,第一层的输出馈入第二层,第二层的输出馈入第三层,依此类推。当某一层的参数发生变化时,后续层的输入分布也会发生变化。[3]

而对于更详尽的协变量说明,以及BN是如何实现的,在D2L书籍中表示其尚无定论。[1]

效果

在第一及第二步时,其算得均值标准差,利用其进行归一化(normalize)

来源[4]

在归一化后,于第三步对标准化后的值进行尺度和偏置的变化,值在反向传播时学习得到。

来源[4]

此外BN层对激活函数亦有优化,使激活函数梯度更加平缓

来源[4]

LN

Layer Norm层与BN层相当类似,但是解决了BN需要依照批次进行标准化的问题,不再依赖批次大小。

前者是依照批次长度,后者依照特征维长度。

LN脱离批次的特点,在RNN网络与transformer模型中效果显著。

IN

Instance Normalization只关注单一维,而不是如LN一样沿整个特征维度向量

来源[6]

GN

Group Norm如其名一样,利用分组的方式进行归一化。GN看起来是一种类似LN的变体,将channel分组,也无需依赖于批次,因通道学习到的分布更加不同[7],所以最终的效果要比LN更好。

在批次小的情况下,GN有良好表现,而在大批次的情况下,GN与BN差距不明显,甚至BN更佳。[7]

Ref


  1. https://zh.d2l.ai/chapter_convolutional-modern/batch-norm.html
  2. https://towardsdatascience.com/batch-norm-explained-visually-how-it-works-and-why-neural-networks-need-it-b18919692739
  3. https://machinelearning.wtf/terms/internal-covariate-shift
  4. https://www.jianshu.com/p/a78470f521dd
  5. https://www.pinecone.io/learn/batch-layer-normalization/
  6. https://medium.com/syncedreview/facebook-ai-proposes-group-normalization-alternative-to-batch-normalization-fb0699bffae7
  7. https://www.baeldung.com/cs/group-normalization
No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next