clip模型及论文精读-Learning Transferable Visual Models From Natural Language Supervision

📅 发布时间:2026/7/9 10:41:39
clip模型及论文精读-Learning Transferable Visual Models From Natural Language Supervision 文章学习笔记根据B站【CLIP 论文逐段精读【论文精读】】 https://www.bilibili.com/video/BV1SL4y1s7LQ/?share_sourcecopy_webvd_source62e4f3fd48d4ea21c7731322b8e5cb53以及作者猛猿链接https://juejin.cn/post/7264503343996747830来源稀土掘金 学习总结而成专业词汇Zero-Shot零样本学习Zero-Shot Learning, ZSL 指的是一种让模型能够识别或分类在训练阶段从未见过的类别的能力。简单来说传统的监督学习需要模型“看过”大量带标签的图片才能识别某类物体而 Zero-Shot 学习则允许模型在没有目标类别任何训练样本的情况下仅凭辅助信息如语义描述、属性、文本标签等就能完成识别任务。Batch批次指的是在模型训练或推理过程中一次性送入神经网络进行处理的一组样本集合。监督学习模型在带有明确人工标签的数据上进行训练学习从输入到输出的映射关系。无监督学习模型仅使用未标注数据自行发现数据中的模式、分布或潜在结构自监督学习模型通过自动构造的伪标签来学习数据的通用表征。标签不是人工标注的而是从数据自身结构中衍生出来的“ pretext task ”迁移性指的是模型在一个任务或数据分布上学到的知识能够有效应用到另一个不同但相关的任务或数据分布上的能力泛化性指的是模型在未见过的数据上保持良好性能的能力。ResNet-50是深度计算机视觉领域最具里程碑意义的卷积神经网络之一由微软研究院的何恺明等人在 2015 年提出。它是 ResNet残差网络系列中应用最广泛、最经典的“黄金标准”模型成功解决了深层网络训练中的退化问题并成为此后十年几乎所有视觉模型的骨干基线。鲁棒性指的是模型在面对输入扰动、数据分布偏移、对抗攻击或异常样本时仍能保持稳定、可靠性能的能力。Epoch指的是整个训练数据集被模型完整地遍历前向传播 反向传播一次的过程。Linear Probe线性探针是一种用于评估预训练模型表征质量的标准化评测方法。其核心操作是冻结预训练模型的所有参数仅在其输出的特征表示之上训练一个线性分类器如逻辑回归或单层全连接层以此衡量该表征在下游任务中的可分离性和信息丰富度。Fine-tuning微调是指在预训练模型的基础上使用特定任务或领域的数据继续训练使模型适配下游应用场景的过程。OCROptical Character Recognition光学字符识别是指将图像中的文字区域自动检测并转换为可编辑、可搜索的机器文本的技术。它是计算机视觉与自然语言处理交叉领域的重要应用是“让机器读懂世界”的基础能力之一。SOTAState-of-the-Art直译为“当前最高水平”或“最先进技术”在人工智能与机器学习领域它特指在特定基准数据集Benchmark上取得历史最佳性能指标的模型、算法或方法。什么是clip1.CLIP的训练数据CLIP的训练数据是图像文本pair。如图所示一个batch的数据里有若干张图像每张图像都配有相应的文字描述信息prompt比如一张小狗图片prompt为dog或者为A photo of a dogprompt的设计也会影响模型最终的效果比如把prompt从单词dog换成句子A photo of a dog后模型在ImageNet分类任务上的准确率直接提高了1.3%在OCR数据集上作者发现如果把要识别的文字、数字用引号扩起来能达到更好的效果在卫星图分类数据集上作者发现把prompt替换成A satellite photo of a house效果会更好在设计到多语义的场景比如crane既可以表示仙鹤又可以表示起重机。这时如果把prompt写成A photo of a crane, a type of pet就能解决歧义问题。2 CLIP预训练方法对比学习Text Encoder和Image EncoderCLIP模型由两个主体部分组成Text Encoder和Image Encoder。这两部分可以分别理解成文本和图像的特征提取器。对于Text EncoderCLIP借鉴的是GPT2Radford et al.2019的架构。对于每条prompt在进入Text Encoder前都会添加表示开始和结束的符号[SOS]与[EOS]。最终将最后一层[EOS]位置的向量作为该prompt的特征表示向量也就是图中所绘的Ti​。对于Image EncoderCLIP则尝试过5种不同的ResNet架构和3种VIT架构最终选用的是“ViT-L/14336px”这个模型也就是架构为Largepatch_size 14的ViT同时在整个CLIP预训练结束后用更高分辨率336*336的图片做了一个epoch的fine-tune目的是让CLIP能涌现出更好的效果。与Text Encoder类似每张图片对应一个最终特征表示向量IiI_{i}Ii​。在读论文的过程中我没有发现IiI_{i}Ii​是来自于哪一出入层位置也可能是我读漏了但我猜测应该和Text Encoder差不多可能来自分类头[CLS]。需要注意的是CLIP是从头开始训练它的Text Encoder和Image Encoder的没有借助其余预训练结果。对比学习假设一个batch中共有N对图像文字对那么它们过完各自的Encoder后就会分别产生N条文字向量[T1,T2,...,TN][T_1, T_2, ..., T_N][T1​,T2​,...,TN​]N条图片向量[I1,I2,...,IN][I_1, I_2, ..., I_N][I1​,I2​,...,IN​]这两组向量将会分别过一次多模态Embeddingmultimodal embedding也就是在图中代表文字的紫色向量下还有一层参数Wt图中没有画出来文字向量需要先和Wt做矩阵相乘后才能得到最终的文字向量。对图片向量同理也有个对应的Wi。Wt,WiW_t, W_iWt​,Wi​的作用可以理解成把文字、图片特征投影到多模态的特征空间中去。经过多模态Emebdding的处理我们得到了最终的[T1,T2,...,TN][T_1, T_2, ..., T_N][T1​,T2​,...,TN​]和[I1,I2,...,IN][I_1, I_2, ..., I_N][I1​,I2​,...,IN​]。接下来我们就能通过“对比学习”找到图像和文字的相似关系。做法也很简单对于图中列出的N*N个格子我们只需计算每个格子上对应的向量点积余弦相似度即可。由于对角线上的图片-文字对是真值我们自然希望对角线上的相似度可以最大据此我们可设置交叉熵函数来求得每个batch下的Loss。3 CLIP Zero-shot预测当我们做完模型的预训练后就能用模型来做之前说的zero-shot预测了方法也非常简单首先我们创建一个标签全集如图中2所示并得到每一个标签的特征向量然后我们取一张图片如图中3所示过Image Encoder后得到该图片的特征向量最后计算图片向量和文字向量间的相似度取相似度最高的那条label即可。一、研究背景NLP领域的启示近年来直接从原始文本中学习的预训练方法如GPT系列彻底改变了自然语言处理NLP领域。这些任务无关的目标在计算、模型容量和数据规模上不断扩大实现了强大的零样本Zero-shot迁移能力。计算机视觉的瓶颈相比之下计算机视觉CV仍主要依赖于人工标注的固定类别数据集如ImageNet进行监督学习。这种受限的监督形式限制了模型的通用性因为识别任何新的视觉概念都需要额外的标注数据。现有弱监督方法的局限虽然已有研究尝试利用图像标题或标签进行弱监督学习但往往受限于数据集规模较小、预测目标为静态分类器缺乏动态输出机制导致零样本性能远低于全监督基线例如早期方法在ImageNet零样本准确率仅11.5%。互联网数据的潜力互联网上存在海量“图像-文本”对这是一种比人工标注更广泛、更可扩展的监督来源但此前缺乏在大规模数据上验证其有效性的研究。二、 主要方法创建足够大的数据集现有图文数据集的不足规模过小 MS-COCO和Visual Genome虽标注质量高但仅含约10万张训练图像远低于现代CV系统如Instagram数据达35亿张的训练规模。WIT数据集的构建数据规模 包含4亿个从互联网公开来源收集的图像文本对总字数与GPT-2训练所用的WebText数据集相当。概念覆盖策略 使用50万个查询词进行检索每个查询最多采样2万对数据以近似平衡的方式广泛覆盖视觉概念。选择有效的预训练方法给定一批N个图文对模型训练目标是预测哪些配对是正确的。具体通过最大化匹配对的余弦相似度、最小化不匹配对的余弦相似度来实现优化对称交叉熵损失。相比生成式目标如预测确切单词该对比学习目标训练效率高出4倍。训练使用32,768的超大batch size并采用混合精度、梯度检查点等技术加速选择和缩放模型训练研究训练了8个不同规模的模型发现零样本性能随计算量增加呈现平滑、可预测的提升。所有模型均训练32个epoch使用AdamW优化器和余弦学习率调度。为验证数据规模的重要性还在相同计算预算下训练了使用更小数据集的模型作为对照。三、实验零样本图像分类评估评估方法 通过将数据集类别名称转化为自然语言提示prompt构建零样本分类器无需任何下游训练数据。Prompt工程的重要性 直接使用类名效果较差使用简单模板如“A photo of a {label}”可显著提升性能进一步使用80个不同prompt模板进行集成平均可带来额外性能增益。与全监督模型对比 CLIP在多个数据集上达到或接近全监督模型的性能水平例如在ImageNet上零样本准确率与ResNet-50全监督训练相当。比较CLIP无法处理更抽象的任务。抽象的任务指输出图片中物体的个数等需要一定逻辑思维推理的任务。在论文的实验中也有给出一些说明下图中刻画了CLIP和ResNet在不同数据集任务上的表现情况。绿色表示CLIP表现更好的数据集蓝色表示ResNet表现更好的数据集。注意到蓝色部分的DTD纹理分类和CLEVRCountS给图中物体计数这两个数据集都是相对抽象的任务在这方面CLIP的表现明显不如ResNet。那首先呢就是看这条蓝色的曲线 对应的呢其实是 bit 模型他算是迁移学习或者说 Few Shot的迁移学习里表现最好的工作之一。在这里呢这个 bit 的模型 是在ImageNet21 k 上去做预训练的数据集也比较大 所以说这条蓝色的曲线非常具有代表性是一个很强的Base Line。但是我们可以看到 zero shot CLIP不用任何训练样本直接就和最好的这个 bit 打成平手可见利用自然语言的这个威力。那第二个比较有意思点 就是说这条紫色的曲线就是我们对 CLIP 里那个图片编码器去做这种 Few shot的 linear probe。 我们可以发现在当这个训练样本只有1啊2啊或者4的时候这种用了训练样本的 Few Shot的方式还不如直接去做Zero Shot的 CLIP也就再次证明了用文本去做这个引导 这种多模态的学习是多么的强大。那最后一个观察就是随着这个训练样本的增多 那这个 Few Shot的学习的这个 CLIP 他的模型效果最后是最好。他不仅超越了之前的这些方法验证了 CLIP 模型的强大 同时他还超越了这种Zero Shot CLIP验证了作者刚才的说法。对于这种难的数据集来说 有一些这个训练样本还是非常有必要的。表征学习评估方法选择线性探测优于微调尽管端到端微调通常能获得更高性能但本研究仍选择线性分类器Linear Probe作为核心评估手段原因如下检验通用性微调会适配特定数据集可能掩盖预训练阶段通用表征学习的缺陷线性分类器灵活性低能更真实地反映预训练表征的质量。与零样本评估一致线性探测的训练监督信号与CLIP的零样本分类机制高度相似便于跨章节对比分析。公平性与效率在27个数据集上对比66个模型需进行1782次评估线性分类器超参数少、实现标准化避免了微调带来的巨大计算成本和超参数调优偏差。四、不足在具有训练分割的数据集上zeroshot CLIP的性能平均与ResNet-50特征之上的线性分类器的简单监督基线具有竞争力。在大多数这些数据集上该基线的性能现在远低于整体技术水平。仍然需要大量的工作来提高CLIP的任务学习和迁移能力。虽然到目前为止缩放已经稳步提高了性能并提出了一条持续改进的路线但我们估计zeroshot CLIP需要大约1000倍的计算量才能达到整体最先进的性能。这对于用当前的硬件进行训练是不可行的。有必要进一步研究提高CLIP的计算和数据效率。CLIP在几种任务上的zeroshot性能仍然相当弱。与特定于任务的模型相比CLIP在几种类型的细粒度分类上的性能较差例如区分汽车模型、花卉种类和飞机变体。CLIP还难以处理更抽象和更系统的任务例如计算图像中对象的数量。最后对于不太可能包含在CLIP的预训练数据集中的新颖任务例如对照片中到最近汽车的距离进行分类CLIP的性能可以接近随机。1. 性能与计算效率瓶颈未达SOTA水平在有训练集的数据上CLIP的零样本性能仅与ResNet-50线性探测基线相当远低于当前全监督SOTA。据估计需增加约1000倍计算量才能达到整体SOTA这在当前硬件下不可行。数据效率低下CLIP依赖海量数据128亿张图像补偿数据效率不足而非从根本上解决该问题。结合自监督或自训练方法是提升数据效率的潜在方向。2. 任务能力边界细粒度与抽象任务弱在汽车型号、花卉种类等细粒度分类以及物体计数等抽象系统任务上表现较差。新颖任务失效对于预训练数据中未覆盖的任务如估计照片中到最近汽车的距离性能接近随机水平。输出灵活性受限仅能从给定文本概念中选择分类标签无法像图像描述模型那样生成新颖输出。联合训练对比与生成目标或推理时搜索自然语言解释是潜在改进思路。少样本学习反直觉下降从零样本切换到少样本设置如在CLIP特征上拟合线性分类器时性能反而可能下降与人类从零到一样本的大幅提升形成鲜明对比。3. 泛化与分布外鲁棒性不足分布外泛化脆弱虽在自然图像分布内泛化良好但对真正分布外数据如MNIST手写数字表现差仅88%准确率甚至不如原始像素逻辑回归基线。这表明CLIP并未解决深度学习泛化脆弱性问题而是试图通过大规模多样数据“规避”该问题但这一假设易被违反。OCR语义偏差在渲染文本上表现优异但在手写数字等非常规OCR任务上失败验证了预训练数据分布的局限性。4. 评估方法论缺陷非真正零样本开发过程中反复使用完整验证集数千样本指导模型选择这在真实零样本场景中不现实。评估集选择偏差主要结果使用的27个数据集集合具有一定随意性且与CLIP开发过程适配。亟需专门设计的零样本迁移评估基准而非复用现有监督数据集。5. 社会偏见与伦理风险继承互联网数据偏见训练数据为未经过滤的互联网图文对导致模型学习到性别、种族等社会偏见。详细分析与缓解策略见论文第7节。6. 自然语言接口的固有局限复杂概念难以文本化许多视觉概念和复杂任务难以仅通过自然语言精确指定。缺乏示例引导机制虽然文本接口灵活但实际训练示例对某些任务仍有价值而CLIP未针对少样本场景优化。五、总结CLIP这边工作最大的贡献就是他打破了之前固定种类标签的范式。 意思就是说不论在你收集数据集的时候还是在训练模型的时候你都不需要像ImageNet那样啊做1,000类或者像 coco 一样做80类。直接就搜集这种图片文本的配对然后用无监督的方式要么去预测他的相似性要么去生成他。总之呢 是跟这种固定多少类别的范式呢 说拜拜了。这样的好处呢就是不仅在处理数据的时候更方便训练起模型呢更方便那最主要的就是在你做推理的时候更方便甚至可以去 zero shot 做各种各样的分类任务。