深度学习:BatchNorm、LayerNorm、InstanceNorm、GroupNorm和SwitchableNorm的理解

深度学习:BatchNorm、LayerNorm、InstanceNorm、GroupNorm和SwitchableNorm的理解

深度学习中的Norm

在深度学习中会经常遇到BatchNorm、LayerNorm、InstanceNorm和GroupNorm,四者区别如下:

除此之外还有SwitchableNorm的方法,下面会逐一进行介绍。

BatchNorm

BatchNorm 的处理对象是对一批样本同一个通道特征,BatchNorm 是对这批样本的同一维度特征计算均值和方差做归一化,BatchNorm在CV领域应用较多。

BatchNorm的好处有以下三点:

1、提高梯度在网络中的流动。Normalization能够使特征全部缩放到[0,1],这样在反向传播时候的梯度都是在1左右,避免了梯度消失现象。

2、提升学习速率。归一化后的数据能够快速的达到收敛。

3、减少模型训练对初始化的依赖。

LayerNorm

LayerNorm 的处理对象是每单个样本所有通道特征,LayerNorm 是对这单个样本的所有维度特征计算均值和方差做归一化。LayerNorm在NLP领域应用较多。

由于不同维度的特征量纲往往不同,那么我们为什么还要使用LayerNorm呢?因为NLP领域中,LayerNorm更为合适。

如果我们将一批文本组成一个batch,那么BatchNorm是对每句话的同一维特征(同一个位置)进行操作,而我们理解文本是一句话一句话地阅读,这不符合NLP的规律。

而LayerNorm则是针对一句话进行归一化的,且LayerNorm一般用在第三维度,如[batchsize, seq_len, dims]中的dims,一般为词向量的维度等等,这一维度各个特征的量纲应该相同。因此也不会遇到上面因为特征的量纲不同而导致的归一化缩放问题。

InstanceNorm

InstanceNorm的处理对象是每单个样本同一个通道特征,InstanceNorm是对单个样本同一个维度特征计算均值和方差做归一化,InstanceNorm在风格化迁移应用较多。

因为在图像风格化中,生成结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,因而对HW做归一化。可以加速模型收敛,并且保持每个图像实例之间的独立。

GroupNorm

GroupNorm的处理对象是每单个样本同一组通道特征,GroupNorm是对单个样本同一组维度特征计算均值和方差做归一化。

SwitchableNorm

SwitchableNorm是将BatchNorm、LayerNorm、InstanceNorm结合,赋予不同的权重,让网络自适应地学习归一化层。

附录

Pytorch官网------Normalization Layers

相关推荐
zzywxc78710 分钟前
深入探讨AI在测试领域的三大核心应用:自动化测试框架、智能缺陷检测和A/B测试优化,并通过代码示例、流程图和图表详细解析其实现原理和应用场景。
运维·人工智能·低代码·架构·自动化·流程图·ai编程
zskj_zhyl16 分钟前
七彩喜智慧康养:用“适老化设计”让科技成为老人的“温柔拐杖”
大数据·人工智能·科技·机器人·生活
ARM+FPGA+AI工业主板定制专家21 分钟前
基于ARM+FPGA多通道超声信号采集与传输系统设计
linux·人工智能·fpga开发·rk3588·rk3568·codesys
wyiyiyi1 小时前
【目标检测】芯片缺陷识别中的YOLOv12模型、FP16量化、NMS调优
人工智能·yolo·目标检测·计算机视觉·数学建模·性能优化·学习方法
mit6.8242 小时前
[自动化Adapt] 回放策略 | AI模型驱动程序
运维·人工智能·自动化
爱看科技3 小时前
5G-A技术浪潮勾勒通信产业新局,微美全息加快以“5.5G+ AI”新势能深化场景应用
人工智能·5g
打马诗人5 小时前
【YOLO11】【DeepSort】【NCNN】使用YOLOv11和DeepSort进行行人目标跟踪。(基于ncnn框架,c++实现)
人工智能·算法·目标检测
倒悬于世6 小时前
基于千问2.5-VL-7B训练识别人的表情
人工智能
大知闲闲哟6 小时前
深度学习TR3周:Pytorch复现Transformer
pytorch·深度学习·transformer
大哥喝阔落6 小时前
chatgpt plus简单得,不需要求人,不需要野卡,不需要合租,不需要昂贵的价格
人工智能·chatgpt