论文基础信息如下
视觉语言理解和生成、操作三部曲如下
引导式:智能问答
不懂就问:我要是上传一张自己的图像,它会不会直接猜到我心里在想什么
论文中的一些官方示例,红色是问题,绿色是回答,人工智能 YYDS 了
多个编码器-解码器
模型架构
研究者将一个视觉 transformer 用作图像编码器,该编码器将输入图像分解为 patch,然后将这些 patch 编码为序列嵌入,并使用一个额外的[CLS] token 表征全局图像特征。相较于将预训练目标检测器用于视觉特征提取的方法,使用 ViT 在计算上更友好,并且已被最近很多方法所采用。
为了预训练一个具备理解和生成能力的统一模型,研究者提出了多任务模型 MED(mixture of encoder-decoder),它可以执行以下三种功能的任意一种:
预训练目标
研究者在预训练过程中共同优化了三个目标,分别是两个基于理解的目标和一个基于生成的目标。每个图像文本对只需要一个前向传播通过计算更重(computational-heavier)的视觉 transformer,需要三个前向传播通过文本 transformer,其中激活不同的功能以计算以下 3 个损失,分别是:
图像文本对比损失(image-text contrastive loss, ITC),激活单峰编码器,旨在通过鼓励正图像文本对(而非负对)具有相似的表征来对齐视觉与文本 transformer 的特征空间;
图像文本匹配损失(image-text matching loss, ITM),激活基于图像的文本编码器,旨在学习捕获视觉与语言之间细粒度对齐的图像文本多模态表征;
语言建模损失(language modeling loss, LM),激活基于图像的文本解码器,旨在给定一张图像时生成文本描述。
为了在利用多任务学习的同时实现高效的预训练,文本编码器和解码器必须共享除自注意力(self-attention, SA)层之外的所有参数。具体地,编码器使用双向自注意力为当前输入 token 构建表征,同时解码器使用因果自注意力预测接下来的 token。
另外,嵌入层、交叉注意力(cross attention, CA)层和 FFN 在编码和解码任务之间功能类似,因此共享这些层可以提升训练效率并能从多任务学习中获益。
实验结果
研究者在 PyTorch 中实现模型,并在两个 16-GPU 节点上预训练模型。其中,图像 transformer 源于在 ImageNet 上预训练的 ViT,文本 transformer 源于 BERT_base。
这个论文的工作感觉还是相当有意思,大家有兴趣,可下载原文进行详细研究,传送门地址如下
- 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️
- ❤️ 过去的每一天、想必你也都有努力、祝你披荆斩棘、未来可期
深度学习模型训练推理——基础环境搭建推荐博文查阅顺序【基础安装—认真帮大家整理了】
点赞 收藏 ⭐留言 都是博主坚持写作、更新高质量博文的最大动力!