分享好友 最新动态首页 最新动态分类 切换频道
CLIP模型基本原理与实践案例
2024-12-27 02:05

多模态机器学习日前正越来越受研究者们的关注,21年,“Learning Transferable Visual Models From Natural Language Supervision”论文中提出的CLIP模型拥有强大的特征抽取能力,为后续的很多科研工作都提供了启发。时至今日,无论是传统的视觉任务,还是新颖的AI绘画,我们都能看到CLIP模型的身影。那么,本期就和译者一起来看一篇“CLIP from OpenAI: what is it and how you can try it out yourself”的博客,学习一下CLIP模型的基础原理和使用方法,相信一定也会为你带来灵感!

CLIP模型基本原理与实践案例

02  作者介绍

Vadim Frolov,2007年硕士毕业于俄罗斯圣彼得堡理工大学,先后在Inmeta和Microsoft任职数据科学家。

相信很多初次接触一个陌生领域的同学一定有过和我一样的困惑:“缺乏领域基础知识背景,导致论文读起来晦涩难懂”,“学习了模型理论后,不知去哪里寻找相关代码进行实践,加强认识”。译者考虑到本文读者更多的是NLP技术背景的学者和工程师,所以没有死板地逐字翻译。在文章的翻译过程中,译者添加了很多图像领域的基础知识,并对一些专业术语做了更通俗、详尽的解释。在文章的最后,博客作者分享了使用CLIP模型的简单代码,译者也验证了代码的有效性。如果读者们对CLIP模型感兴趣的话,在阅读完本文后不妨实践一下。

04  原博客译文

在计算机视觉领域,神经网络(NN)模型在很多任务上都已经取得了突出的表现。不过,这些模型往往没有很好的泛化性能,这使得它很难被应用在它没有训练过的任务上。例如:一个在食物图像数据上表现良好的模型很可能在卫星图像数据上表现不佳。

最近,Open AI提出了一个名为CLIP 的模型并声称该模型可以大大缩小上述的这种差距。在Open AI撰写的论文中,讲述了该模型是如何以zero-shot(无样本学习,举个简单例子:这种学习希望模型在食物图像数据上进行学习,然后在卫星图像数据上依然有好的表现)的方式应用于各种类别的数据集。

本文,我将为大家解释CLIP模型取得如此突破的关键思想,并向您展示使用该模型的代码。

 

4.1 引言

当训练一个传统的图像分类模型时,我们所使用的数据集是一堆已被标注具体类别的图像。在这样的一个数据集中,类别的数量是固定的,类别的内容也是不可改变的。例如,你训练了一个神经模型来区分猫和狗,那么你就不能使用该模型来区分猫和熊,也不能使用该模型来区分猫、狗、熊。如果你想赋予模型能识别新类别“熊”的能力,那么你必须在数据集中添加足够量的标注为熊的图像,并重新训练神经网络模型!

然而,如果有一个模型,它可以将图像和任意的文本联系起来,那么你只需要简单地提供包含新类别的文本描述就可以使用该模型来识别新类别。简单来说,如果模型预测出图像和包含新类别的文本描述关联程度很高,就说明该图像是新类别;而如果关联程度很低,就说明该图像不是新类别。那么为了成功实现这样的模型,神经网络模型必须有学习出良好视觉表示以及有效建模图文匹配程度的能力。

 

4.2 CLIP是如何训练的

首先,让我们考虑一下我们的问题范围。为了将图像和文本联系起来,我们需要一个图像-文本对数据集。CLIP的作者们在论文中提到,他们从互联网上收集了4亿条图文对数据集。按照过去的方法为了实现图像分类,模型应该将图像作为输入,并预测文本(类别)作为输出。

如下图所示,对于预测出来的文本有多种不同的表示方法:

第一种是用正确的语序来预测文本,即分类器必须输出this is a photo of a cat这样的句子。第二种是根据词典来预测文本,即不考虑单词的顺序,那么如果分类器预测的结果为photo或者cat,它们都是正确的。Open AI在词典方法上做了改进,并且结果显示在ImageNet数据集的准确率结果上,CLIP以zero-shot的方式仅需1/4的数据就可以达到与以前的方法相媲美的性能。

以一个batch size为N的输入为例,首先,N张图像和N个文本分别被各自模态的Encoder编码成高维向量。然后,用它们的向量表示建立一个相似度矩阵(图中,I*T表示两模态向量的内积)。值得注意的是,在训练过程中,矩阵对角线上的内积是匹配图文的内积(即当前batch内,文本T1和图像I1是匹配的图文对,而文本T1和图像I2是不匹配的图文对)。我们知道内积越大,相似度越高,因此匹配的图文对的相似度(内积)必须高于同一行/列中其他图文对的相似度(内积)才合理。于是,训练的目标可以看作是在进行对比,对比的目的是使同一行/列中匹配图文的内积尽可能大,不匹配图文的内积尽可能小。我们也可以用更通俗的方式来理解:每一行都是一个分类任务,给定一个输入图像I,预测匹配的那个文本是谁。同理,每一列都是一个分类任务:给定输入文本T,预测匹配的那张图像是谁。在训练期间,Open AI使用了非常大规模的batch size(32768),这可以充分发挥这种对比训练的潜力。

经典的分类训练只关心模型是否可以正确预测图像的分类标签。如果模型预测成功了狗,那么它不在乎图像是一张狗的照片,还是一张狗的素描。而CLIP模型在大规模数据集上完成的训练,这使得CLIP模型还学习到了图像的各方面信息。

例如,CLIP模型对用于图像描述的单词很敏感。文本“a photo of a bird”、“a photo of a bird siting near bird feeder”或“an image of a bird”与相同的图像匹配产生的概率是不同的。

4.3 在真实项目场景中的CLIP

为了说明CLIP模型的潜力,我想展示一个真实的工程项目用例。这是我为客户所做的一个项目,一个图像相似度搜索引擎。在这个项目中,用户向模型提交一个图像,返回一个与所提交图像在视觉上相似的图像集合。在实际的使用过程中,用户提交的图像主要是PDF文档的页面,往往单独或混合包含着文本、表格、嵌入的照片、空页面、模式、图表和技术图纸。而用户想搜索到的图像只能是技术图纸。

以下是几个技术图纸示例:

正所谓细节决定成败,在这个实例中,我们观测到每个图像的右下角都包含一个文本信息块。而且,所有来自相同单位的技术图纸都包含一个非常相似的文本块。因此,我们可以基于这个文本块来建模神经网络模型以实现图像搜索引擎。

我们首先使用SimCLR 方法对ResNet-18模型进行训练。SimCLR是一种自监督的对比学习方法,可以在没有图像标签的情况下学习到良好的视觉表示。我们可以将视觉表示用于图像相似度判断,如果两个图像的视觉表示相似度高就可以说明这两个图像是相似。在这个项目中,ResNet-18模型在100K张图像上进行了训练。其中50%是技术图纸,剩下50%是其他各种类型的图像。

接下来,我将CLIP模型与SimCLR方法训练的ResNet-18模型进行了对比。我发现,CLIP模型以zero-shot方式得到的图像特征与专门在技术图纸数据上训练的ResNet-18模型得到的图像特征是有可媲美的表现的。考虑到技术图纸不是公开可用的数据集,这确实令人惊讶。我甚至无法解释为什么CLIP模型能够在技术图纸上表现得如此出色,难道这些技术图纸是训练数据集的一部分?

同时,这还展示了另一个结果:CLIP模型虽然没有以图像相似性来训练,但是它学习到得图像特征完全可以用于图像相似性匹配场景。

 

4.4 CLIP目前的不足

CLIP模型的作者对模型局限性持开放态度。CLIP模型在更抽象或更系统的任务(如计算物体数量)和更复杂的任务(如估计物体之间的相对距离上)都很吃力。在这样的数据集上,CLIP模型只比随机猜测略胜一筹。CLIP模型也在非常细粒度的分类任务上表现不佳,比如区分汽车型号、飞行器种类、花卉种类。

CLIP模型还存在着非常依赖训练数据量,训练成本昂贵的问题。如果预训练的CLIP模型对您所要解决的任务不起作用,那么训练您自己的CLIP模型几乎是不可行的。

虽然CLIP模型有非常好的泛化性能,可以很好地推广到许多图像分布上,但它仍然不能推广到真正的非分布数据。例如,CLIP模型以zero-shot的方式在MNIST数据集上的准确率为88%,一个简单的Logistic回归方法就可以优于CLIP模型。

最后,CLIP模型的分类器可能对文本描述中的措辞很敏感,这需要使用者反复试验,确定具体任务下表现良好的文本描述。

 

4.5 结论

CLIP模型的训练方式打破了传统分类器的界限,并且预训练的CLIP模型可以在不需要额外训练集的情况下,以良好的性能完成各种计算机视觉任务(如分类、图像特征利用)。正如我在上述真实项目示例中所展示的,预训练的CLIP模型可以无需额外训练,可以快速帮助我们搭建项目。这个开发在数据科学工具中会非常受欢迎。

如果您觉得CLIP模型很有趣,我强烈建议您阅读原始论文,其中作者进行了许多不同的实验,并展示了CLIP模型如何在广泛的数据集上执行zero-shot分类。

 

4.6 如何尝试CLIP模型?

我准备了一个Colab笔记本 ,展示了如何使用CLIP。在那里,你不仅会发现基本的程序代码,还会发现一些关于文本描述如何影响结果的见解。请一定要去看看!

这篇笔记本用了3个人的16张肖像照片来测试看看CLIP模型能不能区分这些人。当然,CLIP模型有这个能力!但是,正如CLIP模型的作者们在他们的论文 中指出的那样,在当前的开发状态下,CLIP模型可能不是执行此类任务的最佳候选,但它是查看模型如何工作,扩展思路的好选择。

 

原文链接:
https://inmeta.medium.com/clip-from-openai-what-is-it-and-how-you-can-try-it-out-yourself-6f9a870efe00

最新文章
西藏2024年初级经济师考后资格复核时间:12月16日-20日
西藏2024年度初级经济师考试成绩已发布,考后资格复核时间为12月16日-20日,请考试合格人员在规定时间内进行资格复核。如果担心自己错过证书领取时间,建议大家使用文章顶部的 服务,预约成功后,我们会以短信的形式提醒您证书领取等重要时
美漫:从年迈狼叔,开始全知全能
  2029年,4月,晴朗。  贫民窟最繁华的街道上,仓库门口停着一辆老旧的货车,有几个工人正往敞开的车厢搬着一箱箱酒水,“哔呤哔呤”酒瓶子相互碰撞的动静在耳边回荡。  “小心点,这里面可都是啤酒,别放那么重!”  奥多夫边呵
谷歌深夜炸场发布Gemini 2.0 2025属于智能体之年?
  AI大厂的竞争日趋白热化,一边OpenAI正如火如荼进行着为期12天的产品发布活动,另一边谷歌也在频频放大招。  目前谷歌完全对外开放的新模型是Gemini 2.0 Flash体验版,这是谷歌的主力模型,具有低延迟特性。与此前的1.5 Flash版本相
金科重整方案落地:冯仑等投资人注资超33亿,未来布局特殊资产
  12月13日晚,金科地产集团股份有限公司(简称“金科股份”)发布的关于重整最新进展公告显示,上海品器联合体(上海品器、北京天娇绿苑联合体)已与金科股份及重庆金科正式签署重整投资协议,金科股份将累计获超33亿元的资金支持。  
电脑下载库音乐全攻略,轻松获取海量音乐资源,简单教程大揭秘!
本文介绍了如何轻松下载库音乐,简单易懂。通过本教程,您可以方便地获取海量音乐资源。您需要选择可信赖的音乐下载网站,然后搜索您喜欢的歌曲或歌手。点击下载按钮并按照提示完成下载过程。您可以将下载的音乐保存在本地计算机上,随时随
聊城事业单位招聘网——解密聊城各类事业单位招聘信息
聊城事业单位招聘网是聊城地区最权威的事业单位招聘信息发布平台。作为求职者在聊城地区找寻事业单位岗位的利器,聊城事业单位招聘网致力于为求职者提供最新、最全面的招聘信息和职位资讯。聊城是山东省的一个地级市,下设2个市辖区、7个县
外链建设指南:为支持视频内容的网站打造强有力的外链347
在竞争激烈的数字格局中,创建吸引观众的外链策略至关重要。对于支持视频内容的网站而言,建立高质量外链尤为重要,因为它可以极大地影响网站的可见性和权威性。规划外链建设策略1. 确定目标受众明确了解网站的目标受众对于创建有效的链接
直通车推广怎么收费,直通车推广的扣费规则
随着电商行业的飞速发展,越来越多的商家开始在各大电商平台上开设店铺,想要在竞争激烈的市场中脱颖而出,简单依靠自然流量已经远远不够。因此,许多卖家会选择使用推广工具来增加店铺的曝光率和转化率,而在淘宝平台上,直通车无疑是最为
聊城大学建筑工程学院2024年硕士研究生复试录取工作方案
根据《教育部关于印发〈2024年全国硕士研究生招生工作管理规定〉的通知》(教学[2023]2号)和《聊城大学2024年硕士研究生复试录取工作方案》的相关要求,结合学院实际,现将我院2024年硕士研究生招生考试复试相关工作安排如下:一、组织领
粉丝必看!如何设计一个吸睛的Logo?AI免费神器让你的专业形象更出众
还在找人花钱做logo设计?当然这里申明下,小编还是建议大家尊重设计劳动力尽量选择付费不过小编就是喜欢免费的,今天就给大家带来一个免费在线生成LOGO的工具。工具名称:搜狐简单AI工具地址https://ai.sohu.com/pc/generate/textToImg?030
相关文章
推荐文章
发表评论
0评