從近年頂會論文看對比學習最新研究進展


視覺對比學習的核心:對比兩圖像是不是同一圖像的不同變換。


CVPR 2018

論文標題:

Unsupervised Feature Learning via Non-Parametric Instance Discrimination

論文鏈接:

https://arxiv.org/abs/1805.01978

代碼鏈接:

https://github.com/zhirongw/lemniscate.pytorch

此篇文章的核心思想可用下圖兩個簡短步驟說明。


CPC

論文標題:

Representation Learning with Contrastive Predictive Coding

論文鏈接:

https://arxiv.org/abs/1807.03748

後面提到的第 5 篇文章(CPC V2)對這個文章的總結很好:CPC 通過訓練網絡根據過去信息預測未來觀測來學習特徵表示。當用於圖像處理時,CPC 通過根據當前圖像塊上方的圖像塊們來預測它的表示。

那麼怎麼預測未來觀測了,作者認爲,未來預測應根據前面歷史上下文來預測,而爲了保證未來預測的準確性,就最大化歷史上下文與未來預測的關聯關係,那麼怎麼最大化了?就是將未來分爲:1)和歷史上下文無關的未來;2)和歷史上下文有關的未來。

2.1 基本概念

▲ KL計算公式與定義

Mutual Information:兩個隨機變量的聯合分佈 P(x,c) 與他們兩個邊際分佈 P(x)P(c) 相乘形成的分佈的 KL 距離是爲兩個隨機變量的互信息。也就是兩個分佈的相似性。如果 KL 越小,說明聯合分佈就等於邊際分佈相乘,說明兩個變量之間彼此獨立,不能相互提供信息。

▲ 文中公式1的計算由來

所以文中提到需要強化歷史上下文 c,與未來狀態分佈之間的互信息,也就是強化兩者之間的相關性,保證我根據上下文 C 預測得到的 x 是準確的。

那麼歷史上下文怎麼來了?

還是從下面第 5 篇文章講解出發,見下圖。


CVPR 2020

論文標題:

Momentum Contrast for Unsupervised Visual Representation Learning

論文鏈接:

https://arxiv.org/abs/1911.05722

代碼鏈接:

https://github.com/facebookresearch/moco

3.1 對比學習概念泛化與直覺理解

延續 CPC 文章,何老師將對比學習的概念進一步泛化了一番。如下。

對比學習可以認爲是 爲檢索項(即輸入圖像)與動態字典(如上篇的特徵池)中的各項進行對比,找到最相似的那個(也就是匹配項)。

既然後面作者用了 key,也可以將對比學習訓練過程認爲:從一堆 key 中找到能開這個門鎖的 key,而且這個能開門鎖的 key 是從這個門鎖倒模而來。

訓練時,檢索項與其匹配 key 稱作正樣本對,與其它 key 稱爲負樣本對。損失函數因此定義爲如下,其中 k+ 爲匹配 key。如果檢索項與匹配 key 特徵相似度越高(內積越高,如完全不相關正交內積爲 0),損失越小。

注意,上面檢索項與 key 特徵輸出一般用的同一網絡(文中的另一創新就是,key 項編碼網絡根據檢索項編碼網絡參數進行動量更新,與滑動平均類似),因此該損失函數的本質就在於鼓勵網絡對於相似圖片輸出相似特徵。

3.2 文中對比學習的實現與訓練

其實,對比學習的一個重點就是每次訓練迭代的時候正樣本對、負樣本對怎麼來。

一般的:

正樣本對都是從當前訓練圖像經過變換而來。

負樣本對:因爲訓練包中一般有很多圖片 N,所以經變換後會有 2N 張圖片,所以對於每一張圖片,有 2(N-1)張圖片與其無關聯,因此可以作爲其負樣本。(例如下面提到的 SimCLR)

這篇文章將每個批次的歷史正樣本存入隊列並當作後續訓練批次的所有圖片的負樣本。


ICML 2020

論文標題:

A Simple Framework for Contrastive Learning of Visual Representations

論文鏈接:

https://arxiv.org/abs/2002.05709

代碼鏈接:

https://github.com/google-research/simclr

這篇文章的主要創新就是在檢索項和匹配 key 項後面,進一步加了個線性變換。

然後沒有用Bank,但用了超大的 training batch,普通玩家玩不起。

論文還研究了 t 撇到大 T 這個圖像增廣方式對於性能的影響。影響結果如表所示。

除了最後一列以及對角線以外,其它非對角線的性能都是連續用兩次增廣的效果。由結果可以看出,僅用單種增廣的效果一般都要差於連續兩次變換的效果。

且隨機裁剪加隨機顏色調整效果最突出。

並由此得出一個重要結論:對比學習對數據增廣的強度要求更高。


ICML 2020

論文標題:

Data-Efficient Image Recognition with Contrastive Predictive Coding

論文鏈接:

https://arxiv.org/abs/1905.09272

從下面這篇圖可以看出,這篇文章好像只是把 CPC 拿來作爲特徵提取器,然後將這種提取的特徵作爲初始輸入,送入至普通的卷積網絡(如 ResNet33,這個地方就是與常規的區別,常規搞法一般後面只接一個淺層網絡)。然後看看引入 CPC 後,視覺任務是不是對標籤的要求會降低。

所以作者將一個經典網絡 ResNet 作爲 Baseline,然後加入 CPC 特徵編碼模塊看對 Baseline 性能的影響。

如果只是這樣,好像創新度說不過去,所以作者通過實驗分析,發現了將 CPC 用作特徵編碼的更佳方式,所以對基礎 CPC 做了幾處改進,並將原 CPC 性能提升了 20 多個點。各改進對 CPC 的性能提升都在下圖了。

MC:增加模型容量。出發點:自監督學習適合大網絡。

LN:將塊歸一化替換爲層歸一化。出發點:發現塊歸一化不利於對比學習。

BU+HP:除了僅利用上圖中的上部圖像塊作爲歷史上下文預測,還增加了左右(對應 HP)、上(BU:如下圖)的預測。注意:圖中大方塊與小方塊實際上是有一部分重疊的,這裏省略了。

LP:更大的採樣圖像塊。

PA:圖像塊數據增廣。

其它的 可以在文中一一對應。


ICLR 2019

論文標題:

Learning Deep Representations by Mutual Information Estimation and Maximization

論文鏈接:

https://arxiv.org/abs/1808.06670

代碼鏈接:

https://github.com/rdevon/DIM

這篇文章介紹裏和 CPC 對比了一番,從中可以看出這篇文章的一些思想。

文章認爲因爲 CPC 預測前需要統計好一些列歷史特徵,且每次預測歷史特徵都不一樣。所以稱它爲有序的自迴歸。而這篇文章,所有點的特徵預測都根據同一全局特徵來預測。

另外文章的具體做法,從下面三張圖也還比較好理解。

第一幅圖就是說明了平時 CNN 編碼提取圖像塊特徵的流程。

第二幅圖:最大化 feature map 和 全局特徵 Y 之間的互信息?(具體實現文中附件有圖示說明)負樣本來自另外的圖片。

第三幅圖:最大化局部特徵和全局特徵之間的互信息。


ECCV 2020

論文標題:

Contrastive Multiview Coding

論文鏈接:

https://arxiv.org/abs/1906.05849

代碼鏈接:

https://github.com/HobbitLong/CMC

這篇文章對之前的對比學習也梳理的比較好,它認爲所有對比學習都可以認爲是 讓網絡對同一“信號”(信號可以是圖像也可是文本)的不同視角輸出的特徵之間關聯關係很大(例如相似)。例如 CPC 可以認爲是 當前與未來兩種視角的對比,而 DeepInfomax 可認爲網絡的輸入和輸出是信號的兩種不同視角。

所以作者將以前一般僅考慮 兩種視角之間的對比,擴展到多種視角對比,而且在擴展的時候考慮以下兩種情況。

第一種:認爲有一個主視角,其它視角都從這個視角變換而來。那麼對比僅考慮主視角和“各”其它視角之間的對比。對應的損失如下(其中求和符號後面的就是常用的普通兩視角對比損失)

第二種,即便其它視角都從某一視角變換而來,也考慮所有視角 兩兩之間的對比。所以損失變成了

對比:不同角度去看信號,看到的深層次結果應該一樣。


DeepMind BYOL

論文標題:

Bootstrap your own latent: A new approach to self-supervised Learning

論文鏈接:

https://arxiv.org/pdf/2006.07733

代碼鏈接:

https://github.com/deepmind/deepmind-research/tree/master/byol

BYOL 核心思想很簡單,用一個輸入的兩個視角作爲輸入,其中一個輸入經 target 網絡得到的輸出作爲 真值,去指導另一個 Online 網絡的訓練。然後下一次訓練時將 Online Target 網絡相互對調,依此往復。

另外 BYOL 也用到了 MOCO 中的利用網絡參數的滑動平均來更新某一路網絡。


SimSiam

論文標題:

Exploring Simple Siamese Representation Learning

論文鏈接:

https://arxiv.org/abs/2011.10566

首先這篇文章由於出來的靠後,所以對別人文文章的評價比較到位。

這篇文章網絡結構就更簡單了,就直接就是孿生網絡,不做任何其它操作,只是阻斷一下反向傳播。

下面代碼中 detach 就是將變量從反向傳播網絡中分離出來,只用它的數據。其作用就是阻斷這個變量對前面參數更新的影響。

實際上通過 P 對網絡參數的更新,間接也通過了 Z。也就是說,如果不阻斷 Z 特徵輸出到網絡參數的直接影響,那麼相當於 Z 對參數的影響了兩次。

阻斷背後的 intuition 是什麼?

文章的說法是:由於 Stop-gradient 的存在,相當於把 Z2 作爲網絡 1 的理想特徵(類似於 K-means 里人爲給每個特徵分配一個不知道對不對的標籤),而把 Z1 作爲網絡 2 的理想特徵。所以文章的無監督學習變成了一個用 EM 求解理想特徵的問題。

網絡結構中有一分支爲什麼單獨加了個Predictor

文章說是僅用了一個變換的特徵作爲理想特徵去指導另一變換特徵輸出,嚴格上應該用多種變換的特徵的平均值作爲理想特徵(就像 K-means 更新類中心的時候也是求平均),所以作者說這個 Predictor 實際上是用來預測這個平均特徵的。

實際上,從作者最後畫的圖來看,這篇文章和 BYOL 非常之相似,只是兩路網絡參數是完全共享的。

清華組 PixPro

PixPro

論文標題:

Propagate Yourself: Exploring Pixel-Level Consistency for Unsupervised Visual Representation Learning

論文鏈接:

https://arxiv.org/abs/2011.10043

不同於以往用同一個 Patch 的兩個變換做對比,本文用同一張圖片,兩個有交疊的 Patch 做對比,交疊區域的像素特徵應該相似。

更多閱讀

#投 稿 通 道#

 讓你的論文被更多人看到 

如何才能讓更多的優質內容以更短路徑到達讀者羣體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成爲一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。 

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術乾貨。我們的目的只有一個,讓知識真正流動起來。

???? 來稿標準:

• 稿件確係個人原創作品,來稿需註明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向) 

• 如果文章並非首發,請在投稿時提醒並附上所有已發佈鏈接 

• PaperWeekly 默認每篇文章都是首發,均會添加“原創”標誌

???? 投稿郵箱:

• 投稿郵箱:[email protected] 

• 所有文章配圖,請單獨在附件中發送 

• 請留下即時聯繫方式(微信或手機),以便我們在編輯發佈時和作者溝通

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公衆號後臺點擊「交流羣」,小助手將把你帶入 PaperWeekly 的交流羣裏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章