自监督学习(Self-Supervised Learning)多篇论文解读(上)
自監(jiān)督學(xué)習(xí)(Self-Supervised Learning)多篇論文解讀(上)
前言
Supervised deep learning由于需要大量標(biāo)注信息,同時(shí)之前大量的研究已經(jīng)解決了許多問(wèn)題。所以近期大家的研究關(guān)注點(diǎn)逐漸轉(zhuǎn)向了Unsupervised learning,許多頂會(huì)包括ICML, NeurIPS, CVPR, ICCV相繼出現(xiàn)一些不錯(cuò)的paper和研究工作。
這里主要關(guān)注Unsupervised learning一類特定的方法:Self-supervised learning(自監(jiān)督學(xué)習(xí))。自監(jiān)督學(xué)習(xí)的思想非常簡(jiǎn)單,就是輸入的是一堆無(wú)監(jiān)督的數(shù)據(jù),但是通過(guò)數(shù)據(jù)本身的結(jié)構(gòu)或者特性,人為構(gòu)造標(biāo)簽(pretext)出來(lái)。有了標(biāo)簽之后,就可以類似監(jiān)督學(xué)習(xí)一樣進(jìn)行訓(xùn)練。
今年(2020) Self Supervised Learning (SSL) 的研究來(lái)到了新的高峰。
不僅在AAAI 上 LeCun, Bengio 與 Hinton 都對(duì)這領(lǐng)域寄與厚望;最近發(fā)表的文章也顯示 SSL 得到的模型表現(xiàn)在 ImageNet dataset 上逐漸逼近了傳統(tǒng) Supervised
Learning 的表現(xiàn)了。
近年ResNet-50在ImageNet 上的表現(xiàn)
比較知名的工作有兩個(gè),一個(gè)是:Unsupervised Visual Representation Learning by Context Prediction (ICCV15),如圖一,人為構(gòu)造圖片Patch相對(duì)位置預(yù)測(cè)任務(wù),這篇論文可以看作是self-supervised這一系列方法的最早期paper之一;另一個(gè)是:Unsupervised Representation Learning by Predicting Image Rotations (ICLR18),如圖二,人為構(gòu)造圖片旋轉(zhuǎn)角度預(yù)測(cè)任務(wù),這篇論文因?yàn)橄敕O其簡(jiǎn)單在投稿到ICLR之后受到了極大關(guān)注,最終因?yàn)閷?shí)驗(yàn)結(jié)果非常全面有效最終被錄用。
在實(shí)際應(yīng)用中(例如業(yè)界中已經(jīng)部署的模型), Self Supervised Learning 未必能直接有效的提升 Performance ,但閱讀這些文章還是能得到不少啟發(fā)。例如我們能對(duì)以下 Supervised Learning 問(wèn)題有更多想法:
·
如果將 Deep Network 學(xué)習(xí)到有用的信息,人工標(biāo)記 (Manual-Label) 是必要的嗎?
·
數(shù)據(jù)( Data) 本身帶有的信息是否比標(biāo)記 (Label) 更加豐富?
·
我們能將每張圖視為一個(gè)類別(Class);甚至每一個(gè) Pixel 都視為一個(gè)類別嗎?
以上問(wèn)題可能有點(diǎn)天馬行空,如果在實(shí)際應(yīng)用上我們能思考:
·
在Representation Learning 中,如何能等價(jià)的增大 Batch Size?如何能維持 Embedding Space 的穩(wěn)定性?
·
在Deep Network 一定是最后一層具有最豐富的 Representation 嗎?
·
聽說(shuō)Deep Network 的Capacity 很強(qiáng)大 ,但時(shí)至今日,我們是否已經(jīng)達(dá)到 Model 能負(fù)荷的上限?(例如ResNet-50有 24M 個(gè)參數(shù),號(hào)稱擁有 ‘大數(shù)據(jù)’ 的人們,是否已經(jīng)觸碰到
Effective Upper-Bound of ResNet-50’s Model Complexity?)
·
如果Model Complexity 遠(yuǎn)超乎我們想象,那什么樣的 Training Procedure 能最有效率的將信息儲(chǔ)存于Deep Network中?
·
Data Augmentation是學(xué)習(xí) Deep Learning 一定會(huì)接觸到的方法,它只是一個(gè)方便 Training 的 Trick 呢?還是他對(duì) Network 有特殊意義?
這些問(wèn)題目前沒人能給出確切答案,但在接下來(lái)的文章中必然能帶來(lái)更多想法與啟發(fā)。
Before SSL Revolution:Pretext Task
早期在探索SSL的想法相對(duì)單純,如果沒有得到 Label ,就利用 Rule-Based 的方法生成一些 Label 。比較著名的方法為
·
Rotation
·
Jigsaw Puzzle
·
Colorization
"Unsupervised Representation Learning by Predicting Image Rotations"一文中提出 Rotation 可謂是 SSL 之濫觴。將給定的 Image 旋轉(zhuǎn)固定的0, 90, 180, 270 四種角度,讓 Network 預(yù)測(cè)看到的圖是原圖被轉(zhuǎn)了幾度后的結(jié)果。
這里重點(diǎn)介紹最近的幾篇self-supervised learning相關(guān)的paper。第一篇是RETHINKING DATA AUGMENTATION:
SELF-SUPERVISION AND SELF-DISTILLATION。
論文地址:https://arxiv.org/pdf/1910.05872.pdf
這篇論文的思想非常直觀,如圖所示。首先,Data Augmentation相關(guān)的方法會(huì)對(duì)通過(guò)對(duì)原始圖片進(jìn)行一些變換(顏色、旋轉(zhuǎn)、裁切等)來(lái)擴(kuò)充原始訓(xùn)練集合,提高模型泛化能力;Multi-task learning將正常分類任務(wù)和self-supervised learning的任務(wù)(比如旋轉(zhuǎn)預(yù)測(cè))放到一起進(jìn)行學(xué)習(xí)。作者指出通過(guò)data augmentation或者multi-task learning等方法的學(xué)習(xí)強(qiáng)制特征具有一定的不變性,會(huì)使得學(xué)習(xí)更加困難,有可能帶來(lái)性能降低。因此,作者提出將分類任務(wù)的類別和self-supervised learning的類別組合成更多類別(例如 (Cat, 0),(Cat,90)等),用一個(gè)損失函數(shù)進(jìn)行學(xué)習(xí)。
比較有意思的一點(diǎn)是,作者通過(guò)簡(jiǎn)單變換證明:如果
,論文方法就退化成Data
Augmentation;如果 ,論文方法就退化成Multi-task
Learning的方法,這里 u,v,w是對(duì)應(yīng)的分類器權(quán)重。所以,作者提出的方法本身就包含了Data Augmentation和Mult-task Learning方法,同時(shí)具有更大的使用范圍。
在實(shí)際物體分類過(guò)程中,可以將不同旋轉(zhuǎn)角度的分類結(jié)果進(jìn)行加和,即: p(Cat) = p(Cat,0)+p(Cat,90) +p(Cat,180)+p(Cat,270),但是這樣測(cè)試時(shí)間會(huì)變成原來(lái)的4倍。所以,作者提出了第二個(gè)模塊,self-distillation(自蒸餾),distillation思想最早是hinton在nips14年提出來(lái)的。如下圖,self-distillation思路是在學(xué)習(xí)的過(guò)程中限制不同旋轉(zhuǎn)角度的平均特征表示和原始圖片的特征表示盡可能接近,這里使用KL散度作為相似性度量。
最終,整個(gè)方法的優(yōu)化目標(biāo)如下:
第一項(xiàng)和第二項(xiàng)分別對(duì)應(yīng)圖(a)和圖(b),第三項(xiàng)是正常的分類交叉熵?fù)p失,作為一個(gè)輔助loss。
Unsupervised Representation Learning by Predicting Image
Rotations
https://arxiv.org/pdf/1803.07728.pdf
預(yù)測(cè)旋轉(zhuǎn)角度挺沒意思的,但是如果Training Data 是整個(gè) ImageNet 時(shí),這樣的任務(wù)就變成相當(dāng)有趣了。Network 必須了解了什么是對(duì)象后,才能了解旋轉(zhuǎn)。這也貫策了 SSL 的基本想法:Knowledge Before Task.
Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles
https://arxiv.org/abs/1603.09246
后來(lái)的Jigsaw與
Colorization 基本上延續(xù)了這種探索 Image 本質(zhì)的想法,設(shè)計(jì)出能幫助理解 Content 的輔助任務(wù),因此這類方法統(tǒng)稱為 Pretext Task (委托任務(wù))。其中Colorization 這個(gè)方法,能延伸出 Tracking 的效果,著實(shí)讓人震驚。
Huge Improvement:Contrastive Learning
“Data-Centric” Loss
另一派做法是從設(shè)計(jì)Loss Function 下手,找出能探索數(shù)據(jù)本身性質(zhì)的 Loss。
其中Energy-Based Model 算是 LeCun 從以前到現(xiàn)在不斷推廣的,這種模型與具有強(qiáng)烈的物理意義,可能會(huì)是明日之星;而這篇文章整理的是另一種以 Mutual Information 為主的 Loss Function。
AutoRegressive Model
說(shuō)到理解數(shù)據(jù),最直觀的機(jī)率模型就是建立Data Likelihood,而在Computer Vision 的領(lǐng)域中,最強(qiáng)大的莫過(guò)于 PixelCNN 這種 Pixel-by-Pixel 的建模方法了。使用Chain Rule,Network 能夠完整 Encode 所有信息。
Conditional Image Generation with PixelCNN Decoders
https://papers.nips.cc/paper/6527-conditional-image-generation-with-pixelcnn-decoders.pdf
但是Representation Learning 在乎的并不是整個(gè)Data Distribution; 而是怎么得到更抽象、High-level 的表示法。End-to-End Training 讓人們發(fā)現(xiàn),Deep Neural
Network 是有能力解構(gòu)數(shù)據(jù)的 Hierarchical Internal Representation 的,何不利用這種強(qiáng)大的能力呢?
也就是Learn the dataset, not the data points.
InfoNCE
DeepMind在2017 年(https://arxiv.org/abs/1807.03748)提出一種基于Mutual Information修改 AutoRegrssive 的 Loss Function,稱為 InfoNCE 。
https://arxiv.org/abs/1807.03748
從圖上說(shuō)明是相當(dāng)直觀的,模型基于看過(guò)的Data 提取 Context (也就是 Feature) 并且對(duì)未來(lái)做預(yù)測(cè)。并且Loss Function的目標(biāo)是讓 Data 和 Context 的 Mutual Information 越大越好。
Mutual Information是廣義上的 Correlation Function。(當(dāng)我們完全不了解系統(tǒng)的Dynamics 或更深入的行為時(shí),Mutual Information 依舊能作為估算) 它量化了我們能從 Context
中得到多少 Data 的信息,稱為 Data 與 Context 之間的 Mutual Information。
首先,為了最大化Mutual Information 讓 Network Model Distribution Ratio (而不像generative model 是單純model distribution);并且用簡(jiǎn)單的 Linear Map 作為從 Context 到Future Data 的預(yù)測(cè)函數(shù)。
InfoNCE寫法如下。其實(shí)他與常用的 Cross Entropy Loss 并沒有太大區(qū)別,差異只在于這個(gè) Loss 并不是用于分類,而是注重在對(duì)數(shù)據(jù)的本身做預(yù)測(cè)。如果用先前 Time Series 的例子就是預(yù)測(cè)未來(lái)。
Learning Deep Representations of Fine-grained Visual Descriptions
我們把所唯一正確的預(yù)測(cè)稱為Positive Sample; 其它的預(yù)測(cè)通通為 Negative Samples。文章接下來(lái)都使用 Contrastive Loss 來(lái)表示這種Training 方法。
另外InfoNCE有一個(gè)Weak Lower-Bound 在描述 N 的重要,也就是越多的 Negative Samples 時(shí),Loss Function 越能控制 Mutual Information,并且是以 Log 的方式 Scale (這給了 Metric Learning 一點(diǎn) Hint, Batch Size 可能隨著 log scale)。
CPC:Contrastive Predictive
第一個(gè)成功在Image Classification實(shí)踐出 InfoNCE 的是 CPC 這篇文章 (基本上是 DeepMind 同一個(gè) team 的作品)。很直觀的利用在圖片上裁切 Patch的方式,做出 Positive & Negative samples,實(shí)現(xiàn) Contrastive Loss 。
Data-Efficient Image Recognition with Contrastive Predictive
https://arxiv.org/abs/1905.09272
這邊用到了三個(gè)Network,分別是 feature extractor, context prediction 跟 downstream task network。這是因問(wèn) SSL 的 evaluation 方式不同的關(guān)系,這邊簡(jiǎn)單說(shuō)明一下。
SSL訓(xùn)練出來(lái)的模型基本上不能直接使用,通常只能作為很強(qiáng)的 Pretrained Model。因此要評(píng)估Pretrained Model 好壞通常做 Linear Evaluation ,Fine-tune 一個(gè) Linear Classifier 看能達(dá)到多少的準(zhǔn)確度(為了公平,通常這個(gè)
classifier 會(huì)用 grid search 得到)。
研究后來(lái)發(fā)現(xiàn), SSL Pretrained Model 不僅得到 Linear Separable 的 Feature Space; 并且這些 Feature是很豐富的,因?yàn)橹恍枰倭康?Data 就可以達(dá)到很好的效果,這稱為 Efficient Classification Evaluation。像常常會(huì)測(cè)試,拿ImageNet (有 1000類一千四百萬(wàn)張圖片) 1% 的資料量(也就是每個(gè)類別 Randomly choose 12 張圖片)
來(lái)訓(xùn)練。這種Evaluation 凸顯出 Feature 是能廣泛描述各種類別的,因此只要取少少的 Samples 就可以達(dá)到效果。
第三種Evaluation 就是將 Pretrained Model 運(yùn)用在各種Vision Task 上,例如拿到 Object Detection 或 Segmentation 任務(wù)上依舊能表現(xiàn)不錯(cuò)。
回到CPC 這篇文章,ResNet-50 Linear Protocol 能達(dá)到 Top-1 71.5% 的準(zhǔn)確率;在 Efficient Classification Protocol上,能比原本 Supervised Learning 的方式省掉至少 50% ~ 80% 的資料(這邊是參數(shù)更多的 ResNet)。意味著通過(guò)SSL Pretrained Model,我能夠少一些人工標(biāo)記一樣能達(dá)到原本 Supervised Learning 的準(zhǔn)確度。
What Important?
CPC帶來(lái)巨大的好處,但什么事情是重要的?難道以后都需要將一張圖切很多 Patch 來(lái)預(yù)測(cè)嗎?并不盡然。
在CMC 這邊文章中表明了,使用不同場(chǎng)景 (View Point, Depth,
Color Space) 來(lái)計(jì)算 Contrastive Loss 能達(dá)到非常好的效果,因此 Contrastive 本身 (也就是辨認(rèn) Positive &
Negative Sample 之間的 Consistency) 才是關(guān)鍵。
Contrastive Multiview
https://arxiv.org/abs/1906.05849
另外Google做了大規(guī)模的定性實(shí)驗(yàn),找出了幾個(gè)對(duì) Visual Representation 最有影響的因子,因?yàn)槠P(guān)系就節(jié)錄下列重點(diǎn)
·
Pretext Task不一定能在 Downstream Task 上達(dá)到好的效果
·
ResNet的 skip-connection能防止 feature quality 下降
·
增大Model Size 和增加Embedding Dimension 能有效提升 Performance
Revisiting Self-Supervised Visual Representation Learning
https://arxiv.org/abs/1901.09005
到目前為止基本上定調(diào)了SSL 的走向
-
Contrastive Learning能從Data 中獲得相當(dāng)豐富的信息,不需要拘泥在 Patch 上
-
使用ResNet這種Backbone (而非早期 paper 強(qiáng)調(diào)VGG 能得到更好的 representation)
接下來(lái)的文章,都基于這樣的前提來(lái)Improve 。
MoCo:Momentum Contrast
這篇 MoCo 是Kaiming He 在 FAIR (又是與 RGB 一起)第一次對(duì) SSL 問(wèn)題提出的文章。算是一個(gè)相當(dāng) Engineering的解法,來(lái)有效增加 Batch Size,提升 Performance。
總結(jié)
以上是生活随笔為你收集整理的自监督学习(Self-Supervised Learning)多篇论文解读(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 服务器技术综述(四)
- 下一篇: 自监督学习(Self-Supervise