從此不迷路 計(jì)算機(jī)視覺研究院 主要由來自于大學(xué)的研究生組成的團(tuán)隊(duì),本平臺從事機(jī)器學(xué)習(xí)與深度學(xué)習(xí)領(lǐng)域,主要在人臉檢測與識別,多目標(biāo)檢測研究方向。本團(tuán)隊(duì)想通過計(jì)算機(jī)視覺戰(zhàn)隊(duì)平臺打造屬于自己的品牌,讓更多相關(guān)領(lǐng)域的人了解本團(tuán)隊(duì),結(jié)識更多相關(guān)領(lǐng)域的朋友,一起來學(xué)習(xí),共同進(jìn)步! 641篇原創(chuàng)內(nèi)容 公眾號 公眾號ID|ComputerVisionGzq 學(xué)習(xí)群|掃碼在主頁獲取加入方式 計(jì)算機(jī)視覺研究院專欄 作者:Edison_G
自監(jiān)督學(xué)習(xí)是一種將輸入數(shù)據(jù)本身作為監(jiān)督信號的表示學(xué)習(xí)方法,與監(jiān)督式學(xué)習(xí)、無監(jiān)督學(xué)習(xí)一樣,屬于表示學(xué)習(xí)的范疇。盡管監(jiān)督式學(xué)習(xí)這種范式能夠取得很好的效果,但它的優(yōu)越性能依賴大量手工標(biāo)注的數(shù)據(jù),而獲取這些標(biāo)注數(shù)據(jù)需要消耗大量的人力物力,以至于會有人開玩笑稱“有多少人工就有多少智能”。 相比之下,隨著信息科技的發(fā)展,大量無標(biāo)注數(shù)據(jù)往往可以被人們輕松獲取。無監(jiān)督學(xué)習(xí)希望能夠利用這些無標(biāo)注數(shù)據(jù)來學(xué)習(xí)有用的特征表示,聚類就是一種經(jīng)典的無監(jiān)督學(xué)習(xí)方法。然而,傳統(tǒng)的無監(jiān)督方法往往性能有限,很難在大規(guī)模數(shù)據(jù)上學(xué)習(xí)到具有很強(qiáng)泛化性的特征表示。在這樣的背景下,自監(jiān)督學(xué)習(xí)逐漸走上歷史的舞臺。 自監(jiān)督任務(wù)是自監(jiān)督學(xué)習(xí)的核心部分,其定義了由無標(biāo)注數(shù)據(jù)中產(chǎn)生自監(jiān)督信號的方法,以及自監(jiān)督學(xué)習(xí)的優(yōu)化目標(biāo)。常見的自監(jiān)督任務(wù)可以大致分為兩類: (1)生成式任務(wù),例如:將輸入圖片轉(zhuǎn)換為黑白圖像,訓(xùn)練模型恢復(fù)出原圖(上色);輸入部分區(qū)域被裁出的圖像,訓(xùn)練模型恢復(fù)出被裁出區(qū)域的內(nèi)容。(2)判別式任務(wù),例如:輸入經(jīng)過隨機(jī)旋轉(zhuǎn)的圖片,訓(xùn)練模型預(yù)測其旋轉(zhuǎn)的角度;輸入兩張經(jīng)過不同數(shù)據(jù)增強(qiáng)的圖片,訓(xùn)練模型判斷它們的對應(yīng)的原圖是否為同一張圖片。 自監(jiān)督學(xué)習(xí)訓(xùn)練模型從數(shù)據(jù)本身發(fā)現(xiàn)規(guī)律,并學(xué)習(xí)特征表示,使其能夠被有效運(yùn)用到下游任務(wù)上。最近幾年,以對比學(xué)習(xí)為代表的判別式方法在自監(jiān)督學(xué)習(xí)領(lǐng)域大放異彩,本文將著重介紹基于對比學(xué)習(xí)以及聚類方法的主流自監(jiān)督學(xué)習(xí)框架。 二、自監(jiān)督學(xué)習(xí)中的對比學(xué)習(xí)方法 對比學(xué)習(xí)是自監(jiān)督學(xué)習(xí)中的一個(gè)重要方法,其核心思想是通過樣本的相似性來構(gòu)建表征。對于相似的輸入樣本,它們由網(wǎng)絡(luò)產(chǎn)生的表征也應(yīng)當(dāng)相似;而對于差異較大的輸入樣本,它們的表征也應(yīng)該存在較大區(qū)別。根據(jù)這一思想,很多基于對比學(xué)習(xí)的自監(jiān)督學(xué)習(xí)方法被提出(如MoCo、SimCLR、BYOL),并對這一領(lǐng)域產(chǎn)生了深遠(yuǎn)影響。 對比學(xué)習(xí)中的一個(gè)關(guān)鍵步驟是構(gòu)建正負(fù)樣本集合,對于一個(gè)輸入樣本 圖 1 負(fù)樣本對和正樣本對示意圖[1] 完成正負(fù)樣本的構(gòu)建后,對比學(xué)習(xí)一般采用InfoNCE Loss來進(jìn)行損失計(jì)算和模型更新,其形式如下: 其中 1. MoCo [2] MoCo是對比學(xué)習(xí)中一個(gè)非常有代表性的方法,其主要思想是將對比學(xué)習(xí)過程看作一個(gè)“查字典”的過程:在一個(gè)由眾多樣本構(gòu)成的鍵值(key)字典中檢索到與查詢樣本的編碼結(jié)果(query)相匹配的正樣本。為了提升對比學(xué)習(xí)的效果,作者提出了兩點(diǎn)假設(shè):第一,鍵值字典的容量應(yīng)該盡可能增大以提高自監(jiān)督任務(wù)的難度,從而提升訓(xùn)練效果;第二,鍵值字典應(yīng)該在訓(xùn)練過程中保持一定程度的一致性以保障自監(jiān)督學(xué)習(xí)過程能夠穩(wěn)定進(jìn)行。 基于以上兩點(diǎn)假設(shè),作者分析了幾種對比學(xué)習(xí)機(jī)制(如圖 2 所示)。第一種是端到端訓(xùn)練,即對于所有的查詢樣本的編碼結(jié)果(query)和字典鍵值(key)同時(shí)進(jìn)行梯度傳播,但這一方法中顯存大小會極大地限制鍵值字典的大小,導(dǎo)致自監(jiān)督任務(wù)難度降低,影響訓(xùn)練效果;第二種是基于memory bank的訓(xùn)練方法,迭代過程中將鍵值編碼存儲到一個(gè)memory bank中,每輪對比學(xué)習(xí)過程中所需要的字典鍵值直接從memory bank 里選取,而梯度計(jì)算只對查詢樣本的編碼網(wǎng)絡(luò)分支進(jìn)行。因?yàn)镸oCo不需要對鍵值字典的分支進(jìn)行梯度計(jì)算,memory bank方法可以顯著提升鍵值字典的容量,但是由于每個(gè)樣本在memory bank中的鍵值在被模型重新編碼時(shí)才會被更新,鍵值字典中鍵值間的一致性較差,從而降低了訓(xùn)練的穩(wěn)定性。 圖2 三種對比學(xué)習(xí)機(jī)制的比較[2] 因此,作者提出了一種momentum encoder來實(shí)現(xiàn)對鍵值字典的編碼。對于查詢樣本,使用普通encoder進(jìn)行編碼并直接進(jìn)行梯度計(jì)算;而對于鍵值字典,首先由一個(gè)動態(tài)更新的隊(duì)列維護(hù)字典的輸入樣本,再使用momentum encoder將樣本編碼為鍵值。Momentum encoder在訓(xùn)練過程中不會進(jìn)行梯度計(jì)算,而是采用動量更新的方法從encoder更新參數(shù),更新方法如下: 其中, 值得一提的是,在實(shí)驗(yàn)過程中作者發(fā)現(xiàn)傳統(tǒng)的batch normalization方法可能造成樣本信息的泄露,讓數(shù)據(jù)樣本意外地“看到了”其他樣本。這樣會使模型在自監(jiān)督任務(wù)中更傾向于選擇一個(gè)合適的batch normalization參數(shù),而不是學(xué)習(xí)一個(gè)比較好的特征表示。所以,作者提出了一個(gè)shuffling batch normalization的方法,即打亂訓(xùn)練樣本在encoder和momentum encoder中的裝載順序,使得同一樣本在計(jì)算query和key時(shí)中接收不同的batch normalization均值和方差,來抵消信息泄露所帶來的影響。 2. SimCLR [3] SimCLR 是一個(gè)非常簡潔的自監(jiān)督學(xué)習(xí)框架。它沒有建立類似MoCo的鍵值字典的方式,而是直接在每個(gè)batch中的樣本之間進(jìn)行比較學(xué)習(xí)。對于 網(wǎng)絡(luò)結(jié)構(gòu)上,與MoCo相比,SimCLR在backbone網(wǎng)絡(luò)末端新增了一個(gè)由兩層全連接層構(gòu)成的projection head,如圖 3 所示。模型在訓(xùn)練階段,根據(jù)projection head的輸出 圖3 SimCLR自監(jiān)督學(xué)習(xí)框架[3] SimCLR在文章中還研究了不同數(shù)據(jù)增強(qiáng)策略對自監(jiān)督學(xué)習(xí)結(jié)果的影響。作者比較了隨機(jī)裁切,旋轉(zhuǎn),色彩偏移,高斯噪聲等方法,最終發(fā)現(xiàn)采用隨機(jī)裁切和色彩偏移兩種方法的組合時(shí)訓(xùn)練效果最好。 3. BYOL [4] BYOL是一個(gè)非常有特點(diǎn)的模型,與MoCo、SimCLR相比,BYOL可以直接在正樣本對上進(jìn)行自監(jiān)督訓(xùn)練而不需要構(gòu)建負(fù)樣本集合。BYOL的構(gòu)想來自于一個(gè)非常有意思的發(fā)現(xiàn):在一個(gè)完全隨機(jī)初始化的網(wǎng)絡(luò)所輸出的特征上進(jìn)行分類任務(wù)的top-1準(zhǔn)確率只有1.4%;但如果將這個(gè)隨機(jī)初始化網(wǎng)絡(luò)的輸出特征作為目標(biāo),用另一個(gè)網(wǎng)絡(luò)對其進(jìn)行學(xué)習(xí),使用學(xué)習(xí)之后的網(wǎng)絡(luò)進(jìn)行特征提取再進(jìn)行分類可以達(dá)到18.8%的準(zhǔn)確度。換言之,以一個(gè)特征表示作為目標(biāo)進(jìn)行學(xué)習(xí),可以獲得一個(gè)更好的表示。如此繼續(xù)迭代下去,精確度可以繼續(xù)往上提升。 基于這一發(fā)現(xiàn),作者構(gòu)建了只需要正樣本對的BYOL學(xué)習(xí)框架。如圖 4所示,一張輸入圖片經(jīng)過不同數(shù)據(jù)增強(qiáng)后的兩個(gè)視圖分別經(jīng)過online和target兩個(gè)分支的backbone和projection head后得到輸出 圖4 BYOL自監(jiān)督學(xué)習(xí)框架[4] 三、自監(jiān)督學(xué)習(xí)中的聚類方法 與對比學(xué)習(xí)或者人工設(shè)置的前置任務(wù)(pretext task)的學(xué)習(xí)方式不同,基于聚類的自監(jiān)督方法將訓(xùn)練樣本按照某種相似度量進(jìn)行劃分,劃歸到不同聚類中心的樣本被賦予不同的類別標(biāo)簽,之后使用標(biāo)準(zhǔn)的全監(jiān)督學(xué)習(xí)交叉熵?fù)p失進(jìn)行訓(xùn)練。文獻(xiàn)[5]中用數(shù)學(xué)語言形式化的展示了全監(jiān)督學(xué)習(xí)與自監(jiān)督聚類之間的聯(lián)系與區(qū)別:考慮深度模型 具體來講,假設(shè)有N個(gè)樣本 其中,模型 來進(jìn)行優(yōu)化。由于交叉熵?fù)p失需要給出目標(biāo)的類別標(biāo)簽(標(biāo)注數(shù)據(jù)集),對于無標(biāo)注數(shù)據(jù),我們需要首先通過某種分配方式賦予每個(gè)樣本具有一定意義的標(biāo)簽然后才能進(jìn)行訓(xùn)練。用 一般而言,我們令 稍微細(xì)心的讀者會發(fā)現(xiàn),這種方式下存在令模型退化的解:給所有的樣本賦予相同標(biāo)簽之后優(yōu)化模型參數(shù)就可以最小化平均損失函數(shù)。此時(shí),模型將所有樣本均映射到特征空間中的同一位置附近,不同樣本之間的特征區(qū)分度變得微弱,模型性能嚴(yán)重退化,不能達(dá)到學(xué)習(xí)出有意義特征表示的目的。因此,基于聚類的自監(jiān)督學(xué)習(xí)方法關(guān)鍵在于引入適當(dāng)?shù)募s束條件,避免模型收斂到退化解。 Deep clustering[6]是第一個(gè)成功的深度自監(jiān)督聚類方法(見圖 5),該方法包含兩個(gè)步驟:第一步,將所有訓(xùn)練數(shù)據(jù)通過深度模型推理得到特征表示,在特征空間中使用K-means方法將每個(gè)樣本劃分到一個(gè)聚類中,其所屬聚類即為該樣本對應(yīng)的標(biāo)簽;第二步,基于上一步產(chǎn)生的偽標(biāo)簽重新訓(xùn)練深度模型。這兩個(gè)步驟交替迭代。為了防止收斂至退化解,文中提出兩個(gè)關(guān)鍵的啟發(fā)式方案:第一,固定聚類中心個(gè)數(shù),如果在聚類過程中某一聚類變?yōu)榭眨碗S機(jī)選取其余聚類的中心(加上小的隨機(jī)擾動)來代替空聚類;第二,如果某個(gè)聚類中包含的樣本過多,那么它所對應(yīng)的梯度會主導(dǎo)整個(gè)網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)。為了避免這個(gè)問題,作者在模型訓(xùn)練梯度回傳時(shí)會根據(jù)聚類大小調(diào)整梯度回傳量,平衡不同類別樣本之間的數(shù)量差異。 作者提出使用歸一化互信息(Normalized Mutual Information, NMI)來衡量模型的學(xué)習(xí)效果。NMI定義為 其中AB分別代表一種標(biāo)簽分配方式,I表示互信息,H代表熵。如果A分配方式下得到的標(biāo)簽與B分配方式得到的標(biāo)簽完全獨(dú)立,則NMI值為0;相反的,如果對任意樣本,在A分配方式下得到的標(biāo)簽可以完全確認(rèn)其在B分配方式下所對應(yīng)的標(biāo)簽,則NMI值為1。當(dāng)A、B 分別代表樣本真實(shí)標(biāo)簽和聚類標(biāo)簽時(shí),NMI可以反映出模型學(xué)習(xí)到的特征對于真實(shí)類別的刻畫能力。當(dāng)A、B 分別代表上一輪訓(xùn)練之后模型輸出特征得到的聚類標(biāo)簽與本輪得到的標(biāo)簽,NMI可以反映模型特征的穩(wěn)定性。具體實(shí)驗(yàn)結(jié)果請查閱原論文。 圖5 Deep clustering 方法執(zhí)行示意圖 Deep clustering方法第一次成功實(shí)現(xiàn)了聚類標(biāo)簽與特征表示的同步學(xué)習(xí),取得了很好的實(shí)驗(yàn)效果,但仍然存在一些缺陷:一方面該方法需要人工定義的啟發(fā)式方法來避免模型收斂至退化解;另一方面,K-means與模型訓(xùn)練交替進(jìn)行,模型沒有一個(gè)統(tǒng)一的優(yōu)化目標(biāo)。針對這些問題,文獻(xiàn)[5]提出了一種名為SeLa的方法:通過對聚類中的標(biāo)簽分配添加等分約束——每個(gè)聚類中元素個(gè)數(shù)必須相同,來強(qiáng)制模型學(xué)得有區(qū)分性的特征,從而避免了收斂至退化解的可能。具體來講,該方法在原目標(biāo)函數(shù)上添加了約束項(xiàng),新的優(yōu)化目標(biāo)為: 直觀上來看, 滿足條件的q的分配方式與樣本個(gè)數(shù)和標(biāo)簽種類構(gòu)成一個(gè)排列組合問題,該問題的求解會隨著樣本個(gè)數(shù)的增加而變的困難。幸運(yùn)的是,該優(yōu)化問題屬于最優(yōu)傳輸問題的一個(gè)實(shí)例,使用Sinkhorn-Knopp[7]方法可以快速求得該問題的解,其對應(yīng)的分配方式即為滿足上述目標(biāo)函數(shù)的最優(yōu)解。接下來將展示上述問題如何轉(zhuǎn)化為一個(gè)最優(yōu)傳輸問題。令 這里 與Deep Clustering方法相比,SeLa的最大優(yōu)勢在于其統(tǒng)一的目標(biāo)函數(shù),模型的收斂程度可以直接由目標(biāo)函數(shù)反映。具體實(shí)驗(yàn)內(nèi)容請參見原論文。 聚類思想也可以在對比學(xué)習(xí)中使用:SimCLR、 MoCo等對比學(xué)習(xí)方法要取得良好的效果需要足夠大的batch size 或 memory bank來存儲負(fù)樣本,因此對硬件提出了較高的要求。如果對負(fù)樣本先進(jìn)行聚類,用數(shù)量較少的聚類中心來近似替代全體負(fù)樣本,則可以很大程度減少對硬件存儲空間的要求?;谶@一思路,學(xué)者們提出了SwAV[8]方法(圖 6 )。 圖6 一般對比學(xué)習(xí)框架與SwAV方法對比示意圖 該方法與一般對比學(xué)習(xí)方法區(qū)別在于其對于負(fù)樣本的處理方式:在SwAV中,作者采用了與SeLa方法相似的基于最優(yōu)傳輸?shù)木垲惙椒?,對于同一個(gè)正樣本在不同分支輸入的擾動圖片,SwAV希望一個(gè)分支得到的樣本的特征表示與另一個(gè)分支中該樣本所屬的聚類中心盡量接近。即一般對比學(xué)習(xí)方法希望經(jīng)過不同擾動的正樣本之間相似度盡可能高,而在SwAV方法中希望經(jīng)過一種擾動的正樣本與經(jīng)過另一種擾動的正樣本所屬的聚類中心之間的相似度盡可能高。正是因?yàn)橛昧司垲愔行膩泶嬷苯邮褂秘?fù)樣本,SwAV方法對比學(xué)習(xí)計(jì)算中僅需對比固定個(gè)數(shù)的聚類中心,而與輸入batch size大小無關(guān),因而減少了對硬件顯存大小的需求。 本文簡要介紹了當(dāng)今主流的基于對比學(xué)習(xí)與聚類方法的自監(jiān)督學(xué)習(xí)方法:對比學(xué)習(xí)主要考慮實(shí)例級別的差異,即每個(gè)實(shí)例應(yīng)該與經(jīng)過某種變換之后的自己最相似;基于聚類的方法更加側(cè)重?cái)?shù)據(jù)自動標(biāo)注方面,通過將數(shù)據(jù)劃分為若干子集來使得模型學(xué)到具有區(qū)分能力的特征表示。 參考文獻(xiàn) [1] Liu X, Zhang F, Hou Z, et al. Self-supervised learning: Generative or contrastive[J]. IEEE Transactions on Knowledge and Data Engineering, 2021. [2] He K, Fan H, Wu Y, et al. Momentum contrast for unsupervised visual representation learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 9729-9738. [3] Chen T, Kornblith S, Norouzi M, et al. A simple framework for contrastive learning of visual representations[C]//International conference on machine learning. PMLR, 2020: 1597-1607. [4] Grill J B, Strub F, Altché F, et al. Bootstrap Your Own Latent: A new approach to self-supervised learning[C]//Neural Information Processing Systems. 2020. [5] Asano Y M, Rupprecht C, Vedaldi A. Self-labelling via simultaneous clustering and representation learning[C]//International Conference on Learning Representations. 2019. [6] Caron M, Bojanowski P, Joulin A, et al. Deep clustering for unsupervised learning of visual features[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 132-149. [7] Cuturi M. Sinkhorn distances: Lightspeed computation of optimal transport[J]. Advances in neural information processing systems, 2013, 26: 2292-2300. [8] Caron M, Misra I, Mairal J, et al. Unsupervised Learning of Visual Features by Contrasting Cluster Assignments[C]//Thirty-fourth Conference on Neural Information Processing Systems (NeurIPS). 2020. |
|