深入探討:自監(jiān)督學(xué)習(xí)的退化解是什么,到底如何避免?

極市導(dǎo)讀
本文以如何避免形成推化解作為中心問題出發(fā),從自監(jiān)督學(xué)習(xí)的含義開始介紹,解釋了InfoNCE公式,最后引出本文的核心問題并進行了回答。 >>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿
之所以想要寫這篇文章主要是由于很多blog都沒有講明白什么是退化解,以及主流的Self-supervised Learning是如何解決這個問題的,感覺完全沒有寫到點子上(避重就輕),然而我認(rèn)為如何避免形成退化解才是Self-Supervised Learning最有意思的點。
以下通過三個問題,層層撥開退化解的迷霧。
什么是Self-Supervised Learning?
InfoNCE如何理解?
如何避免形成退化解?
什么是Self-Supervised Learning?
非常多blog介紹過Self-Supervised Learning這個概念了,但是我覺得大多數(shù)解釋的太繁瑣了,我喜歡簡單直接一點。一張圖理解什么是Self-Supervised Learning。

Self-Supervised Learning分成兩種方法:一種是生成式模型,一種是判別式模型。以輸入圖片信號為例,生成式模型,輸入一張圖片,通過Encoder編碼和Decoder解碼還原輸入圖片信息,監(jiān)督信號是輸入輸出盡可能相似。判別式模型,輸入兩張圖片,通過Encoder編碼,監(jiān)督信號是判斷兩張圖是否相似(例如,輸入同一個人的兩張照片,判斷輸入相似,輸出1;輸入兩個人的照片,判斷輸入不相似,輸出0)。
自從MoCo橫空出世橫掃7個榜單之后,判別式模型逐漸成為了Self-Supervised Learning的主流。
InfoNCE如何理解?
Self-Supervised Learning的判別式模型一般稱為Contrastive Learning,很容易理解,通過對比兩個輸入是否相似得到輸出結(jié)果。Contrastive Learning通常使用InfoNCE作為損失函數(shù)來訓(xùn)練模型,可以說理解了InfoNCE就基本上能夠很好的掌握self-supervised的核心思想。InfoNCE的一般表示如下:
假定給定的 是一對positive pair,比如同一個人的兩張照片,同時你還有很多個負(fù)樣本 ,比如其他人的照片,和x構(gòu)成 negative pair。這里需要一個數(shù)學(xué)先驗知識,a向量與b向量同向,a.b=|a||b|;a向量與b向量垂直,a.b=0;a向量與b向量反向,a.b=-|a||b|。所以當(dāng)positive pair的方向盡可能相似,negative pair的方向盡可能不相似時,InfoNCE的值趨近于0。上面是通過數(shù)學(xué)公式來理解InfoNCE的行為,下面通過unit hypersphere來理解InfoNCE的行為。
InfoNCE公式可以推導(dǎo)成兩個部分,alignment和uniformity。
如上圖所示,alignment部分只跟positive pair相關(guān),希望positive pair的feature拉近,uniformity部分只跟negative pair相關(guān),希望所有點的feature盡可能均勻分布在unit hypersphere上。

使不同的feature盡可能均勻的分布在unit hypersphere上帶來的一個好處是非常容易的對不同類別聚類并且線性可分。

作者在CIFAR-10上分別對Random Initialization、Supervised Predictive Learnging和Unsupervised Contrastive Learning三種模型進行實驗,觀察到了上述unit hypersphere的實驗結(jié)論,Random Initialization沒有將不同類別的feature均勻的分開,導(dǎo)致alignment的平均距離很小,但是判別力很差;Supervised Predictive Learnging因為監(jiān)督信號的引導(dǎo),不同類別的feature既散開又集中,又因為引入了標(biāo)注偏見,導(dǎo)致alignment的平均距離介于Random Initialization和Unsupervised Contrastive Learning之間;而Unsupervised Contrastive Learning的feature非常均勻連續(xù)的散開,alignment的平均距離是最小的,說明Unsupervised Contrastive Learning確實能夠得到非常強判別力的特征。
如何避免形成退化解?
從數(shù)學(xué)公式上看,InfoNCE的alignment和uniformity兩部分理論上來說是缺一不可的。如果只有uniformity,沒有alignment,那么模型沒有聚類的能力;如何只有alignment,沒有uniformity,那么容易使得模型將所有的輸入輸出相同表示,也就是形成退化解。最近一些主流的Self-Supervised方法對于如何避免形成退化解進行了大量的探索,以下主要介紹一下SimCLR/BYOL/SwAV/SimSiam四種SSL算法是如何避免形成退化解的。(ps:示意圖源自SimSiam)
SimCLR
SimCLR先將輸入圖片通過兩種不同的數(shù)據(jù)增強生成x和y,然后通過相同的encoder和projection(上圖沒有畫出)分別生成x‘和y',然后使用同時考慮alignment和uniformity的InfoNCE來對encoder進行梯度更新,并且梯度同時對兩個分支進行更新。
SimCLR避免形成退化解的方式非常的直接,因為InfoNCE同時包含alignment和uniformity,那么只需要同時構(gòu)造出positive pair和negative pair,將positive pair的feature盡可能的拉近,negative pair的feature盡可能的均勻分布。
BYOL

BYOL的想法非常的天馬行空,第一個提出只使用positive pair的Self-supervised算法。BYOL將右邊的分支看成是target branch,左邊的分支看成online branch(非常像知識蒸餾,可以分別看成teacher和student),target branch的encoder通過online branch的encoder參數(shù)滑動更新,稱為momentum encoder,同時online branch還需要一個predictor,將encoder的輸出進行一個變換,target branch不需要進行梯度更新stop gradient,BYOL最核心的點是InfoNCE只考慮alignment部分。
BYOL因為只考慮positive pair,導(dǎo)致非常容易出現(xiàn)退化解,BYOL針對退化解問題,提出了三個主要部分momentum encoder、predictor和stop gradient來避免退化解的形成。我的理解是模型的初始化是隨機的,一開始feature就散的很開,然后通過momentum encoder和stop gradient使得target branch的feature變化緩慢,而online branch的feature變化更快,最后online branch通過predictor使變換得到的feature接近target branch的feature,predictor組件大大降低了positive pair拉近的難度,并且增加了feature變換的多樣性,防止退化解的產(chǎn)生。BYOL的predictor不同于SimCLR的projection,SimCLR的projection主要作用是為了得到非線性映射,而BYOL的predictor主要作用是為了防止形成退化解。
SwAV
SwAV很特別,引入了聚類的方法。SwAV預(yù)先定義了k個聚類中心,然后將teacher和student兩個分支的輸入通過Sinkhorn-Knopp算法映射到k個聚類中心的特征空間上,然后通過InfoNCE的alignment部分,對兩個分支的映射codes進行拉近。
SwAV通過聚類的方法,大大降低了特征空間的維度,減少計算量。從形式上來看,貌似SwAV只使用了alignment部分,很有可能會出現(xiàn)退化解,實際上映射到k個聚類中心的特征空間的過程中隱含著uniformity部分,因為映射得到的codes是soft label,codes同時蘊含著不同聚類中心的信息,間接避免了退化解的形成。
SimSiam

SimSiam在BYOL的基礎(chǔ)上進一步進行實驗,分別對momentum encoder、predictor和stop gradient等關(guān)鍵組件進行消融實驗,最終發(fā)現(xiàn)stop gradient才是避免形成退化解的關(guān)鍵。
SimSiam去掉了momentum,去掉了negative,去掉了teacher branch的gradient,在極簡的情況下,依然能夠避免形成退化解,核心在于stop gradient,teacher branch因為stop gradient導(dǎo)致與student branch的更新不同步,teacher branch相對于student branch是不變的,避免退化解的產(chǎn)生。
總結(jié)

將上述4種方法匯總到一張圖片,很容易比對出,四種方法的差異非常之小,基本上只改變了其中一個核心組件,但是都能達到不錯的效果。SimSiam可以認(rèn)為是沒有negative的SimCLR,沒有online clustering的SwAV,沒有momentum encoder的BYOL。
如何避免形成退化解,無外乎同時考慮alignment和uniformity(即需要positive pair也需要negative pair),只考慮alignment(只需要positive pair)和只考慮uniformity(只需要negative pair)三種情況,現(xiàn)在大多數(shù)方法都是在探索第一種和第二種。未來可能會逐漸的研究清楚退化解出現(xiàn)的充要條件到底是什么,進而設(shè)計出更合理的Self-Supervised算法,學(xué)習(xí)到更好的特征表示。
Reference
[1] https://ankeshanand.com/blog/2020/01/26/contrative-self-supervised-learning.html
[2] https://zhuanlan.zhihu.com/p/129076690
[3] https://www.zhihu.com/question/402452508/answer/1294166177
[4] Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere
[5] A Simple Framework for Contrastive Learning of Visual Representations
[6] Bootstrap Your Own Latent A New Approach to Self-Supervised Learning
[7] Unsupervised Learning of Visual Features by Contrasting Cluster Assignments[8] Exploring Simple Siamese Representation Learning
亮點提要:
1.Self-Supervised Learning兩種方法:生成式模型;判別式模型。
2.InfoNCE公式可以推導(dǎo)成兩個部分:alignment和uniformity。
3.只有Unsupervised Contrastive Learning能夠得到非常強判別力的特征。
4.避免形成退化解的三種情況:1.同時考慮alignment和uniformity(即需要positive pair也需要negative pair),2.考慮alignment(只需要positive pair),3.只考慮uniformity(只需要negative pair)
△點擊卡片關(guān)注極市平臺,獲取最新CV干貨
推薦閱讀
2021-04-14
2021-04-13
2021-04-06

# CV技術(shù)社群邀請函 #
備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)
即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

