點(diǎn)擊上方 “小白學(xué)視覺 ”,選擇加" 星標(biāo) "或“ 置頂 ”
重磅干貨,第一時(shí)間送達(dá)
深度圖像分類模型通常在大型帶注釋數(shù)據(jù)集上以監(jiān)督方式進(jìn)行訓(xùn)練。盡管模型的性能會(huì)隨著更多注釋數(shù)據(jù)的可用而提高,但用于監(jiān)督學(xué)習(xí)的大規(guī)模數(shù)據(jù)集通常難以獲得且成本高昂,需要專家注釋者花費(fèi)大量時(shí)間??紤]到這一點(diǎn),人們可能會(huì)開始懷疑是否存在更便宜的監(jiān)督資源。簡(jiǎn)而言之, 是否有可能從已經(jīng)公開可用的數(shù)據(jù)中學(xué)習(xí)高質(zhì)量的圖像分類模型?OpenAI提出的對(duì)比語言圖像預(yù)訓(xùn)練 (CLIP) 模型 [1] 最近由于在 DALLE-2模型 中的使用而重新流行起來,并且以積極的方式回答了這個(gè)問題。特別是,CLIP 提出了一個(gè)簡(jiǎn)單的預(yù)訓(xùn)練任務(wù)——選擇哪個(gè)標(biāo)題與哪個(gè)圖像相配——它允許深度神經(jīng)網(wǎng)絡(luò)單獨(dú)從自然語言(即圖像標(biāo)題)中學(xué)習(xí)高質(zhì)量的圖像表示。由于圖像-文本對(duì)很容易在線獲得并且通常很容易獲得,因此可以輕松地為 CLIP 策劃一個(gè)大型預(yù)訓(xùn)練數(shù)據(jù)集,從而最大限度地減少訓(xùn)練深度網(wǎng)絡(luò)所需的注釋成本和工作量。 除了學(xué)習(xí)豐富的圖像表示之外,CLIP 通過在不觀察單個(gè)標(biāo)簽的情況下在 ImageNet 上實(shí)現(xiàn) 76.2% 的測(cè)試準(zhǔn)確率,徹底改變了零樣本圖像分類——與之前SOTA的零樣本學(xué)習(xí)框架的 11.5% 測(cè)試準(zhǔn)確率相比有了顯著改進(jìn)[2]。通過將自然語言作為圖像感知任務(wù)的可行訓(xùn)練信號(hào),CLIP 改變了監(jiān)督學(xué)習(xí)范式,并使神經(jīng)網(wǎng)絡(luò)能夠顯著減少對(duì)注釋數(shù)據(jù)的依賴。在這篇文章中,我將概述 CLIP 的細(xì)節(jié),如何使用它來最大程度地減少對(duì)傳統(tǒng)監(jiān)督數(shù)據(jù)的依賴,以及它對(duì)深度學(xué)習(xí)的影響。 在了解 CLIP 的細(xì)節(jié)之前,了解模型提出之前的相關(guān)研究很有必要。 在本節(jié)中,我將概述先前相關(guān)的工作,并提供有關(guān) CLIP 的靈感和發(fā)展的直覺。 即, 通過 初步工作表明自然語言是圖像感知監(jiān)督的有用來源來證明概念。 然而,由于此類方法相對(duì)于替代方法(例如,監(jiān)督訓(xùn)練、弱監(jiān)督等)表現(xiàn)不佳,因此在 CLIP 提出之前,通過自然語言進(jìn)行的訓(xùn)練仍然不常見。
使用 CNN 預(yù)測(cè)圖像說明。 先前的工作表明,預(yù)測(cè)圖像說明允許 CNN 開發(fā)有用的圖像表示 [3]。這種分類是通過將每個(gè)圖像的標(biāo)題、描述和主題標(biāo)簽元數(shù)據(jù)轉(zhuǎn)換為 詞袋 向量來執(zhí)行的,然后可以將其用作多標(biāo)簽分類任務(wù)的目標(biāo)。有趣的是,以這種方式學(xué)習(xí)的特征與通過 ImageNet 預(yù)訓(xùn)練獲得的特征的質(zhì)量相匹配,從而證明圖像說明提供了關(guān)于每張圖像的足夠信息以學(xué)習(xí)判別表示。
后來的工作將這種方法擴(kuò)展到預(yù)測(cè)與每個(gè)圖像相關(guān)的短語 [2],從而實(shí)現(xiàn)到其他分類數(shù)據(jù)集的零樣本遷移。盡管這種方法的零樣本性能很差(即在 ImageNet 上的測(cè)試準(zhǔn)確率為 11.5%),但它表明僅使用自然語言就可以產(chǎn)生遠(yuǎn)遠(yuǎn)超過隨機(jī)性能的零樣本圖像分類結(jié)果,從而初步證明弱監(jiān)督零樣本分類的概念。 來自帶有Transformer的文本的圖像表示。 同時(shí),幾項(xiàng)工作——包括 VirTex [4]、ICMLM [5] 和 ConVIRT [6]——探索了使用Transformer 架構(gòu) 從文本數(shù)據(jù)中學(xué)習(xí)視覺特征。在高層次上,此類方法使用常見的訓(xùn)練任務(wù)讓Transformer 從相關(guān)的圖像說明中學(xué)習(xí)有用的圖像表示。作為此類工作的結(jié)果, 掩碼語言建模 (MLM)、 語言建模 和 對(duì)比學(xué)習(xí) 目標(biāo)——通常用于在自然語言處理領(lǐng)域訓(xùn)練轉(zhuǎn)換器——被發(fā)現(xiàn)是學(xué)習(xí)高質(zhì)量圖像表示的有用代理任務(wù)。 為未來的發(fā)現(xiàn)鋪平道路 盡管以前的方法沒有在大規(guī)模數(shù)據(jù)集上實(shí)現(xiàn)令人印象深刻的零樣本性能,但這些基礎(chǔ)工作提供了有用的經(jīng)驗(yàn)教訓(xùn)。也就是說,之前的工作明確兩點(diǎn):1. 自然語言是計(jì)算機(jī)視覺監(jiān)督的有效來源。2. 通過自然語言監(jiān)督進(jìn)行零樣本分類是可能的。由于這些發(fā)現(xiàn),進(jìn)一步的研究工作被投入到在監(jiān)督來源較弱的情況下執(zhí)行零樣本分類。這些努力產(chǎn)生了突破性的方法,例如 CLIP,它將自然語言監(jiān)督從一種罕見的方法轉(zhuǎn)變?yōu)橐环N出色的零樣本圖像分類方法。
CLIP 架構(gòu)和訓(xùn)練方法的可視化概述 簡(jiǎn)而言之,上圖中總結(jié)的 CLIP 模型旨在從相關(guān)圖像說明中學(xué)習(xí)圖像中的視覺概念。在本節(jié)中,我將概述 CLIP 架構(gòu)、其訓(xùn)練以及生成的模型如何應(yīng)用于零樣本分類。 CLIP 由兩個(gè)編碼器模塊組成,分別用于對(duì)文本和圖像數(shù)據(jù)進(jìn)行編碼。對(duì)于圖像編碼器,探索了許多不同的模型架構(gòu),包括五個(gè)不同大小的 ResNets [7](即,模型尺寸是使用 EfficientNet 樣式 [8] 模型縮放規(guī)則確定的)和三個(gè) 視覺Transformer 架構(gòu) [9]。圖像編碼器的這兩個(gè)選項(xiàng)如下所示。然而,CLIP 的視覺Transformer 變體在訓(xùn)練時(shí)的計(jì)算效率提高了 3 倍,使其成為首選的圖像編碼器架構(gòu)。 CLIP 中圖像編碼器架構(gòu)的不同選項(xiàng)
CLIP 中的文本編碼器只是一個(gè)僅解碼器的Transformer ,這意味著在每一層中都使用了Mas k ed 的自注意力(與雙向自注意力相反)。 Mas k ed 的 自注 意力 確保Transformer 對(duì)序列中每個(gè)標(biāo)記的表示僅取決于它之前的標(biāo)記,從而防止任何標(biāo)記“展望未來”以更好地告知其表示。下面提供了文本編碼器體系結(jié)構(gòu)的基本描述。然而,應(yīng)該注意的是,這種架構(gòu)與大多數(shù)先前提出的語言建模架構(gòu)(例如 GPT-2 或 OPT )非常相似。 CLIP 的文本編碼器架構(gòu)
盡管 CLIP 未應(yīng)用于原始出版物中的任何語言建模應(yīng)用,但作者利用掩蔽自注意力使 CLIP 將來更容易擴(kuò)展到此類應(yīng)用。 通過自然語言監(jiān)督進(jìn)行訓(xùn)練 盡管之前的工作表明自然語言是一種可行的計(jì)算機(jī)視覺訓(xùn)練信號(hào),但用于在圖像和文本對(duì)上訓(xùn)練 CLIP 的確切訓(xùn)練任務(wù)并不是很明顯。 我們應(yīng)該根據(jù)標(biāo)題中的文字對(duì)圖像進(jìn)行分類嗎?以前的工作已經(jīng)嘗試過這個(gè)想法,但效果不是很好 [2, 3]。 有趣的是,作者發(fā)現(xiàn)預(yù)測(cè)確切的圖像說明太困難了因?yàn)槿魏螆D像都可以用多種不同的方式來描述,這使得模型學(xué)習(xí)非常緩慢 。 理想的 CLIP 預(yù)訓(xùn)練任務(wù)應(yīng)該是可擴(kuò)展的,這意味著它允許模型從自然語言監(jiān)督中有效地學(xué)習(xí)有用的表示。借鑒 對(duì)比表示學(xué)習(xí) 中的相關(guān)工作,作者發(fā)現(xiàn)可以使用一項(xiàng)非常簡(jiǎn)單的任務(wù)來有效地訓(xùn)練 CLIP——在一組候選字幕中預(yù)測(cè)正確的、相關(guān)聯(lián)的字幕。下圖說明了這樣的任務(wù)。 CLIP 的圖文對(duì)比預(yù)訓(xùn)練
在實(shí) 踐中,這一 目標(biāo) 是通過以下方式實(shí)現(xiàn)的:
這樣的目標(biāo)被稱為多類 N 對(duì)(或 InfoNCE)損失 [10],通常應(yīng)用于對(duì)比和度量學(xué)習(xí)中的問題。作為這個(gè)預(yù)訓(xùn)練過程的結(jié)果,CLIP 為圖像和文本形成了一個(gè)聯(lián)合嵌入空間,使得對(duì)應(yīng)于相似概念的圖像和標(biāo)題具有相似的嵌入。 更好的任務(wù) = 更快的學(xué)習(xí)。 通過使用這個(gè)更簡(jiǎn)單的代理任務(wù)訓(xùn)練 CLIP 模型,作者觀察到訓(xùn)練效率提高了 4 倍;如下圖所示。
CLIP 由于其對(duì)比目標(biāo)提高了訓(xùn)練效率
在這里,訓(xùn)練效率是使用 ImageNet 上的零樣本學(xué)習(xí)遷移率來衡量的。換句話說,當(dāng)使用這個(gè)簡(jiǎn)單的目標(biāo)時(shí),CLIP 模型花費(fèi)更少的訓(xùn)練時(shí)間(根據(jù)觀察到的圖像文本示例的數(shù)量)來實(shí)現(xiàn)在 ImageNet 上產(chǎn)生高零樣本精度的模型。 因此,正確選擇訓(xùn)練目標(biāo)會(huì)對(duì)模型效率和性能產(chǎn)生巨大影響。
我們?nèi)绾卧跊]有訓(xùn)練示例的情況下對(duì)圖像進(jìn)行分類? CLIP 執(zhí)行分類的能力最初看起來像是一個(gè)謎。鑒于它只從非結(jié)構(gòu)化的文本描述中學(xué)習(xí),它 怎么可能推廣到圖像分類中看不見的對(duì)象類別?CLIP 經(jīng)過訓(xùn)練可以預(yù)測(cè)圖像和文本片段是否配對(duì)在一起。 有趣的是,這種能力可以重新用于執(zhí)行零樣本分類。 特別是,通過利用未見類別的文本描述(例如,類別名稱),可以通過將文本和圖像傳遞給它們各自的編碼器并比較生成的嵌入來評(píng)估每個(gè)候選類別; 請(qǐng)參閱下面的視覺描述。 使用 CLIP 執(zhí)行零樣本分類
形式化這個(gè)過程,零樣本分類實(shí)際上包括以下步驟:
從相關(guān)文本(即類名/描述)計(jì)算每個(gè)類的嵌入 這種方法有局限性:一個(gè)類的名稱可能缺乏揭示其含義的相關(guān)上下文(即 多義 問題),一些數(shù)據(jù)集可能完全缺乏元數(shù)據(jù)或類的文本描述,并且對(duì)圖像進(jìn)行單詞描述在用于訓(xùn)練的圖像-文本對(duì)。這些問題可以通過制作“提示”來以文本形式表示不同的類別或創(chuàng)建多個(gè)零樣本分類器的集合來緩解;見下圖。 當(dāng) (i) 提示用于生成類嵌入和 (ii) 零樣本分類器的集合用于預(yù)測(cè)時(shí),CLIP 實(shí)現(xiàn)了改進(jìn)的性能 然 而, 這種方法仍然具有 根本 的局限性,最終必須解決這些局限性,以提高零樣本學(xué)習(xí)能力。 CLIP 實(shí)踐——沒有訓(xùn)練數(shù)據(jù)的準(zhǔn)確分類! 在原文中,CLIP 在零樣本域中進(jìn)行評(píng)估,并添加了微調(diào)(即少樣本或完全監(jiān)督域)。在這里,我將概述這些使用 CLIP 進(jìn)行的實(shí)驗(yàn)的主要發(fā)現(xiàn),并提供有關(guān) CLIP 何時(shí)可以和不可以用于解決給定分類問題的相關(guān)詳細(xì)信息。 零樣本 。在零樣本領(lǐng)域,CLIP 取得了突破性的成果,將 ImageNet 上最先進(jìn)的零樣本測(cè)試準(zhǔn)確率從 11.5% 提高到 76.2%;見下文。 零樣本 CLIP 精度與之前最先進(jìn)技術(shù)的比較
當(dāng)將 CLIP 的零樣本性能與以預(yù)訓(xùn)練的 ResNet50 特征作為輸入的完全監(jiān)督線性分類器的性能進(jìn)行比較時(shí),CLIP 繼續(xù)在各種數(shù)據(jù)集上取得顯著成果。即,CLIP 在所研究的 27 個(gè)總數(shù)據(jù)集中的 16 個(gè)上優(yōu)于線性分類器(完全監(jiān)督?。?,盡管從未觀察到單個(gè)訓(xùn)練示例。
CLIP 與以預(yù)訓(xùn)練的 ResNet50 特征作為輸入的線性分類器
當(dāng)分析每個(gè)數(shù) 據(jù) 集的性能時(shí),很明顯 CLIP 在一般對(duì)象分類數(shù)據(jù)集(例如 ImageNet 或 CIFAR10/100)上表現(xiàn)良好,甚至在動(dòng)作識(shí)別數(shù)據(jù)集上表現(xiàn)更好。 直覺上,這些任務(wù)的良好表現(xiàn)是由于 CLIP 在訓(xùn)練期間接受的廣泛監(jiān)督以及圖像說明通常以動(dòng)詞為中心的事實(shí),因此與動(dòng)作識(shí)別標(biāo)簽的相似性高于數(shù)據(jù)集中使用的以名詞為中心的類,例如圖片網(wǎng)。 有趣的是,CLIP 在衛(wèi)星圖像分類和腫瘤檢測(cè)等復(fù)雜和專門的數(shù)據(jù)集上表現(xiàn)最差。
少樣本: CLIP 的零樣本和少樣本性能也與其他少樣本線性分類器的性能進(jìn)行了比較。在觀察每個(gè)類中的四個(gè)訓(xùn)練示例后,發(fā)現(xiàn)零樣本 CLIP 與少樣本線性分類器的平均性能相匹配。此外,當(dāng)允許觀察訓(xùn)練示例本身時(shí),CLIP 優(yōu)于所有小樣本線性分類器。這些結(jié)果總結(jié)在下圖中。 與少鏡頭線性分類器相比,CLIP 零和少鏡頭性能
當(dāng)使用 CLIP 特征訓(xùn)練完全監(jiān)督的線性分類器時(shí),發(fā)現(xiàn)它在準(zhǔn)確性和計(jì)算成本方面都優(yōu)于許多基線,從而強(qiáng)調(diào)了 CLIP 通過自然語言監(jiān)督學(xué)習(xí)的表示的質(zhì)量; 見下 文。
使用 CLIP 的完全監(jiān)督線性分類器性能 盡管 CLIP 的性能并不完美(即,它在專門 的任務(wù)上表現(xiàn)不佳,并且僅適用于對(duì)每個(gè)類別都有良好文本描述的數(shù)據(jù)集),但 CLIP 實(shí)現(xiàn)的零樣本和少樣本結(jié)果預(yù)示了 高概率產(chǎn)生的可能性- 圖像和文本的質(zhì)量聯(lián)合嵌入空間。 更多可能,但 CLIP 為此類通用分類方法提供了初步(令人印象深刻的)概念證明。 毫無疑問,CLIP 徹底改變了零樣本圖像分類領(lǐng)域。盡管先前在語言建模方面的工作表明,可以利用非結(jié)構(gòu)化輸出空間(例如,文本到文本語言模型,如 GPT-3 [11])來實(shí)現(xiàn)零樣本分類目的,但 CLIP 通過 i)形成對(duì)這些結(jié)果進(jìn)行了擴(kuò)展一種適用于計(jì)算機(jī)視覺的方法,以及 ii)將整個(gè)訓(xùn)練過程建立在易于獲取的圖像文本描述的基礎(chǔ)上。 CLIP 堅(jiān)定地認(rèn)為自然語言提供了足夠的訓(xùn)練信號(hào)來學(xué)習(xí)高質(zhì)量的感知特征。這一發(fā)現(xiàn)對(duì)深度學(xué)習(xí)研究的未來方向具有重大影響。特別是,圖像的自然語言描述比遵循特定任務(wù)本體的圖像注釋(即用于分類的傳統(tǒng)單熱標(biāo)簽)更容易獲得。因此,為 CLIP 風(fēng)格的分類器標(biāo)注訓(xùn)練數(shù)據(jù)更具可擴(kuò)展性, 特別是因?yàn)樵S多圖像-文本配對(duì)可以免費(fèi)在線下載。 CLIP 的主要局限性源于以下事實(shí): i)在分類問題中獲得每個(gè)類的良好文本嵌入是困難的,并且 ii)復(fù)雜/特定任務(wù)(例如,腫瘤檢測(cè)或預(yù)測(cè)圖像中對(duì)象的深度)難以通過學(xué)習(xí)通用自然語言監(jiān)督。盡管如此,CLIP 學(xué)習(xí)到的表示是高質(zhì)量的,并且可以通過探索對(duì)預(yù)訓(xùn)練過程中觀察到的數(shù)據(jù)的修改來提高更專業(yè)任務(wù)的性能。 import clip available_models = clip.available_models() device = "cuda" if torch.cuda.is_available() else "cpu" model, preprocess = clip.load(available_models[0], device=device) [1] Radford, Alec, et al. “Learning transferable visual models from natural language supervision.” International Conference on Machine Learning . PMLR, 2021. [2] Li, Ang, et al. “Learning visual n-grams from web data.” Proceedings of the IEEE International Conference on Computer Vision . 2017. [3] Joulin, Armand, et al. “Learning visual features from large weakly supervised data.” European Conference on Computer Vision . Springer, Cham, 2016. [4] Desai, Karan, and Justin Johnson. “Virtex: Learning visual representations from textual annotations.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition . 2021. [5] Sariyildiz, Mert Bulent, Julien Perez, and Diane Larlus. “Learning visual representations with caption annotations.” European Conference on Computer Vision . Springer, Cham, 2020. [6] Zhang, Yuhao, et al. “Contrastive learning of medical visual representations from paired images and text.” arXiv preprint arXiv:2010.00747 (2020). [7] He, Kaiming, et al. “Deep residual learning for image recognition.” Proceedings of the IEEE conference on computer vision and pattern recognition . 2016. [8] Tan, Mingxing, and Quoc Le. “Efficientnet: Rethinking model scaling for convolutional neural networks.” International conference on machine learning . PMLR, 2019. [9] Dosovitskiy, Alexey, et al. “An image is worth 16x16 words: Transformers for image recognition at scale.” arXiv preprint arXiv:2010.11929 (2020). [10] Sohn, Kihyuk. “Improved deep metric learning with multi-class n-pair loss objective.” Advances in neural information processing systems 29 (2016). [11] Brown, Tom, et al. “Language models are few-shot learners.” Advances in neural information processing systems 33 (2020): 1877–1901. 好消息!
小白學(xué)視覺知識(shí)星球
開始面向外開放啦??????
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺 」公眾號(hào)后臺(tái)回復(fù): 擴(kuò)展模塊中文教程 , 即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理 等二十多章內(nèi)容。下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺 」 公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目 , 即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別 等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺 」 公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講 , 即可下載含有20 個(gè)基于OpenCV 實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目 ,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺 、傳感器、自動(dòng)駕駛、 計(jì)算攝影 、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽 等微信群(以后會(huì)逐漸細(xì)分), 請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過 。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿 在群內(nèi)發(fā)送廣告 ,否則會(huì)請(qǐng)出群,謝謝理解~