技術資訊 | 無監督視覺表徵學習的最新進展&實踐
01
引言
有監督學習通常依賴大量標註數據以達到較好的性能,然而數據標註可能需要很高的成本。因此使用無監督學習方法從無標籤數據中獲取信息是一個很有價值的方向。
自監督學習 首先設置一個 輔助任務 (pretext task) ,使用數據本身構建監督信號,用有監督學習的方法進行訓練。模型可以學習到良好的數據表徵,從而有益於下游的實際任務。
自監督學習:無監督學習的一種形式,本文不對這兩個名詞作區分。
近幾年,在自然語言處理中,自監督學習得到了廣泛應用,並取得良好效果,如:BERT[1]。 而計算機視覺中通常採用監督預訓練方法,自監督方法應用較少。
在圖像無監督學習的研究中,一些啓發式的方法被應用於輔助任務,如:預測圖塊的相對位置[2]、預測圖像旋轉角度[3]、拼圖[4]、自動着色[5]等。這些方法依賴於特定的啓發式任務,某種程度上限制了所學習表徵的泛化性。
圖1 預測圖像旋轉角度[3]
最近兩年,基於 對比學習 (contrastive learning) 的實例判別任務被用於圖像無監督訓練的輔助任務,並在下游任務的微調中得到與ImageNet上監督預訓練模型相當甚至更優的結果。
本文主要介紹基於對比學習的無監督視覺表徵學習方法、該方向最新的幾篇論文以及將該方法應用於視頻預訓練中的實踐。
02
基於對比學習的無監督學習方式
實例判別 (instance discrimination) 任務[6, 7]將每一個實例作爲一個類別,每個實例的不同數據增強形式認爲是同一類樣本,然後使用度量學習的對比損失函數進行模型訓練。
訓練使用樣本query及用於對比的樣本key,key中正樣本通常使用與query同一實例的不同數據增強方式產生。而負樣本的選取則一般有兩種方式 (圖2) :
圖2
(a) 從同一個batch裏取負樣本
(b) 從memory bank裏取負樣本 [8]
(a)end-to-end:
訓練時同一個batch的其他實例作爲負樣本;
(b)memory bank:
將訓練過程中樣本的表徵向量存儲到一個memory bank,負樣本從memory bank中隨機選取一個子集。
方法 (a) 的缺點在於:負樣本數量受限於batch size,較少的負樣本數量導致對映射空間的表徵能力不足,影響學習效果;
方法 (b) 可以獲得充足的負樣本,但是由於模型在不斷更新,memory bank中負樣本之間及當前正樣本的映射不一致,同樣會影響學習效果。
一種常見的 對比損失函數 如下:
其形式類似於傳統分類任務中的softmax與交叉熵。向量q爲當前query向量,由編碼器encoder q產生,ki爲用於對比的key向量,由編碼器encoder k產生,其中k+爲正例,其他爲負例。樣本之間的相似性使用餘弦距離表示,優化目標爲使q與k+接近且遠離其他ki。
03
最新論文
3.1
MoCo [8]
Facebook AI Research於2019年11月公佈的論文“Momentum Contrast for Unsupervised Visual Representation Learning”使用隊列解決了memory bank存在的問題。
memory bank中保存了所有實例在上一訓練週期的表徵向量,訓練時隨機選取指定數量的負樣本。
如上所述,memory bank的主要 缺點 在於隨着模型的更新,memory bank中樣本之間的映射關係不一致,而先進先出的數據結構queue顯然是解決這一問題的合理方案。
MoCo將queue的大小設置爲每個訓練batch所需負樣本的數量,每次將queue中所有向量用於訓練,然後在把這個batch樣本的表徵向量入列,舊的向量出列,這樣能保持queue中向量的映射關係都是較新的 (圖3) 。
圖3 從queue中取負樣本
此外,爲了進一步保持key樣本的映射關係一致,使用encoder q的參數對encoder k的參數進行momentum update:
從而避免了映射關係隨着模型訓練過程產生較大幅度波動。使用 queue 和 momentum update ,既能保持batch size和負樣本數量的解耦,又能使負樣本間映射關係比較一致,並且比memory bank需要的內存空間少。
在ImageNet數據集上進行的無監督預訓練實驗結果表明,MoCo能達到與end-to-end相似的效果而不受限於batch size大小,並且比memory bank效果更好。
此外,將該無監督預訓練模型在下游目標檢測、實例分割、關鍵點檢測等任務上進行微調,可以達到與ImageNet監督預訓練模型 類似甚至更優 的結果。
3.2
SimCLR [9]
“A Simple Framework for Contrastive Learning of Visual Representations”爲Google Brain於2020年2月公佈的論文。
圖4展示了該模型的結構,其使用 e nd-to-e nd方法 獲取負樣本。與之前方法不同之處在於:用於下游任務的表徵向量h和用於對比學習的表徵向量z之間使用非線性層g替換之前的線性層。 此外,文章研究了對無監督表徵學習效果影響較大的幾個設計。
圖4 SimCLR的結構
首先 ,通過實例產生訓練樣本時,使用何種數據增強方法對結果影響很大。
文章實驗了隨機裁切、顏色抖動、旋轉、高斯噪聲、高斯濾波等許多不同數據增強方法及這些方法的組合,發現不同數據增強方法的結果差別很大。其中隨機裁切+顏色抖動的方法能達到最好的效果。
圖5 SimCLR中研究的數據增強方法
及效果對比
其次 ,之前用於輔助任務的表徵向量z通常由用於下游任務的表徵向量h經過一個線性層得到,SimCLR中將線性層改爲非線性層,線性驗證效果提升3%。
使用線性層容易把一些輔助任務的信息帶到下游任務,而非線性層能夠在一定程度上移除這些與下游任務無關的信息。
最後 ,文章實驗了不同的batch size和不同的訓練步數,更大的batch size與更多的訓練步數產生更好的結果,並且相比有監督的情況,效果提升的幅度更大。
3.3
SimCLR [9]
在SimCLR提出後不到一個月,2020年3月Facebook AI Research公佈了MoCo v2的論文。將SimCLR中兩個對效果有較大提升的設計,即非線性投影和更強的數據增強,用到MoCo中。
文章本身較短,也沒有提出新的創新點。主要是表明:SimCLR中非線性投影和數據增強的方法與如何選取負樣本無關,也就是說這兩種方法同樣可以用到MoCo中以提升效果,同時還不受batch size大小限制。
圖6 MoCo v2與SimCLR效果對比
04
視頻預訓練中的實踐
前面幾篇文章都是在圖像上進行無監督預訓練,我們將這種方法應用到了 視頻的無監督預訓練 。
預訓練使用 500萬 無標籤視頻,預訓練得到的模型用於下游視頻分類任務。視頻分類實驗採用 12萬 視頻訓練, 3萬 視頻驗證,共分爲 28 個類別。
首先,我們使用無監督學習中常用的線性驗證方法進行效果驗證,也就是將無監督學習得到的模型權重凍結,在上面接一個線性分類器進行視頻分類。
線性分類器在驗證集上的準確率如圖7所示,我們對比了500萬視頻無監督預訓練模型、26萬視頻無監督預訓練模型、ImageNet監督預訓練模型。
圖7 視頻分類上使用線性分類器效果對比
從圖中可以看到,視頻無監督預訓練模型顯著優於基於圖像的ImageNet預訓練模型,並且使用的訓練數據越多效果越好。
凍結backbone權重的方法主要用於實驗對比,實際使用中一般會進行全模型微調,尤其是將圖像預訓練模型用於視頻的這種跨域情況。
全模型微調的驗證準確率如圖8所示,我們對比了500萬視頻無監督預訓練模型、ImageNet監督預訓練模型、隨機初始化權重模型。
圖8 視頻分類上進行全模型微調效果對比
從圖中可以看到:使用預訓練模型可以加速收斂,並且最終效果優於隨機初始化模型。
在全模型微調的情況下,視頻無監督預訓練模型 比 ImageNet預訓練模型 最終效果略好 ,但相差不大。
結合圖7和圖8,我們可以發現:使用視頻無監督預訓練模型進行線性分類的效果已經接近全模型微調的效果,這說明 無監督預訓練得到的模型對視頻已經有較好的表徵能力 。
雖然輔助任務一般用於預訓練而不直接當做實際任務,我們依然可以將其用於表示樣本特徵。
我們將預訓練模型提取的向量用於計算視頻相似度,發現相似度較高的視頻具有某種程度的相似性,比如可能是同一類視頻,而相似度非常高的一般是同一視頻的不同片段。
圖9展示了兩個相似度較高的視頻截圖。雖然它們是不同視頻,背景、內容也完全沒有關聯,但是它們都是三宮格視頻,並且三格圖像一致,也就是說無監督模型學習到了這個特徵。
圖9 兩個相似度較高的視頻截圖
05
小結
無監督學習方法可以 充分利用無標籤數據 , 減少大量人工標註的成本 ,對於一些標註代價較高的領域如醫學圖像領域,具有很高的價值。
最新的研究成果表明圖像無監督預訓練模型已經可以達到與監督預訓練模型類似的效果。相信在不久的將來,在計算機視覺領域,無監督預訓練模型也會像NLP中的BERT一樣得到廣泛應用。
06
參考文獻
[1] Bert: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019.
[2] Unsupervised visual representation learning by context prediction. In ICCV, 2015.
[3] Unsupervised representation learning by predicting image rotations. In ICLR, 2018.
[4] Unsupervised learning of visual representations by solving jigsaw puzzles. In ECCV, 2016.
[5] Colorful image colorization. In ECCV, 2016.
[6] Discriminative unsupervised feature learning with convolutional neural networks. In NIPS, 2014.
[7] Unsupervised feature learning via non-parametric instance discrimination. In CVPR, 2018.
[8] Momentum contrast for unsupervised visual representation learning. In CVPR, 2020.
[9] A Simple Framework for Contrastive Learning of Visual Representations.
[10] Improved Baselines with Momentum Contrastive Learning.
投稿 | 內容標籤團隊
編輯 | sea
排版 | sea
往期推薦
在看點一下 大家都知道