乐趣区

关于深度学习:使用-CLIP-对没有标记的图像进行零样本无监督分类

深度图像分类模型通常以监督形式在大型带正文数据集上进行训练。随着更多带正文的数据退出到训练中,模型的性能会进步,但用于监督学习的大规模数据集的标注老本时十分高的,须要专家正文者破费大量工夫。为了解决这个问题,人们开始寻找更便宜的标注的标签起源,是否有可能从曾经公开的数据中学习高质量的图像分类模型?

OpenAI 提出的 CLIP 模型 [1] 的提议——最近因为在 DALLE-2 模型中的应用而从新风行——它以踊跃的形式答复了这个问题。特地是 CLIP 提出了一个简略的预训练任务——抉择哪个题目与哪个图像搭配——它容许深度神经网络仅从自然语言(即图像题目)中学习高质量的图像示意。因为图像 - 文本对在网上很容易取得并且数据量十分的微小,因而能够轻松地为 CLIP 治理一个大型预训练数据集,从而最大限度地缩小标注老本和训练深度网络所需的工作量。

除了学习丰盛的图像示意之外,CLIP 不须要标签并且在 ImageNet 上实现 76.2% 的测试准确率,这个后果彻底改变了零样本图像分类 – 与之前状态的 11.5% 的测试准确率的状态[2]。通过将自然语言建设为图像感知工作的可行训练信号,CLIP 扭转了监督学习范式,使神经网络可能显着缩小对正文数据的依赖。在这篇文章中,将概述 CLIP 的信息,如何应用它来最大水平地缩小对传统的监督数据的依赖,以及它对深度学习从业者的影响。

CLIP 之前的工作

在理解 CLIP 的细节之前,理解模型倒退的历史会很有帮忙。在本节中将概述相干的先前工作,并提供无关 CLIP 的灵感和倒退的直觉。初步工作通过表明自然语言是图像感知监督的有用起源来作为概念证实。然而,因为这些办法绝对于代替办法体现不佳(例如,监督训练、弱监督等),因而在 CLIP 提出之前,通过自然语言进行的训练依然不常见。

应用 CNN 预测图像题目。之前的工作都是通过 CNN 取得有用的图像示意来预测图像阐明的 [3]。这种分类是通过将每个图像的题目、形容和主题标签元数据转换为词袋向量来执行的,而后能够将其用作多标签分类工作的指标。乏味的是,以这种形式学习的特色被证实与通过 ImageNet 上的预训练取得的特色相匹配,从而证实图像阐明提供了对于每个图像的足够信息来学习判断示意。

起初的工作扩大了这种办法来预测与每个图像相干的短语 [2],从而实现零样本转移到其余分类数据集。只管这种办法取得了较差的零样本学习性能(即在 ImageNet 上的测试准确率仅为 11.5%),但它表明仅应用自然语言就能够产生远远超过随机性能的零样本图像分类后果,因而能够说它提出了弱监督零样本分类的概念。

来自带有 transformers 的文本的图像示意。同时,包含 VirTex [4]、ICLMM [5] 和 ConVIRT [6] 在内的几项工作摸索了应用 transformers 架构从文本数据中学习视觉特色。在高层次上,此类办法应用常见的 transformers 训练任务来从相干的图像的阐明中学习有用的图像示意。因为这些工作,掩蔽语言建模 (MLM)、语言建模和比照学习指标——通常用于在自然语言解决畛域训练转换器——被发现是学习高质量图像示意的有用代理工作。

下面的钻研为将来的发现铺平了路线,只管之前没有任何办法可能在大规模数据集上实现令人印象粗浅的零样本性能,但这些基础性工作提供了十分有用的经验教训。也就是说,之前的工作表明:

i)自然语言是计算机视觉监督的无效起源

ii)通过自然语言监督进行零样本分类是可能的

因为这些发现,进一步的钻研工作投入到执行零样本分类。这些致力带来了突破性的办法,比方 CLIP,它将自然语言监督从一种常见的办法转变为一种杰出的零样本图像分类办法。

深入研究 CLIP

简略地说 CLIP 模型旨在从相干的图像阐明中学习图像中的视觉概念。在本节中将概述 CLIP 架构、训练,以及如何将后果模型利用于零样本分类。

模型架构

CLIP 由两个编码模块组成,别离用于对文本数据和图像数据进行编码。对于图像编码器,摸索了多种不同的模型架构,包含 5 种不同尺寸的 ResNets[7],effecentnet 格调 [8] 和 3 种 ViT 架构[9]。传统的 CNN 架构的两个选项如下所示,然而 CLIP 的 ViT 变体的训练计算效率要高出 3 倍,这使得它成为首选的图像编码器架构。

CLIP 中的文本编码器只是一个仅解码器的 transformers,这意味着在每一层中都应用了掩码自注意力(与双向自注意力相同)。Masked self-attention 确保转换器对序列中每个标记的示意仅依赖于它之前的标记,从而避免任何标记“展望未来”以这样能够取得更好的示意。上面提供了文本编码器架构的根本形容。这种架构与大多数先前提出的语言建模架构(例如 GPT-2 或 OPT)十分类似。

只管在原始论文中没有将 CLIP 利用于任何语言建模应用程序,但作者利用了掩码自注意力,使 CLIP 在未来更容易扩大到这类应用程序。

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

只管以前的工作表明自然语言是计算机视觉的可行训练信号,但用于在图像和文本对上训练 CLIP 的确切训练任务并不是很显著。所以应该依据题目中的单词对图像进行分类吗?以前的工作曾经尝试过并且证实时有成果的,然而并不好 [2, 3]。应用语言建模为每个图像生成题目呢?作者发现预测确切的图像阐明太难了——导致模型学习十分迟缓——因为能够形容图像的形式是多种多样的。

现实的 CLIP 预训练任务应该是可扩大的,应该容许模型无效地从自然语言监督中学习有用的示意并能够利用比照示意学习中的相干工作,作者发现能够应用一个非常简单的工作来无效地训练 CLIP——在一组候选字幕中预测正确的相干字幕。下图阐明了这样的工作。

在实践中,通过以下形式实现:

  • 通过它们各自的编码器传递一组图像和文本题目
  • 最大化实在图像 - 题目对的图像和文本嵌入之间的余弦类似度
  • 最小化所有其余图像 - 字幕对之间的余弦类似度

这样的指标被称为多类 N 对(或 InfoNCE)损失 [10],通常利用于比照和度量学习中的问题。作为这个预训练过程的后果,CLIP 为图像和文本造成了一个联结嵌入空间,讲类似概念对应到了图像和字幕的嵌入。

更好的工作 = 更快的学习。通过应用这种更简略的代理工作训练 CLIP 模型,作者察看到训练效率进步了 4 倍; 如下图所示。

训练效率是应用 ImageNet 上的零样本学习的迁移率来掂量的。也就是说,当应用这个简略的指标时 CLIP 模型须要更少的训练工夫(就察看到的图像 - 文本示例的数量而言)来实现在 ImageNet 上产生高零样本精度的模型。因而,正确抉择训练指标会对模型的效率和性能产生微小影响。

如何在没有训练样本的状况下对图像进行分类?

CLIP 执行分类的能力最后仿佛是个谜。鉴于它只从非结构化的文本形容中学习,它怎么可能泛化到图像分类中看不见的对象类别?

CLIP 被训练来预测图像和文本片段是否配对在一起。这种能力能够从新用于执行零样本分类。特地是通过利用未见类的文本形容(例如,类名),能够通过将文本和图像通过各自的编码器并比拟生成的嵌入来评估每个候选类;例如上面的图例:

将该过程总结如下,零样本分类实际上包含以下步骤:

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

这种办法也有一些局限性:类的名称可能不足揭示其含意的相干上下文(即多义问题),一些数据集可能齐全不足元数据或类的文本形容,并且对图像的形容可能只有一个单词。所以能够通过制作“提醒”以文本形式示意不同的类别或创立多个零样本分类器的汇合来缓解此类问题;见下图。

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

然而这种办法依然存在根本性的限度,并且必须解决这些限度能力进步零样本学习能力。

CLIP 实际——无需训练数据的精确分类!

在原始论文中,CLIP 在零样本域中进行评估,并增加了微调(即少样本或齐全监督域)。在这里我将概述应用 CLIP 进行的这些试验的次要发现,并提供无关何时能够应用 CLIP 以及何时不能应用 CLIP 来解决给定分类问题的相干详细信息。

零样本畛域,CLIP 获得了突破性的成绩,将 ImageNet 上最先进的零样本测试准确率从 11.5% 进步到 76.2%

当将 CLIP 的零样本性能与以事后训练的 ResNet50 特色作为输出的全监督线性分类器的性能进行比拟时,CLIP 持续在各种数据集上获得显着的后果。也就是说 CLIP 在所钻研的 27 个数据集中的 16 个上优于线性分类器(齐全监督!)。

当剖析每个数据集的性能时,很显著 CLIP 在个别对象分类数据集(例如 ImageNet 或 CIFAR10/100)上体现良好,甚至在动作辨认数据集上体现更好。直观地说,此类工作的良好性能是因为 CLIP 在训练期间承受的宽泛监督以及图像阐明通常以动词为核心的事实,因而与动作辨认标签的相似性比与数据集中应用的以名词为核心的类(如 ImageNet)。乏味的是,CLIP 在简单和业余的数据集(如卫星图像分类和肿瘤检测)上体现最差。

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

当应用 CLIP 特色训练一个齐全监督的线性分类器时,发现它在准确性和计算成本方面都优于许多基线,能够看出 CLIP 通过自然语言监督学习的示意的品质是很高的;见下图。

只管 CLIP 的性能并不完满(只实用于对每个类别具备良好文本形容的数据集),但 CLIP 实现的零样本和少样本后果预示着确实是能够取得一个高质量的图像和文本的联结嵌入空间。CLIP 为此类通用分类办法提供了初始(令人印象粗浅的)概念证实。

CLIP 的影响和要点总结

毫无疑问,CLIP 彻底改变了零样本图像分类畛域。只管先前在语言建模方面的工作表明,能够将非结构化输入空间(例如,像 GPT-3 [11] 等文本到文本语言模型)用于零样本分类目标,但 CLIP 扩大了这些后果一种实用于计算机视觉的办法,并且将整个训练过程基于易于取得的图像文本形容。下图提供了 CLIP 及其奉献的摘要。

CLIP 也证实了自然语言提供了足够的训练信号来学习高质量的感知特色。这样的发现对深度学习钻研的将来方向产生了重大影响。特地是图像的自然语言形容比遵循特定工作本体的图像正文(即用于分类的传统标签)更容易取得。因而为 CLIP 格调的分类器正文训练数据更具可扩展性,特地是因为许多图像 - 文本配对能够收费在线下载。

但 CLIP 也有一些限度,次要总结如下:在分类问题中取得每个类的良好文本嵌入是艰难的,并且简单 / 特定的工作(例如,肿瘤检测或预测图像中对象的深度)难以通过学习通用自然语言监督。尽管如此,CLIP 学习的示意是高质量的,能够通过对预训练过程中察看到的数据的批改,进步更业余工作的性能。

如果有趣味利用 CLIP 生成的高质量图像 - 文本嵌入,OpenAI 已公布该模型的 python 包。在这个包中,下载不同版本的 CLIP(即,应用 VIT 或 ResNet 格调的图像编码器和不同大小模型)该包应用 PyTorch 实现,只需应用 pip 下载包并查看 / 下载可用的预训练模型。

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 16×16 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.

https://avoid.overfit.cn/post/bae5a6f58d0647a0aa7450939f3a051e

作者:Cameron Wolfe

退出移动版