大模型-CLIP 详细介绍

CLIP简介

CLIP(Contrastive Language–Image Pre-training)是由OpenAI在2021年提出的一种多模态机器学习模型。它旨在通过大量的文本-图像对进行训练,从而学会理解图像内容,并能将这些内容与相应的自然语言描述相匹配。CLIP的核心思想是利用对比学习(contrastive learning),这是一种无监督或弱监督的学习方法,通过最小化正样本之间的距离同时最大化负样本之间的距离来学习表示。

  • CLIP的工作原理

  1. 数据集:CLIP使用了大规模的互联网抓取数据,包括图像和它们相关的文本描述。这些数据集通常非常庞大,包含数十亿的样本,这有助于模型学习到广泛的概念和关联。

  1. 模型结构:CLIP实际上由两个部分组成——一个用于处理图像的视觉编码器和一个用于处理文本的语言编码器。这两个编码器分别将输入的图像和文本转换成固定长度的向量表示,这些向量位于同一高维空间中,使得图像和文本可以在这个空间中直接比较。

  1. 损失函数:CLIP使用了一个特殊的对比损失函数,该函数鼓励当图像和文本描述匹配时,它们的向量表示在高维空间中的距离更近;而不匹配的图像-文本对则距离更远。这种机制帮助模型学会了如何区分相关与不相关的图像-文本对。

  • 应用场景

  • 图像分类:给定一张图像,CLIP可以生成多个可能的标签,并根据与这些标签相关的文本描述来选择最合适的标签。

  • 图像-文本检索:用户可以输入一段文字来搜索与之最匹配的图像,或者上传一张图片来查找相关的文本描述。

  • 零样本学习:由于CLIP是在大量多样化的数据上训练的,因此它能够执行那些它在训练过程中没有见过的任务,即实现零样本学习或少样本学习。

  • 优势

  • 泛化能力:CLIP能够在未见过的数据和任务上表现出色,这是因为其训练过程涉及了大量的数据和广泛的任务。

  • 灵活性:CLIP可以轻松地适应多种视觉识别任务,而不需要为每个特定任务重新训练模型。

  • 挑战与限制

尽管CLIP展示了强大的性能和灵活性,但它也面临着一些挑战,比如对于训练数据的依赖性较高,可能会反映出数据集中存在的偏见;以及模型的计算资源需求较大等。

对上面的对进行简单介绍:

1. 标准图像模型

  • 联合训练:标准图像模型通常联合训练一个图像特征提取器和一个线性分类器,以预测某个标签。

    • 图像特征提取器:负责从输入图像中提取有用的特征。

    • 线性分类器:基于提取的特征,预测图像的标签。

2. CLIP模型

  • 联合训练:CLIP模型联合训练一个图像编码器和一个文本编码器,以预测一批(图像,文本)训练样例的正确配对。

    • 图像编码器:负责从输入图像中提取特征。

    • 文本编码器:负责从输入文本中提取特征。

    • 目标:预测一批(图像,文本)对中的正确配对。

3. 测试阶段

  • 零样本分类:在测试阶段,CLIP的文本编码器通过嵌入目标数据集的类别名称或描述,合成一个零样本线性分类器。

    • 文本编码器:将类别名称或描述嵌入到一个向量表示中。

    • 零样本线性分类器:使用这些嵌入向量作为分类器的权重,对新图像进行分类。

详细解释

1. 标准图像模型

  • 训练过程

    • 输入图像通过图像特征提取器,生成图像特征向量。

    • 图像特征向量通过线性分类器,预测图像的标签。

    • 模型通过反向传播优化图像特征提取器和线性分类器的参数,以最小化预测标签与真实标签之间的误差。

2. CLIP模型

  • 训练过程

    • 输入图像通过图像编码器,生成图像特征向量。

    • 输入文本通过文本编码器,生成文本特征向量。

    • 模型通过优化目标函数,使正确的(图像,文本)对的特征向量在联合嵌入空间中的相似度最大化,同时使错误的配对的相似度最小化。

    • 优化过程中,图像编码器和文本编码器的参数同时更新。

3. 测试阶段

  • 零样本分类

    • 对于目标数据集的每个类别,使用文本编码器将类别名称或描述嵌入到一个向量表示中。

    • 这些嵌入向量可以用作零样本线性分类器的权重。

    • 对于一个新的图像,通过图像编码器生成其特征向量,然后计算该特征向量与每个类别嵌入向量的相似度,选择相似度最高的类别作为预测结果。

示例

假设有一个目标数据集,包含三个类别:猫、狗和鸟。

  1. 训练阶段

    1. 输入一批(图像,文本)对,例如(猫的图像,"猫"的文本)。

    2. 图像编码器生成猫的图像特征向量,文本编码器生成"猫"的文本特征向量。

    3. 模型优化目标函数,使猫的图像特征向量和"猫"的文本特征向量在联合嵌入空间中的相似度最大化。

  1. 测试阶段

    1. 使用文本编码器将类别名称"猫"、"狗"和"鸟"分别嵌入到向量表示中。

    2. 对于一个新的图像,通过图像编码器生成其特征向量。

    3. 计算该特征向量与"猫"、"狗"和"鸟"的嵌入向量的相似度,选择相似度最高的类别作为预测结果。

总结

  • 标准图像模型:联合训练图像特征提取器和线性分类器,预测图像标签。

  • CLIP模型:联合训练图像编码器和文本编码器,预测(图像,文本)对的正确配对。

  • 零样本分类:在测试阶段,通过嵌入类别名称或描述,合成零样本线性分类器,对新图像进行分类。

0 Abstract

最先进的计算机视觉系统通常被训练来预测一组预定义的对象类别。这种受限的监督形式限制了它们的通用性和可用性,因为要指定任何其他视觉概念,就需要额外的标注数据

比如,它们可以识别“猫”、“狗”、“汽车”等。但是,这种做法有一个明显的局限性:如果你想让系统识别一个新的类别,比如说“独角兽”,你就必须提供大量带有“独角兽”标签的图片来训练系统。这不仅耗时费力,而且限制了系统的灵活性和广泛适用性。

直接从原始文本中学习关于图像的信息是一种很有前途的替代方案,因为它利用了更广泛的监督来源。作者证明了简单的预训练任务——预测哪张图像与哪个标题匹配——是一种高效且可扩展的方法,可以从头开始学习最先进的图像表示。作者使用从互联网收集的4亿个(图像,文本)对的数据集来进行这项预训练。预训练完成后,自然语言被用来引用已学的视觉概念(或描述新的概念),从而实现模型向下游任务的零样本迁移。

作者通过在30多个现有的计算机视觉数据集上进行基准测试,研究了这种方法的性能,这些数据集涵盖了OCR、视频中的动作识别、地理定位以及多种细粒度的对象分类任务。模型在大多数任务上都能非平凡地迁移,并且经常在无需任何特定于数据集的训练的情况下,与完全监督的基线模型竞争。例如,作者在ImageNet上实现了与原始ResNet-50相同的准确性,而无需使用它所训练的128万个训练样本中的任何一个。

1 Introduction and Motivating Work

作者首先介绍了自然语言处理(NLP)领域中,直接从原始文本中学习的预训练方法如何在过去几年中彻底改变了该领域。这些方法包括自回归语言建模和掩蔽语言建模,它们在计算规模、模型容量和数据量方面都有了显著的增长,从而持续提升了模型的性能。

接着,作者提到了“文本到文本”的标准化输入输出界面的发展,这种界面允许预训练模型在没有特定数据集训练的情况下,直接迁移到下游任务。这意味着这些模型可以处理各种不同的任务,而不需要针对特定数据集进行定制化训练。GPT-3就是在许多不同的任务上都展现出了竞争力,而且几乎不需要特定数据集的训练。

然后,作者转向计算机视觉领域,提出了一个问题:既然在NLP领域中,从大规模网络文本中学习的方法已经取得了显著的成功,那么这种方法是否也能在计算机视觉领域中取得类似的突破呢?作者指出,尽管在计算机视觉领域中,通常的做法仍然是在像ImageNet这样的众包数据集上进行预训练,但这些方法可能限制了模型的通用性和适用性,因为它们需要额外的标记数据来识别新的或不同的视觉概念

为了探索这个问题,作者介绍了CLIP模型,这是一种通过大规模的互联网上的图像和文本对进行预训练,直接从自然语言描述中学习视觉表示的方法CLIP模型的核心是一个简单的预训练任务:预测给定图像与哪个文本描述相匹配。这种方法不仅能够学习到强大的视觉表示,而且还能够通过自然语言的描述来实现对下游任务的零样本迁移

作者通过对30多个不同的计算机视觉数据集进行基准测试,来评估CLIP模型的性能。这些数据集涵盖了多种任务,如光学字符识别(OCR)、视频中的动作识别、地理定位以及各种细粒度的物体分类。测试结果表明,CLIP模型在大多数任务上都能够实现非平凡的迁移,并且在很多情况下,它的表现与完全监督的基线模型相当,而完全监督的基线模型通常需要特定数据集的训练。

最后,作者强调了CLIP模型的潜力,并承诺将发布他们的代码和预训练模型权重,以便社区可以进一步探索和利用这一模型。

2 Approach

2.1 Natural Language Supervision

作者深入探讨了利用自然语言作为监督信号来训练视觉模型的潜力和实践。这一节的关键在于理解自然语言如何作为一个丰富的、可扩展的资源来指导模型学习,以及它如何与传统的监督方法相比较。

  • 核心介绍:

  1. 自然语言作为监督信号: 作者首先强调,自然语言提供了一种独特的方式来监督和指导模型的学习。与传统的监督学习不同,自然语言监督不需要精确的标注,而是利用语言的描述性来提供关于图像的上下文信息。

自然语言是描述视觉世界的一种非常通用的方式。通过利用描述图像的文本,模型能够学习到更广泛和多样化的视觉概念。

  1. 易于扩展: 自然语言监督的一个显著优势是它的可扩展性。因为互联网上有大量的文本数据,所以可以从这些文本中学习到丰富的视觉概念,而不需要依赖于有限的、人工标注的数据集。

与需要特定格式标注的数据集不同,自然语言监督可以直接利用互联网上现有的文本,这意味着可以更容易地获取大规模的训练数据。

  1. 与语言的连接: 通过自然语言学习到的视觉表示不仅能够识别图像,还能够与语言建立联系。这意味着模型可以直接使用自然语言来描述新的视觉概念,或者对已知概念进行描述,从而实现零样本迁移。

使用自然语言监督的模型可以更容易地适应新的任务和数据集,因为它们已经学会了如何从文本描述中提取信息。

  1. 对比现有工作: 作者提到了以往的研究,这些研究通过自然语言来改善图像检索和分类任务。这些工作表明,自然语言可以作为一种有效的监督信号,帮助模型学习更好的视觉表示。

作者提出,通过自然语言监督学习到的模型不仅仅是学习表示,它们还学习了如何执行任务。这意味着模型可以直接在新的、未见过的数据集上执行任务,而不需要额外的训练。

2.2 Creating a Sufficiently Large Dataset

作者讨论了为了训练先进的计算机视觉模型需要一个庞大且多样的数据集,特别是当使用自然语言作为监督信号时。

  • 核心介绍:

  1. 数据集规模的重要性: 作者指出,为了有效地利用自然语言进行图像表示学习,需要一个包含大量图像和相关文本的数据集。这是因为模型需要从广泛的实例中学习,以理解和泛化各种视觉概念。

  1. 现有数据集的局限性: 现有的一些数据集,如MS-COCO和Visual Genome,虽然质量很高,但规模有限,每组数据只有大约10万张训练图片。相比之下,其他计算机视觉系统可能在数十亿的Instagram图片上进行训练。此外,YFCC100M虽然有1亿张照片,但很多图片的元数据是稀疏的,质量参差不齐。

  1. 构建新数据集: 为了克服这些限制,作者创建了一个新的数据集,包含4亿个(图像,文本)对。这些数据集从互联网上公开可用的多种来源收集而来。为了尽可能覆盖广泛的视觉概念,他们在构建过程中寻找包含一组50万个查询词之一的(图像,文本)对。

  • 具体做了哪些工作:

    • 数据集的多样性: 为了确保数据集能够代表各种各样的视觉概念,作者采用了广泛的查询词集合,包括常见的英文单词和短语,以及Wikipedia中搜索量较高的所有文章的名称。

    • 平衡数据集: 为了确保数据集中每个查询词都有充分的例子,他们限制了每个查询词可以包含的(图像,文本)对的数量,以避免数据集中的某些概念过于集中。

    • 数据集大小: 作者认为,为了充分利用自然语言监督的潜力,需要一个比现有数据集大得多的数据集。他们通过构建一个包含4亿个实例的数据集来实现这一目标。

    • 数据集的构建过程: 数据集的构建过程涉及到从互联网上抓取图像和文本,然后使用一组查询词来过滤和选择与这些查询词相关的(图像,文本)对。

    • WebImageText数据集: 作者将这个新创建的数据集称为WebImageText(WIT),它旨在为模型提供足够的语言监督,以便在多种视觉任务上进行有效的预训练。

2.3. Selecting an Efficient Pre-Training Method

在现代计算机视觉系统中,预训练模型通常需要大量的计算资源。例如,Mahajan等人(2018年)训练他们的ResNeXt101-32x48d模型花费了19个GPU年,而Xie等人(2020年)训练他们的Noisy Student EfficientNet-L2模型则需要33个TPUv3核心年。

考虑到这两个系统都是为了预测1000个ImageNet类别而训练的,从自然语言中学习开放集视觉概念的任务似乎非常艰巨。在作者努力的过程中,作者发现训练效率是成功扩展自然语言监督的关键,作者根据这一指标选择了最终的预训练方法

作者最初的方法与VirTex类似,联合训练一个图像CNN和一个文本Transformer来预测图像的标题。然而,作者遇到了扩展这种方法的困难。在图2中,作者展示了一个6300万参数的Transformer语言模型,它已经使用了比ResNet-50图像编码器多一倍的计算资源,但学习识别ImageNet类别的速度却比预测相同文本的词袋编码的简单基线慢三倍。

这两种方法都有一个共同点:它们试图预测每个图像伴随的确切文本。由于与图像共同出现的描述、评论和相关文本的多样性,这是一个困难的任务。最近在图像的对比表示学习中的工作发现,对比目标可以比等效的预测目标学习更好的表示(Tian等人,2019年)。其他工作发现,尽管可以学习高质量的图像表示的图像生成模型,但它们需要比具有相同性能的对比模型多一个数量级的计算资源(Chen等人,2020a)。鉴于这些发现,作者探索了一个系统,通过解决可能更容易的代理任务来训练:只预测哪段文本与哪张图像配对,而不是文本的确切单词。从词袋编码基线开始,作者将预测目标换成了对比目标,并观察到零样本迁移到ImageNet的效率提高了4倍

给定一个包含N个(图像,文本)对的批次,CLIP被训练为预测在批次中可能的N×N个(图像,文本)配对中哪些实际上是发生的。为了做到这一点,CLIP通过联合训练一个图像编码器和文本编码器来学习一个多模态嵌入空间,最大化批次中N个真实对的图像和文本嵌入的余弦相似性,同时最小化N^2 - N个错误配对的嵌入的余弦相似性作者优化了这些相似分数上的对称交叉熵损失。在图3中,作者包含了CLIP实现核心的伪代码。据作者所知,这种批次构建技术和目标最初是在深度度量学习领域作为多类N对损失(Sohn,2016年)引入的,后来被Oord等人(2018年)作为InfoNCE损失推广,并最近被Zhang等人(2020年)在医学成像领域的对比(文本,图像)表示学习中适应。

由于作者的预训练数据集的庞大规模,过拟合并不是一个主要问题,与Zhang等人(2020年)的实现相比,训练CLIP的细节被简化了。作者从头开始训练CLIP,没有使用ImageNet权重初始化图像编码器或使用预训练权重初始化文本编码器。作者没有使用非线性投影层,这是Bachman等人(2019年)引入的,并在Chen等人(2020b)中推广的。相反,作者只使用一个线性投影将每个编码器的表示映射到多模态嵌入空间。作者没有注意到两个版本之间的训练效率差异,并推测非线性投影可能与当前仅图像的自监督表示学习方法的细节共同适应。作者还将Zhang等人(2020年)中的文本转换函数tu移除,该函数从文本中均匀随机采样一个句子,因为CLIP预训练数据集中的许多(图像,文本)对只是单个句子。作者还简化了图像转换函数tv。在训练期间,作者只使用了调整大小的图像的随机正方形裁剪作为数据增强。最后,控制softmax中logits范围的温度参数τ在训练期间作为一个对数参数化的乘法标量直接优化,以避免训练不稳定

  1. 文本转换函数 t_u 的移除

    1. 在Zhang等人(2020年)的研究中,他们使用了一种文本转换函数 t_u ,该函数的作用是从一段文本中均匀随机地采样出一个句子。这种采样方法适用于那些由多个句子组成的文本,可以为模型提供多样化的文本输入。

    2. 然而,在CLIP模型的预训练数据集中,许多(图像,文本)对只包含单个句子的描述。在这种情况下,使用均匀随机采样的句子可能会导致数据的浪费,因为每个图像只有一个相关的句子描述,没有必要进行采样。

    3. 因此,作者决定移除这个文本转换函数 t_u ,直接使用完整的单个句子作为模型的输入。这样做可以更有效地利用数据集中的文本信息,并且简化了模型的训练过程。

  1. 图像转换函数 t_v 的简化

    1. 图像转换函数 t_v 通常用于对输入的图像进行一定的变换,以增强模型的泛化能力。这些变换可能包括随机裁剪、旋转、颜色调整等。

    2. 在CLIP模型中,作者简化了图像转换函数,只使用了随机裁剪这一种数据增强技术。这种简化可能是基于实验结果,发现过多的图像变换并不总是能带来性能的提升,或者是为了降低计算复杂度和训练时间。

    3. 通过简化图像转换函数,模型可以更专注于学习图像和文本之间的关联性,而不是过度适应于特定的图像变换。

核心结论:

  • 预训练的挑战: 作者首先指出,为了学习开放集的视觉概念,需要大量的计算资源,这使得任务显得非常艰巨。

  • 初始方法的局限性: 他们尝试了联合训练图像CNN和文本Transformer的方法,但这种方法难以扩展到大规模数据集。

  • 对比学习的引入: 作者发现,使用对比学习的目标来预测图像和文本对的匹配,比预测文本的确切内容更为高效。

  • 简化模型架构: 为了提高训练效率,作者简化了模型架构,去掉了非线性投影层,并采用了线性投影和基本的数据增强策略。

  • 训练细节: CLIP模型从头开始训练,没有使用预训练权重。他们还优化了温度参数,这是一个控制softmax输出的关键超参数。

  • 实验结果: 通过实验,作者发现对比学习的方法在零样本迁移学习中更为高效,这证明了他们选择的预训练方法是有效的。

2.4. Choosing and Scaling a Model

在选择和扩展模型时,作者考虑了两种不同的图像编码器架构。首先,作者使用ResNet-50作为图像编码器的基础架构,因为它被广泛采用并且已经证明了其性能。作者对原始版本进行了几项修改,包括使用He等人(2019年)提出的ResNetD改进和Zhang(2019年)提出的抗锯齿rect-2模糊池化,并且作者用注意力池化机制替换了全局平均池化层。注意力池化实现为单层“Transformer风格”的多头QKV注意力,其中查询是基于图像的全局平均池化表示进行条件化的。对于第二种架构,作者尝试了最近引入的Vision Transformer(ViT)(Dosovitskiy等人,2020年)。作者紧密跟随他们的实现,只做了微小的修改,在Transformer之前添加了额外的层归一化到组合的补丁和位置嵌入中,并使用了稍微不同的初始化方案。

"抗锯齿rect-2模糊池化"(Anti-aliased rectified linear unit v2 pooling,简称Anti-aliased ReLU or AA ReLU)

  1. 抗锯齿(Anti-aliasing)

    1. 抗锯齿是一种用于减少图像或信号中高频部分的混叠效应的技术。在图像处理中,混叠效应通常表现为锯齿状的边缘或不清晰的纹理。抗锯齿技术通过平滑这些边缘来提高图像质量。

  1. ReLU(Rectified Linear Unit)

    1. ReLU是一种常用的激活函数,定义为 f(x) = max(0, x) 。这意味着任何负值都会被置为零,而正值则保持不变。ReLU激活函数因其计算简单和有效的非线性特性而被广泛使用。

  1. 抗锯齿ReLU(Anti-aliased ReLU)

    1. 抗锯齿ReLU是一种改进的激活函数,它在应用ReLU之前,先对输入进行平滑处理,以减少激活函数可能引入的高频噪声。这种平滑处理有助于减少信号中的高频成分,从而减少混叠效应。

  1. 抗锯齿rect-2模糊池化(Anti-aliased rect-2 pooling)

    1. 这种池化技术结合了抗锯齿技术和ReLU激活函数的改进版本。在进行池化操作(如最大池化或平均池化)之前,先对输入特征图进行平滑处理,以减少由于池化操作可能引起的高频信息丢失。这种方法有助于保留更多的图像细节,同时减少混叠效应。

在深度学习模型中,尤其是在卷积神经网络(CNN)中,这种技术可以用于提高模型对图像细节的捕捉能力,从而提高模型的性能。通过在池化操作前应用抗锯齿技术,模型能够更好地处理图像中的高频信息,这对于图像识别和分类任务尤其重要。

文本编码器是一个Transformer(Vaswani等人,2017年),其架构修改如Radford等人(2019年)所述。作者使用了一个63M参数的12层512宽度模型,有8个注意力头作为基础大小。Transformer操作在文本的 lowercase byte pair encoding(BPE)表示上,词汇量大小为49,152(Sennrich等人,2015年)。为了计算效率,最大序列长度被限制在76。文本序列用[SOS]和[EOS]标记包围,并且在[EOS]标记处的Transformer的最高层的激活被视为文本的特征表示,该表示被层归一化,然后线性投影到多模态嵌入空间。在文本编码器中使用了掩蔽自注意力,以保留用预训练语言模型初始化或添加语言建模作为辅助目标的能力,尽管探索这一点作为未来工作。

尽管以前的计算机视觉研究通常通过单独增加模型的宽度(Mahajan等人,2018年)或深度(He等人,2016年)来扩展模型,但对于ResNet图像编码器,作者采用了Tan和Le(2019年)的方法,他们发现将额外的计算资源分配到宽度、深度和分辨率上,比只分配到模型的一个维度上表现得更好。虽然Tan和Le(2019年)为他们EfficientNet架构调整了分配给每个维度的计算资源比例,但作者使用了简单的基线,将额外的计算资源平均分配到增加模型的宽度、深度和分辨率上。对于文本编码器,作者只按ResNet宽度增加的比例扩展模型的宽度,并且根本不扩展深度,因为作者发现CLIP的性能对文本编码器的容量不太敏感

2.5. Training

作者训练了一系列的5个ResNet和3个Vision Transformer模型

对于ResNets,作者训练了一个ResNet-50、一个ResNet-101,然后是另外3个遵循EfficientNet风格的模型扩展,它们分别使用了大约4倍、16倍和64倍于ResNet-50的计算资源。它们分别被标记为RN50x4、RN50x16和RN50x64。

对于Vision Transformers,作者训练了一个ViT-B/32、一个ViT-B/16和一个ViT-L/14。作者训练所有模型32个epoch。

作者使用了Adam优化器(Kingma & Ba, 2014),并对所有非增益或偏置的权重应用了分离权重衰减正则化(Loshchilov & Hutter, 2017),并使用余弦调度(Loshchilov & Hutter, 2016)衰减学习率。

初始超参数是通过在基线ResNet50模型上进行1个epoch训练的网格搜索、随机搜索和手动调整相结合的方式设置的。然后由于计算限制,对更大的模型进行了启发式调整。

可学习的_temperature参数τ初始化为(Wu等人,2018)的0.07等效值,并进行了剪辑,以防止对数几率放大超过100倍,作者发现这是防止训练不稳定所必需的。作者使用了一个非常大的minibatch大小32,768。

使用了混合精度(Micikevicius等人,2017)来加速训练并节省内存。为了节省额外的内存,使用了梯度检查点(Griewank & Walther, 2000; Chen等人,2016)、半精度Adam统计数据(Dhariwal等人,2020)和半精度随机四舍五入的文本编码器权重。计算嵌入相似度的计算也被分割,每个GPU只计算其本地批次所需的嵌入对的子集。

最大的ResNet模型,RN50x64,在592个V100 GPU上训练了18天,而最大的Vision Transformer在256个V100 GPU上训练了12天。对于ViT-L/14,作者还在一个更高的336像素分辨率下预训练了一个额外的epoch以提升性能,类似于FixRes(Touvron等人,2019)。作者称这个模型为ViT-L/14@336px。除非另有说明,否则本文中报告的所有结果作为“CLIP”使用的都是这个模型,作者发现它的表现最好。

核心总结:

  • 模型训练:作者训练了多个不同规模的ResNet和Vision Transformer模型,以探索不同架构和规模对模型性能的影响。

  • 优化器和正则化:使用了Adam优化器,并应用了分离权重衰减正则化来防止过拟合,同时使用余弦调度来调整学习率。

  • 超参数调整:初始超参数是通过网格搜索和随机搜索确定的,然后根据模型规模进行调整。

  • 温度参数:可学习的温度参数τ用于控制softmax输出的尺度,以防止训练过程中的不稳定。

  • 混合精度和内存优化:使用混合精度和梯度检查点等技术来加速训练并节省内存。

  • 模型规模和训练时间:最大的ResNet模型和Vision Transformer模型分别在大量GPU上训练了18天和12天,显示了大规模模型训练的计算密集性。

3 Experiments

3.1. Zero-Shot Transfer

  • 3.1.1. MOTIVATION

主要讨论了零样本学习在计算机视觉领域的应用,特别是在评估机器学习模型的任务学习能力方面。具体来说,它指出了零样本学习不仅限于图像分类任务中对未见过的物体类别的识别,而是扩展到了更广泛的未见数据集的泛化能力研究这种泛化能力可以通过零样本迁移来衡量,即模型在没有针对特定任务进行训练的情况下,如何执行该任务

文中提到了几个关键点:

1. 零样本迁移:不同于传统的无监督学习,零样本迁移关注的是机器学习系统在未见任务上的表现,这包括了对新数据分布的适应性以及跨领域的泛化能力。

2. 数据集的作用:许多流行的计算机视觉数据集(如CIFAR-10)主要用于指导通用图像分类方法的发展,而不是专门用来衡量特定任务上的表现。因此,零样本迁移在这种数据集上的评估更多反映的是模型对于分布变化的鲁棒性。

3. Visual N-Grams的研究:这项工作首次以特定的方式研究了现有图像分类数据集上的零样本迁移,它通过学习大量视觉n-gram的参数,并利用这些n-gram来预测图像所属的类别,为后续研究提供了参考。

4. 自然语言处理领域的启示:在NLP领域,任务学习作为预训练模型的一个“意外副作用”被首次观察到,这表明即使是在没有直接针对特定任务进行训练的情况下,模型也能展现出一定的任务解决能力。例如,GPT-1和GPT-2的研究显示了预训练模型在零样本迁移任务中的有效性,这进一步促进了对任务学习能力的研究。

零样本迁移作为评估机器学习模型泛化能力和任务学习能力的重要工具,尤其是在面对未见数据或任务时。同时,它也指出了当前数据集设计与零样本迁移研究之间的差距,以及未来研究可以探索的方向。

  • 3.1.2. USING CLIP FOR ZERO-SHOT TRANSFER

  1. 预训练任务:CLIP模型在训练阶段学会了判断一张图片和一段文字是否匹配。换句话说,它学会了理解图片的内容,并将其与正确的文字描述配对。

  2. 零样本分类:在实际使用中,作者希望CLIP能够对它从未见过的图片进行分类。为了做到这一点,作者会利用它在预训练阶段学到的能力。具体来说,作者会给出一系列类别名称,CLIP需要判断每张图片最有可能属于哪个类别。

  3. 特征嵌入:CLIP通过两个编码器来处理图片和文字。图像编码器分析图片内容,而文本编码器处理类别名称的文字描述。这两个编码器会输出两种特征向量,分别代表图片和文字。

  4. 余弦相似性和温度参数:CLIP通过计算这两种特征向量的余弦相似性来评估它们是否匹配。这个相似度分数会通过一个叫做“温度参数”(τ)的标量进行调整,以控制预测的自信度。然后,这些调整后的分数会通过softmax函数转换成概率分布,这样作者就可以知道图片属于每个类别的概率。

  5. 多项逻辑回归分类器:在这个过程中,CLIP使用了一个特殊的分类器,它没有偏置项,输入和权重都经过了L2规范化,并且使用了温度缩放。这种分类器可以帮助CLIP在零样本的情况下做出预测。

  6. 超网络:这里的文本编码器被比喻为一个“超网络”,因为它能够根据类别的文本描述动态生成分类器的权重。

  7. 预训练的优化:在预训练阶段,CLIP不断地优化其性能,就好像它在处理一个包含32,768个类别的计算机视觉数据集一样。

  8. 缓存零样本分类器:为了提高效率,一旦CLIP为某个数据集生成了一个零样本分类器,这个分类器就会被保存下来,并在之后对同一数据集的所有预测中重复使用。这样,生成分类器的成本就可以分摊到所有预测中,提高了整体的效率。

在零样本评估中,CLIP需要对它在预训练阶段从未见过的类别进行分类。这

### vqgan-clip简介 VQGAN-CLIP 是一种结合了 VQ-GAN 和 CLIP 模型的方法,旨在通过文本描述来生成高质量的图像。这种方法利用了两个模型的优势:VQ-GAN 能够生成高分辨率且逼真的图像;而 CLIP 则擅长理解和匹配文本与图像之间的关系[^1]。 ### 工作原理 该方法的工作流程大致如下: - **编码阶段**:给定一段文本提示词,首先使用预训练好的 CLIP 文本编码器将其转换成向量表示形式。 - **优化过程**:接着初始化一张随机噪声图片,并通过迭代更新的方式调整这张图的内容直到其对应的特征向量尽可能接近由上述文本得到的目标向量为止。在此期间,每一步都会计算当前候选解所对应的真实感损失以及内容相似度得分并据此指导下一步如何修改像素值以更好地逼近理想状态。 - **解码重建**:最终当收敛条件满足时停止循环操作并将最后一次获得的最佳近似结果送入到同样基于 GAN 架构设计而成但专门负责从潜在空间映射回原始数据域内的解码网络中完成最后一步即输出可视化的成品画作。 ```python import torch from torchvision import transforms from PIL import Image from taming.models.vqgan import VQModel from clip.model import build_model from omegaconf import OmegaConf config_path = "path/to/vqgan_config.yaml" checkpoint_path = "path/to/vqgan_checkpoint.ckpt" device = 'cuda' if torch.cuda.is_available() else 'cpu' def load_vqgan(config, ckpt): model = VQModel(**OmegaConf.load(config).model.params) sd = torch.load(ckpt, map_location="cpu")["state_dict"] missing, unexpected = model.load_state_dict(sd, strict=False) return model.to(device) vqgan = load_vqgan(config_path, checkpoint_path) # Load and preprocess the input image or initialize a random tensor as seed. transform = transforms.Compose([ transforms.Resize((256, 256)), transforms.ToTensor(), ]) image_tensor = transform(Image.open("input_image.jpg")).unsqueeze(0).to(device) with torch.no_grad(): z, _, [_, idx, _] = vqgan.encode(image_tensor) print(f"Encoded indices shape: {idx.shape}") ``` 这段代码展示了加载预先训练过的 VQGAN 并对其进行测试的过程。注意这只是一个简化版的例子,实际应用可能涉及更多细节配置选项和参数设置[^3]。 ### 应用场景 由于能够依据自然语言指令合成特定风格的艺术作品或是具象化抽象概念等功能特性,使得此类技术广泛应用于创意产业领域内诸如广告宣传物料制作、虚拟角色创建乃至个人爱好创作等方面。此外,在科研教育方面也有助于更直观形象地解释复杂理论知识帮助学生理解掌握新知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据分析能量站

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值