【花师小哲】当代炼金术(神经网络)前沿(20)——CLIP:打破原图片分类范式
这篇论文其实并不是特别新,我之前也听说过这个模型,但是一直没机会看。昨天看了之后发现这篇文章的想法真的是革命性的,于是打算讲一下。
这篇文章就是CLIP:

其实没有看的主要原因是这是一篇计算机视觉的相关论文,虽然其实我也不是NLPer(NLP:自然语言处理),但研究方向还是主要借鉴NLP的成果,所以一般看的论文除了自己的小领域就主要是语言模型了,而视觉的论文真的看的很少。

1.计算机视觉CV
趁这个机会介绍一下计算机视觉吧。大家都知道,AI发展经历多次大起大落(一般认为是三起三落),在这个过程中,符号主义、专家系统、甚至于神经网络都可以说只不过是在某一小段时间内很火而已,那么在AI届有没有什么方法或者领域过的一直还可以呢?有的,就是计算机视觉。
据说在计算机问世后不久,图灵设计了很多能生成很多奇妙花纹的程序,然后一位大佬认为这玩意比人强多了,那破解个人类视觉的问题不是小菜一碟?于是他让自己的研究生搞,以为一晚上就能搞定,结果一语成谶,CV的很多问题至今还在研究中。可见,在AI诞生之初,CV就已经是一个很重要的方向了。
CV研究的范围非常的广,而且在神经网络火起来之前一直有各种各样的研究,而且有非常多的优美的数学方法。在神经网络出现后,CV也没有被冷落,CNN、GAN等方法出现,一直到最新的diffusion模型,可以说一直有能搞的东西。
当然,从发展来看,CV目前是被NLP压了一头,现在还是语言模型更加出名,包括前不久微软公布了多模态模型KOSMOS-1,虽然它也包括视觉,但基底模型依然是语言模型,未来的很多多模态大模型可能也都要以语言模型为主体了(但也不好说,毕竟多模态还是有待深入研究的)


2.传统图片分类
图片分类可以说是现代计算机视觉的基础性问题,你只有从一张图片中认出来一些物体,才能进行下一步的工作,例如画个框框、进行追踪、对图片中多物体的关系进行描述等。
神经网络是机器学习的一种,机器学习一般又叫统计机器学习,换句话说,从统计中获得规律。
最初的用神经网络来做图片分类就是这个思路。例如我们要做猫狗分类,就选取很多猫的照片和很多狗的照片让计算机去学习,就像我们对一个刚开始认识世界的孩子指着几只狗说:孩子,这是狗,记住了吗。
这样的架构已经被使用很多年了,你想做几类个体的分类就需要有多少个类别标签,现在比较大的高质量数据集ImageNet就有1000个类别,涵盖了很多常用类别,于是一些大模型就可以在ImageNet上先训练,然后微调时只需要自己关注的少数标签就可以,换句话说先大规模训练再做减法。
但是这套架构仍然还是太死板了,ImageNet虽然很大、质量很高,但仍然需要很多人不断地进行人工分类,而现实很多情况要复杂的多。

3.打破原有范式,一切回归语言
CLIP要做的就是推翻原有范式。其实CLIP的想法也不是很复杂,即我们为什么不借助于自然语言来做处理呢?
回想我们人类,我们看到一张图片就知道它的类别,但是在很多情况下,我们并不是看到一只狗或一只猫,就直接吐出“狗”“猫”,相反,我们都是在一句话中提到狗和猫的,例如“哇,那边那只猫好可爱啊”
换句话说,其实没必要再找人去标记大量图片,日常生活中这样的基于视觉的分类时时刻刻都在发生。所以获得数据集也很简单,如图:

对于上述图片,我们就可以提取图片和文字,并且认为它们是“匹配”的。这样的数据对非常多,论文作者提取了4亿对。
接下来的事情就很简单了——进行图片和描述文字的“对齐”,用的预训练方法是对比学习。对比学习参考:
与之前的对比学习不同,这里要做的是使得图片和其相符的文字描述之间的距离尽可能近,与不符的文字描述之间的距离尽可能远。
在实际使用的时候,只需要从图片找相似的类别标签就可以了,在实际使用时可以指定任意数量的标签,相比之前的方法可灵活太多了。
当然,实际操作还是比我说的稍微复杂一点,但基本思路就是这样。

4.不足
作者原论文就花了极大的篇幅来说明这种方法的问题。但其实这些问题基本上都是语言模型也有的问题,例如无监督数据集存在的bias等。而且由于数据集没有人工审查,所以有很多图文不符的情况会影响性能(像我就是这样,我QQ空间里很喜欢这样搞,主要是能把两个话题用一条说说搞定)。
但瑕不掩瑜,总体来说,这篇文章的想法真的是革命性的,也再次引证了“语言”的强悍能力(维特根斯坦厨狂喜好吧,包括微软的MLLM论文也引用了维特根斯坦的名言)
对了,听说今天OpenAI放出了ChatGPT的API,并且还有新模型要发布了。