通俗说法:在多模态自监督学习中,将共享信息和独有信息分离开来

Abstract

问题: 传统方法通常假设在训练和推理阶段都可以访问所有模态信息,这在实际应用中面对模态不完整输入时会导致性能显著下降。
解决方法:提出了一种面向遥感数据融合和多模态Transformer的全新不完整多模态学习方法,有监督自监督训练都适用
方法简述: 利用多模态Transformer ,结合模态注意力,掩码自注意力机制,整合额外学习得到的token
方法结合重构损失与对比损失

Introduction

传统方法: 为了融合不同模态的互补信息,依赖于基于特定领域知识的人为设计特征和融合策略;
基于CNN的深度方法通常假设所有模态在训练与推理阶段都是完整可用的,这在实际应用中却是一个限制因素,因为数据采集过程中可能存在部分模态缺失。
不完整模态学习: 对缺失模态用生成模型,或者知识蒸馏(幻觉网络)尽管有一定的效果,但是需要为每一类模态分别部署和训练一个模型。
目标:一些新方法致力于训练一个统一模型来应对下游任务中的不完整模态问题,在这种背景下,实现模态不变(modality-invariant)的融合嵌入表示成为提高鲁棒性的重要手段,尤其适用于部分模态缺失的情况。

近年来没有同时满足自监督和允许不完整模态输入
why 自监督:有监督训练泛化能力差,训练大规模数据集成本高
why 不完整模态输入:实际应用场景存在不完整模态

方法简述

贡献:1.提出在多模态Transformer中引入模态注意力与掩码自注意力机制,用于构建跨模态的融合token,以实现适用于不完整模态输入的对比与重构预训练。
2.在下游任务中,我们基于上述机制提出了随机模态组合训练策略,确保模型在推理阶段面对模态缺失时依然具备强性能。
3.再公开的DFC2023 Track2数据集,和自己构建的四模态数据集,与标准多模态Transformer 对比取得了当前最优性能

Conclusion

本问提出了一种适用于多模态遥感数据融合任务的不完整模态学习框架,支持有监督和自监督,我们的方法支持模态不完整的条件下进行模型的训练和推理。
通过引入模态注意力机制掩码自注意力机制,我们能够在 MultiMAE 框架中利用对比损失与重构损失对网络进行预训练,同时也可以通过随机模态组合训练策略,从零开始训练或在下游任务中对模型进行微调。该策略使网络在推理阶段即便仅接收到部分模态甚至单一模态输入时,也能保持较高的性能。
(通过俩注意力机制,用俩损失函数,和一个随机组合模态的训练策略训练)

RELATED WORKS

多模态遥感数据融合

多模态掩码自动编码器(MultiMAE)

与依赖对比目标的自监督方法不同,MultiMAE 使用一种预训练任务:对每个输入模态的掩码图像块进行重建。

多模态Transformer

METHODOLOGY

在这里插入图片描述

A 网络架构

主体架构采用VIT ,对每个模态划分16*16patch 进入线性层映射为D维,加入位置嵌入,引入融合token
与瓶颈融合token 不同,采用的是空间融合token,数量与patch一样,然后模态自注意力机制把不同模态的信息融合到token,然后拼接送入Transformer 编码器,使用掩码自注意力机制

B 模态注意力

在这里插入图片描述
融合token :可学习参数,作为Query 在四种模态中学习怎么融合,整合信息。

C 掩码自注意力机制

目的是让每个模态输出自己纯净的信息,让融合的模态输出的是融合的信息,需要通过掩码来实现
在这里插入图片描述
在这里插入图片描述

左侧是融合后的token ,重建成5*5的权限矩阵,每个模态只能与自己做SA ,而融合模态要与其他四个做CA

是要设计权限矩阵也就是图中的m,为每个模态计算时只关注每个模态纯净的信息。

D 重构预训练

用融合后的token 去做生成与原图计算损失,并应用于下游任务
使用浅解码器是为了避免decoder过强而抹杀encoder 的学习

理解Transformer :最后算完的token 怎么用?当作库,利用Qeury 不断的和库里的KV 算,进行预测

E 对比学习

为每个模态引入一个class_token ,对最后一个自注意力层输出的token 做CA ,损失函数在这里插入图片描述
目的是在同一批次的样本中,强迫模型认出哪个融合向量是与当前单模态向量真正“配对”的,并拉近它们的距离

F. Random Modalities Combination

Transformer 容易对任务中占主导地位的模态过拟合,为了提升鲁棒性,提出一种随机模态组合策略,在预训练下游任务训练中
预训练:patch 随机掩码
下游任务:1.patchdropout 2.随机模态组合

实验

数据集:

DFC2023 Track2 - 建筑物实例/语义分割
四元组数据集 - 土地利用土地覆盖制图

实验部分核心内容提炼
一、 实验目标与设置
核心目标:证明该方法在**模态不完整(有模态缺失)**的情况下,依然能保持强大性能,远超传统方法。

两大任务:实验在两个实际的下游任务上进行,分别是建筑物分割和土地利用覆盖(LULC)制图。

两种范式:对每个任务,都进行了两种模式的评估:

从零开始监督学习:不使用任何预训练权重,直接在任务数据上训练。

预训练后微调:先在大量数据上进行“重建+对比”的自监督预训练,然后用预训练好的模型去微调下游任务。

二、 主要实验结论
模态完整时表现更优:在所有模态都可用的理想情况下,该方法性能已经优于一个简化的对比模型(MultiViT)。

模态不完整时优势巨大(最关键的结论):

当输入模态有缺失时,对比模型(MultiViT)因为严重“偏科”(过拟合)于主导模态(如光学图像),性能会断崖式下跌,甚至完全失效。

而本文提出的方法,得益于**“随机模态组合”的训练策略,即使只输入单一模态(甚至是“非主导”的模态),依然能保持非常高的性能**,展现出极强的鲁棒性。

预训练的有效性因任务而异:

对于建筑物分割任务,一个有趣的发现是“从零开始训练”的模型表现最佳。

而对于土地利用覆盖(LULC)制图任务,经过“重建+对比”双重预训练的模型表现最好。这说明对比学习对于增强该任务的特征有显著帮助。

三、 核心模块有效性验证(消融实验)
作者通过“控制变量法”证明了其提出的每个模块都是必不可少的:

随机模态组合策略:极其重要。如果不使用这个策略,模型在模态缺失时性能会严重下降,证明这个“魔鬼训练法”是提升鲁棒性的关键。

模态注意力 (即交叉注意力):非常有效。如果移除这个模块,性能会显著下降,证明这是融合Token有效汇集各模态信息的关键一步。

掩码自注意力:有益处。虽然它限制了模态间的直接交互,但实验证明它对于保持单模态的“纯净性”和性能至关重要,最终对整体训练过程产生了积极影响。

四、 对模态贡献的分析与洞察
该框架还能帮助分析不同模态对特定任务的贡献度:

对于建筑物分割:光学图像的贡献最大,其次是DSM(高度图),而SAR图像贡献最小,有时甚至会引入噪声。

对于土地利用覆盖制图:DNW地图和Sentinel-2图像贡献最大,而DEM(高程)数据则不太关键。

这个分析表明,该方法不仅性能强大,还能为实际应用中如何选择最优、最经济的模态组合提供决策依据。

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

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

相关文章

【iOS】weak修饰符

前言前面我们已经学习了解了sideTable,今天来看看在OC中,sideTable是如何在我们使用weak时工作的。在OC中,weak修饰符是一种用于声明“弱引用”的关键字,其核心特性是不参与对象的引用计数管理,而且当被引用的对象被释…

【JVM篇10】:三种垃圾回收算法对比详解

文章目录1. 标记-清除算法2. 复制算法3. 标记-整理算法总结与面试要点在通过 可达性分析等算法识别出所有存活对象和垃圾对象后,垃圾收集器(GC:Garbage Collector)就需要执行回收操作来释放垃圾对象所占用的内存。以下是三种最基础…

JXD进步25.7.30

1.为啥是update,因为你if判断有问题。或者是你上来就给id赋值了。2. 这个是清空network历史3.断点位置打在这里:打在上面它进不来4.

Flutter开发实战之网络请求与数据处理

第6章:网络请求与数据处理 “数据是应用的血液,网络是连接世界的桥梁。” 在移动应用开发中,与服务器进行数据交互是必不可少的功能。无论是获取用户信息、提交表单数据,还是上传图片、下载文件,都离不开网络请求。本章将带你深入掌握Flutter中的网络编程技巧。 6.1 网络…

快速分页实现热点功能-索引和order by

需求:分页求出进三天的发布视频的权重热度 权重 / 衰减时间 衰减时间 当前时间 - 视频发布时间 小根堆来实现这个公式可以很好的利用半衰期来进行解决难点:如果一次性加载太多到springBoot服务器里面会造成堆内存占用过多,分页又有可能造成深分页问题,…

HAProxy(高可用性代理)

1 HAProxy 简介 HAProxy( High Availability Proxy)是一个高性能的负载均衡器和代理服务器,为基于 TCP 和 HTTP 的应用程序提供高可用性、负载平衡和代理,广泛应用于提高 web 应用程序的性能和可靠性。它支持多种协议&#xff0c…

Vulnhub靶场:ica1

一、信息收集nmap扫描一下IP。(扫不出来的可以看一下前面几篇找ip的步骤)下面给了框架的版本是9.2的,我们去kali里搜一下有没有已经公开的漏洞。searchsploit qdPM 9.2 locate 50176.txt more /usr/share/exploitdb/exploits/php/webapps/50…

【Dv3admin】ORM数据库无法查询的问题

Django 运行过程中,数据库连接的健康状态直接影响应用的稳定性和数据访问准确性。长时间空闲的数据库连接经常因外部机制被回收,进而引发数据查询异常和返回无效结果。 本文围绕 Django 中数据库连接长时间空闲导致的连接失效问题,介绍相关的…

使用 Flownex 对机械呼吸机进行建模

当患者无法独立呼吸时,机械呼吸机通过气管插管将富氧空气输送到患者的肺部。肺是敏感而复杂的器官,因此在无法忍受的压力和体积范围内提供空气,根据每分钟所需的呼吸次数计时,并适当加湿和加热。机械呼吸机的精确建模对于其安全有…

力扣刷题日常(7-8)

力扣刷题日常(7-8) 第7题: 整数反转(难度: 中等) 原题: 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果. 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0. 假设环境不允许存储 64 位整数(有符号或无符号).…

串口接收数据包(协议带帧头帧尾)的编程实现方法:1、数据包格式定义结构体2、使用队列进行数据接收、校验解包

这种带帧头帧尾的数据包处理流程可以简单概括为 “识别边界→提取有效数据→验证完整性” 三个核心步骤,具体操作如下:1. 数据包格式定义(先约定规则)首先明确一个 “合格数据包” 的结构,比如: 帧头&#…

JSON 对象封装教程

JSON 对象封装方法在 Java 中封装 JSON 对象通常使用第三方库&#xff0c;如 org.json、Gson 或 Jackson。以下是几种常见的方法&#xff1a;使用 org.json 库添加 Maven 依赖&#xff1a;<dependency><groupId>org.json</groupId><artifactId>json<…

【WRF-Chem】EDGAR 排放数据处理:分部门合并转化为二进制(Python全代码)

目录 process.py process_biofl.py process_fossil.py process_micro.py process_sector.py 参考 process.py 读取 EDGAR 排放数据库中 2000 至 2023 年间不同行业的甲烷(CH₄)排放数据,进行合并处理,并将总排放以二进制格式保存到文件中。 导入必要的库 import numpy as n…

【学习过程记录】【czsc】1、安装

文章目录 背景 安装 安装python 安装czsc 功能测试 附录 奇葩的报错 背景 详见: https://github.com/waditu/czsc 安装 安装python !重要!作者强调,python必须是大于等于3.8 为此呢,我也是花了一点时间装了一个python3.13。 安装czsc 关于czsc的安装呢,官方也是给出…

Python批量生成N天前的多word个文件,并根据excel统计数据,修改word模板,合并多个word文件

1&#xff0c;需求 根据word模板文件&#xff0c;生成多个带日期后缀的word文件根据excel-每日告警统计数量&#xff0c;逐个修改当日的文档2&#xff0c;实现 shell脚本&#xff1a;根据word模板文件&#xff0c;生成多个带日期后缀的word文件 #!/bin/bash # 生成近一年日期 …

基于uni-app的血糖血压刻度滑动控件

想要做一个基于uni-app的血糖血压刻度滑动控件&#xff0c;hbuilder市场没有好的&#xff0c;参照别人的写了一个。如图&#xff1a;源码&#xff0c;自己放入components里面。<!-- 刻度滑动选择 --> <template><view><view class"slide-title"…

C语言(02)——标准库函数大全(持续更新)

想要了解更多的C语言知识&#xff0c;可以订阅下面的专栏&#xff0c;里面也有很多品质好文&#xff1a; 打怪升级之路——C语言之路_ankleless的博客-CSDN博客 还在持续更新中&#xff0c;以下是学习过程中遇到的一些库函数&#xff08;排序不分先后&#xff09;&#xff1a…

永磁同步电机无速度算法--静态补偿电压模型Harnefors观测器

一、原理介绍本文基于Harnefors教授提出的静态补偿电压模型&#xff0c;可以实现带载零速启动、正反转切换等功能&#xff0c;原理清晰&#xff0c;实现简便。二、仿真模型在MATLAB/simulink里面验证所提算法&#xff0c;搭建仿真。采用和实验中一致的控制周期1e-4&#xff0c;…

[SKE]Python gmssl库的C绑定

Python gmssl库的C绑定 摘要:本文展示gmssl库的C绑定,并给出完整代码。将参考模型从Python脚本迁移到纯C代码中使用gmssl库(TongSuo项目,支持国密算法如SM4,同时兼容AES、DES、3DES、RSA等)。这样,UVM(SystemVerilog)可以通过DPI-C直接调用C函数,而无需嵌入Py…

4.方法的使用

方法是指一段具有独立功能的代码块&#xff0c;只有被调用时才会执行方法的主要作用体现在&#xff1a;代码组织&#xff1a;将原本挤在一起的臃肿代码按照功能进行分类管理例如&#xff1a;将用户注册的验证逻辑、数据库操作、结果返回等分离成不同方法提高复用性&#xff1a;…