当前位置:网站首页>聊聊这两天刷屏的OpenAI新作,你注意到CLIP了吗

聊聊这两天刷屏的OpenAI新作,你注意到CLIP了吗

2021-01-08 15:35:26 ai52learn

这两天被OpenAI的DALLE模型刷屏了,刚看到的时候,我主要滑了下图片生成的效果,感叹有钱真好,Transformer真NB,然后就关闭窗口了。但是后来我无聊着去读原博客时,才发现用来做rerank的CLIP模型一样牛啤,同时感叹一句:

You also need Contrastive Learning

CLIP的全称是Contrastive Language–Image Pre-training,为什么说对比学习也很重要呢?来看看它对模型精度和效率的提升吧:

图片

再来感受一下CLIP最终的效果。用linear prob进行评估,在27个数据集的平均分数甩了其他模型好几条街。同时有20个都比ImageNet训练出来的开源SOTA表现好:

图片

下面简要介绍一下CLIP是如何达到这么好效果的。

博文:https://openai.com/blog/clip/
论文:https://cdn.openai.com/papers/Learning_Transferable_Visual_Models_From_Natural_Language_Supervision.pdf
代码:https://github.com/openai/CLIP

原理

CLIP就像是图像届的GPT-2,输入图片,输出文本描述。正因为是描述,所以可以在各种图像分类任务上进行zero-shot。

OpenAI从网上搜集了400million未清洗的图像-文本pair数据,用对比学习目标进行训练:分别对图像和文本编码,然后两两计算cosine相似度,再针对每个图片的一行或文本的一列进行分类,找出匹配的正例。

图片

用伪代码表示的话:

图片

这里对于每个图像都有32,768个文本候选,足足有SimCLR的两倍,负例个数的增多也是效果好的原因之一

在预测时也很简单,随便拿一个图像分类的数据集,把label转为自然语言,比如“狗”可以转为“一张狗的照片”。再用预训练好的编码器对label和图像编码,再去计算相似度即可。

图片

CLIP效果这么好,除了数据多,作者主要提到了两个提效方法:

  1. Contrastive learning Objective:如文章开头的图,比起语言模型那样一个个预测文本描述,对比学习可以提效4到10倍

  2. Vision Transformer:直接把图像分成一个个patch,再过Transformer,比起ResNet编码提效3倍(真·Attention is all you need)

基于以上改进,最好的一版CLIP只在256个GPU上训练两周就好了,跟目前图像领域的其他大模型都差不多。

效果

开头已经展示得差不多了,再看看Non-cherry pick的预测结果:

图片

对于图像领域,CLIP的贡献不可忽视,它可以缓解三个问题:

  1. Costly datasets:之前大部分模型用的数据集都是人标的,而CLIP的训练数据都是从网上找的,用纯文本作为label,减少了人力成本

  2. Narrow:根据有标注数据集训练的话输出是有限的,比如数据集只教模型预测猫和狗,那就没法再让模型去预测鸭子,而CLIP在常见图像上就不受限制

  3. Poor real-world performance:benchmark和真实情况都是有gap的,在benchmark上表现好不意味着真实情景也好。而CLIP不是从某个特定数据集学出来的,可以缓解这个问题。作者也通过实验证实,如果面向ImageNet学习的话,虽然评估效果会提高,但其他7个数据集上都不太好

总结

说CLIP是图像的GPT-2,但还是有些区别的,GPT-2是生成模型,而CLIP是判别模型,预计它之后在图像领域会作为预训练模型,有更多的应用。不过像官方博客说的,CLIP还存在一些缺陷:

  1. 虽然CLIP能很好地识别常见物体,但不会做更抽象或复杂的任务,比如数数、预测照片中车的距离。对于更细粒度的分类表现也不好,比如预测花的品种、对比模型车的不同

  2. 对于没见过的图像,CLIP的泛化不是很好

不过话说回来,这两个问题靠接着怼更好的数据也就解决了。。不知道DALLE的奇葩结果们能不能反哺一下。

数据真的是AI基石,另外对比学习在21年估计会继续热门,不说了,我赶紧去洗数据了。

版权声明
本文为[ai52learn]所创,转载请带上原文链接,感谢
https://update.blog.csdn.net/article/details/112354411

随机推荐