【经典论文阅读】如何理解CLIP以及CLIP中的问题和解答————看朱毅讲CLIP

本文主要是本人在看朱毅讲CLIP中遇到的一些疑问,以及我自己寻找的疑问的答案。有一些问题网上的其他人都已经给出了很完美的答案了,我就作为一个收集,给出链接。

一、CLIP的大概流程

在这里插入图片描述

1.1 训练流程(上图中的左边的图所示)

训练过程中模型的输入是一个图片文字的配对,假如一个训练batch中有N个这样的配对,则经过图片编码器(可以是ResNet或ViT)文本编码器(CBOW、Text Transformer)得到N个图片的特征(图中绿色的部分, I 1 , I 2 I_1,I_2 I1,I2等)和文本的特征,CLIP在这些特征上进行对比学习,对比学习只需要一个正样本和负样本的定义,正样本是配对的图片和文字对,所以矩阵对角线上的都是正样本,其他的都是负样本,有N个正样本和 n 2 − n n^2-n n2n个负样本。完全不需要手工的标注

1.2 分类流程(上图中的右边的图所示)

因为CLIP经过预训练以后,只能得到视觉上和文本上的特征,没有继续的在任何的分类任务上去做训练和微调,所以没有分类头,那如果没有分类头怎么去做推理呢?作者这里想出来一个巧妙的利用自然语言的一种方法,也就是prompt template。举一个image net的例子:

  1. CLIP先把image net里这一千个类,比如说图片里的plane、car、dog等变成一个句子(例如A photo of a {object}),就是用类别去替代这里的这个object,比方说得到一个A photo of a car句子。而且从单词到句子也是很有讲究的,文章中也进行了探讨
  2. image net有1000个类,那其实就生成了1000个句子,经过预训练好的文本编码器对1000个句子进行编码得到1000个文本特征
  3. 具体推理的时候,给出一张图像,只要把这张图像扔给图像编码器,得到了这个图像特征之后,使用图片的特征去跟所有的文本的特征去计算余弦相似度,最后图像特征跟哪个文本特征最相似。我们就把这个文本特征所对应的句子挑出来,从而完成了分类这个任务

1.3 为什么要进行prompt template这个操作呢?

其实直接用这里的这些单词去抽取这种文本的特征也是可以的,但是因为在模型预训练的时候,每个图片配对的文本基本都是一个句子,如果在推理的时候突然把所有的这个文本都变成了单词,这样就跟训练的时候的文本就不太一样了,模型的效果会下降。

二、如何在多个GPU上训练一个超大的模型

视频中提到,由于CLIP这个模型非常大,加上数据集也非常大,所以CLIP在训练的时候用了很多技巧来节省内存和减少训练时间。故朱毅在视频中给出了一个博客说如何多GPU训练模型
在这里插入图片描述

三、CLIP模型的伪代码实现

图中是CLIP实现的伪代码,关于伪代码实现中的一些细节,博客中讲的很详细,可以看看。

总结

  这篇CLIP文章主要是听着课来看的,对于很多具体实现视频中没有讲,我也没有自己去看,因为我主要是进行汇报所以来看的视频。而且文章总共有48页,仅仅是为了汇报去专门读48页的原文我觉得是不合理的,所以我还是浅显的看一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值