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

Instance Normalization(实例归一化)

1. 核心概念

Instance Normalization(实例归一化,简称InstanceNorm) 是深度学习中一种特征归一化技术。它的核心思想是:对每个样本的每个通道的特征图进行独立的归一化

简单来说,它计算每个样本、每个通道的均值和方差,并用这些统计量来归一化该通道的特征值。

2. 与BatchNorm、LayerNorm的对比(非常重要!)

要理解InstanceNorm,最好通过与更常见的归一化方法对比。假设我们的输入张量形状为 (N, C, H, W)

  • N:Batch Size(批次大小,样本数量)
  • C:Channels(通道数)
  • H:Height(高度)
  • W:Width(宽度)
归一化方法计算均值和方差的维度计算公式适用场景
BatchNorm跨样本,同一通道
(N, H, W)
μc=1NHW∑n=1N∑h=1H∑w=1Wxnchw\mu_c = \frac{1}{NHW}\sum_{n=1}^N\sum_{h=1}^H\sum_{w=1}^W x_{nchw}μc=NHW1n=1Nh=1Hw=1Wxnchw标准CNN, batch size较大且稳定时
LayerNorm跨通道、高、宽,同一样本
(C, H, W)
μn=1CHW∑c=1C∑h=1H∑w=1Wxnchw\mu_n = \frac{1}{CHW}\sum_{c=1}^C\sum_{h=1}^H\sum_{w=1}^W x_{nchw}μn=CHW1c=1Ch=1Hw=1WxnchwRNN, Transformer,NLP任务
InstanceNorm跨高和宽,同一样本同一通道
(H, W)
μnc=1HW∑h=1H∑w=1Wxnchw\mu_{nc} = \frac{1}{HW}\sum_{h=1}^H\sum_{w=1}^W x_{nchw}μnc=HW1h=1Hw=1Wxnchw图像风格迁移,生成模型

3. 直观理解

想象一批图像(比如4张猫的图片,N=4, C=3(RGB), H=256, W=256):

  • BatchNorm:会计算所有4张图片的R通道的均值,所有4张图片的G通道的均值,所有4张图片的B通道的均值。它混合了不同样本的信息
  • InstanceNorm:会单独计算第一张图片的R通道的均值、G通道的均值、B通道的均值。然后单独计算第二张图片的R、G、B通道的均值,以此类推。它完全独立地处理每个样本的每个通道

4. 数学公式

对于输入张量 xxx 中的一个特定值 xncijx_{ncij}xncij(第n个样本,第c个通道,位置(i,j)),InstanceNorm的变换为:

x^ncij=xncij−μncσnc2+ϵ\hat{x}_{ncij} = \frac{x_{ncij} - \mu_{nc}}{\sqrt{\sigma_{nc}^2 + \epsilon}}x^ncij=σnc2+ϵxncijμnc

其中:

  • μnc=1HW∑h=1H∑w=1Wxnchw\mu_{nc} = \frac{1}{HW}\sum_{h=1}^H\sum_{w=1}^W x_{nchw}μnc=HW1h=1Hw=1Wxnchw (第n个样本,第c个通道的均值)
  • σnc2=1HW∑h=1H∑w=1W(xnchw−μnc)2\sigma_{nc}^2 = \frac{1}{HW}\sum_{h=1}^H\sum_{w=1}^W (x_{nchw} - \mu_{nc})^2σnc2=HW1h=1Hw=1W(xnchwμnc)2 (第n个样本,第c个通道的方差)
  • ϵ\epsilonϵ 是一个很小的数,用于防止除以零(代码中的 eps=1e-6
  • 通常还会有一个可学习的缩放因子 γ\gammaγ 和偏移量 β\betaβyncij=γcx^ncij+βcy_{ncij} = \gamma_c \hat{x}_{ncij} + \beta_cyncij=γcx^ncij+βc
    • 代码中的 affine=True 就表示启用这两个可学习参数。

5. 为什么在代码中使用InstanceNorm?

在代码片段中:

nn.InstanceNorm2d(n_c, affine=True, eps=1e-6)

这行代码创建了一个InstanceNorm层:

  • n_c:输入数据的通道数(C)
  • affine=True:启用可学习的缩放和平移参数(γ\gammaγβ\betaβ
  • eps=1e-6:防止除以零的小常数

选择InstanceNorm而不是BatchNorm的原因可能包括:

  1. 对小批量大小(Batch Size)不敏感:BatchNorm在小批量(比如batch size=1或2)时性能会急剧下降,因为计算的统计量不可靠。而InstanceNorm不依赖批次中的其他样本,所以即使batch size=1也能正常工作。
  2. 适用于生成式任务:在图像风格迁移、超分辨率等任务中,我们希望保留每个样本的独特特征(即“风格”)。InstanceNorm通过独立处理每个样本,能更好地保持样本间的独立性,避免不同样本间的特征“泄漏”。
  3. 减少内部协变量偏移:和BatchNorm一样,它也有助于稳定训练过程,使网络更容易训练。

6. 总结

InstanceNorm的核心优势在于其“独立性”:它独立地归一化每个样本的每个通道,使其:

  • 不依赖于批次大小
  • 能更好地保留单个样本的特征
  • 非常适合视觉领域的生成式模型和一些需要对每个实例进行独立处理的任务
http://www.dtcms.com/a/357266.html

相关文章:

  • Stage应用模型及状态存储
  • 【Android 16】Android W 的冻结机制内核分析
  • 车载以太网通信测试:牢筑车载网络的质量防线
  • 【51单片机】【protues仿真】 基于51单片机叫号系统
  • 基于EB的K3XX_GPT定时器中断的实现方法
  • 精通与AI对话的艺术:如何通过角色扮演获得精准输出
  • 【Rust】 6. 字符串学习笔记
  • Day12-python文件操作(二)
  • java开发连接websocket接口
  • STM32CubeMX(十八)USB-MSC:外部flash模拟U盘
  • Day17_【机器学习—特征预处理(归一化和标准化)】
  • 期权杂记(二)
  • Hadoop(六)
  • 迁移学习实战:医疗影像识别快速突破方案
  • 【实时Linux实战系列】实时数据可视化技术实现
  • Python OpenCV图像处理与深度学习:Python OpenCV开发环境搭建与入门
  • 嵌入式Linux驱动开发:设备树与平台设备驱动
  • 2023年12月GESP5级C++真题解析,包括选择判断和编程
  • 嵌入式-定时器的输入捕获,超声波获距实验-Day23
  • 如何使用 Vector 连接 Easysearch
  • 【实时Linux实战系列】实时环境监控系统的架构与实现
  • PPT处理控件Aspose.Slides教程:使用 C# 编程将 PPTX 转换为 XML
  • 【实时Linux实战系列】基于实时Linux的虚拟现实应用开发
  • 趣味学Rust基础篇(所有权)
  • 【DeepSeek】公司内网部署离线deepseek+docker+ragflow本地模型实战
  • 《跳出“技术堆砌”陷阱,构建可演进的软件系统》
  • 【PyTorch】神经风格迁移项目
  • 每周资讯 | 《恋与深空》获科隆游戏展2025“最佳移动游戏奖”;8月173个版号下发
  • 【小白笔记】访问GitHub 账户的权限英文单词解释
  • nvm使用和node使用