前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 CLIP 对没有任何标签的图像进行分类

使用 CLIP 对没有任何标签的图像进行分类

作者头像
小白学视觉
发布2022-12-27 18:12:48
2.6K0
发布2022-12-27 18:12:48
举报

深度图像分类模型通常在大型带注释数据集上以监督方式进行训练。尽管模型的性能会随着更多注释数据的可用而提高,但用于监督学习的大规模数据集通常难以获得且成本高昂,需要专家注释者花费大量时间。考虑到这一点,人们可能会开始怀疑是否存在更便宜的监督资源。简而言之,是否有可能从已经公开可用的数据中学习高质量的图像分类模型?

OpenAI提出的对比语言图像预训练 (CLIP) 模型 [1] 最近由于在DALLE-2模型中的使用而重新流行起来,并且以积极的方式回答了这个问题。特别是,CLIP 提出了一个简单的预训练任务——选择哪个标题与哪个图像相配——它允许深度神经网络单独从自然语言(即图像标题)中学习高质量的图像表示。由于图像-文本对很容易在线获得并且通常很容易获得,因此可以轻松地为 CLIP 策划一个大型预训练数据集,从而最大限度地减少训练深度网络所需的注释成本和工作量。

除了学习丰富的图像表示之外,CLIP 通过在不观察单个标签的情况下在 ImageNet 上实现 76.2% 的测试准确率,彻底改变了零样本图像分类——与之前SOTA的零样本学习框架的11.5% 测试准确率相比有了显着改进[2]。通过将自然语言作为图像感知任务的可行训练信号,CLIP 改变了监督学习范式,并使神经网络能够显着减少对注释数据的依赖。在这篇文章中,我将概述 CLIP 的细节,如何使用它来最大程度地减少对传统监督数据的依赖,以及它对深度学习的影响。

CLIP 之前是什么?

在了解 CLIP 的细节之前,了解模型提出之前的相关研究很有必要。在本节中,我将概述先前相关的工作,并提供有关 CLIP 的灵感和发展的直觉。即,通过初步工作表明自然语言是图像感知监督的有用来源来证明概念。然而,由于此类方法相对于替代方法(例如,监督训练、弱监督等)表现不佳,因此在 CLIP 提出之前,通过自然语言进行的训练仍然不常见。

相关的工作

使用 CNN 预测图像说明。先前的工作表明,预测图像说明允许 CNN 开发有用的图像表示 [3]。这种分类是通过将每个图像的标题、描述和主题标签元数据转换为词袋向量来执行的,然后可以将其用作多标签分类任务的目标。有趣的是,以这种方式学习的特征与通过 ImageNet 预训练获得的特征的质量相匹配,从而证明图像说明提供了关于每张图像的足够信息以学习判别表示。

后来的工作将这种方法扩展到预测与每个图像相关的短语 [2],从而实现到其他分类数据集的零样本迁移。尽管这种方法的零样本性能很差(即在 ImageNet 上的测试准确率为 11.5%),但它表明仅使用自然语言就可以产生远远超过随机性能的零样本图像分类结果,从而初步证明弱监督零样本分类的概念。

来自带有Transformer的文本的图像表示。同时,几项工作——包括 VirTex [4]、ICMLM [5] 和 ConVIRT [6]——探索了使用Transformer架构从文本数据中学习视觉特征。在高层次上,此类方法使用常见的训练任务让Transformer从相关的图像说明中学习有用的图像表示。作为此类工作的结果,掩码语言建模(MLM)、语言建模和对比学习目标——通常用于在自然语言处理领域训练转换器——被发现是学习高质量图像表示的有用代理任务。

为未来的发现铺平道路

尽管以前的方法没有在大规模数据集上实现令人印象深刻的零样本性能,但这些基础工作提供了有用的经验教训。也就是说,之前的工作明确两点:1.自然语言是计算机视觉监督的有效来源。2.通过自然语言监督进行零样本分类是可能的。由于这些发现,进一步的研究工作被投入到在监督来源较弱的情况下执行零样本分类。这些努力产生了突破性的方法,例如 CLIP,它将自然语言监督从一种罕见的方法转变为一种出色的零样本图像分类方法。

深入了解 CLIP

CLIP 架构和训练方法的可视化概述

简而言之,上图中总结的 CLIP 模型旨在从相关图像说明中学习图像中的视觉概念。在本节中,我将概述 CLIP 架构、其训练以及生成的模型如何应用于零样本分类。

模型架构

CLIP 由两个编码器模块组成,分别用于对文本和图像数据进行编码。对于图像编码器,探索了许多不同的模型架构,包括五个不同大小的 ResNets [7](即,模型尺寸是使用 EfficientNet 样式 [8] 模型缩放规则确定的)和三个视觉Transformer架构 [9]。图像编码器的这两个选项如下所示。然而,CLIP 的视觉Transformer变体在训练时的计算效率提高了 3 倍,使其成为首选的图像编码器架构。

CLIP 中图像编码器架构的不同选项

CLIP 中的文本编码器只是一个仅解码器的Transformer,这意味着在每一层中都使用了Masked的自注意力(与双向自注意力相反)。Masked的自注意力确保Transformer对序列中每个标记的表示仅取决于它之前的标记,从而防止任何标记“展望未来”以更好地告知其表示。下面提供了文本编码器体系结构的基本描述。然而,应该注意的是,这种架构与大多数先前提出的语言建模架构(例如GPT-2或OPT)非常相似。

CLIP 的文本编码器架构

尽管 CLIP 未应用于原始出版物中的任何语言建模应用,但作者利用掩蔽自注意力使 CLIP 将来更容易扩展到此类应用。

通过自然语言监督进行训练

尽管之前的工作表明自然语言是一种可行的计算机视觉训练信号,但用于在图像和文本对上训练 CLIP 的确切训练任务并不是很明显。我们应该根据标题中的文字对图像进行分类吗?

以前的工作已经尝试过这个想法,但效果不是很好 [2, 3]。有趣的是,作者发现预测确切的图像说明太困难了因为任何图像都可以用多种不同的方式来描述,这使得模型学习非常缓慢。

理想的 CLIP 预训练任务应该是可扩展的,这意味着它允许模型从自然语言监督中有效地学习有用的表示。借鉴对比表示学习中的相关工作,作者发现可以使用一项非常简单的任务来有效地训练 CLIP——在一组候选字幕中预测正确的、相关联的字幕。下图说明了这样的任务。

CLIP 的图文对比预训练

在实践中,这一目标是通过以下方式实现的:

  • 通过各自的编码器传递一组图像和文本说明
  • 最大化真实图像-字幕对的图像和文本嵌入之间的余弦相似度
  • 最小化所有其他图像标题对之间的余弦相似度

这样的目标被称为多类 N 对(或 InfoNCE)损失 [10],通常应用于对比和度量学习中的问题。作为这个预训练过程的结果,CLIP 为图像和文本形成了一个联合嵌入空间,使得对应于相似概念的图像和标题具有相似的嵌入。

更好的任务 = 更快的学习。通过使用这个更简单的代理任务训练 CLIP 模型,作者观察到训练效率提高了 4 倍;如下图所示。

CLIP 由于其对比目标提高了训练效率

在这里,训练效率是使用 ImageNet 上的零样本学习迁移率来衡量的。换句话说,当使用这个简单的目标时,CLIP 模型花费更少的训练时间(根据观察到的图像文本示例的数量)来实现在 ImageNet 上产生高零样本精度的模型。因此,正确选择训练目标会对模型效率和性能产生巨大影响

我们如何在没有训练示例的情况下对图像进行分类?

CLIP 执行分类的能力最初看起来像是一个谜。鉴于它只从非结构化的文本描述中学习,它怎么可能推广到图像分类中看不见的对象类别?CLIP 经过训练可以预测图像和文本片段是否配对在一起。有趣的是,这种能力可以重新用于执行零样本分类。特别是,通过利用未见类别的文本描述(例如,类别名称),可以通过将文本和图像传递给它们各自的编码器并比较生成的嵌入来评估每个候选类别;请参阅下面的视觉描述。

使用 CLIP 执行零样本分类

形式化这个过程,零样本分类实际上包括以下步骤:

  • 计算图像特征嵌入
  • 从相关文本(即类名/描述)计算每个类的嵌入
  • 计算图像类嵌入对的余弦相似度
  • 归一化所有相似性以形成类概率分布

这种方法有局限性:一个类的名称可能缺乏揭示其含义的相关上下文(即多义问题),一些数据集可能完全缺乏元数据或类的文本描述,并且对图像进行单词描述在用于训练的图像-文本对。这些问题可以通过制作“提示”来以文本形式表示不同的类别或创建多个零样本分类器的集合来缓解;见下图。

当 (i) 提示用于生成类嵌入和 (ii) 零样本分类器的集合用于预测时,CLIP 实现了改进的性能

然而,这种方法仍然具有根本的局限性,最终必须解决这些局限性,以提高零样本学习能力。

CLIP 实践——没有训练数据的准确分类!

在原文中,CLIP 在零样本域中进行评估,并添加了微调(即少样本或完全监督域)。在这里,我将概述这些使用 CLIP 进行的实验的主要发现,并提供有关 CLIP 何时可以和不可以用于解决给定分类问题的相关详细信息。

零样本。在零样本领域,CLIP 取得了突破性的成果,将 ImageNet 上最先进的零样本测试准确率从 11.5% 提高到 76.2%;见下文。

零样本 CLIP 精度与之前最先进技术的比较

当将 CLIP 的零样本性能与以预训练的 ResNet50 特征作为输入的完全监督线性分类器的性能进行比较时,CLIP 继续在各种数据集上取得显著成果。即,CLIP 在所研究的 27 个总数据集中的 16 个上优于线性分类器(完全监督!),尽管从未观察到单个训练示例。

CLIP 与以预训练的 ResNet50 特征作为输入的线性分类器

当分析每个数据集的性能时,很明显 CLIP 在一般对象分类数据集(例如 ImageNet 或 CIFAR10/100)上表现良好,甚至在动作识别数据集上表现更好。直觉上,这些任务的良好表现是由于 CLIP 在训练期间接受的广泛监督以及图像说明通常以动词为中心的事实,因此与动作识别标签的相似性高于数据集中使用的以名词为中心的类,例如图片网。有趣的是,CLIP 在卫星图像分类和肿瘤检测等复杂和专门的数据集上表现最差。

少样本: CLIP 的零样本和少样本性能也与其他少样本线性分类器的性能进行了比较。在观察每个类中的四个训练示例后,发现零样本 CLIP 与少样本线性分类器的平均性能相匹配。此外,当允许观察训练示例本身时,CLIP 优于所有小样本线性分类器。这些结果总结在下图中。

与少镜头线性分类器相比,CLIP 零和少镜头性能

当使用 CLIP 特征训练完全监督的线性分类器时,发现它在准确性和计算成本方面都优于许多基线,从而强调了 CLIP 通过自然语言监督学习的表示的质量;见下文。

使用 CLIP 的完全监督线性分类器性能

尽管 CLIP 的性能并不完美(即,它在专门的任务上表现不佳,并且仅适用于对每个类别都有良好文本描述的数据集),但 CLIP 实现的零样本和少样本结果预示了高概率产生的可能性- 图像和文本的质量联合嵌入空间。更多可能,但 CLIP 为此类通用分类方法提供了初步(令人印象深刻的)概念证明。

影响和要点

毫无疑问,CLIP 彻底改变了零样本图像分类领域。尽管先前在语言建模方面的工作表明,可以利用非结构化输出空间(例如,文本到文本语言模型,如 GPT-3 [11])来实现零样本分类目的,但 CLIP 通过i)形成对这些结果进行了扩展一种适用于计算机视觉的方法,以及ii)将整个训练过程建立在易于获取的图像文本描述的基础上。

CLIP 坚定地认为自然语言提供了足够的训练信号来学习高质量的感知特征。这一发现对深度学习研究的未来方向具有重大影响。特别是,图像的自然语言描述比遵循特定任务本体的图像注释(即用于分类的传统单热标签)更容易获得。因此,为 CLIP 风格的分类器标注训练数据更具可扩展性,特别是因为许多图像-文本配对可以免费在线下载。

CLIP 的主要局限性源于以下事实:i)在分类问题中获得每个类的良好文本嵌入是困难的,并且ii)复杂/特定任务(例如,肿瘤检测或预测图像中对象的深度)难以通过学习通用自然语言监督。尽管如此,CLIP 学习到的表示是高质量的,并且可以通过探索对预训练过程中观察到的数据的修改来提高更专业任务的性能。

使用CLIP

代码语言:javascript
复制
import clip
available_models = clip.available_models()
device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = clip.load(available_models[0], device=device)

[1] Radford, Alec, et al. “Learning transferable visual models from natural language supervision.” International Conference on Machine Learning. PMLR, 2021.

[2] Li, Ang, et al. “Learning visual n-grams from web data.” Proceedings of the IEEE International Conference on Computer Vision. 2017.

[3] Joulin, Armand, et al. “Learning visual features from large weakly supervised data.” European Conference on Computer Vision. Springer, Cham, 2016.

[4] Desai, Karan, and Justin Johnson. “Virtex: Learning visual representations from textual annotations.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2021.

[5] Sariyildiz, Mert Bulent, Julien Perez, and Diane Larlus. “Learning visual representations with caption annotations.” European Conference on Computer Vision. Springer, Cham, 2020.

[6] Zhang, Yuhao, et al. “Contrastive learning of medical visual representations from paired images and text.” arXiv preprint arXiv:2010.00747 (2020).

[7] He, Kaiming, et al. “Deep residual learning for image recognition.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[8] Tan, Mingxing, and Quoc Le. “Efficientnet: Rethinking model scaling for convolutional neural networks.” International conference on machine learning. PMLR, 2019.

[9] Dosovitskiy, Alexey, et al. “An image is worth 16x16 words: Transformers for image recognition at scale.” arXiv preprint arXiv:2010.11929 (2020).

[10] Sohn, Kihyuk. “Improved deep metric learning with multi-class n-pair loss objective.” Advances in neural information processing systems 29 (2016).

[11] Brown, Tom, et al. “Language models are few-shot learners.” Advances in neural information processing systems 33 (2020): 1877–1901.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为未来的发现铺平道路
  • 我们如何在没有训练示例的情况下对图像进行分类?
  • CLIP 实践——没有训练数据的准确分类!
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档