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

【论文阅读笔记】Smil: Multimodal learning with severely missing modality

Ma M, Ren J, Zhao L, et al. Smil: Multimodal learning with severely missing modality[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(3): 2302-2310.[开源]

本文的核心思想是探讨和解决多模态学习中的一个重要问题:在训练和测试数据中严重缺失某些模态时,如何有效进行学习。具体来说,这里的“严重缺失”指的是在多达90%的训练样本中缺少一些模态信息。在过去的研究中,大多关注于如何处理测试数据的模态不完整性,而对于训练数据的模态不完整性,尤其是严重缺失的情况,探讨较少。文章提出了一种新的方法——SMIL(Severely Missing Modality in Multimodal Learning),使用贝叶斯元学习来同时实现两个目标:灵活性(在训练、测试或两者中处理缺失模态)和效率(从不完整的模态中高效学习)。核心思想是通过扰动潜在特征空间,使单一模态的嵌入能够近似全模态的嵌入。为了验证这一方法的有效性,作者在三个流行的基准数据集(MM-IMDb, CMU-MOSI 和 avMNIST)上进行了一系列实验。结果表明,SMIL在处理严重模态缺失的多模态学习问题方面,相比现有方法和生成型基准(如自编码器和生成对抗网络)具有更好的性能。

image-20231123084815031

  • 模态重建

模态重建是通过使用重建网络来实现的。该网络利用可用的模态信息来生成缺失模态的近似值,从而在潜在特征空间中生成完整的数据,并促进两个方面的灵活性。一方面,该模型可以通过使用完整和不完整的数据进行联合训练来挖掘混合数据的全部潜力。另一方面,在测试时,通过打开或关闭特征重建网络,该模型可以以统一的方式处理不完整或完整的输入。具体来说,重建网络被训练来预测先验权重的权重,而不是直接生成缺失模态。这是通过学习一组可以使用 K-means 或 PCA 在所有模态完整样本之间聚类的模态先验 M 来实现的。然后,通过计算模态先验的加权和来重建缺失模态。这种方法可以有效地处理缺失模态问题,并在实验中取得了良好的结果。

  • 不确定性引导特征正则化

该网络通过对特征进行扰动来评估数据的不确定性,并将不确定性评估用作特征正则化,以克服模型和数据偏差。具体来说,该网络使用一组随机噪声向量来扰动输入特征,并计算每个扰动的输出的方差。然后,将方差用作特征正则化的权重,以减少特征之间的差异。这种方法可以有效地处理低质量和不完整的特征,并提高多模态模型的鲁棒性和泛化能力。与之前的确定性正则化方法相比,不确定性引导特征正则化可以显著提高模型的容量和性能。

  • 贝叶斯元学习框架

通过利用贝叶斯元学习框架来联合优化所有网络实现的。具体来说,主网络 f θ f_{\theta} fθ在重构 f ϕ ϕ f_{\phi_{\phi}} fϕϕ网络和正则化 f ϕ r f_{\phi_{r}} fϕr网络的帮助下在 D m D_m Dm上进行元训练。然后,在 D f D_f Df上对更新后的主网络 f θ ∗ f_{\theta^{*}} fθ进行元测试。最后,通过梯度下降元更新网络参数 { θ , ϕ c , ϕ r } \left\{\boldsymbol{\theta}, \boldsymbol{\phi}_{c}, \boldsymbol{\phi}_{r}\right\} {θ,ϕc,ϕr}。该框架旨在优化目标函数,即最小化 L ( D f ; θ ∗ , ψ ) \mathcal{L}\left(\mathcal{D}^{f} ; \boldsymbol{\theta}^{*}, \boldsymbol{\psi}\right) L(Df;θ,ψ),其中 θ ∗ = θ − α ∇ θ L ( D m ; ψ ) \boldsymbol{\theta}^{*}=\boldsymbol{\theta}-\alpha \nabla_{\boldsymbol{\theta}} \mathcal{L}\left(\mathcal{D}^{m} ; \boldsymbol{\psi}\right) θ=θαθL(Dm;ψ) ψ = { ϕ c , ϕ r } \psi=\left\{\phi_{c}, \phi_{r}\right\} ψ={ϕc,ϕr}表示重构和正则化网络参数的组合。贝叶斯元学习的目标是最大化条件似然: log ⁡ p ( Y ∣ X ; θ ) \log p(\mathbf{Y} \mid \mathbf{X} ; \boldsymbol{\theta}) logp(YX;θ)。然而,解决它涉及到不可行的真后验 p ( z ∣ X ) p(z|X) p(zX)。因此,通过一种分摊分布 q ( z ∣ X ; ψ ) q(z|X;ψ) q(zX;ψ)来近似真后验分布,并且近似的下限形式可以定义为 L θ , ψ = E q ( z ∣ X ; θ , ψ ) [ log ⁡ p ( Y ∣ X , z ; θ ) ] − KL ⁡ [ q ( z ∣ X ; ψ ) ∥ p ( z ∣ X ) ] . \begin{aligned} \mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\psi}}=\boldsymbol{E}_{q(\mathbf{z} \mid \mathbf{X} ; \boldsymbol{\theta}, \boldsymbol{\psi})}[\log p(\mathbf{Y} \mid \mathbf{X}, \mathbf{z} ; \boldsymbol{\theta})]- & \operatorname{KL}[q(\mathbf{z} \mid \mathbf{X} ; \boldsymbol{\psi}) \| p(\mathbf{z} \mid \mathbf{X})] . \end{aligned} Lθ,ψ=Eq(zX;θ,ψ)[logp(YX,z;θ)]KL[q(zX;ψ)p(zX)].

我们通过蒙特卡罗(MC)抽样来最大化这个下界

image-20231123090948982

相关文章:

【论文阅读笔记】Smil: Multimodal learning with severely missing modality

Ma M, Ren J, Zhao L, et al. Smil: Multimodal learning with severely missing modality[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(3): 2302-2310.[开源] 本文的核心思想是探讨和解决多模态学习中的一个重要问题:在训练和测…...

在Windows系统上安装git-Git的过程记录

01-上git的官网下载git的windows安装版本 下载页面链接: https://git-scm.com/downloads 选择Standalone Installer的版本进行下载: 这里给大家一全git-2.43.0的百度网盘下载链接: https://pan.baidu.com/s/11HwNTCZmtSWj0VG2x60HIA?pwdut…...

qt QString常用方法

1. QString 尾部拼接,尾部插入字符.调用append()函数.同时,QString字符串直接用加号 也可以进行拼接. QString s "我的女神";s s "刘亦菲";s "最近可好?";s.append("你跑哪儿去了?");//拼接结果: 我的女神刘亦菲最近可好?你跑…...

吴恩达《机器学习》10-6-10-7:学习曲线、决定下一步做什么

一、学习曲线 1. 学习曲线概述 学习曲线将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制而成。这意味着从较少的数据开始,逐渐增加训练集的实例数量。该方法的核心思想在于,当训练较少数据时,模型可能…...

分子骨架跃迁工具-DiffHopp 评测

一、文章背景介绍 DiffHopp模型发表在ICML 2023 Workshop on Computational Biology(简称:2023 ICML-WCB)上的文章。第一作者是剑桥计算机系的Jos Torge。 DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外,…...

MySQL双主双从数据库集群搭建

1 引言 在之前的文章中提到过相关搭建方法,具体请参考《MySQL主从数据库搭建》这篇文章,本文主要讲述双主双从,双主多从集群的搭建方式。 这里要问一个问题,为什么MySQL要搭建数据库集群呢?我想应该有以下几点原因&…...

vue实现动态路由菜单!!!

目录 总结一、步骤1.编写静态路由编写router.jsmain.js注册 2.编写permisstions.js权限文件编写permisstions.jsaxios封装的APIstore.js状态库system.js Axios-APIrequest.js axios请求实例封装 3.编写菜单树组件MenuTree.vue 4.主页中使用菜单树组件 总结 递归处理后端响应的…...

企业如何选择安全又快速的大文件传输平台

在现代信息化社会,数据已经成为各个行业的重要资源,而数据的传输和交换则是数据价值的体现。在很多场合,企业需要传输或接收大文件,例如设计图纸、视频素材、软件开发包、数据库备份等。这些文件的大小通常在几百兆字节到几十个字…...

springboot 自定义starter逐级抽取

自定义starter 背景:各个组件需要引入starter 还有自己的配置风格 –基本配置原理 (1)自定义配置文件 导入配置可以在配置文件中自动识别,提示 导入依赖后可以发现提示 (2)配置文件实现 –让配置文件对其他模块生…...

GAN:ImprovedGAN-训练GAN的改进策略

论文:https://arxiv.org/abs/1606.03498 代码:https://github.com/openai/improved_gan 发表:NIPS 2016 一、文章创新 1:Feature matching:特征匹配通过为生成器指定新目标来解决GANs的不稳定性,从而防止…...

docker限制容器内存的方法

在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。 因此&#…...

阿里达摩院裁撤量子实验室

我是卢松松,点点上面的头像,欢迎关注我哦! 马云的达摩院也不搞量子计算了,因为缺钱,整体裁掉了达摩院量子实验室,把所有的设备都赠送给了浙江大学。 达摩院量子实验室:总共30个研究员&#xf…...

mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性

文章目录 数据库基础知识Mysql的索引和主键的区别数据库的事务的基本特性 数据库基础知识 为什么要使用数据库 数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存 缺点:1&#xf…...

解决Vscode使用git提交卡住的问题

使用Vscode的git提交代码经常会很慢/卡住。 先点击左下角,进入设置 找到git的配置(建议直接搜索),把use Editor As commit input的勾选去掉即可解决。...

Linux C语言 32-网络编程之UDP例程

Linux C语言 32-网络编程之UDP例程 本节关键字:C语言 网络编程 UDP协议 套接字操作 服务端 客户端 相关C库函数:setsockopt, socket, bind, recvfrom, sendto, close 相关接口介绍 Linux C语言 30-套接字操作 例程执行任务说明 本例程中服务端的任务…...

ubuntu22.04系统下载程序和依赖,并拷贝到指定路径下

脚本1 apt install aptitude apt-get -d install xxx #xxx是待下载的安装包 mv /var/cache/apt/archives/* /home/tuners/1apt install aptitude apt-get -d install xxx mv /var/cache/apt/archives/*.deb /home/tuners/1 xxx 为程序包名称 /home/tuners/1为保存程序包的…...

Kafka KRaft 版本集群部署详细教程(附配置文件详细解释)

版本说明 Ubuntu 18.04.6Kafka 3.6.0JDK8 集群配置 操作系统ip域名Kafka Broker 端口Kafka Controller 端口Ubuntu 18.04.6192.168.50.131kafka1.com90929093Ubuntu 18.04.6192.168.50.132kafka2.com90929093Ubuntu 18.04.6192.168.50.133kafka3.com90929093 安装 vim, cur…...

在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1

在龙蜥 OS 23上,本来想使用二进制安装,结果发现没有针对龙蜥的列表: 于是想到了源码安装,下面我们列出了PG源码安装的步骤: 1.安装准备 1.1.创建操作系统组及用户 groupadd postgres useradd -g postgres -m postgr…...

UDP的不可靠性可以用来做什么

User Datagram Protocol(UDP,用户数据报协议)是互联网协议套件中的一种传输层协议。与TCP不同,UDP是一种无连接的、不可靠的协议。 要知道UDP可以用来做什么,首先我们要知道它有何特点: 1,无连接: UDP是一…...

vue3还用this吗?getCurrentInstance获取当前组件实例

在 Vue 2 中,this 关键字代表当前组件实例。在组件的选项对象中,this 可以用于访问组件实例的属性、方法以及 Vue 实例的一些特定方法。 在Vue3中,我们发现this是undefined,那我们真的没法使用this了吗?vu3给我们提供…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...