什么是多模态机器学习?

2023-05-16

首先,什么叫做模态(Modality)呢?

每一种信息的来源或者形式,都可以称为一种模态。例如,人有触觉,听觉,视觉,嗅觉;信息的媒介,有语音、视频、文字等;多种多样的传感器,如雷达、红外、加速度计等。以上的每一种都可以称为一种模态。

同时,模态也可以有非常广泛的定义,比如我们可以把两种不同的语言当做是两种模态,甚至在两种不同情况下采集到的数据集,亦可认为是两种模态。

因此,多模态机器学习,英文全称 MultiModal Machine Learning (MMML),旨在通过机器学习的方法实现处理和理解多源模态信息的能力。目前比较热门的研究方向是图像、视频、音频、语义之间的多模态学习。

多模态学习从1970年代起步,经历了几个发展阶段,在2010后全面步入Deep Learning阶段。

人其实是一个多模态学习的总和,所以也有”砖家“说了,多模态学习才是真正的人工智能发展方向。

本文将针对多模态学习在深度学习发面的研究方向和应用做相关介绍,主要参考了来自ACL 2017的《Tutorial on Multimodal Machine Learning》。

多模态学习的分类

多模态学习可以划分为以下五个研究方向:

  1. 多模态表示学习 Multimodal Representation
  2. 模态转化 Translation
  3. 对齐 Alignment
  4. 多模态融合 Multimodal Fusion
  5. 协同学习 Co-learning

下面将针对这五大研究方向,逐一进行介绍。

多模态表示学习 Multimodal Representation

单模态的表示学习负责将信息表示为计算机可以处理的数值向量或者进一步抽象为更高层的特征向量,而多模态表示学习是指通过利用多模态之间的互补性,剔除模态间的冗余性,从而学习到更好的特征表示。主要包括两大研究方向:联合表示(Joint Representations)协同表示(Coordinated Representations)

  • 联合表示将多个模态的信息一起映射到一个统一的多模态向量空间;
  • 协同表示负责将多模态中的每个模态分别映射到各自的表示空间,但映射后的向量之间满足一定的相关性约束(例如线性相关)。

联合表示和协同表示对比图

利用多模态表示学习到的特征可以用来做信息检索,也可以用于的分类/回归任务。下面列举几个经典的应用。

在来自 NIPS 2012 的 《Multimodal learning with deep boltzmann machines》一文中提出将 deep boltzmann machines(DBM) 结构扩充到多模态领域,通过 Multimodal DBM,可以学习到多模态的联合概率分布。

单模态和多模态DBM对比图

论文中的实验通过 Bimodal DBM,学习图片和文本的联合概率分布 P(图片,文本)。在应用阶段,输入图片,利用条件概率 P(文本|图片),生成文本特征,可以得到图片相应的文本描述;而输入文本,利用条件概率 P(图片|文本),可以生成图片特征,通过检索出最靠近该特征向量的两个图片实例,可以得到符合文本描述的图片。如下图所示:

协同表示学习一个比较经典且有趣的应用是来自于《Unifying Visual-Semantic Embeddings with Multimodal Neural Language Models 》这篇文章。利用协同学习到的特征向量之间满足加减算数运算这一特性,可以搜索出与给定图片满足“指定的转换语义”的图片。例如:

狗的图片特征向量 - 狗的文本特征向量 + 猫的文本特征向量 = 猫的图片特征向量 -> 在特征向量空间,根据最近邻距离,检索得到猫的图片

转化 Translation / 映射 Mapping

转化也称为映射,负责将一个模态的信息转换为另一个模态的信息。常见的应用包括:

机器翻译(Machine Translation):将输入的语言A(即时)翻译为另一种语言B。类似的还有唇读(Lip Reading)语音翻译 (Speech Translation),分别将唇部视觉和语音信息转换为文本信息。

图片描述(Image captioning) 或者视频描述(Video captioning): 对给定的图片/视频形成一段文字描述,以表达图片/视频的内容。

语音合成(Speech Synthesis):根据输入的文本信息,自动合成一段语音信号。

模态间的转换主要有两个难点,一个是open-ended,即未知结束位,例如实时翻译中,在还未得到句尾的情况下,必须实时的对句子进行翻译;另一个是subjective,即主观评判性,是指很多模态转换问题的效果没有一个比较客观的评判标准,也就是说目标函数的确定是非常主观的。例如,在图片描述中,形成怎样的一段话才算是对图片好的诠释?也许一千个人心中有一千个哈姆雷特吧。

对齐 Alignment

多模态的对齐负责对来自同一个实例的不同模态信息的子分支/元素寻找对应关系。这个对应关系可以是时间维度的,比如下图所示的 Temporal sequence alignment,将一组动作对应的视频流同骨骼图片对齐。类似的还有电影画面-语音-字幕的自动对齐。

对齐又可以是空间维度的,比如图片语义分割 (Image Semantic Segmentation):尝试将图片的每个像素对应到某一种类型标签,实现视觉-词汇对齐。

多模态融合 Multimodal Fusion

多模态融合(Multimodal Fusion )负责联合多个模态的信息,进行目标预测(分类或者回归),属于 MMML 最早的研究方向之一,也是目前应用最广的方向,它还存在其他常见的别名,例如多源信息融合(Multi-source Information Fusion)、多传感器融合(Multi-sensor Fusion)。

按照融合的层次,可以将多模态融合分为 pixel level,feature level 和 decision level 三类,分别对应对原始数据进行融合、对抽象的特征进行融合和对决策结果进行融合。而 feature level 又可以分为 early 和 late 两个大类,代表了融合发生在特征抽取的早期和晚期。当然还有将多种融合层次混合的 hybrid 方法。

融合层次示意图

常见的机器学习方法都可以应用于多模态融合,下面列举几个比较热门的研究方向。

视觉-音频识别(Visual-Audio Recognition): 综合源自同一个实例的视频信息和音频信息,进行识别工作。

多模态情感分析(Multimodal sentiment analysis): 综合利用多个模态的数据(例如下图中的文字、面部表情、声音),通过互补,消除歧义和不确定性,得到更加准确的情感类型判断结果。

手机身份认证(Mobile Identity Authentication): 综合利用手机的多传感器信息,认证手机使用者是否是注册用户。

多模态融合研究的难点主要包括如何判断每个模态的置信水平、如何判断模态间的相关性、如何对多模态的特征信息进行降维以及如何对非同步采集的多模态数据进行配准等。

若想了解传统的机器学习方法在此领域的应用,推荐学习清华大学出版的《多源信息融合》(韩崇昭等著)一书。

协同学习 Co-learning

协同学习是指使用一个资源丰富的模态信息来辅助另一个资源相对贫瘠的模态进行学习。

比如迁移学习(Transfer Learning)就是属于这个范畴,绝大多数迈入深度学习的初学者尝试做的一项工作就是将 ImageNet 数据集上学习到的权重,在自己的目标数据集上进行微调。

迁移学习比较常探讨的方面目前集中在领域适应性(Domain Adaptation)问题上,即如何将train domain上学习到的模型应用到 application domain。

迁移学习领域著名的还有零样本学习(Zero-Shot Learning)一样本学习(One-Shot Learning),很多相关的方法也会用到领域适应性的相关知识。

Co-learning 中还有一类工作叫做协同训练(Co-training ),它负责研究如何在多模态数据中将少量的标注进行扩充,得到更多的标注信息。

通过以上应用我们可以发现,协同学习是与需要解决的任务无关的,因此它可以用于辅助多模态映射、融合及对齐等问题的研究。

结束语

到此为止,我们对多模态机器学习领域的研究方向和应用进行了一个大致的梳理,受限于篇幅,还有许多未涉及的研究问题。

有什么读后感吗?

也许你以前没有听过多模态学习(MMML)这个概念,读了此文发现原来自己做的正是 MMML 一个分支;

也许你以前觉得 CV / NLP / SSP 才是人工智能的正统,读了此文发现多学科交叉的 MMML 一样可以玩 DL 溜得飞起;

也许你目前正苦于找不到研究的方向,读了此文发现 MMML 打开了新的大门,原来有这么多的事情可以做。

多模态学习是一个目前热度逐年递增的研究领域,如果大家感兴趣,欢迎留言反馈,后续我们会考虑推出几个热门 MMML 方向的经典or前沿论文、模型解析。

推荐几篇入门综述文献

如果想入门 MMML 或者希望对该领域有初步了解,可以从以下几篇综述入手

【1】Atrey P K, Hossain M A, El Saddik A, et al. Multimodal fusion for multimedia analysis: a survey[J]. Multimedia systems, 2010, 16(6): 345-379.

【2】Ramachandram D, Taylor G W. Deep multimodal learning: A survey on recent advances and trends[J]. IEEE Signal Processing Magazine, 2017, 34(6): 96-108.

【3】Baltrušaitis T, Ahuja C, Morency L P. Multimodal machine learning: A survey and taxonomy[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是多模态机器学习? 的相关文章

  • docker数据迁移

    docker数据迁移 前言 开发服务器随着docker运行服务的变多 xff0c docker目录占用磁盘空间也在逐渐变大 xff0c 终于在最近磁盘彻底占满导致容器启动不起来并提示 34 no device space left 34 为
  • 超好看的个人主页官网源码+带动态特效

    正文 这款个人主页源码感觉是我有史以来见过最好看的 xff0c 功能和页面也比较多 xff0c 简约又不失格调 官网带动态特效视频源码 xff0c 修改主页文件即可 程序 wwvwd lanzouw com i6RWe0ag8gde 图片
  • A2W、W2A、A2T、T2A的使用方法

    1 A2W和W2A 在 Window核心编程 xff0c 多字节和宽字节之间转换比较麻烦的 xff0c MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理解 那么使用ATL的
  • C语言中int到float的强制类型转换

    最近在看一本名为的书 由于我所看过的计算机理论方面的书较少 xff0c 加上自己大学期间一直也不用功 xff0c 所以对于计算机的工作原理以及程序的工作方式我始终只知甚少 xff0c 印象也十分模糊 不过 xff0c 应该说我碰到了一本好书
  • MFC中如何将焦点设置到指定控件上

    MFC中如何将焦点设置到指定控件上 需求 xff1a 窗口打开的时候就将焦点 xff08 光标 xff09 设置到某个指定的控件上去 实现方法 xff1a 设置焦点需要用到setFocus这个方法 xff08 几乎任何编程环境都这样VC x
  • _tcschr、_tcsrchr

    tcschr tcsrchr 好处 xff1a 是可以不管是用unicode 编码还是其他 代码都不用改 C 43 43 标准库函数提供了字符和字符串的操作函数 xff0c 并提供了其UNICODE版本 xff0c 如 xff1a 1 tc
  • vc++ 6.0编译后生成的文件

    vc 43 43 6 0编译后生成的文件 程序在编译后 在目标路径下会生成多个文件 Debug文件夹 exe ilk obj pch pdb idb pdb cpp dsp ncb plg exe 是生成的可执行文件 ilk 当选定渐增型编
  • 除了pid还有什么控制算法,类似pid算法还有哪些

    什么是专家PID xff1f 他和传统的PID有什么区别 xff1f PID是智能控制啊 比如要控制一个水管的水流量 通过流量计 开关阀 让PID来控制开关阀的开关大小使水流量正确 专家PID记得是PID的高级设置 某些个场合一般的PID无
  • c++编译错误:invalid new-expression of abstract class type

    error invalid new expression of abstract class type UserdataActionI 原因 xff1a 出现这个错误原因是new 了一个抽象类出错 xff0c 说明父类 xff08 接口 x
  • Servlet jsp跳转到Servlet 出现404错误的路径设置方法

    jsp跳转到Servlet 出现404错误的路径设置方法 解决一 xff1a 最近又遇到了这种问题 xff0c 百度了好久 xff0c 发现有人说要在action的路径里面写Servlet文件的绝对路径 xff0c 比如说 xff0c 单独
  • 产品经理做APP从头到尾的所有工作流程详解!

    xff08 一 xff09 项目启动前 从事产品的工作一年多 xff0c 但自己一直苦于这样或者那样的困惑 xff0c 很多人想要从事产品 xff0c 或者老板自己创业要亲自承担产品一职 xff0c 但他们对产品这个岗位的认识却不明晰 xf
  • 使用阿里云搭建自己的原型发布站点

    最近在做项目时 xff0c 使用了Axure团队协同工具 AxureShare 时 xff0c 发现了一个问题 xff1a 由于AxureShare服务器在国外 xff0c Axure共享生成的链接访问时非常慢 xff0c 网上找了很多解决
  • 【FTP工具linux错误】Job for vsftpd.service failed because the control process exited with error code

    环境 xff1a 阿里云centos7 2搭建ftp 问题 xff1a 启动vsftpd服务 xff0c 报错 xff1a Job for vsftpd service failed because the control process
  • 【FileZilla错误】500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

    环境 xff1a ECS里 Centos 7 2 安装了vsftpd Windows安装了FileZilla 问题 xff1a 当链接时报错 xff1a 500 OOPS could not read chroot list file et
  • VirtualBox通过恢复备份快照VDI文件恢复至备份状态

    昨天很贱 xff0c 看到服务器的VB的快照 xff08 SnapShot xff09 是放在C盘的 xff0c 然后C盘的35G空间被这个快照用掉了14G xff0c 加上系统的18G xff0c 还剩3G的空间 关闭VB xff0c 然
  • 关于机器人操作系统(ROS)学习前须知二三

    ROS基础资料 1 什么是ROS xff1f ROS xff08 机器人操作系统 xff0c Robot Operating System xff09 xff0c 是专为机器人软体开发所设计出来的一套电脑作业系统架构 它是一个开源的元级操作
  • SLAM/VIO学习总结

    作者 xff1a 游振兴 链接 xff1a https zhuanlan zhihu com p 34995102 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处
  • 大数据领域三个大的技术方向资料

    大数据领域三个大的技术方向 xff1a 1 Hadoop大数据开发方向 2 数据挖掘 数据分析 amp 机器学习方向 3 大数据运维 amp 云计算方向 大数据学习什么 Python xff1a Python 的排名从去年开始就借助人工智能
  • 深度神经网络的应用

    深度学习能应用在哪些领域 xff1f 深度学习的快速发展 xff0c 不仅使机器学习得到许多实际的应用 xff0c 还拓展了整个AI xff08 人工智能的 xff09 的范围 它将任务进行拆解 xff0c 使得各种类型的机器辅助变成可能

随机推荐