【多模态】8、MDETR | LeCun 团队于 2021 年推出的端到端多模态理解模型

2023-10-13 06:40

本文主要是介绍【多模态】8、MDETR | LeCun 团队于 2021 年推出的端到端多模态理解模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

文章目录

    • 一、背景
    • 二、方法
      • 2.1 DETR
      • 2.2 MDETR
    • 三、效果
      • 3.1 预训练调整后的检测器
      • 3.2 下游任务

论文:MDETR - Modulated Detection for End-to-End Multi-Modal Understanding

代码:https://github.com/ashkamath/mdetr

出处:ICCV 2021 Oral | Yann LeCun | NYU | Facebook AI

时间:2021.10

贡献:

  • 提出了端到端的多模态检测系统
  • 打破了传统目标检测只能检测特定类别的限制,可以实现对任意形式文本输入中提及的内容进行检测

flickr30k 数据下载:http://shannon.cs.illinois.edu/DenotationGraph/data/index.html

flickr30k 标注文件下载:https://github.com/BryanPlummer/flickr30k_entities

gqa 数据集下载:https://nlp.stanford.edu/data/gqa/images.zip

作者处理好的标注文件下载:https://zenodo.org/record/4729015/files/mdetr_annotations.tar.gz?download=1

一、背景

目标检测在很多多模态理解系统中有着很重要的作用,一般是用作一个黑盒,用于检测特定类别的目标,然后后面进行多模态对齐。

但这种 pipeline 会限制模型只能检测特定的目标,而不能实现对整个图像的描述。

此外,目标检测系统的类别是固定的,也会阻碍模型性能的改进,这些系统也不能识别任意类别的 text 输入

在一些新的工作中,将该问题归结为一个 text-conditioned 目标检测问题,这些工作将一些主流的单阶段和双阶段目标检测器进行扩展,来实现对任意输入的检测。但由于很多检测器不是端到端可微的,无法和下游任务一起训练,所以难以对下游任务产生很好的指导作用。

本文提出的 MDETR,是一个端到端可调节的检测器,基于 DETR 检测结构,并且将目标检测和自然语言处理理解联合训练,能够实现完全端到端的多模态推理

phrase grounding 任务:给定一个自由形式的文本,找出文本中提到的目标

在这里插入图片描述

二、方法

2.1 DETR

DETR:

  • DETR 是一个端到端的目标检测器,使用卷积网络作为 backbone,后面接一个 transformer encoder-decoder 来进行编解码
  • encoder:对卷积提取到的特征经过 flattened,使用一些 transformer 层来进行编码
  • decoder:输入是一系列 N 个可学习的 embedding(object queries),所有的 object queries 被并行输入 decoder
  • 训练策略:使用匈牙利匹配 loss,对 N 个预测的目标和真实的目标进行双边匹配,和 gt 匹配成功的预测结果就会使用该 gt 进行监督,没有匹配成功的就会被监督预测出 ‘no object’ label ϕ \phi ϕ
  • 分类头:使用 cross-entropy loss 来监督
  • 回归头:使用 L1 loss 和 GIoU 的结合来监督

2.2 MDETR

MDETR 的结构如图 2 所示:

  • 图像先经过 CNN 来提取特征,并 flattened
  • 给经过 flattened 的向量加上 2-D 位置编码
  • 将输入的 text 使用经过预训练的 transformer language model 进行编码
  • 使用线性映射,来对图像和文本特征映射到共同的编码空间,然后按序列维度来将生成的编码连接起来形成一个更长的编码,输入 cross encoder 中

在这里插入图片描述

MDETR 的训练:

loss 函数:

  • 作者在 DETR loss 函数之外还使用了两个额外的 loss 函数
  • 第一个是 soft token prediction loss:无参数的对齐 loss,因为 MDETR 不会直接输出类别,而是会输出目标和 token 的相似度
  • 第二个是 text-query contrastive alignment loss:有参数的 loss,计算 object query 和 token 的相似程度

1、soft token prediction loss

对于多模态的检测,不同于标准的目标检测设置,对每个检出的目标不关心其类别名称,而是对检出的目标和文本中的 token 进行匹配

  • 首先,将给定句子的最大 token 长度设为 256,对于每个和 gt box 匹配上的预测 box(根据双边匹配原则),模型都会预测一个和 object 相关的 token 的标准分布,如图 2 所示,cat 的 box 就能够预测前两个 words 的标准分布,图 6 也做了展示
  • 没有和目标匹配上的 query 会被训练来预测 ‘no object’ 的 label
  • 此外,可以注意到,可能会出现多个 words 对应图像中一个相同的目标,也可能会出现多个目标对应相同的 text,这样的 loss 设计能够让模型学习有共指关系的目标

在这里插入图片描述

2、text-query contrastive alignment loss

尽管 soft token prediction 使用 positional 信息来对齐目标和文本,但对比对齐 loss 能够更加增强以下两者的对齐程度:

  • object embedded representation:object 经过 decoder 的输出
  • text representation:cross encoder 的输出

contrastive alignment loss 的作用:能够确保图像目标的编码和与其对应的 text token 的编码比与其无关的 text token 的编码更加接近

对比对齐 loss 的公式如下:

  • token 的最大数量为 L,目标的最大数量为 N
  • T i + T_i^+ Ti+ 是一系列需要和给定 object o i o_i oi 进行对齐的 tokens
  • O i + O_i^+ Oi+ 是一系列需要和给定 token t i t_i ti 进行对齐的 objects
  • τ \tau τ 是温度参数,设置为 0.07

① 对所有 object 的 contrastive alignment loss 如下,归一化的方式是除以每个 object 对应的 positive token 数量:

在这里插入图片描述

② 对所有 token 的 constrastive loss 如下,归一化的方式是除以每个 token 的 positive object 数量:

在这里插入图片描述

③ 整体的 constrastive alignment loss 是上述两个子 loss 的平均

3、所有 loss 的结合

DETR 中,使用双边匹配的方法来寻找预测和 gt 中的最佳匹配

MDETR 中,最大的不同在于对没有预测的 object 没有特定的类别 label,而是预测 object 对应 text 中所有相关位置 token 的标准分布(soft token prediction),使用 soft cross entropy 监督

matching cost 由 L1 和 GIoU 组成

总体的 loss :box prediction loss(L1、GIoU)、soft-token prediction loss、contrastive alignment loss

三、效果

在这里插入图片描述

3.1 预训练调整后的检测器

本文中所谓的 modulated detection,表示的就是将传统的按类别检测的检测器进行调整或修改后的检测器,能够实现对任意文本输入设计到的目标都进行检测,而非只能检测特定的类别。

数据集:混合数据集

  • Flickr30k
  • MS COCO
  • Visual Genome (VG)

如何进行数据集混合:

  • 对每个图像,把整个数据集中的所有标注拿出来,将同一图片中目标的所有 text 结合起来
  • 如何结合成句子:使用 graph coloring algorithm,只把 GIoU<=0.5 的 box 对应的 phrase 结合起来,整个句子的长度小于 250
  • 通过上述方法,作者获得了 1.3M 个 image-text pairs

在这里插入图片描述

这种句子结合方式的好处:

  • 数据有效性,能够将很多信息打包到一个训练样本中
  • 能够为 soft token prediction loss 提供更好的学习信号,因为模型必须学习小区多个相同类别目标同时出现时的歧义,如图 3 所示

在这里插入图片描述

模型:

  • text encoder:pre-trained RoBERTa-base,有 12 层 transformer encoder,每个有 768 hidden dimension,12 heads,使用 HuggingFace 提供的权重
  • visual backbone:尝试了两个,一个是 ResNet-101,一个是 EfficientNet family

3.2 下游任务

1、Phrase grounding:给定一个或多个 phrases,该任务的目的是为每个 phrase 预测一系列的 bbox

在这里插入图片描述

在这里插入图片描述

2、Referring expression comprehension:给定一个图像和对应的文本描述,该任务是理解文本描述,并返回需要返回的目标,而非返回全部提及的目标

有三个数据集:

  • RefCOCO
  • RefCOCO+ [70]
  • RefCOCOg [36]

因为在预训练中,训练方式包括所有 text 涉及到的目标,和这个子任务有些不同,这个任务的一个示例如下:The woman wearing a blue dress standing next to the rose bush

  • 不需要返回所有的 woman、blue dress、rose bush
  • 只需要返回 woman box 即可

MDETR 在这个任务上进行了 5 epoch 的 finetuned,在推理阶段,使用 ϕ \phi ϕ 来对 100 个检测到的 box 进行排序, P ( ϕ ) P(\phi) P(ϕ) 表示被分配为 no label 的概率,使用 1 − P ( ϕ ) 1-P(\phi) 1P(ϕ) 降序排列,结果见表 2。

在这里插入图片描述

在这里插入图片描述

3、Referring expression segmentation:本文的方法也可以扩展到分割上

在这里插入图片描述

在这里插入图片描述

4、Visual Question Answering:如图 4 展示了本文模型的结构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这篇关于【多模态】8、MDETR | LeCun 团队于 2021 年推出的端到端多模态理解模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201450

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了