深度学习|表示学习|Instance Normalization 全面总结|26

如是我闻:

1. Instance Normalization(IN)

Instance Normalization(IN)最早由 Ulyanov et al.(2017) 提出,主要用于 风格迁移(Style Transfer) 任务。它的核心思想是 对每个样本的每个通道 ( C ) (C) (C) 单独计算均值和方差,然后进行归一化。

与 Batch Normalization(BN)不同,IN 不依赖 mini-batch 统计信息,所以更适用于小 batch size 甚至 batch size = 1 的情况。

数学公式

对于一个输入特征 x t i l m x_{tilm} xtilm,其中:

  • t t t 表示 batch 维度(样本索引)
  • i i i 表示通道索引(C)
  • l , m l, m l,m 分别表示特征图的空间坐标 H × W H × W H×W
均值计算

μ t i = 1 H W ∑ l = 1 W ∑ m = 1 H x t i l m \mu_{ti} = \frac{1}{HW} \sum_{l=1}^{W} \sum_{m=1}^{H} x_{tilm} μti=HW1l=1Wm=1Hxtilm

方差计算

σ t i 2 = 1 H W ∑ l = 1 W ∑ m = 1 H ( x t i l m − μ t i ) 2 \sigma^2_{ti} = \frac{1}{HW} \sum_{l=1}^{W} \sum_{m=1}^{H} (x_{tilm} - \mu_{ti})^2 σti2=HW1l=1Wm=1H(xtilmμti)2

归一化

y t i l m = x t i l m − μ t i σ t i 2 + ϵ y_{tilm} = \frac{x_{tilm} - \mu_{ti}}{\sqrt{\sigma^2_{ti} + \epsilon}} ytilm=σti2+ϵ xtilmμti

💡 计算范围:
Instance Normalization 只在 单个样本的单个通道 (H×W 维度) 内计算均值和方差,而不会跨通道或跨样本计算。


2. Layer Normalization(LN)

概念

Layer Normalization(LN)由 Ba et al.(2016) 提出,最初用于 RNN 和 Transformer 结构,后来也在 CNN 中被广泛使用。它的核心思想是 对整个样本的所有通道 (C×H×W) 计算均值和方差,然后进行归一化。

不同于 Batch Normalization(BN),LN 不依赖 batch 维度,适用于 NLP 和 Transformer 任务,特别是在 batch size 变化较大的情况下,仍能保持稳定的效果。

数学公式

对于一个输入特征 x i j k l x_{ijkl} xijkl,其中:

  • i i i 表示 batch 维度(样本索引)
  • j j j 表示通道索引( C C C
  • k , l k, l k,l 分别表示特征图的空间坐标( H × W H × W H×W
均值计算

μ l = 1 C H W ∑ j = 1 C ∑ k = 1 H ∑ l = 1 W x i j k l \mu^l = \frac{1}{CHW} \sum_{j=1}^{C} \sum_{k=1}^{H} \sum_{l=1}^{W} x_{ijkl} μl=CHW1j=1Ck=1Hl=1Wxijkl

方差计算

σ l 2 = 1 C H W ∑ j = 1 C ∑ k = 1 H ∑ l = 1 W ( x i j k l − μ l ) 2 \sigma^2_l = \frac{1}{CHW} \sum_{j=1}^{C} \sum_{k=1}^{H} \sum_{l=1}^{W} (x_{ijkl} - \mu^l)^2 σl2=CHW1j=1Ck=1Hl=1W(xijklμl)2

归一化

y i j k l = x i j k l − μ l σ l 2 + ϵ y_{ijkl} = \frac{x_{ijkl} - \mu^l}{\sqrt{\sigma^2_l + \epsilon}} yijkl=σl2+ϵ xijklμl

💡 计算范围:
Layer Normalization 在整个样本的所有通道 (C×H×W) 维度上计算均值和方差,不同通道之间的归一化统计量是共享的。


3. 计算示例

假设我们有一个输入 特征图大小为 2 × 2 2 \times 2 2×2,batch size 为 1,通道数 C = 2,即:
X = [ Channel 1 : [ 1 2 3 4 ] , Channel 2 : [ 5 6 7 8 ] ] X = \begin{bmatrix} \text{Channel 1}: & \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad \text{Channel 2}: & \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \end{bmatrix} X=[Channel 1:[1324],Channel 2:[5768]]

Instance Normalization

IN 对 每个通道 ( C C C) 独立归一化,计算均值和方差:

  • Channel 1 均值:
    μ 1 = 1 + 2 + 3 + 4 4 = 2.5 \mu_1 = \frac{1+2+3+4}{4} = 2.5 μ1=41+2+3+4=2.5
    方差:
    σ 1 2 = ( 1 − 2.5 ) 2 + ( 2 − 2.5 ) 2 + ( 3 − 2.5 ) 2 + ( 4 − 2.5 ) 2 4 = 1.25 \sigma_1^2 = \frac{(1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 + (4-2.5)^2}{4} = 1.25 σ12=4(12.5)2+(22.5)2+(32.5)2+(42.5)2=1.25
    归一化:
    Y 1 = X 1 − 2.5 1.25 + ϵ Y_1 = \frac{X_1 - 2.5}{\sqrt{1.25 + \epsilon}} Y1=1.25+ϵ X12.5

  • Channel 2 均值:
    μ 2 = 5 + 6 + 7 + 8 4 = 6.5 \mu_2 = \frac{5+6+7+8}{4} = 6.5 μ2=45+6+7+8=6.5
    归一化后:
    Y 2 = X 2 − 6.5 1.25 + ϵ Y_2 = \frac{X_2 - 6.5}{\sqrt{1.25 + \epsilon}} Y2=1.25+ϵ X26.5


Layer Normalization

LN 对 整个样本的所有通道 (C×H×W) 归一化,计算:

  • 总均值:
    μ = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 8 = 4.5 \mu = \frac{1+2+3+4+5+6+7+8}{8} = 4.5 μ=81+2+3+4+5+6+7+8=4.5
  • 总方差:
    σ 2 = ( 1 − 4.5 ) 2 + ⋯ + ( 8 − 4.5 ) 2 8 = 5.25 \sigma^2 = \frac{(1-4.5)^2 + \dots + (8-4.5)^2}{8} = 5.25 σ2=8(14.5)2++(84.5)2=5.25
  • 归一化:
    Y = X − 4.5 5.25 + ϵ Y = \frac{X - 4.5}{\sqrt{5.25 + \epsilon}} Y=5.25+ϵ X4.5

4. 主要区别

归一化方法计算均值/方差的范围归一化的单位适用场景
Instance Normalization (IN)每个通道 (H×W) 计算均值和方差每个通道独立归一化风格迁移、GAN、计算机视觉任务
Layer Normalization (LN)整个样本 (C×H×W) 计算均值和方差所有通道一起归一化NLP、Transformer、RNN/CNN 任务

5. 总结

  • IN 适用于图像任务(如风格迁移),可以帮助去除特定风格信息。
  • LN 适用于 NLP 和 CNN 任务,因为它不会受到 batch size 影响,在 Transformer 和 RNN 里表现更稳定。

希望这篇文章能帮助你理解 Instance Normalization 和 Layer Normalization 的核心概念及其不同应用!🎯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15449.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测

哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…

C++,STL 迭代器简介:概念、分类、操作

文章目录 引言一、迭代器的基本概念1.1 什么是迭代器?1.2 迭代器的意义二、迭代器的分类2.1 示意图:迭代器能力层级2.2 示例:不同迭代器的操作三、迭代器的常用操作3.1 基本操作3.2 随机访问迭代器专用操作示例代码:随机访问迭代器四、迭代器的通用用法4.1 遍历容器4.2 配合…

EasyExcel 导出合并层级单元格

EasyExcel 导出合并层级单元格 一、案例 案例一 1.相同订单号单元格进行合并 合并结果 案例二 1.相同订单号的单元格进行合并2.相同订单号的总数和总金额进行合并 合并结果 案例三 1.相同订单号的单元格进行合并2.相同订单号的商品分类进行合并3.相同订单号的总数和总金额…

常用的python库-安装与使用

常用的python库函数 yield关键字openslide库openslide对象的常用属性 cv2库numpy库ASAP库-multiresolutionimageinterface库ASAP库的安装ASAP库的使用 concurrent.futures.ThreadPoolExecutorxml.etree.ElementTree库skimage库PIL.Image库 PIL.Image.Imagedetectron2库数据增强…

C++基础系列【8】如何解决编译器报的错误

博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x1f…

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<8>

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 今天我们复习前面学习的指针知识 目录 关于指针数组和数组指针的区别指针数组(Array of Poi…

UE5.5 PCGFrameWork--GPU CustomHLSL

在上一篇UE5.5 PCGFrameWork使用入门-CSDN博客 大致介绍了UE5 PCG框架的基本使用. 本篇探索PCGFrame的高级应用--GPU点云。也就是利用GPU HLSL编程对点云进行操纵,可以大幅度提升点云生成效率。 目前在UE5 PCG框架中,点云GPU的应用大致分为三类: Point…

Games202 Lecture11 LTC | Disney principled BRDF | NPR

Shading with microfacet BRDFs under polygonal lighting -Linearly Transformed Cosines(LTC)Real-Time PBR Materials cont. -Disney principled BRDFNon-photorealistic rendering(NPR) Linearly Transformed Cosines(LTC) lobe花瓣 BRDF的2d形状 基本思路: 任意BRDF变…

Flink 内存模型各部分大小计算公式

Flink 的运行平台 如果 Flink 是运行在 yarn 或者 standalone 模式的话,其实都是运行在 JVM 的基础上的,所以首先 Flink 组件运行所需要给 JVM 本身要耗费的内存大小。无论是 JobManager 或者 TaskManager ,他们 JVM 内存的大小都是一样的&a…

学习数据结构(8)双向链表

1.双向链表的实现 双向链表一般指带头双向循环链表 (1)双向链表的声明 (2)双向链表的打印 (3)向内存申请节点 (4)初始化双向链表 或 (5)尾部插入 &#xf…

【漫话机器学习系列】088.常见的输出层激活函数(Common Output Layer Activation Functions)

在神经网络中,输出层(Output Layer) 的激活函数(Activation Function)直接决定了模型的输出形式,并影响损失函数的选择及训练效果。不同的任务类型(如分类或回归)需要使用不同的激活…

Python 鼠标轨迹 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

工业相机在工业生产制造过程中的视觉检测技术应用

随着技术不断发展以及工业4.0时代的到来,利用工业相机进行视觉检测技术已经成为制造业不可或缺的一部分。通过结合先进的计算机视觉、AI算法和自动化设备,工业视觉检测为生产线质量控制和效率提升提供了革命性的解决方案。 一、什么是工业视觉检测技术 …

了解网络层

目录 一、IP协议 二、地址管理 IP地址 概念 作用 格式 网段划分 三、路由选择 网络层要做的事情主要是两个方面: 地址管理:制定一系列的规则,通过地址,描述出网络上一个设备的位置。路由选择:网络环境比较复杂…

NO.11十六届蓝桥杯备战|if-else语句|嵌套if|悬空else|练习4道(C++)

if-else语句 if语句 if语句的语法形式如下: if ( 表达式 ) 语句;表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ 0为假,⾮0表⽰真,也就是…

Json-RPC框架项目(一)

目录 1. 项目介绍: 2. 技术选择; 3. 第三方库介绍; 4. 项目功能; 5. 模块功能; 6. 项目实现: 1. 项目介绍: RPC是远程过程调用, 像调用本地接口一样调用远程接口, 进行完成业务处理, 计算任务等, 一个完整的RPC包括: 序列化协议, 通信协议, 连接复用, 服务注册, 服务发…

Discourse 创建和配置用户自定义字段

用户自定义字段能够让你在用户注册的是要求用户提供更多的信息。这些用户提供的信息可以在用户名片,用户摘要页面下显示,甚至还可以通过 Data Explorer plugin 插件进行查询。 本文能够帮助你对这些字段进行配置和设置。 添加一个用户字段 进入 Admin…

从零到一:我的元宵灯谜小程序诞生记

缘起:一碗汤圆引发的灵感 去年元宵节,我正捧着热腾腾的汤圆刷朋友圈,满屏都是"转发锦鲤求灯谜答案"的动态。看着大家对着手机手忙脚乱地切换浏览器查答案,我突然拍案而起:为什么不做一个能即时猜灯谜的微信…

【C++11】lambda和包装器

1.新的类功能 1.1默认的移动构造和移动赋值 原来C类中,有6个默认成员函数:构造函数/析构函数/拷⻉构造函数/拷⻉赋值重载/取地址重 载/const 取地址重载,最后重要的是前4个,后两个⽤处不⼤,默认成员函数就是我们不写…

Java企业电子招投标系统:Spring Cloud微服务架构-强化企业招采竞争力:电子化招投标平台助力效率与成本控制-支持二次开发

​在当今激烈的市场竞争环境下,企业规模的持续扩大使得招采管理变得日益重要,已成为企业提升核心竞争力的关键一环。为了实现更高效、更高质量的招采成果,我们设计了一套基于电子化平台的解决方案,旨在通过电子化招投标系统&#…