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

Flamingo论文介绍:把视觉特征向语言模型看齐

今天介绍一篇经典的多模态论文,来自NeurIPS 2022的《Flamingo: a Visual Language Model for Few-Shot Learning》 ,论文地址:https://arxiv.org/pdf/2103.00020
在这里插入图片描述

文章目录

  • 一、Motivate
  • 二、Method
  • 三、模块细节:Perceiver Resampler 模块和Gated XATTN-DENSE 模块
    • 3.1 Perceiver Resampler 模块(感知重采样器)
    • 3.2 Gated XATTN-DENSE 模块(门控注意力模块)
  • 四、数据格式
  • 五、效果

一、Motivate

论文旨在桥接预训练好的视觉模型和语言模型,在不改变视觉模型和语言模型的基础上,做好两种模态模型的融合。简单来说这是一篇粘模型的工作,主要思想是将视觉模型的编码token向语言模型方向转化,使得语言模型能够直接利用视觉的token。

二、Method

Flamingo设计了两个模块达到多模态对齐, 一是 Perceiver Resampler 模块,这个模块将任意个数的输入的视觉(视频/图像)特征转换为固定个数的视觉tokens(64个);二是 Gated XATTN-DENSE 模块,将 Perceiver Resampler 输出的视觉 tokens,与新插入到 LM 中的层计算交叉注意力,从而将视觉信息注入到 LM 的生成过程中。过程中使用一个tanh做门控,使得融合更平滑缓慢。
在这里插入图片描述

三、模块细节:Perceiver Resampler 模块和Gated XATTN-DENSE 模块

3.1 Perceiver Resampler 模块(感知重采样器)

输入可以是图像也可以是视频,视频可以理解为多个帧的图像,在输入时,在时间维度上进行展开即可。以图像为例,输入图像后,通过一个视觉编码器(ResNet/NFNet/ViT)进行编码得到特征向量,展平,然后和64个可学习的token做交叉注意力,KV来自于视觉特征,Q来自于这64个可学习token(论文中叫做Learned latent queries),再经过多层 Attention + FFW 处理,这样这64个queries就能学习到来自视觉的特征信息,作为视觉表征。这里的 queries 就有点类似于 ViT 中的 cls token。在这里插入图片描述
视频过程可以理解为下图,其实就是把视频在时间维度上展开之后再铺平,后面的操作和图片一样。不管是视频还是图片,Learned latent queries的大小不会发生改变,都是64。
在这里插入图片描述

3.2 Gated XATTN-DENSE 模块(门控注意力模块)

Flamingo 将固定长度的视觉 query 注入到语言模型的方法称为 Gated xattn dense,其详细结构示意图及伪代码如下图所示。具体来说,在预训练好的 LM 的各层交替地插入一些随机初始化的交叉注意力层。所谓 gated门控,在每一新插入的层之后的残差链接之前添加一个 tanh gating,即 tanh(α) ,其中 α 是一个可学习的标量值,初始值为 0,从而保证初始化时的输出与原 LM 一致。
在这里插入图片描述

四、数据格式

Flamingo 的训练数据有三类:**图文交错数据集、图像文本对数据集和视频文本对数据集。**其中图文交错数据集是 Flamingo 数据的重点,其多模态 in-context learning (few-shot learning) 的能力可以说主要就是来自图文交错数据。作者收集了一个大规模图文交错数据集 M3W,通过解析 HTML 获取并标记图片在文本中的位置。

五、效果

可以通过论文中的示例图看到Flamingo的效果还是非常炸裂的,在多项任务上都有惊人的表现。当然Flaminggo也有一些待改进的地方,比如,Flamingo的输出只是单模态的文本
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/445210.html

相关文章:

  • 机器学习算法深度解析:以支持向量机(SVM)为例的实践应用
  • 【学生管理系统】权限管理之角色管理
  • Windows API Set:那些“只存在但不被使用“的DLL
  • 解决k8s部署dashboard时一直处于Pending状态的问题
  • echarts没有map地图解决方案
  • 2024 年最新 windows 操作系统搭建部署 nginx 服务器应用详细教程(更新中)
  • R 语言科研绘图第 6 期 --- 散点图-基础
  • 线性代数判断两条线方向相反(python)
  • python学习——洛谷[NOIP2011 普及组] 统计单词数
  • 大恒相机开发(1)—Python调用采集彩色图像并另存为本地
  • 自动驾驶AVM环视算法--python版本的前后左右单视角投影模式
  • SQL进阶技巧:如何计算算法题分发糖果问题?
  • 简单的bytebuddy学习笔记
  • C#中的匿名方法、Lambda表达式、泛型委托
  • 【传感器技术】期末考试试题总结 ver1,电阻式,电感式,电容式,压电式,霍尔式,温度传感器,光电传感器
  • 【Redis经典面试题一】如何解决Redis和数据库一致性的问题?
  • Linux之文件相关命令
  • UE5 物体自动跟随主角镜头转向
  • 群晖利用acme.sh自动申请证书并且自动重载证书的问题解决
  • 基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
  • ADOADO.NET基础
  • OpenGL ES 03 加载3张图片并做混合处理
  • 四相机设计实现全向视觉感知的开源空中机器人无人机
  • 共创共建!葡萄城 SpreadJS 完成 HarmonyOS NEXT 操作系统兼容认证
  • tcp_ack函数
  • 前端模块化