谷歌大腦聯(lián)手Hinton提出SimCLR新框架,瘋狂提升自監(jiān)督學(xué)習(xí)性能 | ...

??新智元報(bào)道??
來源:google編輯:張佳、白峰、鵬飛【新智元導(dǎo)讀】Hinton團(tuán)隊(duì)新作SimCLR似乎打開了自監(jiān)督學(xué)習(xí)的大門,自監(jiān)督學(xué)習(xí)的效果到底如何?最近Google發(fā)表了一篇博客,介紹了他們使用SimCLR的經(jīng)驗(yàn),通過圖像擴(kuò)增,模型擴(kuò)展等手段提高了自監(jiān)督和半監(jiān)督模型的訓(xùn)練效果。「新智元急聘主筆、高級(jí)主任編輯,添加HR微信(Dr-wly)或掃描文末二維碼了解詳情。」
BERT和T5之類的自然語言處理模型不斷“屠榜xxx”的新聞,恐怕我們都已經(jīng)看的麻木了。
實(shí)際上,自監(jiān)督學(xué)習(xí)并沒有那么好,為什么?
作為一種特殊的無監(jiān)督學(xué)習(xí)方式,自監(jiān)督學(xué)習(xí)是通過從未標(biāo)記數(shù)據(jù)集中創(chuàng)建替代標(biāo)簽而將無監(jiān)督學(xué)習(xí)問題轉(zhuǎn)換為有監(jiān)督問題。
然而,當(dāng)前用于圖像數(shù)據(jù)的自監(jiān)督技術(shù)非常復(fù)雜,需要對(duì)體系結(jié)構(gòu)或訓(xùn)練過程進(jìn)行重大修改。
在“視覺表示對(duì)比學(xué)習(xí)的簡(jiǎn)單框架”中,Google概述了一種方法,該方法不僅可以簡(jiǎn)化而且可以改進(jìn)以前在圖像上進(jìn)行自監(jiān)督表示學(xué)習(xí)的方法。其提出的名為SimCLR的框架,極大地提高了自監(jiān)督和半監(jiān)督學(xué)習(xí)的技術(shù)水平,并以有限的類別標(biāo)簽數(shù)據(jù)達(dá)到了ImageNet圖像分類的SOTA效果。
方法的簡(jiǎn)單性意味著可以輕松地將其合并到現(xiàn)有的有監(jiān)督學(xué)習(xí)管道中。
SimCLR:一個(gè)簡(jiǎn)單的視覺表示對(duì)比學(xué)習(xí)框架
SimCLR是一個(gè)簡(jiǎn)單的視覺表示對(duì)比學(xué)習(xí)框架,它不僅比以前的工作更出色,而且也更簡(jiǎn)單,既不需要專門的架構(gòu),也不需要儲(chǔ)存庫。
SimCLR首先學(xué)習(xí)未標(biāo)記數(shù)據(jù)集上圖像的一般表示,然后可以使用少量標(biāo)記圖像對(duì)其進(jìn)行微調(diào),以實(shí)現(xiàn)給定分類任務(wù)的良好性能。通過采用一種稱為對(duì)比學(xué)習(xí)的方法,可以通過同時(shí)最大化同一圖像的不同變換視圖之間的一致性以及最小化不同圖像的變換視圖之間的一致性來學(xué)習(xí)通用表示。利用這一對(duì)比目標(biāo)更新神經(jīng)網(wǎng)絡(luò)的參數(shù),使得相應(yīng)視圖的表示相互“吸引”,而非對(duì)應(yīng)視圖的表示相互“排斥”。
首先,SimCLR從原始數(shù)據(jù)集中隨機(jī)繪制示例,并使用簡(jiǎn)單增強(qiáng)(隨機(jī)裁剪、隨機(jī)顏色失真和高斯模糊)的組合將每個(gè)示例轉(zhuǎn)換兩次,創(chuàng)建兩組相應(yīng)的視圖。
對(duì)單個(gè)圖像進(jìn)行這些簡(jiǎn)單轉(zhuǎn)換的基本原理是:
我們要鼓勵(lì)轉(zhuǎn)換后相同圖像的“一致”表示;
由于預(yù)訓(xùn)練數(shù)據(jù)缺少標(biāo)簽,我們無法預(yù)先知道哪個(gè)圖像包含哪個(gè)對(duì)象;
我們發(fā)現(xiàn)這些簡(jiǎn)單的轉(zhuǎn)換足以使神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)良好的表示,盡管也可以采用更復(fù)雜的轉(zhuǎn)換策略。
然后,SimCLR使用基于ResNet架構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)變量計(jì)算圖像表示。接著,SimCLR使用完全連接的網(wǎng)絡(luò)(即MLP)計(jì)算圖像表示的非線性投影,這會(huì)放大不變特征并使網(wǎng)絡(luò)識(shí)別同一圖像的不同變換的能力最大化。為了最小化對(duì)比目標(biāo)的損失函數(shù),我們使用隨機(jī)梯度下降來更新CNN和MLP。在對(duì)未標(biāo)記的圖像進(jìn)行預(yù)訓(xùn)練之后,我們可以直接使用CNN的輸出作為圖像的表示,也可以使用標(biāo)記的圖像對(duì)其進(jìn)行微調(diào),以實(shí)現(xiàn)下游任務(wù)的良好性能。

上圖為SimCLR框架演示。同時(shí)訓(xùn)練CNN和MLP層以產(chǎn)生對(duì)于同一圖像的增強(qiáng)版本相似的投影,而對(duì)于不同圖像則產(chǎn)生不同的投影,即使這些圖像是同一類對(duì)象。經(jīng)過訓(xùn)練的模型不僅可以很好地識(shí)別同一張圖片的不同變換,而且可以學(xué)習(xí)相似概念的表示(例如椅子與狗),隨后可以通過微調(diào)將其與標(biāo)簽相關(guān)聯(lián)。
框架簡(jiǎn)介
為了理解什么可以促進(jìn)良好的對(duì)比表示學(xué)習(xí),我們系統(tǒng)地研究了框架的主要組成部分,并表明:
在定義產(chǎn)生有效表示的對(duì)比預(yù)測(cè)任務(wù)時(shí),多個(gè)數(shù)據(jù)增強(qiáng)操作的組成至關(guān)重要。此外,與監(jiān)督學(xué)習(xí)相比,無監(jiān)督的對(duì)比學(xué)習(xí)受益于更強(qiáng)大的數(shù)據(jù)增強(qiáng)。
在表示和對(duì)比損失之間引入可學(xué)習(xí)的非線性變換,可以大大提高學(xué)習(xí)的表示的質(zhì)量。
具有對(duì)比交叉熵?fù)p失(contrastive cross entropy loss)的表示學(xué)習(xí)得益于規(guī)范化嵌入和合適的調(diào)整參數(shù)。
與有監(jiān)督的對(duì)照組相比,對(duì)比學(xué)習(xí)受益于較大的批量和較長的訓(xùn)練。與監(jiān)督學(xué)習(xí)一樣,對(duì)比學(xué)習(xí)也得益于更深更廣的網(wǎng)絡(luò)。
我們結(jié)合這些發(fā)現(xiàn),在ImageNet ILSVRC-2012上實(shí)現(xiàn)了自監(jiān)督和半監(jiān)督學(xué)習(xí)的最新技術(shù)。在線性評(píng)估方案下,SimCLR的top-1準(zhǔn)確性達(dá)到76.5%,相對(duì)于之前的最新技術(shù)水平有7%的相對(duì)提高。如果僅使用1%的ImageNet標(biāo)簽進(jìn)行微調(diào),SimCLR的top-5準(zhǔn)確性將達(dá)到85.8%,相對(duì)提高10%。當(dāng)在其他自然圖像分類數(shù)據(jù)集上進(jìn)行微調(diào)時(shí),SimCLR在12個(gè)數(shù)據(jù)集中的10個(gè)數(shù)據(jù)集上的表現(xiàn)與強(qiáng)監(jiān)督基線相當(dāng)或更優(yōu)。
SimCLR為何能有這么好的效果?
盡管SimCLR 很簡(jiǎn)單,但是它極大地提高了 ImageNet 上自監(jiān)督和半監(jiān)督學(xué)習(xí)的SOTA效果。基于 SimCLR 學(xué)習(xí)的自監(jiān)督表示學(xué)習(xí)訓(xùn)練的線性分類器可以達(dá)到76.5% / 93.2%的 top-1 / top-5的準(zhǔn)確率,而之前的最好的模型準(zhǔn)確率為71.5% / 90.1%。與較小的的監(jiān)督式學(xué)習(xí)模型ResNet-50性能相當(dāng),如下圖所示

基于不同自監(jiān)督方法訓(xùn)練的線性分類器的 ImageNet top-1精度(在 ImageNet 上預(yù)先訓(xùn)練)?;疑直硎居斜O(jiān)督的 ResNet-50
當(dāng)只對(duì)1% 的標(biāo)簽進(jìn)行微調(diào)時(shí),SimCLR 達(dá)到了63.0% / 85.8% 的 top-1 / top-5準(zhǔn)確率,而之前表現(xiàn)最好的(CPC v2)的準(zhǔn)確率為52.7% / 77.9% 。令人驚訝的是,當(dāng)對(duì)100% 的標(biāo)簽進(jìn)行微調(diào)時(shí),經(jīng)過預(yù)先訓(xùn)練的SimCLR模型仍然可以明顯優(yōu)于從頭開始訓(xùn)練的有監(jiān)督基線模型,例如,基于SimCLR預(yù)先訓(xùn)練的 ResNet-50(4x)經(jīng)過微調(diào) ,在訓(xùn)練30個(gè)epoch時(shí)達(dá)到了80.1%的top-1準(zhǔn)確率,而從頭開始訓(xùn)練的模型在90個(gè)epoch才能到78.4%。
與以前的方法相比,SimCLR 的改進(jìn)并不是因?yàn)槟硞€(gè)單獨(dú)的設(shè)計(jì),而是它們的組合。
多種圖像轉(zhuǎn)換組合對(duì)生成對(duì)比視圖是至關(guān)重要的
由于 SimCLR 通過最大化同一圖像的不同視圖的一致性來學(xué)習(xí)表示,因此不能只用單一的模式進(jìn)行圖像擴(kuò)增,比如顏色直方圖,組合各種圖像變換方法很重要。為了更好地理解這一點(diǎn),我們探索了不同類型的轉(zhuǎn)換,如下圖所示

我們發(fā)現(xiàn),雖然沒有一個(gè)單獨(dú)的轉(zhuǎn)換可以產(chǎn)生最佳的表示,但是隨機(jī)剪裁和隨機(jī)顏色失真非常有效,雖然裁剪和色彩失真本身都不會(huì)提高太多性能,但組合這兩種轉(zhuǎn)換可以達(dá)到SOTA效果。
為什么隨機(jī)裁剪和隨機(jī)顏色失真相結(jié)合是很重要?考慮一下在同一圖像的兩個(gè)剪裁視圖之間最大化一致性的過程。自然包含了兩種類型的預(yù)測(cè)任務(wù): 左側(cè)的情況要從全局預(yù)測(cè)局部視圖,而右側(cè)的都要預(yù)測(cè)近鄰視圖。
同一圖像的不同剪裁視圖在色彩空間中看起來非常相似, 如果顏色保持完整,模型可以通過匹配顏色直方圖來最大化視圖之間的一致性。在這種情況下,模型可能只關(guān)注顏色而忽略其他更通用的特性。通過獨(dú)立地扭曲每種視圖的顏色,淺層的特征將被去除,模型只能用可概括的顏色特征來表示一致性。
非線性投影很重要
在 SimCLR 中,在計(jì)算對(duì)比學(xué)習(xí)目標(biāo)的損失函數(shù)之前,采用基于 MLP的非線性投影,有助于識(shí)別每個(gè)輸入圖像的不變特征,最大限度地提高網(wǎng)絡(luò)識(shí)別同一圖像不同變換的能力。在我們的實(shí)驗(yàn)中,我們發(fā)現(xiàn)使用非線性投影有助于提高表示的質(zhì)量,將一個(gè)SimCLR學(xué)習(xí)到的表示輸入給線性分類器,效果提升達(dá)到10%以上。
有趣的是,MLP 投影前的表示在線性分類器中反而比投影后的表現(xiàn)更好,而我們對(duì)比目標(biāo)的損失函數(shù)是基于投影后的表示,我們猜想我們的目標(biāo)會(huì)導(dǎo)致網(wǎng)絡(luò)的最后一層(可能對(duì)下游任務(wù)有用的)特征不可變,而使用額外的非線性投影模塊時(shí),投影之前的表示可以保留更多有用的圖像信息。
模型擴(kuò)展可以顯著提高性能
我們發(fā)現(xiàn)在同一批次中處理更多樣本,使用更大的網(wǎng)絡(luò),以及訓(xùn)練更長的時(shí)間會(huì)帶來顯著的性能提升。盡管這些手段顯而易見,但對(duì)于SimCLR而言,這些改進(jìn)似乎比對(duì)監(jiān)督學(xué)習(xí)的改進(jìn)大。例如,我們觀察到有監(jiān)督的ResNet的性能在ImageNet上訓(xùn)練90到300個(gè)epoch會(huì)達(dá)到峰值,但是SimCLR即使經(jīng)過800個(gè)epoch仍可以繼續(xù)改善。當(dāng)我們?cè)黾泳W(wǎng)絡(luò)的深度或?qū)挾葧r(shí),也是這種情況– SimCLR的性能持續(xù)增長,而對(duì)于有監(jiān)督模型則會(huì)停滯。
無監(jiān)督學(xué)習(xí)已經(jīng)超越有監(jiān)督學(xué)習(xí)?
我們來看一些相關(guān)的報(bào)道。
“如今,在 ImageNet 上的圖像識(shí)別準(zhǔn)確率的性能提升每次通常只有零點(diǎn)幾個(gè)百分點(diǎn),而來自圖靈獎(jiǎng)獲得者 Geoffrey Hinton 等谷歌研究者的最新研究一次就把無監(jiān)督學(xué)習(xí)的指標(biāo)提升了 7-10%,甚至可以媲美有監(jiān)督學(xué)習(xí)的效果?!?/p>
“在 ImageNet 上,SimCLR 方法訓(xùn)練出的線性分類器與有監(jiān)督的 ResNet-50 性能相匹配,達(dá)到了 76.5% 的 top-1 準(zhǔn)確率?!?/strong>
媒體報(bào)道給我的感覺是無監(jiān)督能夠做到跟有監(jiān)督差不多好了,情況果真如此樂觀了嗎?我仔細(xì)看了一下論文。
SimCLR在無監(jiān)督情況下top-1的accuracy是這么得到的:
1、backbone:ResNet-50(4x),即網(wǎng)絡(luò)寬度是ResNet-50的4倍;
2、測(cè)試方式:linear evaluation protocol, where a linear classifier is trained on top of the frozen base network, and test accuracy is used as a proxy for representation quality,也就是說最后一層linear classifier其實(shí)是supervised learning訓(xùn)練得到的。
即媒體說的SimCLR可以媲美有監(jiān)督的ResNet-50,有兩個(gè)隱含條件:
1、網(wǎng)絡(luò)參數(shù)更多;
2、在SimCLR無監(jiān)督學(xué)習(xí)得到的網(wǎng)絡(luò)之上使用有監(jiān)督學(xué)習(xí)的方式訓(xùn)練了一個(gè)linear classifier。
SimCLR的效果當(dāng)然很好,但是無監(jiān)督跟有監(jiān)督的差距還是蠻大的,情況沒那么樂觀。為了更直觀地比較無監(jiān)督和有監(jiān)督,其實(shí)可以這樣做:
1、使用相同網(wǎng)絡(luò);
2、直接用無監(jiān)督學(xué)習(xí)得到的網(wǎng)絡(luò)作為一個(gè)特征提取器,然后在驗(yàn)證集/測(cè)試集上通過檢索的方式來獲取類別,得到分類accuracy。
但是從特征提取器的角度來說,無監(jiān)督學(xué)習(xí)的確取得了長足的進(jìn)步,跟有監(jiān)督學(xué)習(xí)的差距越來越小。
本節(jié)內(nèi)容授權(quán)自知乎用戶mileistone
https://zhuanlan.zhihu.com/p/107269105
SimCLR作者介紹
SimCLR一作是北郵畢業(yè)的Ting Chen,2019年3月獲得加州大學(xué)洛杉磯分校計(jì)算機(jī)科學(xué)系的博士學(xué)位。

目前在Google Brain擔(dān)任研究科學(xué)家,研究興趣主要是深度學(xué)習(xí)和人工智能。
Ting Chen的個(gè)人主頁:
http://web.cs.ucla.edu/~tingchen/
