Multi-Modal Learning
多模态学习使用多种数据类型(例如图像、文本和音频)同时训练模型。内容涵盖对齐、融合和对比损失。
多模态学习是机器学习的一个领域,研究如何使用来自多个模态的数据训练模型,例如带有说明文字的图像、带有配乐的视频,或搭配激光雷达扫描数据的摄像头画面,让模型学习不同模态之间的关系。相关方法需要回答两个问题:如何表示不同模态以便相互比较,以及在模型的哪个位置将它们结合起来。从视觉语言助手到自动驾驶感知系统,这些方法构建出的系统都称为多模态 AI。
人类可以毫不费力地结合多种感官。1976 年有人描述了麦格克效应:如果将嘴唇说“ga”的视频配上“ba”的声音,人们听到的会是“da”。2011 年,斯坦福大学的 Jiquan Ngiam 及其同事将这一理念引入深度学习,他们使用音频和唇部视频共同训练网络,并展示了同时从两种模态中学习的特征,比单独使用视频能更好地进行唇读。
核心挑战#
Tadas Baltrušaitis、Chaitanya Ahuja 和 Louis-Philippe Morency 在 2019 年的综述中,将该领域归纳为五项挑战:
- 表示: 将每种模态编码为向量,可以使用一个联合空间,也可以使用多个经过训练、能够对齐的独立空间。
- 转换: 将一种模态映射到另一种模态,例如图像字幕生成或文生图。
- 对齐: 找出一种模态的哪些部分对应另一种模态的哪些部分,例如某个短语描述的图像区域。
- 融合: 结合多种模态的信息以进行预测。
- 协同学习: 将数据充足的模态中的知识迁移到数据较少的模态。
融合策略#
早期融合会在任何模态专属处理之前组合输入或低级特征,例如将深度图与 RGB 通道堆叠成一张四通道图像。晚期融合会为每种模态分别运行一个模型,再通过平均或投票的方式合并预测,因此即使缺少某种模态也能继续工作。中间融合会分别编码每种模态,并让它们在网络内部交换信息,通常通过交叉注意力实现;交叉注意力是一种注意力机制,其中一种模态的 token 会关注另一种模态的特征。机器人和车辆中的传感器融合会使用这三种策略。
增加一种模态也可能降低准确率。Weiyao Wang、Du Tran 和 Matt Feiszli 于 2020 年指出,使用音频、视频帧和运动信息共同训练的视频分类网络,往往不如表现最佳的单模态模型,因为它会过拟合,且不同模态的学习速度不同。他们提出的 Gradient-Blending 方法会重新加权每种模态的损失以进行补偿。
对比对齐#
对比学习无需人工标签即可对齐不同模态。OpenAI 的 CLIP(2021 年)使用 4 亿组图像-字幕配对训练图像编码器和文本编码器,使每张图像的嵌入与其自身字幕的相似度高于同一批次中的其他字幕;最终模型在 ImageNet 上的准确率达到原始 ResNet-50 的水平,并且能够零样本完成任务,无需使用 ImageNet 的 128 万张带标签训练图像。损失函数是相似度矩阵上的交叉熵,并在两个方向上应用:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# Unit-length embeddings for 4 images and 4 captions; row i of each is a matching pair
image_emb = F.normalize(torch.randn(4, 64), dim=-1)
text_emb = F.normalize(image_emb + 0.5 * torch.randn(4, 64), dim=-1)
def contrastive_loss(images, texts, temperature=0.07):
"""CLIP-style symmetric cross-entropy over the image-text similarity matrix."""
logits = images @ texts.T / temperature
targets = torch.arange(len(images)) # the matching caption sits on the diagonal
return (F.cross_entropy(logits, targets) + F.cross_entropy(logits.T, targets)) / 2
print(f"Aligned pairs: {contrastive_loss(image_emb, text_emb):.3f}")
print(f"Misaligned pairs: {contrastive_loss(image_emb, text_emb.roll(1, dims=0)):.3f}")每条字幕都与对应图像匹配时,损失为 0.577;将字幕整体下移一行、让每张图像都与错误字幕配对后,损失升至 2.756。训练会通过包含许多配对的批次降低这一损失(CLIP 使用了 32,768 组配对),让每张图像更接近自身字幕,并远离批次中的其他字幕。CLIP 还会在训练过程中学习温度参数,初始值为 0.07。Google 的 ALIGN(2021 年)将同一方案扩展到 18 亿组带噪声的图像和替代文本配对;SigLIP(2023 年)用每组配对各自独立的 sigmoid 替代 softmax;Meta 的ImageBind(2023 年)则通过将音频、深度、热成像和运动传感器数据等六种模态分别与图像配对,实现了六种模态的对齐。
开放词汇检测器也会学习文本与图像区域之间的同类对齐关系。Ultralytics 提供了从头训练 YOLOE-26 的方案:YOLOE-26 是基于清华大学 YOLOE 的开放词汇 YOLO26,它将 Objects365 检测标签与 GQA 和 Flickr30k 的定位数据结合起来,共约 140 万个样本;训练器会使用 Apple 冻结的 MobileCLIP2 文本编码器,对每个类别名称和短语编码一次并缓存嵌入,因此训练时只更新检测器,包括一个小型残差层,该层会在文本向量与区域特征匹配前对缓存的文本向量进行细化。
多模态学习与相关术语的区别#
- 多模态 AI: 使用多模态学习构建的系统和应用,例如视觉助手和驾驶辅助感知系统。
- 多模态模型: 能够处理多种模态的训练模型,也是多模态学习所产出的模型。
- 视觉语言模型(VLM): 一种处理图像和文本的多模态模型,通常分阶段训练:先进行对比式预训练,再将图像编码器连接到语言模型,最后进行视觉指令微调。
- 迁移学习: 将在一项任务上训练的模型用于另一项任务,而协同学习则将这一思路应用于多种模态。










