一、Abstract
儘管深度學習已經徹底改革了計算機視覺領域,但當前的深度學習視覺方案方法存在幾個主要問題:
- 高質量的視覺數據集,製作過程耗時且成本高昂,同時只包含了有限範圍的視覺概念
- 標準的深度學習視覺模型(例如ImageNet、ResNet)擅長完成單一任務,且只能完成一個任務,需要投入巨大的努力(遷移學習、stacking fine-tune)才能適應新的任務
- 在基準測試上表現良好的模型,在壓力測試與泛化測試中的性能卻令人失望,這讓人對整個深度學習在計算機視覺領域的方法產生了懷疑。
我們提出了一種旨在解決這些問題的神經網絡:它接受訓練時使用了多種多樣的圖片,以及網絡上大量可得的自然語言語料進行自監督監督訓練。
通過設計,這個網絡可以使用自然語言進行操控,完成多種分類基準測試,而不需提前針對基準數據集進行鍼對性訓練優化,這類似於GPT-2和GPT-3的“零樣本學習(zero-shot)”能力。
這是一個關鍵的變化:通過不提前針對基準數據集進行鍼對性訓練優化,我們展示了它能夠變得更具代表性。我們的系統在縮小“魯棒性差距”方面達到了高達75%的效果,同時在不使用任何原始的128萬個標註樣本的情況下,與原始的ResNet-50在ImageNet零樣本學習中的表現匹敵。
參考鏈接:
https://openai.com/research/clip
二、Background and related work
CLIP(Contrastive Language–Image Pre-training)建立在大量關於”zero-shot transfer“、”natural language supervision“、”multimodal learning“和”transfer learning“的研究基礎之上。
零樣本學習的理念可以追溯到十多年前,但直到最近,這一理念在計算機視覺領域主要被研究作爲推廣到未見過物體類別的方法。一個關鍵的洞見是利用自然語言作爲一種靈活的預測空間,以實現泛化和轉移。2013年,斯坦福大學的Richer Socher及其合作者開發了一個概念驗證,通過在CIFAR-10上訓練一個模型,使其在一個詞向量嵌入空間中進行預測,並展示了該模型能夠預測兩個未見過的類別。同年,DeVISE擴展了這一方法,並證明可以對一個ImageNet模型進行微調,使其能夠正確地預測原始1000訓練集之外的對象。
CLIP最受啓發的是FAIR的Ang Li及其合作者在2016年展示了使用自然語言監督來實現zero-shot transfer到幾個現有的計算機視覺分類數據集的工作,如典型的ImageNet數據集。他們通過對一個ImageNet CNN進行微調,預測來自3000萬Flickr照片的標題、描述和標籤文本中更廣泛的視覺概念集(視覺n-grams),並能夠在ImageNet零次學習上達到11.5%的準確率。
最後,CLIP是過去一年重新審視從自然語言監督中學習視覺表示的一系列論文中的一部分。這一系列工作包括:
- 使用了更現代的架構,如Transformer,幷包括VirTex,它探討了自迴歸語言建模
- ICMLM,它研究了掩碼語言建模
- ConVIRT,它研究了我們在CLIP中使用的相同對比目標,但應用於醫學成像領域。
https://www.cnblogs.com/LittleHann/p/17354069.html#_label3_3_1_3
三、Approach
我們展示了只需擴大一個簡單的預訓練任務,就足以在各種各樣的圖像分類數據集上實現有競爭力的零樣本學習性能。
我們的方法使用了一種大量可獲得的監督來源:互聯網上與圖片配對的文本。這些數據被用來爲CLIP創建以下的代理訓練任務:給定一幅圖像,預測在我們數據集中實際與之配對的32,768個隨機採樣的文本片段中的哪一個。
爲了解決這個任務,我們的直覺是CLIP模型將需要學會識別圖像中的各種視覺概念,並將它們與其名稱關聯起來。結果,CLIP模型可以應用於幾乎任意的視覺分類任務。例如,如果數據集的任務是分類狗和貓的照片,我們檢查每幅圖像是否更可能與CLIP模型預測的文本描述“一張狗的照片”或“一張貓的照片”配對(用自然語言方式實現離散多分類任務)。
基本架構圖如下所示,
CLIP可以緩解傳統深度學習方法在計算機視覺方面的許多主要問題。
0x1:緩解昂貴數據集(Costly datasets)問題
深度學習需要大量數據,傳統上,視覺模型是在人工標註的數據集上訓練的,這些數據集的構建成本高昂,且只爲有限數量的預先確定的視覺概念提供監督。
ImageNet數據集是這一領域最大的努力之一,它需要超過25,000名工人爲14百萬張圖片註釋22,000個對象類別。相比之下,CLIP從互聯網上已公開可用的文本-圖像對中學習。
0x2:緩解模型處理任務領域狹窄(Narrow)問題
一個ImageNet模型擅長預測1000個ImageNet類別,但這就是它“開箱即用”能做的全部。如果我們希望執行任何其他任務,機器學習從業者需要構建一個新的數據集,添加一個輸出頭(output head),並對模型進行微調(fine-tune)。
相比之下,CLIP可以在不需要額外訓練樣本的情況下,適應執行各種各樣的視覺分類任務。要將CLIP應用於新任務,我們所需要做的就是“告訴”CLIP的文本編碼器任務的視覺概念名稱,它將輸出CLIP視覺表示的線性分類器。這個分類器的準確率往往與完全監督的模型具有競爭力。
我們在下面展示了各種數據集中的示例上,零樣本學習CLIP分類器的隨機、未經精選的預測結果。
0x3:緩解模型泛化能力較差(Poor real-world performance)問題
深度學習系統常常被報道在視覺基準測試中達到了人類甚至是超越人類的表現,然而一旦部署到實際環境中,它們的表現往往遠低於基準所設定的期望。換句話說,存在着“基準表現”和“實際表現”之間的差距。我們推測,這種差距之所以出現,是因爲模型通過僅僅優化對基準的表現來“作弊”,這就像一個學生通過只學習往年考試題目來通過考試一樣。
相反,CLIP模型可以在不需要訓練其數據的情況下對基準進行評估,因此它無法以這種方式“作弊”。這導致它在基準測試中的表現更能代表其在實際環境中的表現。爲了驗證“作弊假設”,我們還測量了CLIP在能夠爲ImageNet“備考”時表現的變化。通過在CLIP的特徵之上擬合線性分類器,其在ImageNet測試集上的準確率提高了近10%。然而,這個分類器在衡量“魯棒”表現的其他7個數據集評估套件上的平均表現並沒有更好。
四、Key takeaways
0x1:CLIP is highly efficient
CLIP從未經過濾的、高度多變的、高度嘈雜的數據中學習,並且旨在以零樣本學習的方式使用。
我們從GPT-2和GPT-3知道,訓練在此類數據上的模型可以實現引人注目的零樣本學習性能。然而,此類模型需要顯著的訓練計算資源。爲了減少所需的計算資源,我們專注於改進算法來提高我們方法的訓練效率。
我們這裏展示了兩個導致顯著計算節省的算法選擇。
- 第一個選擇是採用對比目標(contrastive objective)來連接文本和圖像。最初我們探索了類似於VirTex的圖像到文本方法,但在擴展到實現最先進性能時遇到了困難。在小到中等規模的實驗中,我們發現CLIP使用的對比目標(contrastive objective)在zero-shot ImageNet分類中的效率是標準方法的4到10倍。
- 第二個選擇是採用了Vision Transformer模型,這比標準的ResNet模型進一步提高了3倍的計算效率。最終,我們性能最佳的CLIP模型在256個GPU上訓練了2周,這與現有的大規模圖像模型相當。
We originally explored training image-to-caption language models but found this approach struggled at zero-shot transfer. In this 16 GPU day experiment, a language model only achieves 16% accuracy on ImageNet after training for 400 million images. CLIP is much more efficient and achieves the same accuracy roughly 10x faster.
0x2:CLIP is flexible and general
由於CLIP模型直接從自然語言中學習了廣泛的視覺概念,它們比現有的ImageNet模型具有更高的靈活性和普適性。我們發現它們能夠零樣本學習執行許多不同的任務。爲了驗證這一點,我們測試了CLIP在30多個不同數據集上的零樣本學習表現,包括如
- 細粒度物體分類
- 地理定位
- 視頻中的動作識別
- OCR等任務
這一發現也反映在使用線性探針的標準表示學習評估上。我們測試的26個不同遷移數據集中,最好的CLIP模型在20個數據集上勝過了最好的公開可用的ImageNet模型。
儘管CLIP的零樣本學習OCR表現參差不齊,但它的語義OCR表示卻非常有用。
- 當在以圖像形式呈現的SST-2自然語言處理數據集上評估時,CLIP表示上的線性分類器與直接訪問文本的CBoW模型不相上下。
- CLIP在檢測仇恨性模因方面也具有競爭力,而無需真實文本的標註。
Across a suite of 27 datasets measuring tasks such as fine-grained object classification, OCR, activity recognition in videos, and geo-localization, we find that CLIP models learn more widely useful image representations. CLIP models are also more compute efficient than the models from 10 prior approaches that we compare with.
五、Limitations
雖然CLIP通常在識別常見物體方面表現良好,但它在更抽象或系統性的任務上(例如計算圖像中的物體數量)以及在更復雜的任務上(例如預測照片中最近的汽車有多近)卻遇到了困難。在這兩個數據集上,零樣本學習的CLIP僅比隨機猜測略好一些。零樣本學習的CLIP在非常細緻的分類任務上也難以與特定任務的模型相比,比如區分汽車型號、飛機的不同變種或者花卉品種。
CLIP對於其預訓練數據集未涵蓋的圖像的泛化能力也仍然較差。例如,儘管CLIP學會了一個有能力的OCR系統,但在對MNIST數據集的手寫數字評估時,零樣本學習的CLIP僅達到了88%的準確率,遠遠低於人類在該數據集上的99.75%準確率。
最後,我們觀察到CLIP的零樣本學習分類器對措辭或措詞非常敏感,有時需要通過試錯的“提示工程”來使其表現良好。
六、Conclusion
使用CLIP,我們測試了任務無關的預訓練是否可以使用互聯網規模的自然語言這一推動了最近自然語言處理(NLP)領域突破的力量,來提高深度學習在其他領域的性能。我們對迄今爲止應用這種方法於計算機視覺領域所看到的結果感到興奮。與GPT家族一樣,CLIP在預訓練期間學習了多種任務,我們通過零樣本遷移學習(zero-shot transfer)來展示這一點。我們也被我們在ImageNet上的發現所鼓舞,這表明零樣本評估是衡量模型能力更具代表性的指標。
通過CLIP的研究和實驗,我們看到預訓練模型能夠在沒有特定任務數據的情況下,學會並執行多種任務。CLIP展示了零樣本學習在多個不同領域的數據集上的能力,這表明了將大規模預訓練與自然語言的強大結合應用於視覺任務的潛力。
此外,我們對zero-shot evaluation相較於傳統的微調和特定任務訓練方法提供了更真實的性能指標。
這些發現促進了我們對模型能力、侷限性和偏差的理解,並激勵了對這些領域進一步研究的興趣。我們期待與研究社區就這些問題展開更深入的交流和合作