深度学习-常见的几种Normalization算法

  • Batch Normalization (BN)
  • Layer Normalization (LN)
  • Instance Normalization (IN)
  • Group Normalization (GN)

一、Batch Normalization (BN)
一个feature map为:N * C * W * H,BN在N、W、H维度上求均值和方差,保留C的维度。 比如在第一个样本的第一个通道,第二个样本的第一个通道…,第N个样本的第一个通道,求均值和方差,作为第一个通道的均值和方差。接下来的通道方法类似,就得到了所有通道的均值和方差。
BN在batch size较大的时候表现比较好,较小的时候求得的均值和方差与整个样本的均值和方差有偏差。目前在CV方面取得的效果较好,但是在文字语音方面不太好用,因为训练数据的长度不一致,接下来引出LN。

二、Layer Normalization (LN)
一个feature map为:N * C * W * H,LN在C、W、H维度上求均值和方差,保留N的维度。比如在第一个样本的第一个通道,第一个样本的第二个通道…,第一个样本的第C个通道,求均值和方差,作为第一个样本的均值和方差。其他样本方法类似,就得到了所有通道的均值和方差。

三、Instance Normalization (IN)
一个feature map为:N * C * W * H,IN在W、H维度上求均值和方差,保留N,C的维度。
IN最初用在图像的风格迁移,在单个样本内部操作,不依赖batch。

四、Group Normalization (GN)
GN介于BN和IN之间。把channel分为几个group来求均值和方差。
GN适用于占用显存比较大的任务,batch size比较小,使用BN效果不好,例如图像分割等。

Normalization算法实现:代码传送门

发布了29 篇原创文章 · 获赞 120 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_21578849/article/details/98789532
今日推荐