来源:机器学习研究组订阅

这个 BLIP 模型可以「看图说话」,提取图像的主要内容,不仅如此,它还能回答你提出的关于图像的问题。

视觉 - 语言预训练 (Vision-Language Pre-training,VLP) 提高了许多视觉 - 语言任务的性能。然而,大多数现有的预训练模型只能在基于理解任务或基于生成任务中表现出色。

现有的 VLP 方法主要存在两个局限性:

(1)从模型角度来讲,大多数方法采用基于编码器的模型,或者采用基于编码器 - 解码器模型。然而,基于编码器的模型很难直接转换到文本生成任务中,而编码器 - 解码器模型还没有成功地用于图像 - 文本检索任务;

(2)从数据角度来讲,像 CLIP、SimVLM 等 SOTA 模型通过在 web 上收集的图像 - 文本对进行预训练,尽管扩大数据集获得了性能提升,但 web 上的文本具有噪声,对 VLP 来说并不是最优。

近日,来自 Salesforce Research 的研究者提出了 BLIP(Bootstrapping Language-Image Pre-training),用于统一视觉 - 语言理解和生成任务。BLIP 是一个新的 VLP 框架,可以支持比现有方法更广泛的下游任务。BLIP 通过自展标注(bootstrapping the captions),可以有效地利用带有噪声的 web 数据,其中标注器(captioner)生成标注,过滤器(filter)去除有噪声的标注。

该研究在视觉 - 语言任务上取得了 SOTA 性能,例如在图像 - 文本检索任务上, recall@1 提高 2.7%;在图像标注任务上,CIDEr 提高 2.8%、VQA 提高 +1.6%。当将 BLIP 以零样本的方式直接迁移到视频 - 语言任务时,BLIP 也表现出很强的泛化能力。

论文一作为Salesforce亚洲研究院高级研究科学家Junnan Li,香港大学电子工程学士,新加坡国立大学计算机科学博士。他的主要研究兴趣在于自监督学习、半监督学习、弱监督学习、迁移学习以及视觉与语言。

  • 论文地址:https://arxiv.org/pdf/2201.12086.pdf

  • 代码地址:https://github.com/salesforce/BLIP

  • 试玩地址:https://huggingface.co/spaces/akhaliq/BLIP

BLIP 的效果如何呢?用户只需上传一张图像,或单击内置示例加载图像就可完成。

BLIP 模型具有两个功能:图像标注和回答问题。这里,我们上传了猫咪和狗的图片:在图像标注这一功能下,模型输出「caption: a puppy and a kitten sitting in the grass(一只小狗和一只小猫坐在草地上)」(如下图红框所示)。

在回答问题功能下:当我们输入问题「what is the color of the puppy(小狗的颜色是什么)」,模型输出「tan(棕黄色)」。

上传著名油画《星夜》,在图像标注功能下模型输出「caption: a painting of a starry night over a city(一幅描绘城市星空的画)」。

上传经典动画《龙猫》,向模型提问「who is standing next to totoro(谁坐在龙猫旁边)」,模型回答「little girl(小女孩)」。

架构 & 方法

研究者提出的 BLIP 是一个统一的视觉语言预训练(vision-language pre-training, VLP)框架,从有噪声的图像文本对中学习。接下来详细解读模型架构 MED(mixture of encoder-decoder)、它的预训练目标以及用于数据集自展的方法 CapFilt。下图 2 为 BLIP 的预训练模型架构和目标。

动态运行示意图如下:

模型架构

研究者将一个视觉 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 在编码和解码任务之间功能类似,因此共享这些层可以提升训练效率并能从多任务学习中获益。

 CapFilt 

研究者提出了一种提升文本语料库质量的新方法——CapFilt(Captioning and Filtering)。如下图 3 所示,CapFilt 引入了两个主要的模块:一个是为给定 web 图像生成标注的标注器(captioner),另一个是消除有噪声图像文本对的过滤器(filter)。这两个模块都源于同一个预训练 MED 模型,并各自在 COCO 数据集上微调。

具体地,标注器是一个基于图像的文本解码器。它利用 LM 目标进行微调,以解码给定图像的文本。比如,给定 web 图像 I_w,则标注器生成标注 T_s,其中每张图像一个标注。

过滤器是一个基于图像的文本编码器。它利用 ITC 和 ITM 目标进行微调,以学习文本是否与图像匹配。过滤器消除原始 web 文本 T_w 和合成文本 T_s 中的噪声文本,其中如果 ITM 头(head)预测一个文本与图像不匹配,则该文本被认为有噪声。

最后,研究者将过滤后的图像文本对于人工注释对相结合以生成一个新的数据集,并用它预训练了新模型。

实验结果

研究者在 PyTorch 中实现模型,并在两个 16-GPU 节点上预训练模型。其中,图像 transformer 源于在 ImageNet 上预训练的 ViT,文本 transformer 源于 BERT_base。

CapFilt 的效果

下表 1 中,研究者比较了在不同数据集上预训练的模型,以验证 CapFilt 在下游任务(包括微调和零样本设置下的图像文本检索和图像标注)上的效用。

下图 4 中给出了一些标注示例以及对应的图像,从而在质量上验证了标注器有效地生成新的文本描述,过滤器有效地消除原始 web 文本和合成文本中的噪声标注。

合成标注的关键:多样性 

在 CapFilt 方法中,研究者使用一种随机解码方法——核抽样(nucleus sampling)来生成合成标注。下表 2 中与束搜索(beam search)方法进行了比较,可以看到核抽样取得了更好的数据结果,尽管由于过滤器更高的噪声比导致了更大的噪声。

参数共享与解耦

在预训练中,文本编码器和解码器共享所有参数,除自注意力层外。表 3 评估了使用不同参数共享策略进行预训练的模型性能,其中预训练是在 14M 带有 web 文本的图像上进行的。

结果表明,除 SA 外,所有层具有参数共享优于那些没有进行参数共享的,同时也减少了模型的大小,从而提高了训练效率。

在 CapFilt 中,标注器和过滤器分别在 COCO 上进行了端到端的微调,表 4 研究了标注器和过滤器以共享参数的方式进行预训练的影响。

由于参数共享,标注器产生的噪声标注不会被过滤器过滤掉,这可以从较低的噪声比 (8% 比 25%) 看出。

与 SOTA 模型进行比较

该研究将 BLIP 与 VLP 模型在视觉 - 语言下游任务上进行了比较。如表 5 所示,与现有方法相比,BLIP 实现了性能改进。使用相同的 14M 预训练图像,BLIP 在 COCO 上的 recall@1 比之前的最佳模型 ALBEF 高 2.7%。

该研究还通过将在 COCO 上微调的模型直接迁移到 Flickr30K 来执行零样本检索。结果如表 6 所示,BLIP 也大大优于现有方法。

在图像标注任务上,该研究采用两个数据集:NoCaps 和 COCO,两者都使用在 COCO 上微调并具有 LM 损失的模型进行评估。如表 7 所示,使用 14M 预训练图像的 BLIP 显著优于使用相似数量的预训练数据的方法。使用 129M 图片的 BLIP 与使用 200M 图片的 LEMON 相比,具有相媲美性能。

视觉问答 (VQA) 要求模型在给定图像和问题的情况下预测答案。该研究没有将 VQA 制定为多答案分类任务,而是遵循 Li 等人研究将其视为一个答案生成任务,它支持开放式 VQA。

结果如表 8 所示,在测试集上,使用 14M 图像,BLIP 的性能比 ALBEF 高出 1.64%。使用 129M 图像,BLIP 比 SimVLM 获得了更好的性能,而 SimVLM 使用了 13 倍多的预训练数据和更大的视觉骨干,并附加了一个卷积阶段。

更多实验数据请参见原论文。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

华人一作统一「视觉-语言」理解与生成:一键生成图像标注,完成视觉问答,Demo可玩...相关推荐

  1. 华人打造二次元老婆生成器!尔康容嬷嬷成萌妹,图像视频都能变 | Demo可玩

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 当你的女朋友变身二次元,是什么样子? 小声说:没有女朋友. 搞错了,再来! 你下一个二次元老婆,可能是真人生成的! 即便是容嬷嬷本嬷,也能瞬 ...

  2. c语言常量命名特点,「C语言」常量和变量的表示、应用和变量命名规则

    在程序运行中,其值不能改变的量成为常量. 在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 目录: 一.常量 二.C语言标识符 三.变 ...

  3. 看过漫改,但你看过「改漫」吗?AI 一键让影视变漫画

    作者 | 神经小兮 来源 | HyperAI超神经 头图 | 下载于视觉中国 把影视剧变成漫画,是怎样的一种神操作?来自大连理工大学和香港城市大学的团队,最新提出的 AI 框架,可自动将影视剧转换为漫 ...

  4. 苹果的「AI 建筑师」GAUDI:根据文本生成 3D 场景

    作者:李梅  |  编辑:陈彩娴  |  转载自:AI科技评论(aitechtalk) 如今,每隔一段时间就有新的文本生成图像模型释出,个个效果都很强大,每每惊艳众人,这个领域已经是卷上天了. 不过, ...

  5. 计算机视觉的图像标注与视觉任务

    1 ​计算机视觉应用 计算机视觉是一种利用计算机和数学算法来模拟人类视觉的技术,可以应用于许多领域.以下是计算机视觉的八大应用: 图像识别:利用计算机视觉技术,可以对图像进行分类.识别和分割,从而实现 ...

  6. 「C语言」数据类型及混合运算与类型转换

    深入学习C语言时,有必要先了解一下数据类型的概念,以及它们之间的混合运算与类型转换. 本篇文章便是根据<C语言程序设计教程>和在线翻阅资料后整理而出.(练习题将逐步更新) 目录:     ...

  7. 「易语言」cmd 执行文件命令代码

    运行 ("cmd /c start D:\安装\e\易语言5.9\e.exe", 假, ) 执行 (, "cmd.exe", "cmd /c star ...

  8. rust闪退删除什么文件_【一点资讯】「Rust语言」噢,不!我的数据科学正在Rust化...

    Python是数据科学家最流行的编程语言之一--这是有充分理由的.Python包索引(PyPI)承载了大量令人印象深刻的数据科学库包,比如NumPy.SciPy.自然语言工具包.Pandas和Matp ...

  9. 「C语言」寄存器变量与内存变量

    参考链接: 寄存器变量是什么?及它的存储种类有哪些? 静态变量.自动变量与寄存器变量的存储 寄存器变量-百度百科 前两天看师兄给的C语言的一本小册子,看到: 内存变量或寄存器变量是指进程运行过程中的变 ...

最新文章

  1. MYSQL常用函数以及分组操作
  2. vue --- 修饰符.lazy、.number、.trim
  3. MySQL之命令mysql -- MySQL服务器的客户端工具
  4. JSP:src路径里有中文,产生乱码问题
  5. VS2010下配置OpenCV2.2
  6. 多普达D700手机利用USB电缆与电脑连接上网方法
  7. java---键盘输入,写入到本地硬盘的数据
  8. Tapestry5.3使用总结
  9. Java读取配置文件yml中属性的方法
  10. 平面方程、两平面夹角、点到平面距离
  11. WikiExtractor.py(维基百科抽取器)
  12. royer推挽自激电路
  13. CSS font-size单位
  14. 计算机休眠唤醒后分辨率变小了,WIN10休眠唤醒后,所有的窗口都跑到了左上角,如何解决?...
  15. 织梦dedecmsTAG出现404页面的解决办法
  16. FreeNAS 简介
  17. MySQL--SQL执行顺序详解
  18. 中国蔬菜种子行业竞争动态与营销趋势预测报告2022-2027年
  19. 2023最新黑客入门(超级详细版)
  20. 老庞学习笔记:段永平语录

热门文章

  1. 作为程序员,你在编程中吃了哪些数学的亏?
  2. 用TensorFlow实现的Mask R-CNN在人体语义分割上的效果
  3. 如何比较PixelCNN与DCGAN两种Image generation方法?
  4. Nature Chemistry | 化学机器学习的最佳实践:推荐的一套标准化指南
  5. 打不死的小强机器人来了,向心加速度堪比猎豹,能抵抗自身数百倍重量碾压...
  6. 赠书 | 人工智能变“人工智障”?关于因果关系的新科学
  7. 剑指offer:把字符串转换成整数
  8. 相当全面的Numpy使用总结.pptx
  9. 黑入苹果、特斯拉竟如此容易!这位鬼才的攻击方法火了!
  10. 饶毅坚守教育学者的风骨,网友鼓励:远离精致利己主义的舒适区