- 標籤: #CLIP #Image2Text #Text2Image #OpenAI
- 建立時間:2023-04-21 00:17:52
基本原理
- CLIP是一個影象分類模型。
- 準備訓練資料:準備大量的文字描述和圖片的訓練對,然後把進行對比訓練。
- 文字描述和圖片的訓練對的資料獲取:從網際網路上獲得400Million的影象文字資料對。這個 規模大致和GPT-2的資料規模相當。
1. 好處1:資料獲取容易。傳統的做法會對影象進行分類,以ImageNet為例,獲得圖片後需要人工進行分類標註,這個週期長成本高。
2. 好處2:遷移能力強。過去是精確分類一張圖片,這樣當出現一個未包含的圖片的時候,在已知圖片分類裡就找不到對應的答案了。而CLIP因為訓練的素材裡面的描述是文字性的(而不是一兩個單詞的簡單分類名稱),因此它獲得了更好的泛化能力。
- 因為有了這麼大的資料,所以需要更好大量的算力,以及優質的演演算法。
- Text Encoder採用的是Transformer。
- Image Encoder採用的是Vision Transformer。
- 整個計算在256個V100 GPU上訓練2周(12天),得出了ViT-L/14@336px模型。
- CLIP的設計初衷是為了能夠做到零樣本遷移(Zero-Shot)到下游資料集上的,也就是說,希望訓練完的模型,在遇到一個完全沒有見過的圖片訓練集的時候,可以進行高效的分類。為了達到這個零樣本學習的能力:
- 研發人員摒棄了傳統的資料集,因為傳統的資料集通常是建立在明確分類基礎上的,所以當一個新分類的圖片出現的時候,這個模型就不知所措了。
- 把一般的分類換成一個描述性的文字,則可以比較好的解決這個問題。這裡列出了他們準備文字描述的模板,通過這些模板,可以把一個帶有歧義的單詞,變成一個有意義的影象描述,比如論文裡舉例:boxer,當只提到這個詞的時候,我們可能以為它是個拳擊手,但是當結合了模板
A photo of a {label}, a type of pet.
(其中{label}
替換成boxer
)那麼boxer就可以被理解為一種狗(其中在生成資料的時候,比如a type of pet部分也是可以自動拼進去的,比如圖片本來就來自牛津詞典寵物圖片集,那麼自然就可以增加這樣的分類資訊,這會進一步讓影象識別變得更加精準)。
- 主要用途:影象搜尋(基於文字)、自然語言描述影象等。
- 限制:參考論文P18(6. Limitations)
- 結果:CLIP在Zero-Shot的情況下,在大部分常見資料集上都位元定訓練的模型表現的好。在一些特別的模型基礎上,Zero-Shot可能不一定有很好的效果,但是進行Few-shot則位元定訓練的模型表現要好,因此模型具備很強的遷移能力。
- 引發的思考:
- 資料量大,就可以獲得不一樣的研究方法和模型效果。其實CLIP用到的方法並不新鮮,前人也有用過類似的方法,但是因為沒有采用這麼大的資料量,所以沒有達到SOTA的效果。
- 模型的輸入輸出都變成了token,也可以理解都都是文字,它和NLP領域的GPT模型帶來的顛覆性相似。
- 因為是一般性的文字描述,而不是特定分類描述,所以模型具備了多模態的特性。
- 因為是一般性的文字描述,所以模型可以用於自然語言描述影象。
- 這個專案的訓練方法沒有開源,但是訓練結果的模型開源了。
基於CLIP延展的專案
- StyleCLIP:變化髮型、眼睛等。
- CLIPDraw :CLIPDraw: Exploring Text-to-Drawing Synthesis through Language-Image Encoders 可以通過CLIP繪製一些蠟筆畫。
- Paper:Open-Vocabulary Object Detection Using Captions 基於字幕的開放詞彙目標檢測 目標檢測。
- Contrastive Language-Image Forensic Search 基於文字對視訊中的內容進行檢索。
參考資料
- Paper: Learning Transferable Visual Models From Natural Language Supervision 從自然語言監督中學習可遷移的視覺模型
- CLIP 論文逐段精讀【論文精讀】
- OpenAI | CLIP: Connecting text and images CLIP:連線文字和影象
轉載請註明出處:https://www.cnblogs.com/volnet/p/openai-clip.html