自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

模態(tài)編碼器 | CLIP詳細(xì)解讀

人工智能
傳統(tǒng)圖像模型聯(lián)合訓(xùn)練一個(gè)圖像特征提取器和一個(gè)線性分類器來(lái)預(yù)測(cè)一些標(biāo)簽,而CLIP聯(lián)合訓(xùn)練一個(gè)圖像編碼器和一個(gè)文本編碼器來(lái)預(yù)測(cè)一批(圖像,文本)訓(xùn)練樣本的正確配對(duì)(模型的核心是從自然語(yǔ)言與圖像配對(duì)的監(jiān)督中學(xué)習(xí)感知)。

下面來(lái)詳細(xì)了解一下多模態(tài)大模型模態(tài)編碼器部分。今天首先來(lái)看下CLIP,OpenAI發(fā)表在2021年ICML上的一篇工作。

項(xiàng)目地址:https://github.com/OpenAI/CLIP

這篇工作的研究動(dòng)機(jī):在自然語(yǔ)言處理(NLP)領(lǐng)域,通過(guò)大規(guī)模的文本數(shù)據(jù)預(yù)訓(xùn)練模型(如GPT-3)已經(jīng)取得了顯著的成果,但在計(jì)算機(jī)視覺領(lǐng)域,預(yù)訓(xùn)練模型仍然依賴于人工標(biāo)注的圖像數(shù)據(jù)集,嚴(yán)重影響了其在未見類別上的泛化性和可用性(需要用額外的有標(biāo)注數(shù)據(jù))。因此其研究動(dòng)機(jī)主要在于探索如何通過(guò)對(duì)比學(xué)習(xí)(Contrastive Learning)的方法,使模型能夠從大規(guī)模的未標(biāo)注數(shù)據(jù)中學(xué)習(xí)到語(yǔ)言和圖像之間的對(duì)應(yīng)關(guān)系,從而更好地理解和生成多模態(tài)內(nèi)容。

01、方法介紹

傳統(tǒng)圖像模型聯(lián)合訓(xùn)練一個(gè)圖像特征提取器和一個(gè)線性分類器來(lái)預(yù)測(cè)一些標(biāo)簽,而CLIP聯(lián)合訓(xùn)練一個(gè)圖像編碼器和一個(gè)文本編碼器來(lái)預(yù)測(cè)一批(圖像,文本)訓(xùn)練樣本的正確配對(duì)(模型的核心是從自然語(yǔ)言與圖像配對(duì)的監(jiān)督中學(xué)習(xí)感知。下面來(lái)詳細(xì)看下CLIP:

圖片

圖(1)是對(duì)提取的文本特征和圖像特征進(jìn)行對(duì)比學(xué)習(xí)。對(duì)于一個(gè)包含NN個(gè)文本-圖像對(duì)的訓(xùn)練batch,將N個(gè)文本特征和N個(gè)圖像特征兩兩組合,CLIP模型會(huì)預(yù)測(cè)出N2個(gè)可能的文本-圖像對(duì)的相似度,這里的相似度直接計(jì)算文本特征和圖像特征的余弦相似性(cosine similarity),即上圖所示的矩陣。這里共有N個(gè)正樣本,即真正屬于一對(duì)的文本和圖像(矩陣中的對(duì)角線元素),而剩余的N2?N個(gè)文本-圖像對(duì)為負(fù)樣本,那么CLIP的訓(xùn)練目標(biāo)就是最大N個(gè)正樣本的相似度,同時(shí)最小化N2?N個(gè)負(fù)樣本的相似度。

圖(2)是zero-shot的推理。給定一張圖片,如何利用預(yù)訓(xùn)練好的網(wǎng)絡(luò)去做分類呢?這里作者很巧妙地設(shè)置了一道“多項(xiàng)選擇”。具體來(lái)說(shuō),給網(wǎng)絡(luò)一堆分類標(biāo)簽,比如cat, dog, bird,利用文本編碼器得到向量表示。然后分別計(jì)算這些標(biāo)簽與圖片的余弦相似度;最終相似度最高的標(biāo)簽即是預(yù)測(cè)的分類結(jié)果。作者提到,相比于單純地給定分類標(biāo)簽,給定一個(gè)句子的分類效果更好。比如一種句子模板 A photo of a ...,后面填入分類標(biāo)簽。這種句子模板叫做 prompt(提示)。這也很好理解:預(yù)訓(xùn)練時(shí)模型看到的大多是句子,如果在推理時(shí)突然變成單詞,效果肯定會(huì)下降。作者還說(shuō),句子模板的選擇很有講究,還專門討論了prompt engineering,測(cè)試了好多種類的句子模板。提示信息有多種,從圖2中可以看到它用不同的類別替換一句話中不同的詞,形成不同的標(biāo)簽。推理過(guò)程中最關(guān)鍵的一點(diǎn),有很高的自由度去設(shè)置“多項(xiàng)選擇題”。從前的分類網(wǎng)絡(luò)的類別數(shù)量是固定的,一般最后一層是跟著 softmax 的全連接層;如果要更改類別數(shù)量,就要更換最后一層;并且預(yù)測(cè)的內(nèi)容是固定的,不能超過(guò)訓(xùn)練集的類別范圍。但對(duì)于 CLIP 來(lái)說(shuō),提供給網(wǎng)絡(luò)的分類標(biāo)簽不僅數(shù)量不固定,內(nèi)容也是自由的。如果提供兩個(gè)標(biāo)簽,那就是一個(gè)二分類問(wèn)題;如果提供1000個(gè)標(biāo)簽,那就是1000分類問(wèn)題。標(biāo)簽內(nèi)容可以是常規(guī)的分類標(biāo)簽,也可以是一些冷門的分類標(biāo)簽。這是 CLIP 的一大主要貢獻(xiàn)——擺脫了事先定好的分類標(biāo)簽。

圖2所示的例子解釋如下:根據(jù)任務(wù)的分類標(biāo)簽構(gòu)建每個(gè)類別的描述文本:A photo of {label},然后將這些文本送入Text Encoder得到對(duì)應(yīng)的文本特征,如果類別數(shù)目為
N,那么將得到
N個(gè)文本特征;將要預(yù)測(cè)的圖像送入Image Encoder得到圖像特征,然后與N個(gè)文本特征計(jì)算縮放的余弦相似度(和訓(xùn)練過(guò)程一致),然后選擇相似度最大的文本對(duì)應(yīng)的類別作為圖像分類預(yù)測(cè)結(jié)果,進(jìn)一步地,可以將這些相似度看成logits,送入softmax后可以到每個(gè)類別的預(yù)測(cè)概率。

該工作的重點(diǎn)主要包括創(chuàng)建一個(gè)足夠大的數(shù)據(jù)集、一種有效的預(yù)訓(xùn)練方法、選擇和縮放一個(gè)模型、預(yù)訓(xùn)練等。

數(shù)據(jù)集方面,對(duì)比于自然語(yǔ)言領(lǐng)域的監(jiān)督訓(xùn)練,最值得借鑒的就是其訓(xùn)練數(shù)據(jù)規(guī)模之大,并且其將互聯(lián)網(wǎng)上公開的文本數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)。對(duì)比之下,現(xiàn)有的圖片數(shù)據(jù)集規(guī)模遠(yuǎn)遠(yuǎn)不夠,因此原文作者從互聯(lián)網(wǎng)上爬下來(lái)4億圖片-文本對(duì),來(lái)用于實(shí)驗(yàn)。以此,能夠盡可能的覆蓋全各種視覺概念。數(shù)據(jù)集稱為WIT(WebImageText)。

預(yù)訓(xùn)練方法上,CLIP采用對(duì)比學(xué)習(xí)。具體來(lái)說(shuō),CLIP模型將圖像和文本映射到同一表示空間,并通過(guò)對(duì)比不同圖像和文本對(duì)之間的相似性和差異性進(jìn)行訓(xùn)練,從而學(xué)習(xí)到具有良好泛化能力的特征表示。如果是預(yù)測(cè)一個(gè)圖像所對(duì)應(yīng)的文本,需要逐字逐句的去預(yù)測(cè),非常復(fù)雜,效率較低,因?yàn)橐粡垐D像可能有多種文本描述,如果是使用對(duì)比學(xué)習(xí)的方法,預(yù)測(cè)一個(gè)圖像和一個(gè)文本是否配對(duì),那任務(wù)就簡(jiǎn)單很多。將預(yù)測(cè)性目標(biāo)函數(shù)換成對(duì)比性目標(biāo)函數(shù),訓(xùn)練效率提高了四倍。(最初的方法是類似于VirText,以預(yù)測(cè)圖像的標(biāo)題的方式,去聯(lián)合訓(xùn)練一個(gè)圖像的CNN和一個(gè)文本的transformer。但是最后發(fā)現(xiàn)這種方式效率很低。最終作者的方法是只預(yù)測(cè)哪段文本整體與哪幅圖像配對(duì),而非預(yù)測(cè)該段文本的確切詞語(yǔ))

模型選擇方面,對(duì)于image encoder,選擇ResNet-50/ViT(二選一)。對(duì)于text encoder,選擇用Transformer。

損失函數(shù),溫度系數(shù)τ是設(shè)定的超參數(shù),q和k可以表示相似度度量,分子部分表示正例之間的相似度,分母表示正例與負(fù)例之間的相似度。因此看出,相同類別相似度越大,不同類別相似度越小,損失就會(huì)越小。

圖片


02、實(shí)驗(yàn)結(jié)果

零樣本遷移能力

零樣本遷移能力方面,CLIP在三個(gè)數(shù)據(jù)集上都獲得了遠(yuǎn)超Visual N-Grams的準(zhǔn)確率。

圖片

prompt的有效性

作者驗(yàn)證了文本描述時(shí)采用prompt的有效性(精度提升1.3%)。簡(jiǎn)單來(lái)說(shuō),prompt learning的核心是通過(guò)構(gòu)建合適prompt(提示)來(lái)使預(yù)訓(xùn)練模型能夠直接應(yīng)用到下游任務(wù)中。

推理時(shí),只使用類別標(biāo)簽作為文本描述效果并不夠好,原因如下:

1.詞語(yǔ)存在歧義性:如果我們直接采用類別標(biāo)簽作為文本描述,那么很多文本就是一個(gè)單詞,缺少具體的上下文,并不能很好的描述圖片內(nèi)容。比如在做物體檢測(cè)時(shí),有一個(gè)類別是remote(遙控器)。但如果直接喂給文本編碼器,很可能被模型認(rèn)為是遙遠(yuǎn)的意思。所以 CLIP預(yù)訓(xùn)練時(shí),用來(lái)描述圖片內(nèi)容的文本是一個(gè)句子,比如A photo of {label}。這里的label就只能是名詞,一定程度上消除了歧義性。

2. 使推理和預(yù)訓(xùn)練時(shí)保持一致(消除distribution gap)。

另外,還可以根據(jù)不同的數(shù)據(jù)集來(lái)調(diào)整這個(gè)模板,進(jìn)而提升zero-shot的性能。例如當(dāng)數(shù)據(jù)集是Oxford-IIIT Pets數(shù)據(jù)集時(shí)(類別都是動(dòng)物),就可以將模板寫成:A photo of a {label}, a type of pet.;或者在做OCR任務(wù)時(shí),在想找的那個(gè)文本或者數(shù)字上打上雙引號(hào),模型就可能知道你是想找雙引號(hào)里面的內(nèi)容。

作者還嘗試了集成多個(gè)模板的效果,即在多個(gè)zero-shot分類器上進(jìn)行集成,這些分類器使用不同的提示模板來(lái)構(gòu)造不同的文本。由于是在嵌入空間(embedding space)而不是概率空間(probability space)上集成的,因此節(jié)約了計(jì)算成本。在大多數(shù)數(shù)據(jù)集上,prompt ensembling都能夠提升模型性能。最終作者使用了80種模板來(lái)進(jìn)行集成,每種模板使用了不同的形容詞,來(lái)描述不同的情境。

圖片

zero-shot分類效果

為了測(cè)試CLIP的zero-shot分類的效果怎么樣,作者將在27個(gè)數(shù)據(jù)集上的分類效果做成了對(duì)比圖,下圖就是CLIP與基于ResNet-50做Linear Probe的對(duì)比。

圖片

綠色 + 表示相比ResNet-50提升了多少,藍(lán)色 - 表示相比ResNet-50降低了多少。最終在27個(gè)數(shù)據(jù)集中,CLIP在16個(gè)數(shù)據(jù)集上都超越了有監(jiān)督訓(xùn)練好的ResNet-50。

對(duì)于普通的物體分類任務(wù),CLIP可以很好的做zero-shot遷移,例如車、食物、CIFAR10等數(shù)據(jù)集,因?yàn)閳D像中有可以描述出來(lái)的物體,那對(duì)應(yīng)的文本中也就有這種描述,因此可以很好的匹配;

CLIP對(duì)于更加復(fù)雜或抽象的任務(wù)就表現(xiàn)比較弱,例如衛(wèi)星圖像分類、淋巴結(jié)腫瘤檢測(cè)等需要特定領(lǐng)域知識(shí)的分類任務(wù),CLIP并沒有預(yù)訓(xùn)練到這些標(biāo)簽信息。

few-shot分類效果

作者認(rèn)為,對(duì)于特別難的任務(wù),完全不給任何標(biāo)簽信息,有點(diǎn)強(qiáng)人所難了,不是很合理。所以論文還對(duì)比f(wàn)ew-shot性能,即只用少量的樣本來(lái)微調(diào)模型,這里對(duì)比了3個(gè)模型:在ImageNet21K上訓(xùn)練的BiT-M (big transfer),是一個(gè)很強(qiáng)的baseline;基于SimCLRv2訓(xùn)練的ResNet50;有監(jiān)督訓(xùn)練的ResNet50。

從結(jié)果來(lái)看,每類的訓(xùn)練樣本只有1個(gè)或2個(gè)的時(shí)候,效果還不如zero-shot CLIP;但當(dāng)每類的訓(xùn)練樣本增加到8個(gè)或16個(gè)的時(shí)候,效果則超越了zero-shot CLIP。這說(shuō)明對(duì)于一些難的數(shù)據(jù)集來(lái)說(shuō),有一些訓(xùn)練樣本還是非常有必要的。

對(duì)于這個(gè)結(jié)果的解釋:CLIP在做Linear Probe的時(shí)候,需要扔掉文本編碼器部分,接著在圖像編碼器之后加一層線性分類器,所以分類方式不再是看圖像特征與文本特征最相近,而是重新訓(xùn)練一個(gè)線性分類器。新加的一層線性分類器是隨機(jī)初始化的,所以每類有1個(gè)標(biāo)注樣本是不夠的。這也是為什么一開始性能會(huì)比較差,但隨著訓(xùn)練樣本的增多,模型的分類性能會(huì)逐漸提升。

圖片

Linear probe CLIP對(duì)比

從圖中可以看到,在12個(gè)數(shù)據(jù)集上,用ViT結(jié)構(gòu)的CLIP效果最好,用ResNet的效果也比大多數(shù)模型要好;在27個(gè)數(shù)據(jù)集上,CLIP的效果吊打其他所有模型。這個(gè)結(jié)果就證明了CLIP模型的強(qiáng)大。

圖片

與現(xiàn)有ImageNet模型在自然分布轉(zhuǎn)移條件下的性能比較

圖片

圖中所有零樣本CLIP模型顯著提高了有效魯棒性,并將ImageNet準(zhǔn)確率與分布轉(zhuǎn)移下的準(zhǔn)確率之間的差距最多減少了75%。零樣本CLIP模型在魯棒性前沿方面與Taori等人研究過(guò)的所有204個(gè)先前模型呈現(xiàn)出完全不同的軌跡。這些結(jié)果表明,近期向大規(guī)模任務(wù)和數(shù)據(jù)集無(wú)關(guān)預(yù)訓(xùn)練的轉(zhuǎn)變,結(jié)合重新關(guān)注零樣本遷移評(píng)估,促進(jìn)了更魯棒系統(tǒng)的發(fā)展,并提供了對(duì)真實(shí)模型性能更為準(zhǔn)確的評(píng)估。

與Noisy Student EfficientNet-L2 對(duì)比

作者還在27個(gè)數(shù)據(jù)集上可視化了CLIP模型和用偽標(biāo)簽訓(xùn)練的EfficientNet的性能差異(ImageNet上表現(xiàn)最好)。從圖中可以看到,CLIP在21個(gè)數(shù)據(jù)集上的性能都超過(guò)了EfficientNet,并且很多數(shù)據(jù)集都是大比分超過(guò)。在其余6個(gè)表現(xiàn)不如EfficientNet的數(shù)據(jù)集上,CLIP也只比EfficientNet稍微低一點(diǎn),差距并不大。

圖片

數(shù)據(jù)重疊分析

CLIP能實(shí)現(xiàn)這么好的zero-shot性能,大家很可能質(zhì)疑CLIP的訓(xùn)練數(shù)據(jù)集可能包含一些測(cè)試數(shù)據(jù)集中的樣例,即所謂的數(shù)據(jù)泄漏。關(guān)于這點(diǎn),論文也采用一個(gè)重復(fù)檢測(cè)器對(duì)評(píng)測(cè)的數(shù)據(jù)集重合做了檢查,發(fā)現(xiàn)重合率的中位數(shù)為2.2%,而平均值在3.2%,去重前后大部分?jǐn)?shù)據(jù)集的性能沒有太大的變化,如下所示: 

  • 左:雖然幾個(gè)數(shù)據(jù)集在檢測(cè)到的重疊和干凈示例上的zero-shot準(zhǔn)確度有高達(dá)±20%的明顯差異,但在35個(gè)數(shù)據(jù)集中只有5個(gè)具有99.5%的Clopper-Pearson置信區(qū)間,排除了0%的準(zhǔn)確度差異。其中2個(gè)數(shù)據(jù)集在重疊數(shù)據(jù)上表現(xiàn)更差。
  • 右:由于檢測(cè)到的重疊示例的百分比幾乎總是個(gè)位數(shù),因此由于重疊導(dǎo)致的整體測(cè)試準(zhǔn)確度增益要小得多,Birdsnap的最大增幅僅為0.6%。同樣,當(dāng)使用單邊二項(xiàng)式檢驗(yàn)計(jì)算時(shí),只有6個(gè)數(shù)據(jù)集的準(zhǔn)確性提高具有統(tǒng)計(jì)學(xué)意義。

圖片

03、總結(jié)

CLIP 的最大貢獻(xiàn)在于打破了固定種類標(biāo)簽的桎梏,讓下游任務(wù)的推理變得更靈活。并且在 zero-shot 的情況下,它的效果很不錯(cuò)。在這篇工作發(fā)表之后,涌現(xiàn)出了一大批在其他領(lǐng)域的應(yīng)用,包括物體檢測(cè)、物體分割、圖像生成、視頻動(dòng)作檢索等。在創(chuàng)新度、有效性、影響力方面都非常出色。CLIP 將語(yǔ)言和圖像表示合二為一的能力為許多應(yīng)用打開了大門。雖然我們?nèi)祟惪梢愿兄煌愋偷臄?shù)據(jù),包括文本、數(shù)據(jù)、音頻等。但是過(guò)去基于 AI 的模型已經(jīng)顯示出它們只能理解一種模態(tài)的弱點(diǎn)。有了 CLIP,也加速了“人工智能”理解世界的能力。

責(zé)任編輯:龐桂玉 來(lái)源: 小白學(xué)AI算法
相關(guān)推薦

2025-04-07 05:30:00

2025-04-08 03:00:00

2025-04-10 06:30:00

2025-04-08 04:20:00

2025-04-11 00:16:00

模態(tài)編碼器MAECLIP

2025-04-09 02:10:00

模態(tài)編碼器SigLIP多模態(tài)

2025-04-10 11:52:55

2010-03-01 14:08:53

WCF編碼器

2010-02-26 13:26:55

WCF消息編碼器

2025-04-07 06:30:00

2025-04-07 04:30:00

2025-02-28 10:15:00

3D模型編碼器

2024-12-18 14:50:00

AI訓(xùn)練數(shù)據(jù)

2023-10-07 09:29:09

2021-03-29 11:37:50

人工智能深度學(xué)習(xí)

2021-11-02 20:44:47

數(shù)字化

2021-03-22 10:52:13

人工智能深度學(xué)習(xí)自編碼器

2012-04-10 16:55:22

PowerSmart編碼器

2012-04-01 16:40:45

編碼器

2023-04-25 21:36:07

火山引擎
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)