一、簡介
近來,一種新的學(xué)習(xí)范式 pre-training → Finetuning → Prediction 取得了很大的進(jìn)步,并且在視覺識(shí)別任務(wù)中取得了很好的效果。
使用 pretrained 模型來學(xué)習(xí)豐富的知識(shí),可以加速模型對下游任務(wù)的收斂速度并且提高效果
但是,這種學(xué)習(xí)范式在下游任務(wù)仍然需要很多帶標(biāo)注的數(shù)據(jù),如圖 2 所示
之后,受啟發(fā)與自然語言處理的語言語義廣泛性,研究者提出了新的學(xué)習(xí)范式:vision-language model pretraining and zero-shot prediction
在該范式下,使用超大規(guī)模的 image-text pairs 對 vision-language model(VLM)進(jìn)行預(yù)訓(xùn)練,甚至可以不用微調(diào)直接用于下游任務(wù),如圖 2c。
VLM 模型可以使用 vision-language objective 來從超大規(guī)模的 image-text pairs 中學(xué)習(xí) image 和 text 的對應(yīng)關(guān)聯(lián)。
例如 CLIP,就是使用 image-text 對比學(xué)習(xí)目標(biāo)函數(shù)來將成對兒的 image-text 的編碼距離拉近,將不成對兒的 image-text 編碼距離推遠(yuǎn)。
這樣的學(xué)習(xí)方式能夠允許模型利用大量的來源于網(wǎng)絡(luò)的數(shù)據(jù),并且可以無需訓(xùn)練即可實(shí)現(xiàn)零樣本遷移。
基于此, VLM 有兩條研究方向:
- 遷移學(xué)習(xí)
- 知識(shí)蒸餾:如何將 VLM 的能力蒸餾到下游任務(wù),如目標(biāo)檢測和語義分割
二、基礎(chǔ)知識(shí)
2.1 視覺任務(wù)的訓(xùn)練策略
1、傳統(tǒng)的機(jī)器視覺:
主要靠手工提取特征來作為圖像特征,如 SIFT 等,無法適應(yīng)復(fù)雜的任務(wù)
2、從頭訓(xùn)練的深度學(xué)習(xí)和預(yù)測
設(shè)計(jì)深度的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來進(jìn)行圖像特征的提取,如 ResNet 使用殘差連接實(shí)現(xiàn)了很好的特征提取,在 1000-class ImageNet 分類任務(wù)上獲得了優(yōu)于人類的結(jié)果
3、有監(jiān)督預(yù)訓(xùn)練,微調(diào)和預(yù)測
有監(jiān)督的預(yù)訓(xùn)練如圖 2a 所示,使用大量的數(shù)據(jù)訓(xùn)練了模型, 然后使用微調(diào)的方法遷移到其他數(shù)據(jù)集上去,能夠加速模型的收斂并且?guī)椭@得更好的效果
4、無監(jiān)督預(yù)訓(xùn)練、微調(diào)和預(yù)測
有監(jiān)督的訓(xùn)練需要大量的監(jiān)督數(shù)據(jù),會(huì)帶來一些困難,所以有方法使用了無監(jiān)督訓(xùn)練,讓模型從無標(biāo)簽的數(shù)據(jù)中學(xué)習(xí)有用的信息,如圖 2b 所示??梢允褂?image inpainting 來學(xué)習(xí)上下文信息,使用 masked image modeling 來建模 patch 間的關(guān)系。使用對比學(xué)習(xí)來學(xué)習(xí)更豐富的特征。由于其在預(yù)訓(xùn)練階段不需要大量的帶標(biāo)簽數(shù)據(jù),所以能使用更多的數(shù)據(jù)來學(xué)習(xí)到更多更有用的特征。
5、VLM pre-training 和 zero-shot prediction
和 pre-training、fine-tuning 相比,這種方式更能利用超大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)
2.2 VLM 基礎(chǔ)
給定 image-text pairs,首先使用 text encoder 和 image encoder 來抽取 image 和 text 特征,然后學(xué)習(xí) vision-language 之間的關(guān)系,通過大量的 image-text 關(guān)系的學(xué)習(xí),VLM 模型已經(jīng)見過非常多的數(shù)據(jù),就可以在未見過的數(shù)據(jù)上使用 image 和 text 的匹配來進(jìn)行 zero-shot 的任務(wù)
2.2.1 網(wǎng)絡(luò)結(jié)構(gòu)
VLM 預(yù)訓(xùn)練模型是從 N 個(gè) image-text pairs 中學(xué)習(xí)圖像和文本的特征
VLM 一般由兩部分組成:
- image encoder:對圖像進(jìn)行編碼
- text encoder:對文本進(jìn)行編碼
1、學(xué)習(xí)圖像編碼特征
一般有兩種網(wǎng)絡(luò)結(jié)構(gòu):
-
CNN-based:ResNet 等
-
Transformer-based:ViT 等(如圖 5 所示)
2、學(xué)習(xí)文本編碼特征
一般 Transformer 都是 encoder-decoder 結(jié)構(gòu),如圖 6,encoder 有 6 個(gè) blocks,decoder 也有 6 個(gè) blocks
2.2.2 預(yù)訓(xùn)練目標(biāo)函數(shù)
1、對比學(xué)習(xí)目標(biāo)函數(shù)
① Image contrastive learning :
主要通過學(xué)習(xí)具有區(qū)分能力的 image features 來讓 query image 和其 positive keys 拉近距離
給定一個(gè) batch B B B 的數(shù)據(jù),對比學(xué)習(xí)目標(biāo)函數(shù)形式一般如下:
- z i I z_i^I ziI?:query embedding,即圖像的編碼特征也就是查詢的特征編碼
- { z j I } j = 1 , j ! = i B + 1 \{z_j^I\}_{j=1, j!=i}^{B+1} {zjI?}j=1,j!=iB+1?:key embedding,文本編碼特征,
- z + I z_+^I z+I?: z i I z_i^I ziI? 的 positive key,每個(gè) query embedding 只會(huì)有一個(gè)與之匹配的正樣本,其他的都是負(fù)樣本
- τ \tau τ:溫度超參,越大則分布越平緩,會(huì)縮小不同樣本的差距,越小則分布越尖銳,會(huì)增大輸出的差距。
- 當(dāng) query 和唯一配對兒的正樣本特征更相似,且和其他負(fù)樣本都不相似的時(shí)候,loss 的值會(huì)比較低,反之 loss 會(huì)高
② Image-Text Contrastive Learning:
主要為了推近成對兒的 image 和 text 的距離,推遠(yuǎn)不成對兒的 image 和 text 距離,學(xué)習(xí)更好的 image-text 表達(dá)。
一般都是通過最小化對稱的 image-text infoNCE loss 來實(shí)現(xiàn),該 loss 能夠通過 image 和 text 編碼特征的內(nèi)積來衡量 image 和 text 的相似程度,如圖 7 所示:
L i n f o N C E I T = L I → T + L T → I L_{infoNCE}^{IT} = L_{I\to T} + L_{T\to I} LinfoNCEIT?=LI→T?+LT→I?
- L I → T L_{I\to T} LI→T?:是 query image 和 text key 的對比
- L T → I L_{T\to I} LT→I?:是 query text 和 image key 的對比
假設(shè)給定一個(gè) batch B B B image-text pairs:
- z I z^I zI :image embedding
- z T z^T zT:text embedding
③ Image-Text-Label Contrastive Learning
Image-Text-Label Contrastive Learning 引入有監(jiān)督的對比學(xué)習(xí)到 image-text 對比學(xué)習(xí)中
定義如下:
-
y 是 ( z I , z T ) (z^I, z^T) (zI,zT) 的類別標(biāo)簽
-
image-text-label infoNCE loss:
即會(huì)將 image、text、classification label 編碼到一個(gè)相同的特征空間,如圖 8 所示,能夠同時(shí)使用有監(jiān)督的基于 image label 的預(yù)訓(xùn)練和無監(jiān)督的基于 image-text pairs 的 VLM 預(yù)訓(xùn)練
2、生成式目標(biāo)函數(shù)
① Masked Image Modelling
② Masked Language Modelling
③ Masked Cross-Modal Modelling
3、對齊目標(biāo)函數(shù)
對齊目標(biāo)函數(shù)是通過 global image-text matching 或 local region-word matching 來對齊 image-text pair
① Image-text matching
實(shí)現(xiàn)全局的 image 和 text 的關(guān)聯(lián)學(xué)習(xí),可以使用 score function S ( . ) S(.) S(.) 來衡量 image 和 text 之間的 alignment probability
二分類 loss 如下:
- p=1:image 和 text 是一對兒
- p=0:image 和 text 不是一對兒
加上給定一個(gè) batch 的 image-text pairs,F(xiàn)LAVA[83] 通過分類器(binary classification loss)來實(shí)現(xiàn)對 image 和 text 的匹配
② Region-word matching
對 local cross-modal 關(guān)聯(lián)建模(對 image region 和 word 建模),主要針對密集預(yù)測,如目標(biāo)檢測, loss 如下:
- ( r I , w T ) (r^I, w^T) (rI,wT) 是 region-word pair
- p=1 表示 region 和 word 是一對
- p=0 表示 region 和 word 不是一對
- S r ( . ) S^r(.) Sr(.) 表示 image region 和 word 之間的相似程度
例如 GLIP、FIBER、DetCLIP,使用 region-word alignment score 代替了 object classification logits,regional visual features 和 token-wise 特征的關(guān)聯(lián)如圖 12 所示。
2.2.3 評估和下游任務(wù)
1、zero-shot prediction
① 圖像分類:是為了將圖像分類到預(yù)定義的類別中。
VLM 通過對比 image 和 text 的編碼特征來實(shí)現(xiàn) zero-shot 圖像分類,prompt 一般使用 “a photo of a [label]”
② 語義分割
VLM 模型通過對比 image pixels 和 text 的編碼特征來實(shí)現(xiàn) zero-shot 預(yù)測
③ 目標(biāo)檢測
VLM 模型通過對比 object proposal 和 text 的 embedding 來實(shí)現(xiàn)目標(biāo)檢測
④ image-text 檢索
2、Linear Probing
Linear Probing 也被用于 VLM 模型的評估,就是凍結(jié)預(yù)訓(xùn)練的 VLM,然后訓(xùn)練一個(gè) linear classifier 來對 VLM-encoded embedding 進(jìn)行分類,評估 VLM 的表達(dá)特征。
2.3 數(shù)據(jù)集
1、Image-text dataset
2、輔助數(shù)據(jù)集
三、遷移學(xué)習(xí)
- 有監(jiān)督遷移學(xué)習(xí)
- 少樣本監(jiān)督遷移學(xué)習(xí)
- 無監(jiān)督遷移學(xué)習(xí)
3.1 使用 prompt tuning 實(shí)現(xiàn)遷移學(xué)習(xí)
受啟發(fā)于 NLP,VLM 也使用了 prompt learning 方法來實(shí)現(xiàn)對下游任務(wù)的適配
1、使用 text prompt tuning 進(jìn)行遷移學(xué)習(xí)
CoOp[38] 使用 learnable word vectors 來為每個(gè)類別學(xué)習(xí),將類別標(biāo)簽 [label] 擴(kuò)展到了句子,‘[V]1, [V]2, …, [V]m, [label]’,其中 [V] 表示 learnable word vectors(通過最小化分類 loss 來優(yōu)化),如圖 13 所示。
2、使用 visual prompt tuning 來進(jìn)行遷移學(xué)習(xí)
比如 VP[168] 使用可學(xué)習(xí)的圖像干擾 v 來修正輸入圖像 x I x^I xI,變?yōu)? x I + v x^I+v xI+v,通過調(diào)整 v 來最小化 loss
visual prompt tuning 能夠?qū)?pixel-level 帶入下游任務(wù),有利于密集預(yù)測任務(wù)
3、使用 Text-Visual prompt tuning 來進(jìn)行遷移學(xué)習(xí)
如 UDP 同時(shí)優(yōu)化 text 和 image prompt
3.2 通過特征適應(yīng)來進(jìn)行遷移學(xué)習(xí)
四、VLM 的知識(shí)蒸餾
VLM 的只是蒸餾是將 VLM 的通用的、魯棒的知識(shí)蒸餾到 task-specific 模型上
4.1 目標(biāo)檢測的知識(shí)蒸餾
開集目標(biāo)檢測是為了檢測出任意文本描述的東西
一些 VLM 如 CLIP 是在超大尺度的 image-text pair 上訓(xùn)練的,能夠覆蓋很多的類別詞匯
- 如 ViLD 將 VLM 的知識(shí)蒸餾到了一個(gè)兩階段檢測器上
- HierKD 提出了層級 global-local 知識(shí)整理
- RKD 提出了 region-based 知識(shí)整理,能夠?qū)R region-level 和 image-level 的編碼特征
文章來源:http://www.zghlxwxcb.cn/news/detail-582081.html
4.2 語義分割的知識(shí)蒸餾
文章來源地址http://www.zghlxwxcb.cn/news/detail-582081.html
到了這里,關(guān)于【多模態(tài)】13、Vision-Language 模型在視覺任務(wù)中的調(diào)研的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!