CLIP原理解讀
一. 核心思想
通過自然語言處理來的一些監(jiān)督信號,可以去訓練一個遷移效果很好的視覺模型。
論文的作者團隊收集了一個超級大的圖像文本配對的數據集,有400 million個圖片文本的配對, 模型最大用了ViT-large,提出了CLIP(Contrastive Language-Image Pre-training),是一種從自然語言監(jiān)督中學習的有效方法。嘗試了30個數據集,都能和之前的有監(jiān)督的模型效果差不多甚至更好。
二. 方法實現(xiàn)
1. CLIP的訓練過程
模型的輸入是圖片和文字的配對,圖片輸入到圖片的encoder得到一些特征,文本輸入到文本的encoder得到一些特征,每個traning batch里有n個圖片-文本對,就能得到n個圖片的特征和n個文本的特征,然后在這些特征上做對比學習,對比學習非常靈活,就需要正樣本和負樣本的定義,其它都是正常套路(不懂對比學習),配對的圖片-文本對就是正樣本,描述的是同一個東西,特征矩陣里對角線上的都是正樣本,矩陣中非對角線上的元素都是負樣本,有了正負樣本,模型就可以通過對比學習的方式去訓練了,不需要任何手工標注。這種無監(jiān)督的訓練方式,是需要大量的訓練數據的。
2. CLIP的推理過程
預訓練之后只能得到文本和圖片的特征,是沒有分類頭的,作者提出一種利用自然語言的方法,prompt template。比如對于ImageNet的類別,首先把它變成"A photo of a {object}" 這樣一個句子,ImageNet有1000個類,就生成1000個句子,然后這1000個句子通過之前預訓練好的文本的encoder能得到1000個文本特征。直接用類別單詞去抽取文本特征也可以,但是模型預訓練的時候和圖片配對的都是句子,推理的時候用單詞效果會下降。把需要分類的圖片送入圖片的encoder得到特征,拿圖片的特征和1000個文本特征算余弦相似性,選最相似的那個文本特征對應的句子,從而完成了分類任務。不局限于這1000個類別,任何類別都可以。徹底擺脫了categorical label的限制,訓練和推理的時候都不需要提前定義好的標簽列表了。
優(yōu)點:相比其它的訓練方法,從自然語言的監(jiān)督信號來學習,有幾個好處。首先,不需要再去標注數據,比如用傳統(tǒng)方法做分類,需要先確定類別,然后去下載圖片再清洗,再標注,現(xiàn)在只需要去下載圖片和文本的配對,數據集很容易就做大了,現(xiàn)在的監(jiān)督對象是文本,而不是N選1的標簽了。其次,訓練的時候把圖片和文本綁在了一起,學到的特征不再單是視覺特征了,而是多模態(tài)的特征,和語言連在一起以后,就很容易做zero-shot的遷移學習了。
3. CLIP的損失函數
有兩個輸入,一個是圖片,一個是文本,圖片的維度是[n,h,w,c],文本的維度是[n,l],l是指序列長度,然后送入到各自的encoder提取特征,image encoder可以是ResNet也可以是Vision Transformer,text encoder可以是CBOW,也可以是Text Transformer,得到對應的特征之后,再經過一個投射層(即W_i和W_t),投射層的意義是學習如何從單模態(tài)變成多模態(tài),投射完之后再做l2 norm,就得到了最終的用來對比的特征I_e和T_e,現(xiàn)在有n個圖像的特征,和n個文本的特征,接下來就是算consine similarity,算的相似度就是最后要分類的logits,最后logits和ground truth做交叉熵loss,正樣本是對角線上的元素,logits的維度是[n,n],ground truth label是np.arange(n),算兩個loss,一個是image的,一個是text的,最后把兩個loss加起來就平均。這個操作在對比學習中是很常見的,都是用的這種對稱式的目標函數。
三. 實驗
1. 研究動機
在計算機視覺中,zero-shot學習主要指研究對unseen datasets的泛化。之前的那些自監(jiān)督和無監(jiān)督的方法,主要研究的是特征學習的能力,目標就是學一種泛化性比較好的特征,但即使學到了很好的特征,想應用到下游任務,還是需要有標簽的數據做微調,所以有限制,比如下游任務數據不好收集,可能有distribution shift的問題。怎么做到只訓練一個模型,后面不再需要微調了呢,這就是作者研究zero-shot遷移的研究動機。借助文本訓練了一個又大又好的模型之后,就可以借助這個文本作為引導,很靈活的做zero-shot的遷移學習。
在clip預訓練好之后,就有2個編碼器,一個是圖像編碼器,一個是文本編碼器,推理時給定一張圖片,通過編碼器就能得到一個圖片的特征,文本那邊的輸入就是感興趣的標簽有哪些,比如plane,car,dog等,這些詞會通過prompt engineering得到對應的句子,比如‘A photo of a plane’,‘A photo of a dog’,有了這些句子以后,送入到文本編碼器,就能得到對應的文本特征,這里假設是plane,car,dog這3個,然后拿這3個文本的特征去和那張圖片的特征做余弦相似度,計算得到相似度以后再 通過一個softmax得到概率分布,概率最大的那個句子就是在描述這張照片。
2. 實驗結果
- 作者在27個數據集上做了實驗,在16個數據集上的測試指標超越了完全監(jiān)督學習的方法,體現(xiàn)了zero-shot的泛化性。
- Zero-shot CLIP的魯棒性
四. 論文點評
該論文是2021年Open AI的作品,作者使用4億圖文對進行訓練,并將圖片特征和文本特征對齊,展現(xiàn)出強大的Zero-shot能力。后續(xù)很多大模型或者多模態(tài)都可以看到這篇論文的影子,值得精讀。文章來源:http://www.zghlxwxcb.cn/news/detail-713338.html
歡迎技術交流!??!
WeChat:guopeiAI文章來源地址http://www.zghlxwxcb.cn/news/detail-713338.html
到了這里,關于CLIP原理解讀——大模型論文閱讀筆記一的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!