【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2:基础知识

目录

  • 1 预热
    • 1.1 记号
    • 1.2 分类器计算过载问题
  • 2 多头编码(MHE)
    • 2.1 标签分解
    • 2.2 多头组合(Multi-Head Combination)

论文:Multi-Head Encoding for Extreme Label Classification
作者:Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang
单位:山东大学
代码:https://github.com/Anoise/MHE

论文地址:Online,ArXiv,GItHub

背景动机参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 1
基础知识参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2
算法实现参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 3
表示能力参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 4
实验结果参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 5
无需预处理见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 6

请各位同学给我点赞,激励我创作更好、更多、更优质的内容!^_^

关注微信公众号,获取更多资讯
在这里插入图片描述

1 预热

1.1 记号

为了表示简单,变量使用不同的字体表示:1)常量用大写字母表示,例如, Y i Y_i Yi是代表第 i i i个样本的类别的常量, C C C表示类别的总数。2)向量用粗体大写字母表示,例如, Y \bm Y Y Y i Y_i Yi的标签集, O \bm{O} O是头部的输出。3)矩阵用书法大写字母表示,例如 W \mathcal{W} W表示分类器的权重, F \mathcal{F} F表示特征集的矩阵 F \bm F F。4)张量也用大写字母表示,上标表示其顺序,例如, Y 1 , ⋯ , H \mathcal{Y}^{1,\cdots, H} Y1,,H表示$H阶张量。通过上面的符号,读者可以很容易地区分每个变量的形状。
在这里插入图片描述

图 1 :深度神经网络由三部分组成:输入、主干和分类器。在多头编码中,在训练期间将标签分解到多头分类器的输出上,并在测试中组合输出以获得预测标签。

1.2 分类器计算过载问题

本文所考虑的深度神经网络如图1所示,由输入、主干和分类器三部分组成。假设给定的样本-标签对是 { X i , Y i } i = 1 N \{\bm{X}_i, Y_i\}_{i=1}^N {Xi,Yi}i=1N,其中 X ∈ R ∣ X ∣ × N \bm{X} \in \mathbb{R}^{|\bm{X}|\times N} XRX×N Y ∈ R C × 1 \bm{Y} \in \mathbb{R}^{C \times 1} YRC×1分别是样本集和标签集。设 Y ˉ i \bar{\bm Y}_i Yˉi表示 Y i Y_i Yi的编码(矢量化)标签。主干主要包括多层非线性神经元,记为 N e t Net Net。将 N e t Net Net的特征输出记为 F \bm F F,将 F \bm{F} F通过权值 W \mathcal{W} W投影到 R C × 1 \mathbb{R}^{C\times 1} RC×1的部分就是分类头。输出 O \bm O O Y ˉ \bar{\bm Y} Yˉ之间的损失记为 L \mathcal{L} L。因此,单标签网络的转发过程可表示为
F i = N e t ( X i ) , ( 1 ) O i = W F i + B , ( 2 ) L = − ∑ i N Y ˉ i T l o g ( σ ( O i ) ) , ( 3 ) \bm{F}_i =Net(\bm{X}_i), \qquad (1) \\ \bm{O}_i =\mathcal{W}\bm{F}_i+\bm{B}, \qquad (2) \\ \mathcal{L} = - \sum_i^N \bar{\bm{Y}}_i^T log(\sigma(\bm{O}_i)), \qquad (3) Fi=Net(Xi),(1)Oi=WFi+B,(2)L=iNYˉiTlog(σ(Oi)),(3)
其中 σ \sigma σ为softmax函数, B ∈ R C × 1 \bm{B} \in \mathbb{R}^{C\times 1} BRC×1为输出层的偏置。对于XLC任务,等式2中 O \bm{O} O的长度必须等于 C C C,因为 ∣ O ∣ ≫ ∣ F ∣ |\bm{O}|\gg |\bm{F}| OF\footnote[1]{ ∣ F ∣ |\bm {F}| F 一般在1K左右。}会导致计算过重,从而导致分类器计算过载问题(CCOP)。

2 多头编码(MHE)

2.1 标签分解

MHE中的标签分解包括将极端标签分解为多个易于处理的局部标签,然后将这些局部标签用于训练神经网络。为了更好地理解这个过程,本文可以将极值标签 Y i Y_i Yi概念化为高维空间中的一个点。然后,将其正交坐标分量作为局部标记,训练多头神经网络。这个过程通过重用坐标位置减少了标签的编码长度,从而几何上减少了分类器的计算负荷。
在这里插入图片描述

图2:使用 MHE 的多头分类器的训练和测试过程。 (a) 在训练过程中,全局标签被分解为多个局部标签。 (b) 在测试期间,MHE 以与训练相反的方式工作。 © 用于测试的 MHE 的等效形式结合了多头分类器的局部预测以获得全局预测。注意,红色虚线框标注的操作是为了便于理解而使用的,并不是必须的。

标签分解过程的关键是如何将 Y i Y_i Yi映射到 H H H维空间。本文提出的解决方案是将 Y i Y_i Yi视为一个单热编码向量 I Y i \mathbb{I}_{Y_i} IYi,如图2-a所示。然后将其重塑为一个 H H H维张量 Y ˉ i 1 , . . . , H \bar{\mathcal{Y}}_i^{1,...,H} Yˉi1,...,H。请注意,由于 I Y i \mathbb{I}_{Y_i} IYi是一个单热向量,因此 Y ˉ i 1 , . . . , H \bar{\mathcal{Y}}_i^{1,...,H} Yˉi1,...,H及其组件 { Y ˉ i h } h = 1 H \{\bar{\bm Y}_i^h\}_{h=1}^H {Yˉih}h=1H都是单热编码的。因此, Y i Y_i Yi的分解过程可表示为
I Y i = Y ˉ i 1 ⊗ Y ˉ i 2 ⊗ ⋯ ⊗ Y ˉ i H , ( 4 ) \mathbb{I}_{Y_i} = \bar{\bm Y}_i^1 \otimes \bar{\bm Y}_i^2 \otimes \cdots \otimes \bar{\bm Y}_i^H, \qquad (4) IYi=Yˉi1Yˉi2YˉiH,(4)
其中 ⊗ \otimes 是克罗内克产品。详细示例请参见附录1。等式4表示将极值标签分解为 H H H个短单热向量的乘积,每个短单热向量的近似长度为 C H \sqrt[H]{C} HC 。因此,为每个头部分配每个局部标签来训练网络,将几何上减少分类器中的参数数量,从而解决CCOP问题。

2.2 多头组合(Multi-Head Combination)

上一小节展示了如何将极端标签分解成多个短的局部标签来训练模型。本小节展示了如何在测试期间组合多头的输出以恢复全局预测标签 Y ~ i \tilde{Y}_i Y~i(原始极端标签)。

实际上,测试过程中使用的组合运算是训练过程中使用的分解运算的逆运算。如图2-b所示,如果将每个头部的输出 O i h \bm{O}_i^h Oih视为一个坐标分量,则可以生成 { O i h } h = 1 H \{\bm{O}_i^h\}_{h=1}^H {Oih}h=1H,以形成 H H H维空间中一个点的坐标。然后,通过将该点投影到整数轴上获得预测标签 Y ~ i \tilde{Y}_i Y~i
Y ~ i = Λ ( O ~ i ) = Λ ( O i 1 ⊗ O i 2 ⊗ ⋯ ⊗ O i H ) , ( 5 ) \tilde{Y}_i = \varLambda (\tilde{\bm O}_i) = \varLambda(\bm {O}_i^1 \otimes \bm {O}_i^2 \otimes \cdots \otimes \bm {O}_i^H), \qquad (5) Y~i=Λ(O~i)=Λ(Oi1Oi2OiH),(5)
其中 Λ \varLambda Λ是Argmax操作。虽然 Y ~ i \tilde{Y}_i Y~i可以通过Eq. 5得到,但是 O ~ i \tilde{\bm O}_i O~i ∣ O ~ i ∣ = C |\tilde{\bm O}_i|=C O~i=C)和 H − 1 H-1 H1的超长Kronecker产品操作将消耗巨大的计算和存储资源。因此,有必要简化式Eq. 5中的推理过程。

一个理想的解决方案是利用局部预测标签直接计算全局预测标签,即
Y ^ i = Λ ( Y ˉ i ) = Λ ( I Y ~ i 1 ⊗ I Y ~ i 2 ⊗ ⋯ ⊗ I Y ~ i H ) = Λ ( I Λ ( O i 1 ) ⊗ I Λ ( O i 2 ) ⊗ ⋯ ⊗ I Λ ( O i H ) ) , ( 6 ) \hat{Y}_i = \varLambda(\bar{\bm Y}_i) = \varLambda( \mathbb{I}_{\tilde{Y}_i^1} \otimes \mathbb{I}_{\tilde{Y}_i^2} \otimes \cdots \otimes \mathbb{I}_{\tilde{Y}_i^H}) \\ = \varLambda( \mathbb{I}_{\varLambda(\bm{O}_i^1)} \otimes \mathbb{I}_{\varLambda(\bm{O}_i^2)} \otimes \cdots \otimes \mathbb{I}_{\varLambda(\bm{O}_i^H)}) , \qquad (6) Y^i=Λ(Yˉi)=Λ(IY~i1IY~i2IY~iH)=Λ(IΛ(Oi1)IΛ(Oi2)IΛ(OiH)),(6)
其中 I Λ ( ⋅ ) \mathbb{I}_{\varLambda(\cdot)} IΛ()是矢量执行Argmax后的OHE。可以看出,等式6中的 Y ~ i \tilde{Y}_i Y~i H − 1 H-1 H1单热编码向量的乘积,可以从局部标签及其长度计算得到
Y ~ i = f ( { Y ~ i h , ∣ O h ∣ } h = 1 H ) , ( 7 ) \tilde{Y}_i = f (\{\tilde{Y}_i^h, |O^h|\}_{h=1}^H) , \qquad (7) Y~i=f({Y~ih,Oh}h=1H),(7)
其中 f f f是待确定的函数。

虽然Eq. 6可以通过结合局部预测标签计算出全局预测标签,但它是否等同于Eq. 5 ?也就是说, Y ^ i \hat{Y}_i Y^i是否等于 Y ~ i \tilde{Y}_i Y~i ?实际上,等式6和等式5中的组合过程是等价的,可以用下面的定理来证明

Theorem 1: 对于多头分类器的输出 { O h } h = 1 H \{\bm{O}^h\}_{h=1}^H {Oh}h=1H,本文有
Y ~ = Λ ( O 1 ⊗ O 2 ⊗ ⋯ ⊗ O H ) = Λ ( I Λ ( O 1 ) ⊗ I Λ ( O 2 ) ⊗ ⋯ ⊗ I Λ ( O H ) ) . ( 8 ) \tilde{Y} = \varLambda(\bm{O}^1 \otimes \bm{O}^2 \otimes \cdots \otimes \bm{O}^H) \nonumber \\ = \varLambda(\mathbb{I}_{\varLambda(\bm{O}^1)} \otimes \mathbb{I}_{\varLambda(\bm{O}^2)} \otimes \cdots \otimes \mathbb{I}_{\varLambda(\bm{O}^H)}). \qquad (8) Y~=Λ(O1O2OH)=Λ(IΛ(O1)IΛ(O2)IΛ(OH)).(8)
定理1}的证明在附录A-1中给出。定理1证明了等式5和6是等价的,具有相同的表示能力。由于Eq. 6可以简化计算过程,因此使用MHE加速模型的速度是至关重要的。

此外,如果使用Eq. 5中带有MHE的多头分类器的输出 O ~ \tilde{\bm O} O~来近似Eq. 2中带有OHE的普通分类器的输出 O \bm O O,本文有以下推论。
Corollary 1: 如果 O ≈ O ~ = O 1 ⊗ O 2 ⊗ ⋯ ⊗ O H \bm{O} \approx \tilde{\bm O} = \bm{O}^1 \otimes \bm{O}^2 \otimes \cdots \otimes \bm{O}^H OO~=O1O2OH,本文有
Λ ( O ) = Λ ( I Λ ( O 1 ) ⊗ I Λ ( O 2 ) ⊗ ⋯ ⊗ I Λ ( O H ) ) . ( 9 ) \varLambda(\bm{O}) = \varLambda(\mathbb{I}_{\varLambda(\bm{O}^1)} \otimes \mathbb{I}_{\varLambda(\bm{O}^2)} \otimes \cdots \otimes \mathbb{I}_{\varLambda(\bm{O}^H)}). \qquad (9) Λ(O)=Λ(IΛ(O1)IΛ(O2)IΛ(OH)).(9)
推论1的证明见附录A-2。这个推论断言,如果原始分类器的输出被分解为多头分类器输出的近似值,那么两个分类器的预测是一致的。

背景动机参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 1
基础知识参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2
算法实现参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 3
表示能力参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 4
实验结果参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 5
无需预处理见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 6

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

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

相关文章

攻防世界 - Misc - Level 1 | 适合作为桌面

关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客 0x01:考点速览 想要通过本关,你需要掌握以下知识点: Stegolve 查看图片隐写内容。 了解 pyc 文件,并知道如何通过 Wi…

Unity 从零开始的框架搭建1-3 关于命令模式的一些思考

Unity 从零开始的框架搭建1-2 事件的发布-订阅-取消的小优化及调用对象方法总结[半干货]-CSDN博客 本人水平有限 如有不足还请斧正,该文章专栏是向QFrameWork作者凉鞋老师学习总结得来,吃水不忘打井人,不胜感激 关于此模式我曾实现过&#…

UVM :uvm_sequence_item property and methods

transaction是uvm_sequence_item的一个子类。 topic transaction介绍 uvm_sequence_item override Set_type_override:同类型替换 Set_inst_override:同例化替换

SpringBoot原理分析-1

SpringBoot原理分析 作为一个javaer,和boot打交道是很常见的吧。熟悉boot的人都会知道,启动一个springboot应用,就是用鼠标点一下启动main方法,然后等着就行了。我们来看看这个main里面。 SpringBootApplication public class E…

前端(API)学习笔记(CLASS 4):进阶

1、日期对象 日期对象:用来表示事件的对象 作用:可以得到当前系统时间 1、实例化 在代码中发现了new关键字,一般将这个操作称为实例化 创建一个时间对象并获取时间 获得当前时间 const datenew Date() 使用日志查看,得到的…

力扣刷题:二叉树OJ篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 1.单值二叉树(1)题目描…

4.1.2 栈和队列(二)

文章目录 队列的定义队列的基本运算队列的存储结构 队列的定义 队列先进先出,仅允许一端插入、一端删除 队尾(Rear),插入 队头(Front),删除 队列的基本运算 队列的基本运算 初始化空队列:initQueue(Q)判队空:isEmpty…

【HeadFirst系列之HeadFirst设计模式】第1天之HeadFirst设计模式开胃菜

HeadFirst设计模式开胃菜 前言 从今日起,陆续分享《HeadFirst设计模式》的读书笔记,希望能够帮助大家更好的理解设计模式,提高自己的编程能力。 今天要分享的是【HeadFirst设计模式开胃菜】,主要介绍了设计模式的基本概念、设计模…

Oracle数据库如何找到 Top Hard Parsing SQL 语句?

有一个数据库应用程序存在过多的解析问题,因此需要找到产生大量硬解析的主要语句。 什么是硬解析 Oracle数据库中的硬解析(Hard Parse)是指在执行SQL语句时,数据库需要重新解析该SQL语句,并创建新的执行计划的过程。这…

【GBT32960协议学习系列】GBT 32960协议的背景、目的和适用范围

GBT 32960协议的背景、目的和适用范围 1. GBT 32960协议的背景 GBT 32960是中国国家标准,全称为《电动汽车远程服务与管理系统技术规范》。该标准由中国国家标准化管理委员会发布,旨在规范电动汽车远程服务与管理系统的技术要求,确保电动汽车…

蓝桥杯备赛:C++基础,顺序表和vector(STL)

目录 一.C基础 1.第一个C程序: 2.头文件: 3.cin和cout初识: 4.命名空间: 二.顺序表和vector(STL) 1.顺序表的基本操作: 2.封装静态顺序表: 3.动态顺序表--vector:…

创建并配置华为云虚拟私有云

目录 私有云 创建虚拟私有云 私有云 私有云是一种云计算模式,它将云服务部署在企业或组织内部的私有基础设施上,仅供该企业或组织内部使用,不对外提供服务.私有云的主要特点包括: 私密性:私有云的资源(如…

OWASP ZAP之API 请求基础知识

ZAP API 提供对 ZAP 大部分核心功能的访问,例如主动扫描器和蜘蛛。ZAP API 在守护进程模式和桌面模式下默认启用。如果您使用 ZAP 桌面,则可以通过访问以下屏幕来配置 API: Tools -> Options -> API。 ZAP 需要 API 密钥才能通过 REST API 执行特定操作。必须在所有 …

音视频入门基础:MPEG2-PS专题(3)——MPEG2-PS格式简介

一、引言 本文对MPEG2-PS格式进行简介。 进行简介之前,请各位先下载MPEG2-PS的官方文档。ITU-T和ISO/IEC都分别提供MPEG2-PS的官方文档。但是ITU提供的文档是免费的,ISO/IEC是付费的,所以我们主要阅读ITU提供的官方文档,比如较新…

CPT203 Software Engineering 软件工程 Pt.3 系统建模(中英双语)

文章目录 5. System Modeling(系统建模)5.1 Context models(上下文模型)5.2 Interaction models(交互模型)5.2.1 Use case modeling(用况建模)5.2.2 Sequence diagram(顺…

什么是Kafka的重平衡机制?

Kafka 的重平衛机制是指在消费者组中新增或删除消费者时,Kafka 集群会重新分配主题分区给各个消费者,以保证每个消费者消费的分区数量尽可能均衡。 重平衡机制的目的是实现消费者的负载均衡和高可用性,以确保每个消费者都能够按照预期的方式…

Nginx——反向代理(三/五)

目录 1.Nginx 反向代理1.1.Nginx 反向代理概述1.2.Nginx 反向代理的配置语法1.2.1.proxy_pass1.2.2.proxy_set_header1.2.3.proxy_redirect 1.3.Nginx 反向代理实战1.4.Nginx 的安全控制1.4.1.如何使用 SSL 对流量进行加密1.4.2.Nginx 添加 SSL 的支持1.4.3.Nginx 的 SSL 相关指…

VBA(Visual Basic for Applications)编程|excel|一系列网址或文件路径快速转换为可点击的超链接

很多时候,我们需要把导入的数据某一列转换成超链接,比如URL形式的列。 那么,大批量的情况下,无疑一个个手动点击是非常愚蠢的办法,这个时候我们就需要VBA编程来编写宏,通过编写宏来简化这些手动操作并不现…

【C++】图像模糊处理题目详解与实现

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述题目内容输入格式输出格式示例输入:输出: 💯题目分析问题拆解 💯我的做法代码实现代码分析 💯老师的做法…

在 Ubuntu 22.04 上部署 AppArmor 应用安全教程

在这篇教程中,我们将为你设置 AppArmor 以增强应用程序的安全性。 AppArmor 是一个 Linux 安全模块,允许你限制各个程序的功能。通过强制执行强制访问控制策略,AppArmor 增强了你的应用程序和系统的安全性。 AppArmor 是一个易于使用的 Lin…