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

论文笔记:是什么让多模态学习变得困难?

整理了What Makes Training Multi-modal Classification Networks Hard? 论文的阅读笔记

  • 背景
  • 方法
    • OGR
    • 基于最小化OGR的多监督信号混合
    • 在实践中的应用
  • 实验

背景

  直观上,多模态网络接收更多的信息,因此它应该匹配或优于其单峰网络。然而,最好的单模态网络往往优于多模态网络。这种观察在不同的模态组合以及不同的视频分类任务和基准上是一致的。如表一所示:

  本文提出了两个主要原因:多模态网络往往容易过拟合;不同的模态过拟合和泛化率不同,因此使用单一优化策略联合训练它们是次优的。图一展示了一些尝试的改进,包括dropout、早停、SE门和NL门等,然而,这些方法都无法解决这些问题。
  本文提出了一种称为顺应性混合(Gradient-Blending)的技术缓解这种情况,这是一种新的训练方案,与任务无关、与架构无关,通过多个监督信号的最佳混合来最小化OGR(在下文中提出)。

方法

OGR

  我们首先假设单峰学习和多峰学习的基本形式:
L ( C ( φ m ( X ) ) , y ) \mathcal{L}(\mathcal{C}(\varphi_m(X)),y) L(C(φm(X)),y) L m u l t i ( C ( φ m 1 ⊕ φ m 2 ⊕ . . . φ m k ) , y ) \mathcal{L}_{multi}(\mathcal{C}(\varphi_{m_1}\oplus\varphi_{m_2}\oplus...\ \varphi_{m_k}),y) Lmulti(C(φm1φm2... φmk),y)  其中, C \mathcal{C} C表示分类器, φ m \varphi_m φm表示模态特定权重, y y y是标签。多峰网络是单峰网络的超集,对于多峰网络中任何一个模态,通过选择最好权重,可以构造与单峰网络同样好的解,然而在实际情况,这是不可能的。
  过拟合通常被理解为在训练集中学习到的模式不会推广到目标分布。基于这一点,我们可以将第 N N N个时期的过拟合定义为 L N T \mathcal{L}_N^T LNT L N V \mathcal{L}_N^V LNV之间的差距。两个模型检查点之间的训练质量可以通过过拟合和泛化的变化来衡量(图3中的 Δ G \Delta G ΔG Δ O \Delta O ΔO)。在检查点 N N N N + n N+n N+n之间,我们可以定义过拟合与泛化比(OGR): O G R ≡ ∣ Δ O N , n Δ G N , n ∣ = ∣ Δ O N + n − O N L N ∗ − L N + n ∗ ∣ OGR\equiv|\frac{\Delta O_{N,n}}{\Delta G_{N,n}}|=|\frac{\Delta O_{N+n}-O_N}{\mathcal{L}_N^*-\mathcal{L}_{N+n}^*}| OGRΔGN,nΔON,n=LNLN+nΔON+nON
在这里插入图片描述
  直观上,我们可以在训练期间最小化 O G R OGR OGR,但是有两个麻烦:1、全局优化OGR将是非常昂贵的。2、如果是欠拟合模型,那么这个损失会非常小。
  因此,我们建议解决一个无穷小问题:给定梯度的几个估计,将它们混合以最小化无穷小 O G R 2 OGR^2 OGR2,我们将此混合应用于优化流程。每个梯度步长在验证损失的每单位增益上尽可能少地增加泛化误差,从而最大限度地减少过拟合。在多模态设置中,这意味着我们将来自多个模态的梯度估计结合起来,并最小化OGR2,以确保每个梯度步长现在产生的增益不比单个最佳模态的增益差。这个 L 2 L^2 L2问题允许一个简单的封闭式解决方案,易于实现,并且在实践中工作得很好。
  考虑一个单一的参数更新步骤,其估计为梯度。由于两个检查点之间的距离很小,我们使用一阶近似: Δ G ≈ < ∇ L ∗ , g ∗ > \Delta G ≈ <\nabla \mathcal{L}^*,g^*> ΔG≈<L,g> Δ O ≈ < ∇ L T − ∇ L ∗ , g ∗ > \Delta O ≈ <\nabla \mathcal{L}^T-\nabla \mathcal{L}^*,g^*> ΔO≈<LTL,g>。因此,对于单个向量 g ∗ g^* g O G R 2 OGR^2 OGR2为: O C R 2 = ( < ∇ L T − ∇ L ∗ , g ∗ > < ∇ L ∗ , g ∗ > ) 2 OCR^2=(\frac{<\nabla \mathcal{L}^T-\nabla \mathcal{L}^*,g^*>}{<\nabla \mathcal{L}^*,g^*>})^2 OCR2=(<L,g><LTL,g>)2

基于最小化OGR的多监督信号混合

  我们可以通过为每个模态的特征和融合特征分别添加分类器来获得梯度的多个估计(下图c)。通过分别反向传播每个损失来获得每模态梯度 { g ^ i } i = 1 k \{\hat g_i\}_{i=1}^k {g^i}i=1k。我们的下一个结果允许我们将它们全部混合到具有更好泛化行为的单个向量中。
在这里插入图片描述  设 { v k } 0 M \{v_k\}_0^M {vk}0M L ∗ \mathcal{L}^* L的一组估计值,其过拟合近似为 E [ < ∇ L T − ∇ L ∗ , v k > < ∇ L T − ∇ L ∗ , v j > ] = 0 , j ≠ k \mathbb{E}[<\nabla \mathcal{L}^T-\nabla \mathcal{L}^*,v_k><\nabla \mathcal{L}^T-\nabla \mathcal{L}^*,v_j>]=0,j\neq k E[<LTL,vk><LTL,vj>]=0,j=k。给定约束 ∑ k w k = 1 \sum_kw_k=1 kwk=1,该问题的最优权重 w k ∈ R w_k\in \mathcal{R} wkR w ∗ = a r g m i n E [ ( < ∇ L T − ∇ L ∗ , ∑ k w k v k > L ∗ , ∑ k w k v k ) 2 ] w^*=arg min \mathbb{E}[(\frac{<\nabla \mathcal{L}^T-\nabla \mathcal{L}^*,\sum_kw_kv_k>}{\mathcal{L}^*,\sum_kw_kv_k})^2] w=argminE[(L,kwkvk<LTL,kwkvk>)2]  are given by: w k ∗ = 1 Z < L ∗ , v k > σ k 2 w^*_k=\frac{1}{Z}\frac{<\mathcal{L}^*,v_k>}{\sigma_k^2} wk=Z1σk2<L,vk>  其中, σ k 2 ≡ E [ < ∇ L T − ∇ L ∗ , v k > ] \sigma_k^2\equiv\mathbb{E}[<\nabla \mathcal{L}^T-\nabla \mathcal{L}^*,v_k>] σk2E[<LTL,vk>] Z Z Z是一个标准化常数 Z = ∑ k < L ∗ , v k > 2 σ k 2 Z=\sum_k\frac{<\mathcal{L}^*,v_k>}{2\sigma_k^2} Z=k2σk2<L,vk>

在实践中的应用

  我们采用多任务架构来构建上述优化的近似解决方案。即为所有模态构建单独的损失。在每个反向传播步骤中,模态 m i m_i mi梯度是 ∇ L i \nabla \mathcal{L}_i Li,来自融合损失的梯度记为 L k + 1 \mathcal{L}_{k+1} Lk+1。产生混合梯度: L b l e n d = ∑ i = 1 k + 1 w i L i \mathcal{L}_{blend}=\sum_{i=1}^{k+1}w_i\mathcal{L}_i Lblend=i=1k+1wiLi  通过适当选择 w i w_i wi,就产生了实现梯度混合的方便方法。直观地,损失重新加权重新校准学习时间表,以平衡不同模态的泛化/过拟合率。
  在实践中,我们无法看到目标分布结果(测试集)测量OGR。为了测量OGR,我们保留训练集的子集V来近似目标分布。算法1提供了一种连续混合权重估计。以及两种不同的梯度混合方法(算法2,算法3):1.离线渐变混合(Offline Gradient-Blending):只计算一次权重,并使用一组固定权重来训练整个时期。2.在线渐变混合(Online Gradient-Blending):完整版本,定期重新计算权重(例如,每n个epoch称为超级epoch),并使用超级epoch的新权重来训练模型。

实验

  本文使用三种视频数据集进行消融:Kinetics、mini-Sports和mini-AudioSet:
在这里插入图片描述
  本文的方法超过了单峰和后期融合。本文进一步验证了朴素联合训练中的过拟合问题:
在这里插入图片描述
  在这两个数据集上,音频模型过拟合最多,视频过拟合最少。与仅视频模型相比,朴素联合音频-RGB模型具有较低的训练误差和较高的验证误差;即朴素音频-RGB联合训练增加了过拟合,解释了与单独视频相比的准确性下降。我们扩展了分析,考虑了三种模态(音频、RGB和光流)的所有4种可能组合。在每种情况下,朴素联合训练的验证准确度都明显低于最佳单流模型(表1),而训练准确度几乎总是更高。
  不同优化器的比较:
在这里插入图片描述
  表四给出了本文的方法与朴素联合训练和最佳单流模型的比较:
在这里插入图片描述
  G-Blend在不同的基准测试和任务上优于所有基线方法:
在这里插入图片描述
  在AudioSet上与最新方法的比较。GBlend在性能上大大优于现有的方法:
在这里插入图片描述  与EPIC-Kitchen最先进方法的比较:
在这里插入图片描述

相关文章:

论文笔记:是什么让多模态学习变得困难?

整理了What Makes Training Multi-modal Classification Networks Hard? 论文的阅读笔记 背景方法OGR基于最小化OGR的多监督信号混合在实践中的应用 实验 背景 直观上&#xff0c;多模态网络接收更多的信息&#xff0c;因此它应该匹配或优于其单峰网络。然而&#xff0c;最好的…...

ChatGPT Search开放:实时多模态搜索新体验

点击访问 chatTools 免费体验GPT最新模型&#xff0c;包括o1推理模型、GPT4o、Claude、Gemini等模型&#xff01; ChatGPT Search&#xff1a;功能亮点解析 本次更新的ChatGPT Search带来了多项令人瞩目的功能&#xff0c;使其在搜索引擎市场中更具竞争力。 1. 高级语音模式&…...

Centos7.9 离线安装docker

实验环境&#xff1a; [root192 ~]# cat /etc/system-release CentOS Linux release 7.9.2009 (Core)下载二进制压缩包 a. 官网下载地址&#xff1a; https://download.docker.com/linux/static/stable/x86_64/b. 阿里云下载地址 https://mirrors.aliyun.com/docker-ce/lin…...

C语言函数在调用过程中具体是怎么和栈互动的?

从栈开始的一场C语言探险记 —— C语言函数是如何与栈"共舞"的。 栈的舞步解析 通过一个简单的例子来看看这支"舞蹈"&#xff1a; int add(int a, int b) {int result a b;return result; }int main() {int x 10;int y 20;int sum add(x, y);retur…...

【Java中常见的异常及其处理方式】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 字符串修改的实现——StringBuilder和StringBuffer异常常见异常①算数异常②数组越界异常③空指针异…...

如何更新项目中的 npm 或 Yarn 依赖包至最新版本

要升级 package.json 文件中列出的包&#xff0c;你可以使用 npm&#xff08;Node Package Manager&#xff09;或 yarn。以下是两种工具的命令来更新你的依赖项&#xff1a; 使用 npm 更新所有包到最新版本 npm update如果你想将所有依赖项更新到其各自最新的大版本&#xf…...

SpringBoot3整合FastJSON2如何配置configureMessageConverters

在 Spring Boot 3 中整合 FastJSON 2 主要涉及到以下几个步骤&#xff0c;包括添加依赖、配置 FastJSON 作为 JSON 处理器等。下面是详细的步骤&#xff1a; 1. 添加依赖 首先&#xff0c;你需要在你的 pom.xml 文件中添加 FastJSON 2 的依赖。以下是 Maven 依赖的示例&#…...

《Vue3实战教程》2:Vue3快速上手

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 快速上手​ 线上尝试 Vue​ 想要快速体验 Vue&#xff0c;你可以直接试试我们的演练场。 如果你更喜欢不用任何构建的原始 HTML&#xff0c;可以使用 JSFiddle 入门。 如果你已经比较熟悉 Node.js 和构建工具等概念…...

ubuntu 24.04.1安装FTP流程

1、安装vsftpd&#xff1a; sudo apt update sudo apt install vsftpd 2、安装后重启查看vsftpd状态 sudo systemctl status vsftpd 输出如下所示&#xff0c;表明vsftpd服务处于活动状态并正在运行&#xff1a; * vsftpd.service - vsftpd FTP server Loaded: loaded (/…...

多功能护照阅读器港澳通行证阅读机RS232串口主动输出协议,支持和单片机/Linux对接使用

此护照阅读器支持护照、电子芯片护照、港澳通行证、台湾通行证&#xff0c;和串口的被动的方式不一样。此护照阅读器通电后&#xff0c;自动读卡&#xff0c;串口输出&#xff0c;软件只需要去串口监听数据即可&#xff0c;例如用串口助手就可以收到读卡信息。 非常适用于单片…...

5个用于构建Web应用程序的Go Web框架

探索高效Web开发的顶级Go框架 Go&#xff08;或称为Golang&#xff09;以其简洁性、高效性和出色的标准库而闻名。然而&#xff0c;有几个流行的Go Web框架和库为构建Web应用程序提供了额外的功能。以下是五个最值得注意的Go框架&#xff1a; 1. Gin&#xff1a; Gin是一个高…...

Qt中的异步相关类

Qt中的异步相关类 今天在学习别人的项目时&#xff0c;看到别人包含了QFuture类&#xff0c;我没有见过&#xff0c;于是记录一下。 直接在AI助手中搜索QFuture,得到的时Qt中异步相关的类。于是直接查询一下Qt异步中相关的类。 在Qt中&#xff0c;异步编程是一个重要的概念&…...

浅谈仓颉语言的优劣

仓颉语言&#xff0c;作为华为自研的新一代编程语言&#xff0c;以其高效、安全、现代化的特点&#xff0c;引起了广泛的关注。 仓颉语言的优势 高效并发 仓颉语言的一大亮点是其轻松并发的能力。它实现了轻量化用户态线程和并发对象库&#xff0c;使得高效并发变得轻松。仓颉…...

Linux 显示系统活动进程状态命令 ps 详细介绍

Linux 和类 Unix 操作系统中的 ps&#xff08;Process Status&#xff09;命令用于显示当前系统中活动进程状态的命令。它提供了关于系统中正在运行的进程的详细信息&#xff0c;如进程 ID&#xff08;PID&#xff09;、父进程 ID&#xff08;PPID&#xff09;、运行时间、使用…...

scala中正则表达式的使用

正则表达式&#xff1a; 基本概念 在 Scala 中&#xff0c;正则表达式是用于处理文本模式匹配的强大工具。它通过java.util.regex.Pattern和java.util.regex.Matcher这两个 Java 类来实现&#xff08;因为 Scala 运行在 Java 虚拟机上&#xff0c;可以无缝使用 Java 类库&…...

数据分析和AI丨知识图谱,AI革命中数据集成和模型构建的关键推动者

人工智能&#xff08;AI&#xff09;已经吸引了数据科学家、技术领导者以及任何使用数据进行商业决策者的兴趣。绝大多数企业都希望利用人工智能技术来增强洞察力和生产力&#xff0c;而对于这些企业而言&#xff0c;数据集的质量差成为了最主要的障碍。 数据源需要进行清洗且明…...

cocos creator制作2dTop-down游戏(虚拟摇杆、地图加载)

《不被遗忘的时光》第一期 1、游戏的形式&#xff1a;横板&#xff1b;2d的顶视角&#xff08;Top-down&#xff09;&#xff1b;射击&#xff1b;ARPG&#xff1b;益智解谜。 2、画风&#xff1a;类似手游《伊洛纳》。 3、故事背景&#xff1a;以中元节的爷孙阴阳交流作为故…...

SQL Server 批量插入数据的方式汇总及优缺点分析

在 SQL Server 中,批量插入数据是非常常见的操作,尤其是在需要导入大量数据时。以下是几种常用的批量插入数据的方式: 1. 使用 INSERT INTO ... VALUES • 特点:适用于少量数据插入。 • 优点:简单易用。 • 缺点:不适合大量数据插入,性能较差。 • 示例:…...

linux上抓包RoCEv2

1、检查tcpdump版本 tcpdump help&#xff08;4.99.4以上&#xff09; 如果版本较低需要重新下载编译&#xff1a; wget https://www.tcpdump.org/release/libpcap-1.10.5.tar.xz wget http://www.tcpdump.org/release/tcpdump-4.99.4.tar.gz tar -xJf libpcap-1.10.5.tar.xz…...

【机器学习与数据挖掘实战】案例04:基于K-Means算法的信用卡高风险客户识别

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支&#xff0c;专注于让计算机系统通过数据学习和改进。它利用统计和计算方法&#xff0c;使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...