您當前的位置:首頁 > 舞蹈

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

作者:由 人工智慧熱點 發表于 舞蹈時間:2020-05-14

愷明大神CVPR2020中了4篇文章,其中3篇是Oral,我等只能膜拜了。這篇CVPR的工作是Facebook AI團隊何愷明等人的作品,提出了

基於動量對比的自監督方法,這是一種同時將資料樣本的字典存在佇列中而不是之前和mini-batch耦合的方式

,從而成功地將字典的大小和batch大小進行解耦,儘可能地增大了字典的大小以及一致性。實驗結果表明,MoCo使用無監督的方法,在多個CV資料集上取得了最優的效果。

在ImageNet資料集的表現上甚至已經接近有監督學習的效果。

一、概述

自監督學習在NLP領域已經取得了非常大的成就,BERT、GPT、XLNET等自監督模型幾乎刷遍了NLP各大榜單,同時在工業界也帶來了很多的進步。在CV領域,自監督似乎才剛剛興起。這篇文章是何愷明一作,目前已經中了CVPR的oral。文章核心思想是

使用基於contrastive learning的方式自監督的訓練一個圖片表示器也就是編碼器,能更好地對圖片進行編碼然後應用到下游任務中。

基於對比的自監督學習最大的問題就是負樣本數量增大後會帶來計算開銷的增大,kaiming大神在這裡使用了

基於佇列的動態字典來儲存樣本,同時又結合了動量更新編碼器的方式,解決了編碼器的快速變化會降低了鍵的表徵一致性問題。

MoCo在多個數據集上取得了最優效果,縮小了監督學習和無監督學習之間的差距。

二、模型詳解

基於對比的自監督學習其實就是訓練一個編碼器然後在一個大的字典裡確保和對應的鍵是相似的,和其它的是不相似的。所以字典的大小就成了關鍵,傳統的方法是字典的大小就是等於mini_batch的大小,

但是這種方法由於顯示卡和算力的問題導致其不能太大。

在這裡MoCo使用了佇列來儲存這個字典。在訓練的時候,每一個新的batch完成編碼後就進入佇列然後最老的那一個編碼就出佇列。

這樣保證了字典的大小和batch的大小解耦了,也就是說字典的大小可以遠遠大於batch的大小。

整體的模型架構見下圖:

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖1 模型結構

文章的目標函式採用InfoNCE,也就是當query和他的正向鍵值k相似和負向不相似,損失就會變小。而我們的目標就是最小化這個損失,公式詳見下圖:

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖2 loss公式

1.

Momentum Contrast

作者採用的動量對比方法的兩個核心一個就是將字典作為佇列,另外一個就是動量更新。將字典作為佇列主要就是為了能將字典的大小和mini-batch分離開來。而動量更新主要是為了解決字典這部分資料在反向傳播的時候更新引數的問題,因為反向傳播需要在佇列中所有的樣本中進行傳播。在這裡作者使用了一種動量更新的方式緩慢平滑的更新引數,詳細的公式見下圖:

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖3 動量更新

另外作者還對傳統的更新方式和MoCo的更新方式進行了對比,目前主要還有兩種對比學習的機制,對比圖如下。一個就是

端到端的

,這種方式query和key用兩個encoder,然後兩個引數是都進行更新的,但這種方式字典大小就是mini-batch的大小。另外還有

一種是memory bank

,由於memory bank裡面存著所有的樣本,所以無法對其進行計算,這裡就只更新encoder q的引數。

而MoCo則採用動量更新的方式,即在query上進行反向傳播也在key上進行動量更新。

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖4 三種方式的比較

三、實驗

首先作者對比了三種loss機制的方式,實驗結果發現MoCo不僅能支援更大的字典大小,而且也能帶來更優的效果:

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖5 對比實驗

同時對動量引數m進行消融實驗,證明了動量更新的有效性。

從實驗中可以看到當m逐漸增大的時候準確率也會逐漸的上升。

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖6 實驗結果

然後作者對比了MoCo方法和之前方法的對比,所有的方法最後一層都統一使用了線性分類器。結果如下:

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖7 實驗結果

可以看到MoCo遠遠的超過了之前的方法,同時在引數量上也不會有很大的增加。同時,作者還在一些資料集上對比了監督學習的方法,結果如下:

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

圖8 實驗結果

從結果中我們能看出來MoCo在PASCAL VOC trainval07+12 上微調的目標檢測結果,對比監督學習的結果在AP75上使用MoCo IG-1B已經有4。9的提升,這進一步地拉近了無監督學習和有監督之間的距離。

四、小結

MoCo作為CV領域自監督的文章極大地縮小了自監督模型和監督模型在效果上的距離,自監督作為解決實際生產中標註資料少的方案正在被更多的人發現和研究。

目前kaiming又放出了MoCo v2使用了SimCLR的資料增光方式以及projection head 在ImageNet linear classification上提升了6個點。隨著自監督技術的不斷前進,相信未來有一天自監督的表現能在有限標註資料的情況下達到甚至超越有監督模型。

Reference

https://

zhuanlan。zhihu。com/p/13

2550481

https://

arxiv。org/pdf/1911。0572

2。pdf

CVPR 2020 | MoCo自監督學習或成為CV領域的啟明燈

標簽: 字典  監督  moco  動量  batch