一文講清楚視覺大模型!CLIP模型論文解讀
概覽
該論文提出了一種名為CLIP(Contrastive Language-Image Pre-Training)的多模態(tài)預訓練模型,用于學習圖像和文本之間的語義關(guān)系。該模型使用自然語言作為監(jiān)督信號,通過對比預測正確的圖像-文本配對和錯誤的配對來學習特征表示。具體來說,CLIP首先將輸入的圖像和文本分別編碼為高維向量,并在兩個空間中計算它們之間的相似度。然后,CLIP使用一個對比損失函數(shù)來優(yōu)化這些向量的表示,以最大化正確配對的相似度并最小化錯誤配對的相似度。最終,CLIP可以用于各種下游任務,如圖像分類、對象檢測等。
方法改進
相比于傳統(tǒng)的基于標注數(shù)據(jù)的監(jiān)督學習方法,CLIP利用了大量未標注的自然語言數(shù)據(jù)來進行無監(jiān)督學習,從而提高了模型的表現(xiàn)。此外,CLIP還采用了多種技術(shù)來提高效率和性能,包括使用多個GPU進行分布式訓練、使用半精度浮點數(shù)計算以及使用梯度檢查點技術(shù)等。
解決的問題
CLIP的主要目標是解決多模態(tài)學習中的語義匹配問題,即如何將圖像和文本聯(lián)系起來。傳統(tǒng)的方法通常需要大量的標注數(shù)據(jù)來進行監(jiān)督學習,而CLIP則可以通過利用未標注的自然語言數(shù)據(jù)來進行無監(jiān)督學習,從而減少了對標注數(shù)據(jù)的依賴。此外,CLIP還可以應用于各種下游任務,如圖像分類、對象檢測等,具有廣泛的應用前景。
1. 選擇高效的預訓練方式
給定一批 N(圖像,文本)對,CLIP 被訓練來預測批次中 N × N 可能(圖像,文本)對中的哪一個實際發(fā)生。為此,CLIP 通過聯(lián)合訓練圖像編碼器和文本編碼器來學習多模態(tài)嵌入空間,以最大化批次中 N 個實數(shù)對的圖像和文本嵌入的余弦相似度,同時最小化 N2 - N 個不正確的配對。我們優(yōu)化了這些相似性分數(shù)的對稱交叉熵損失。在圖 3 中,我們包含了 CLIP 實現(xiàn)的核心偽代碼。
據(jù)我們所知,這種批量構(gòu)建技術(shù)和目標首先作為多類 N 對損失 Sohn (2016) 在深度度量學習領(lǐng)域引入,并被 Oord 推廣用于對比表示學習。作為 InfoNCE 損失,最近被 Zhang 等人改編為醫(yī)學成像領(lǐng)域的對比(文本、圖像)表示學習。由于我們的預訓練數(shù)據(jù)集很大,過擬合不是主要問題,訓練 CLIP 的細節(jié)得到了簡化。
我們從頭開始訓練 CLIP,而沒有使用 ImageNet 權(quán)重初始化圖像編碼器或使用預訓練權(quán)重的文本編碼器。我們不使用表示和對比嵌入空間之間的非線性投影,相反,我們僅使用線性投影將每個編碼器的表示映射到多模態(tài)嵌入空間。
我們沒有注意到兩個版本之間訓練效率的差異,并推測非線性投影可能僅在自監(jiān)督表示學習方法中與當前圖像的細節(jié)共同適應。我們還簡化了圖像變換函數(shù)t_v 。來自調(diào)整大小的圖像的隨機正方形裁剪是訓練期間使用的唯一數(shù)據(jù)增強。最后,控制 softmax 中 logits 范圍的溫度參數(shù) τ 在訓練期間直接優(yōu)化為對數(shù)參數(shù)化乘法標量,以避免轉(zhuǎn)為超參數(shù)。
2.選擇和擴展模型
我們考慮圖像編碼器的兩種不同架構(gòu)。
圖像編碼器
首先,我們使用 ResNet-50 (He et al., 2016a) 作為圖像編碼器的基礎架構(gòu),因為它被廣泛采用并且經(jīng)過驗證有良好的性能。我們使用 He 等人的 ResNetD 改進對原始版本進行了一些改進,同時采用了 Zhang 的抗鋸齒 rect-2 模糊池。我們還用注意力池機制替換了全局平均池層。注意力池被實現(xiàn)為單層“transformer形式”的多頭 QKV 注意力,其中查詢以圖像的全局平均池表示為條件。對于第二種架構(gòu),我們試驗了最近推出的 Vision Transformer (ViT)。我們密切關(guān)注它們的實現(xiàn),僅對變換器之前的組合補丁和位置嵌入添加額外的層歸一化并使用略有不同的初始化方案進行了微小的修改。
文本編碼器
文本編碼器是一個 Transformer,具有 Radford 等人中描述的架構(gòu)修改。作為基礎尺寸,我們使用具有 8 個注意力頭的 63M 參數(shù) 12 層 512 寬模型。轉(zhuǎn)換器對具有 49,152 個詞匯大小的文本的小寫字節(jié)對編碼 (BPE) 表示進行操作。為了計算效率,最大序列長度上限為 76。文本序列用 [SOS] 和 [EOS] 標記括起來,轉(zhuǎn)換器最高層在 [EOS] 標記處的激活被視為文本的特征表示,該文本被層歸一化,然后線性投影到多 -模態(tài)嵌入空間。Masked self-attention 在文本編碼器中使用,以保留使用預訓練語言模型進行初始化或添加語言建模作為輔助目標的能力,盡管對此的探索留待未來的工作。
結(jié)合之處
雖然之前的計算機視覺研究通常通過單獨增加寬度或深度來縮放模型,但對于 ResNet 圖像編碼器,我們采用了 Tan & Le(2019)的方法,該方法發(fā)現(xiàn) 在所有寬度、深度和分辨率上分配額外的計算優(yōu)于僅將其分配給模型的一個維度。雖然 Tan & Le (2019) 調(diào)整了為其 EfficientNet 架構(gòu)分配給每個維度的計算比率,但我們使用了一個簡單的基線,即平均分配額外的計算以增加模型的寬度、深度和分辨率。對于文本編碼器,我們只縮放模型的寬度,使其與計算出的 ResNet 寬度增加成正比,根本不縮放深度,因為我們發(fā)現(xiàn) CLIP 的性能對文本編碼器的容量不太敏感。
3.訓練過程
我們訓練了一系列的 5 個 ResNets 和 3 個 Vision Transformer。對于 ResNet,我們訓練了一個 ResNet-50、一個 ResNet-101,然后是另外 3 個,它們遵循 EfficientNet 風格的模型縮放,并使用大約 4 倍、16 倍和 64 倍的 ResNet-50 計算。它們分別表示為 RN50x4、RN50x16 和 RN50x64。對于 Vision Transformers,我們訓練了一個 ViT-B/32、一個 ViT-B/16 和一個 ViT-L/14。我們訓練所有模型 32 個epoch。我們使用 Adam 優(yōu)化器將解耦權(quán)重衰減正則化應用于所有不是增益或偏差的權(quán)重,并使用余弦計劃衰減學習率 (Loshchilov & Hutter, 2016) .
當訓練 1 個epoch時,初始超參數(shù)是使用網(wǎng)格搜索、隨機搜索和手動調(diào)整的組合在基線 ResNet-50 模型上設置的。由于計算限制,超參數(shù)然后啟發(fā)式地適應更大的模型。
可學習的溫度參數(shù) τ 從初始化為相當于 0.07 并被剪裁以防止將 logits 縮放超過 100,我們發(fā)現(xiàn)這是防止訓練不穩(wěn)定所必需的。我們使用 32,768 的非常大的minibatch。混合精度用于加速訓練和節(jié)省內(nèi)存。為了節(jié)省額外的內(nèi)存,使用了梯度檢查點 、半精度 Adam 統(tǒng)計和半精度隨機舍入文本編碼器權(quán)重。嵌入相似度的計算也與單個 GPU 進行了分片,僅計算其本地批量嵌入所需的成對相似度的子集。最大的 ResNet 模型 RN50x64 在 592 個 V100 GPU 上訓練了 18 天,而最大的 Vision Transformer 在 256 個 V100 GPU 上訓練了 12 天。對于 ViT-L/14,我們還以更高的 336 像素分辨率對一個額外的 epoch 進行了預訓練,以提高類似于 FixRes 的性能。我們將此模型表示為 ViT-L/14@336px。除非另有說明,否則本文中報告為“CLIP”的所有結(jié)果均使用我們發(fā)現(xiàn)性能最佳的模型。
4. 零樣本學習
CLIP 經(jīng)過預訓練,可以預測圖像和文本片段是否在其數(shù)據(jù)集中配對在一起。為了執(zhí)行零樣本分類,我們重用了此功能。對于每個數(shù)據(jù)集,我們使用數(shù)據(jù)集中所有類的名稱作為潛在文本對的集合,并根據(jù) CLIP 預測最可能的(圖像,文本)對。更詳細一點,我們首先通過各自的編碼器計算圖像的特征嵌入和一組可能文本的特征嵌入。然后計算這些嵌入的余弦相似度,通過溫度參數(shù) τ 縮放,并通過 softmax 歸一化為概率分布。請注意,此預測層是一個多項邏輯回歸分類器,具有 L2 歸一化輸入、L2 歸一化權(quán)重、無偏差和溫度縮放。以這種方式解釋時,圖像編碼器是計算圖像特征表示的計算機視覺主干,而文本編碼器是超網(wǎng)絡,它根據(jù)指定文本生成線性分類器的權(quán)重。
參考:https://arxiv.org/pdf/2103.00020
本文轉(zhuǎn)載自 ??沐白AI筆記??,作者: 楊沐白
