CLIP 及其改進(jìn)工作
1. CLIP
論?地址:https://arxiv.org/abs/2103.00020

模型:對比學(xué)習(xí),預(yù)測N*N對圖文數(shù)據(jù),將圖片分類任務(wù)轉(zhuǎn)換成圖文匹配任務(wù):
?本編碼器( CBOW or Text Transform) ? [SOS] token 和 [EOS] token 將句?包裹,[EOS] token 對應(yīng)的輸出視為句?的特征表示 Masked self-attention 作為輔助訓(xùn)練?標(biāo)以保留預(yù)訓(xùn)練?本編碼器的初始化能?(防?遺忘) 采? Transformer 經(jīng)典結(jié)構(gòu)(源? Atten-tion is all you need 論?) 基礎(chǔ)模型 63M 參數(shù)量,8 個(gè)注意?頭,?本寬度 512,12 層 transformer encoder token embedding:采??寫字節(jié)對編碼( byte pair encoding,BPE),詞表?? 49152,最?句? ?度為 76。 圖像編碼器( ResNet or Vision Transform) 改進(jìn)策略:在 patch embedding 和 position embedding 之前采? LN 改進(jìn)策略:ResNet-D,antialiased rect-2 blur pooling,將全局池化替換為注意?池化機(jī)制 (attention pooling mechanism) 選擇 ResNet-50 作為基礎(chǔ)模型 選擇 Vision Transformer
共有 5 個(gè) ResNet 系列以及 3 個(gè) Vision Transformers 系列
ResNet 系列包括 ResNet-50/ResNet-101,以及參考 EfficientNet 進(jìn)?模型擴(kuò)展?;?ResNet-50 ?約進(jìn)? 4 倍,16 倍以及 64 倍計(jì)算擴(kuò)展,分別稱為 RN50x4, RN50x16, 以及 RN50x64 Vision Transformers 系列包括 ViT-B/32,ViT-B/16,ViT-L/14
1.1 模型訓(xùn)練細(xì)節(jié)
模型訓(xùn)練 epoch 均為 32 使? Adam 優(yōu)化器結(jié)合解耦權(quán)重衰減正則化(paper:Decoupled Weight Decay Regularization )以及使? 余弦調(diào)度衰減學(xué)習(xí)率(paper:SGDR: Stochastic Gradient Descent with Warm Restarts ) 基于 ResNet50 的超參的初始化使??格搜索和隨機(jī)搜索 learnable temperature 參數(shù) 被初始化為 0.07 并剪裁以防?將 logits 縮放超過 100,作者認(rèn)為這是防?訓(xùn) 練不穩(wěn)定所必需的
decrease , the distribution becomes more peaky — values that were larger become even larger, and values that were smaller become even smaller. On the other hand, as you increase , the distribution becomes flatter — values that were larger become smaller, and values that were smaller become larger.
使??個(gè)?常?的 batch size:32768 (Tips:在實(shí)際訓(xùn)練中使用 torch.distributed.nn.all_gather 進(jìn)行 GPU 進(jìn)程數(shù)據(jù)通信將推理結(jié)果匯總到一起就行 loss 計(jì)算)
使?混合精度進(jìn)?訓(xùn)練以節(jié)省內(nèi)存空間
半精度 Adam 優(yōu)化器策略
?本編碼器權(quán)重半精度隨機(jī)取整
RN50x60 模型的訓(xùn)練在 592 個(gè) V100 顯卡上耗時(shí) 18 天
ViT-L/14 模型的訓(xùn)練在 256 個(gè) V100 顯卡上耗時(shí) 12 天
2. ViLT
論文地址:https://arxiv.org/abs/2102.03334
2.1 作者對 VLP 模型現(xiàn)狀進(jìn)行概括

上圖是 4 種不同類型的 VLP 模型示意圖。
其中每個(gè)矩形的?表示相對計(jì)算量??,VE、TE 和 MI 分別是 visual embedding(視覺嵌入)、text embedding(文本嵌入) 和 modality interaction(多模態(tài)交互) 的簡寫。
作者提出這 4 種類型的主要依據(jù)有兩點(diǎn):
在參數(shù)或者計(jì)算上,兩種模態(tài)是否保持平衡。
在?絡(luò)深層中,兩種模態(tài)是否相互作?。
VSE、VSE++ 和 SCAN 屬于 (a) 類型。對圖像和?本獨(dú)?使? encoder,圖像 encoder 參數(shù)量更大(可以通俗理解“更重”),?本更輕,使?簡單的點(diǎn)積或者淺層 attention 層來表示兩種模態(tài)特征的相似性。
CLIP 屬于 (b) 類型。每個(gè)模態(tài)單獨(dú)使?重的 transformer encoder ,使?池化后的圖像特征點(diǎn)積計(jì)算特征相似 性。
ViLBERT、UNTER 和 Pixel-BERT 屬于 (c) 類型。這些?法使?深層 transformer 進(jìn)?交互作?,但是由于 VE 仍 然使?重的卷積?絡(luò)進(jìn)?特征抽取,導(dǎo)致計(jì)算量依然很?。
作者提出的 ViLT 屬于 (d) 類型。ViLT 是?個(gè)將 VE 設(shè)計(jì)的如 TE ?樣輕量的?法,該?法的主要計(jì)算量都集中在模態(tài)交互上。
2.2 Modality Interaction Schema
模態(tài)交互部分可以分成兩種?式:
?種是 single-stream (如 BERT 和 UNITER ),另?種是 dual-stream (如 ViLBERT 和 LXMERT )。其中 single-stream 是對圖像和?本 concate 然后進(jìn)?交互操作,? dual-stream 是不對圖像和?本 concate 然后進(jìn)?交互操作。ViLT 延? single-stream 的交互?式,因?yàn)?dual-stream 會(huì)引?額外的計(jì)算量。
2.3 模型設(shè)計(jì)

作者提出的 ViLT 可以認(rèn)為是?前最簡單的多模態(tài) Transformer ?法。ViLT 使?預(yù)訓(xùn)練的 ViT 來初始化交互的 transformer,這樣就可以直接利?交互層來處理視覺特征,不需要額外增加?個(gè)視覺 encoder。
?本特征輸?部分,將?本看成?個(gè)詞序列,通過 word embedding matrix 轉(zhuǎn)化成word embedding,然后和 position embedding 進(jìn)?相加,最后和 modal-type embedding 進(jìn)? concate。
圖像特征輸?部分,將圖像切塊看成?個(gè)圖像塊序列,通過 linear projection 轉(zhuǎn)化成 visual embedding,然后和 postion embedding 進(jìn)?相加,最后和 modal-type embedding 進(jìn)? concate 。
其中 word embedding 和 visual embedding 通過可學(xué)習(xí)的 modal-type embedding 標(biāo)志位來區(qū)分,其中 0 位表示 word embedding 部分, 1 標(biāo)志位表示 visual embedding 部分。
wrod embedding 和 visual embedding 分別都嵌?了?個(gè)額外的可學(xué)習(xí)class embedding ,?便和下游任務(wù)對接。
3. BLIP
論文鏈接:https://arxiv.org/abs/2201.12086

作者使用視覺 Transformer 作為圖像編碼器,該圖像編碼器將輸入圖像分成 patch,并將它們編碼為嵌入序列,并帶有額外的 [CLS] token 來表示全局圖像特征。與使用預(yù)訓(xùn)練的目標(biāo)檢測器進(jìn)行視覺特征提取相比,使用 ViT 更易于計(jì)算,并且已被較新的方法采用。
為了預(yù)訓(xùn)練一個(gè)既有理解能力又有生成能力的統(tǒng)一模型,作者提出了多模態(tài)混合編碼器-解碼器(MED),這是一個(gè)多任務(wù)模型,可以在以下三種結(jié)構(gòu)之一中運(yùn)行:
單模態(tài)編碼器,分別對圖像和文本進(jìn)行編碼。文本編碼器與 BERT 相同,其中將 [CLS] token 附加到文本輸入的開頭以概括句子。
Image-grounded 文本編碼器,通過在文本編碼器的每個(gè) transformer 塊的自注意 (SA) 層和前饋網(wǎng)絡(luò) (FFN) 之間插入一個(gè)額外的交叉注意 (CA) 層來注入視覺信息。文本中附加了一個(gè)特定于任務(wù)的 [Encode] token,[Encode] 的輸出嵌入被用作圖像-文本對的多模態(tài)表示。
Image-grounded 文本解碼器,將基于圖像的文本編碼器中的雙向自注意力層替換為因果自注意力層。[Decode] token 用于表示序列的開始,而 [EOS] token 用于表示其結(jié)束。
3.1 Pre-training Objectives
作者在預(yù)訓(xùn)練期間共同優(yōu)化了三個(gè)目標(biāo),其中兩個(gè)基于理解的目標(biāo)和一個(gè)基于生成的目標(biāo)。每個(gè)圖像-文本對僅需要一次通過計(jì)算較重的視覺 Transformer 的正向傳遞,而三次通過文本轉(zhuǎn)換器的正向傳遞,以激活不同的結(jié)構(gòu)以計(jì)算如下所述的三個(gè)損失函數(shù)。
圖像文本對比損失 (ITC) 激活單模態(tài)編碼器。其目的是對齊視覺 transformer 和文本 transformer 的特征空間,通過鼓勵(lì)正圖像-文本對具有相似的表示來實(shí)現(xiàn)。事實(shí)證明,這是提高視力和語言理解的有效目標(biāo)。
圖像文本匹配損失(ITM)激活圖像文本編碼器。它的目的是學(xué)習(xí)圖像-文本多模態(tài)表示,捕捉視覺和語言之間的細(xì)粒度對齊。ITM 是一個(gè)二分類任務(wù),給定其多模態(tài)特征,模型使用 ITM 頭 (線性層) 來預(yù)測圖像-文本對是正 (匹配) 還是負(fù) (不匹配)。
語言建模損失(LM)激活 image-grounded 文本解碼器,該解碼器旨在生成給定圖像的文本描述。它優(yōu)化了交叉熵?fù)p失,從而訓(xùn)練模型以自回歸方式最大化文本的可能性。在計(jì)算損失時(shí),作者采用 0.1 的標(biāo)簽平滑。與廣泛用于 VLP 的 MLM 損失相比,LM使模型具有將視覺信息轉(zhuǎn)換為連貫字幕的泛化能力。
為了在利用多任務(wù)學(xué)習(xí)的同時(shí)進(jìn)行有效的預(yù)訓(xùn)練,文本編碼器和文本解碼器共享除 SA 層之外的所有參數(shù)。原因是編碼和解碼任務(wù)之間的差異最好由 SA 層捕獲。尤其是,編碼器采用雙向自注意來構(gòu)建當(dāng)前輸入 token 的表示,而解碼器采用因果自注意來預(yù)測下一個(gè) token。另一方面,嵌入層、CA 層和 FFN 在編碼和解碼任務(wù)之間的作用類似,因此共享這些層可以提高訓(xùn)練效率,同時(shí)受益于多任務(wù)學(xué)習(xí)。
3.2 CapFilt

由于高昂的標(biāo)注成本,存在有限數(shù)量的高質(zhì)量人工標(biāo)注圖像文本對 ,如 COCO。最近的研究利用了大量從網(wǎng)絡(luò)上自動(dòng)收集的圖像和文本對。但是,這些文本通常無法準(zhǔn)確描述圖像的視覺內(nèi)容,從而使它們成為嘈雜的信號,對于學(xué)習(xí)視覺語言對齊不是最佳的。
作者提出了字幕和過濾(Captioning and Filtering,CapFilt),這是一種提高文本語料庫質(zhì)量的新方法。上圖給出了 CapFilt 的圖示。它引入了兩個(gè)模塊:一個(gè)用于生成給定 web 圖像的字幕的字幕器,以及一個(gè)用于去除噪聲圖像-文本對的過濾器。字幕器和過濾器都是從同一個(gè)預(yù)訓(xùn)練過的 MED 模型中初始化的,并在 COCO 數(shù)據(jù)集上單獨(dú)微調(diào)。微調(diào)是一個(gè)輕量級的過程。
具體地說,字幕器是一個(gè)基于圖像的文本解碼器。它與 LM 目標(biāo)相結(jié)合,對給定圖像的文本進(jìn)行解碼。給定 web 圖像,字幕器生成合成字幕。過濾器是一個(gè)基于圖像的文本編碼器。它與 ITC 和 ITM 的目標(biāo)相結(jié)合,以了解文本是否與圖像匹配。
過濾器會(huì)去除原始 web 文本和合成文本中的噪聲文本,如果 ITM 頭預(yù)測文本與圖像不匹配,則該文本被視為噪聲文本。最后,作者將過濾后的圖像-文本對與人類標(biāo)注對結(jié)合起來,形成一個(gè)新的數(shù)據(jù)集,并使用該數(shù)據(jù)集預(yù)訓(xùn)練一個(gè)新模型。

