当前位置: 首页 > news >正文

基础学习(4): Batch Norm / Layer Norm / Instance Norm / Group Norm

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1 batch normalization(BN)
  • 2 Layer normalization (LN)
  • 3 instance normalization (IN)
  • 4 group normalization (GN)
  • 总结


前言

对 norm/batch/instance/group 这四种normalization进行整理.
首先假设我们的数据结构都是 [n, c, h, w] 数据结构如下图,下图中n=4, c = 7, h=她喜欢的数字, w=他喜欢的数字
还有个链接写的不错,但是语言晦涩,尤其across 用的太晦涩。link:https://isaac-the-man.dev/posts/normalization-strategies/

1 batch normalization(BN)

因为深度学习中,一个channel的数据往往是同一类数据,比如rgb中的 r,所以在同一个channel上做nomrlization是合理的. 下图中,我的例子是将橙色的channel全部取出, 做normalization,也就是论文中说的"across the channel dimension C"(横跨了所有c).
在这里插入图片描述
对应的数学过程:
(1) 求平均, x x x是图像中的一个点
μ c = 3 = 1 H ∗ W ∗ N ∑ n , h , w x [ n , h , w ] \mu_{c=3} = \frac{1}{H * W * N} \sum_{n,h,w} x[n,h,w] μc=3=HWN1n,h,wx[n,h,w] c 从 0开始

(2) 计算方差:
δ c = 3 = 1 H ∗ W ∗ N ∑ n , h , w ( x [ n , h , w ] − μ c ) 2 \delta_{c=3} = \frac{1}{H * W * N} \sum_{n,h,w} (x[n,h,w] - \mu_c)^2 δc=3=HWN1n,h,w(x[n,h,w]μc)2

(3)归一化
x ^ n , c = 3 , h , w = x n , c = 3 , h , w − μ c δ c 2 + ϵ γ + β \hat x_{n,c=3,h,w} = \frac{x_{n,c=3,h,w}- \mu_c}{ \sqrt{\delta_c^2 + \epsilon} } \gamma + \beta x^n,c=3,h,w=δc2+ϵ xn,c=3,h,wμcγ+β, γ \gamma γ 是 scale β \beta β 是 bais

这样就使得数据分布范围是0~1 之间,这样就不梯度爆炸或者数据奇异,始终将数据拉到一个合理范围内

2 Layer normalization (LN)

layernorm 是 transformer 中出现的, 原因是处理语音等数据, 相同channel跨着batch 一起做norm 效果不大,反而是一个语音段前后是有逻辑连续性, 因此以一个sample 为单元(即从* h * w) 做normalization. 就是 论文中的 “across the batch dimension N”

在这里插入图片描述

数学过程:
(1) 求平均
μ n = 1 C ∗ H ∗ W ∑ c , h , w x [ c , h , w ] \mu_{n} = \frac{1}{C*H*W} \sum_{c,h,w} x[c,h,w] μn=CHW1c,h,wx[c,h,w] 例如图中是 n=0

(2) 计算方差:
δ n = 1 C ∗ W ∗ N ∑ c , h , w ( x [ c , h , w ] − μ n ) 2 \delta_n = \frac{1}{C * W * N} \sum_{c,h,w} (x[c,h,w] - \mu_{n})^2 δn=CWN1c,h,w(x[c,h,w]μn)2

(3)归一化
x ^ n , c , h , w = x n , c , h , w − μ c δ n 2 + ϵ γ + β \hat x_{n,c,h,w} = \frac{x_{n,c,h,w}- \mu_c}{ \sqrt{\delta_n^2 + \epsilon} } \gamma + \beta x^n,c,h,w=δn2+ϵ xn,c,h,wμcγ+β, γ \gamma γ 是 scale β \beta β 是 bais

3 instance normalization (IN)

instance normalization 我认为就是对一个batch 中 某个channel的数据进行归一化,比较简单

在这里插入图片描述

太简单了,我就截图数学过程:
在这里插入图片描述

4 group normalization (GN)

group normalization 就是在layer norm 的基础上不会取完所有channel数据,而是一部分,所以跟layer norm 非常像. 注意这里的G 是将 C 分成了多少个组, 也就是每个组内channel数量是C/G

在这里插入图片描述
注意我图中话的不是很合理,因为 c/g 不是整数,这里只是示意

数学公式:
(1) 求平均
μ g = 1 C / G ∗ H ∗ W ∑ c ^ , h , w x [ c ^ , h , w ] \mu_{g} = \frac{1}{C/G*H*W} \sum_{{\hat c},h,w} x[{\hat c},h,w] μg=C/GHW1c^,h,wx[c^,h,w] 其中, c ^ \hat c c^ 属于c/g 的那个组

(2) 计算方差:
δ g = 1 C / G ∗ W ∗ N ∑ c ^ , h , w ( x [ c ^ , h , w ] − μ g ) 2 \delta_g = \frac{1}{C/G * W * N} \sum_{{\hat c},h,w} (x[{\hat c},h,w] - \mu_{g})^2 δg=C/GWN1c^,h,w(x[c^,h,w]μg)2

(3)归一化
x ^ n , c ^ , h , w = x n , c ^ , h , w − μ g δ g 2 + ϵ γ + β \hat x_{n,{\hat c},h,w} = \frac{x_{n,{\hat c},h,w}- \mu_g}{ \sqrt{\delta_g^2 + \epsilon} } \gamma + \beta x^n,c^,h,w=δg2+ϵ xn,c^,h,wμgγ+β, γ \gamma γ 是 scale β \beta β 是 bais

可以这么说:
如果 G=1:GroupNorm = LayerNorm
如果 G=C:GroupNorm = InstanceNorm
如果 G=任意值:就是常规 GN

总结

这里将4种norm进行常见应用总结

方法归一化的维度每个 μ 和 σ 的计算范围是否依赖 Batch Size应用场景
BatchNorm每个通道 C,跨 batch 和空间 [N, H, W]每个通道一个统计量CNN / 图像识别训练加速
LayerNorm每个样本,每个位置 [C, H, W]每个样本单独归一化NLP / Transformer
InstanceNorm每个样本、每个通道 [H, W]像 LayerNorm 但只在 spatial 上归一化图像生成、风格迁移
GroupNorm每个样本,每组通道 [C/G, H, W]将通道分组归一化替代 BatchNorm,无 batch size 限制

相关文章:

  • ReactNative中处理安全区域问题
  • 深入解析 OrdinalEncoder 与 OneHotEncoder:核心区别与实战应用
  • Linux——信号量
  • linux 内核 ida机制分析
  • 【SpringMVC】深入解析自定义拦截器、注册配置拦截器、拦截路径方法及常见拦截路径、排除拦截路径、拦截器的执行流程
  • 视觉SLAM和激光SLAM建图输出的文件类型
  • 域控制器升级的先决条件验证失败,证书服务器已安装
  • 基于大模型的反流食管炎手术全流程风险预测与治疗方案研究报告
  • 【钱包】Tron签名总结
  • c# 数据结构 链表篇 有关双向链表的一切
  • Vue el-from的el-form-item v-for循环表单如何校验rules(一)
  • TMS320F28P550SJ9学习笔记15:Lin通信SCI模式结构体寄存器
  • 【Java学习】Knife4j使用流程
  • MongoDB常见语句
  • dsp的主码流,子码流是指什么,有什么区别和作用
  • 实践001-Gitlab基础项目准备
  • [MySQL] 事务管理(一) 事务的基本概念
  • Python基础知识(基础语法二)
  • 【ROS2】行为树 BehaviorTree(六):各种各样的节点
  • 循环神经网络 - 扩展到图结构之递归神经网络
  • 经济大省中川、豫、浙一季报已发:GDP增速均高于全国
  • 孙颖莎4比1击败陈幸同,与蒯曼会师澳门世界杯女单决赛
  • 青创上海—2025浦东徒步行活动举行,“青年草坪创新创业湃对”正式亮相
  • 旧电梯换新如何分摊费用?低楼层可以不出钱吗?上海闵行举办讨论会
  • 上海将建民间投资重点项目库,通过算力补贴支持民企大模型研发训练应用
  • 人事时间|商务部国际贸易谈判代表是什么职务,负责哪些工作?