首页IT科技CLIP技术(深度学习–CLIP算法(文本搜图片,图片搜图片))

CLIP技术(深度学习–CLIP算法(文本搜图片,图片搜图片))

时间2025-09-19 13:35:38分类IT科技浏览6608
导读:1. CLIP简介   CLIP全称Constrastive Language-Image Pre-training,是OPAI推出的采用对比学习的文本-图像预训练模型。CLIP惊艳之处在于架构非常简洁且效果好到难以置信,在zero-shot文本-图像检索,zero-shot图像分类,文本...

1. CLIP简介

  CLIP全称Constrastive Language-Image Pre-training                 ,是OPAI推出的采用对比学习的文本-图像预训练模型                 。CLIP惊艳之处在于架构非常简洁且效果好到难以置信                        ,在zero-shot文本-图像检索        ,zero-shot图像分类         ,文本→图像生成任务guidance                        ,open-domain 检测分割等任务上均有非常惊艳的表现                ,本文将对CLIP做一些初步的介绍                        。

2. CLIP模型简介

   CLIP的基本算法原理如下         ,为了对image和text建立联系                         ,首先分别对image和text进行特征提取                ,image特征提取的backbone可以是resnet系列模型也可以是VIT系列模型,text特征提取目前一般采用bert模型                         ,特征提取之后                        ,由于做了normalize,直接相乘来计算余弦距离                 ,同一pair对的结果趋近于1                        ,不同pair对的结果趋近于0        ,因为就可以采用对比损失loss(info-nce-loss)                 ,熟悉这个loss的同学应该都清楚                        ,这种计算loss方式效果与batch size有很大关系        ,一般需要比较大的batch size才能有效果        。CLIP的模型如下图所示:

   CLIP 能够成功         ,并且很难自己复现的一个重要原因就是CLIP用了大量的训练数据以及训练资源                        ,真的可以说是大力出奇迹         。CLIP用了4亿的图像文本对进行训练                        。伪代码如下:

编码 :通过图像&文本编码器                ,得分图像和文本特征                。 投影:首先通过投影矩阵将图像及文本特征映射到相同的维度大小         ,在进行L2 normalization (使得之后的点积操作直接等效于cosine similarity) 相似度计算:点积运算计算文本-图像的cosine similarity                         ,得到 n x n 矩阵的logits(模型预测)                ,越接近1则说明模型预测该文本-图像对是配对的,否则不配对         。 计算loss:已知 logits 矩阵对角线的文本和图像是配对的                         ,非对角线元素不配对                        ,因此构造训练标签 np.arange(n),然后分别在图像维度(axis=0) 和文本维度(axis=1)计算loss                         。以图像维度为例简单说明一下这里的逻辑                 ,因为在计算相似度的时候                        ,图像特征矩阵@文本特征矩阵得到的 n x n 矩阵        ,第一个n 代表的图像                 ,因此我们在axis=0 计算图像维度的loss                。

3. CLIP模型优缺点总结

优点

zero-shot做得好                        ,经过在400million大的未清洗的数据集上训练        ,在不同的数据集上表现还可以         ,可以自定义任务                        ,而且效率很高。 高效                ,虽然GPT3做zero-shot也很好         ,但是CLIP吃的资源少                         ,计算量少                ,训练效率高                         。最好的一版CLIP只在256个GPU上训练两周就好了,跟目前图像领域的其他大模型都差不多                        。 灵活和通用:因为他们直接从自然语言中学习广泛的视觉概念                         ,CLIP明显比现有的ImageNet模型更灵活和通用。我们发现他们能够轻松地完成许多不同的任务                 。

缺点

虽然CLIP通常在识别普通物体方面表现良好                        ,但在更抽象或更系统的任务上却表现不佳                        。比如计算图像中物体的数量,以及在更复杂的任务上                 ,比如预测照片中最近的汽车距离有多近        。在这两个数据集上                        ,零射剪辑只比随机猜测好一点点                 。与特定任务模型相比        ,Zero-shot CLIP在非常细粒度的分类上也很困难                 ,比如区分汽车模型                、飞机变体或花卉种类之间的区别                        。 对于未包含在其预训练数据集中的图像                        ,CLIP的泛化效果也很差        。例如        ,尽管CLIP学习了一个有效的OCR系统         ,但当从MNIST数据集评估手写数字时                        ,zero-shot CLIP仅达到88%的准确率                ,远低于数据集上99.75%的人的准确率         。(其实还行         ,毕竟不是专门在MNIST上跑的)

4. CLIP模型开源方案

OPENAI方案:

github代码地址

论文介绍

中文CLIP方案:

中文clip

CLIP图片搜索演示Demo

CLIP视频搜索演示Demo

参考资料:CLIP介绍:连接图像与自然语言

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vim查找上一个关键词(vimrc)