除了Transformer之外,自監督對比學習預訓練目前也是CV領域的另一大研究熱點。在不使用任何的標籤的情況下,使用自監督對比學習預訓練出的CNN編碼器參數能夠在分類、分割、檢測等基礎任務上都有上佳的表現。這篇文章重點總結了SimCLR, MoCo, BYOL三個經典的CV領域無監督對比學習預訓練的方法。
機器學習通常以受監督的方式完成:我們使用由輸入和「正確答案」(輸出)組成的數據集來找到從輸入數據映射到正確答案的最佳函數。相比之下,在自監督 學習中,數據集中沒有提供正確答案。相反,我們學習了一個將輸入數據映射到自身的函數(例如:MAE中使用沒有mask的區域來預測被mask區域的像素值)。
這種方法在從語言到圖像和音頻的所有方面都被證明是成功的。事實上,最近的NLP領域的語言模型(從word2vec到BERT和GPT-3),以及CV領域的預訓練模型(MAE、PeCo)都是自監督方法的例子。有些學者認為自監督學習可能是類人智能的重要組成部分。
對比學習是訓練分類器區分「相似」和「不同」輸入數據的過程。分類器的正例是同一圖像的不同版本,而負例是同一數據集中的其他圖像。例如,假設有一張狗的圖片。在這種情況下,正例可能是該圖像的不同數據增強形式(見下圖),而反例可能是來自完全不同圖像的數據增強。
原始圖片的數據增強版本。這些中的任何兩個都可以用作正例對
2)同一個原樣本的不同augmentation結果 / view在特徵空間有相同的表徵。
這也是各個對比學習的框架去構建損失函數、訓練流程時的基本規則。在以上兩個原則的監督下,能夠使得編碼器得到的特徵能夠很好的表徵圖像。實際上,這種對比學習的方法在NLP的文本表徵中已經有過很好的應用。比如我之前總結過的「文本匹配入門必讀:預訓練模型前的文本匹配模型總結」中的基於表示的方法就是對比學習的早期應用。這些方法試圖用對比學習的形式預訓練得到每一個句子級別的向量表徵。不過,這些方法,在BERT的自監督預訓練形式出來之後便沒有了進一步的進展(當然,也有像sentence-bert這樣在bert上做對比學習的來進一步提升句子的表徵能力的)。而目前,CV中的借鑑BERT的自監督預訓練也在蓬勃發展,它是否也會像NLP的的發展浪潮一樣終結對比學習對於圖片的表徵呢?我們可以拭目以待?當然,我們還是先來看看,目前圖像自監督對比學習預訓練是怎麼做的。眾所周知,contrastive learning框架有兩大目標:
而之前其實已經有挺多工作告訴我們,一個隨機初始化的CNN就已經具備一定程度的圖像特徵抽取能力。更進一步地,如果CNN隨機初始化之後,就已經會把不同的樣本輸入投射到特徵空間
所以我猜測BYOL能work的基石,很可能就是CNN結果在圖像數據集上天然存在、不依賴於訓練的contrastive feature repersentation能力,BYOL所做的,主要是為CNN補上了transformation invariance。換言之,如果換一個完全不同的網絡結構(比如MLP)或者完全不同的數據形態(比如文本),導致該結構並不天然具備針對該數據形態的特徵抽取能力,那麼BYOL就不work,還得negative sample出來救場。
上述預訓練完之後,我們可以取其預訓練好的encoder在分類、分割、檢測任務上進行微調。
1)分類:
2)分割、檢測與其他任務。可以看到甚至比有監督的預訓練更好:
參考資料:
1)https://generallyintelligent.ai/blog/2020-08-24-understanding-self-supervised-contrastive-learning/2)https://zhuanlan.zhihu.com/p/3479986383)如何評價BYOL:https://www.zhihu.com/question/402452508/answer/1293518245阿柴提示
以上若有你需要而查不到或有疑惑的項目,
請聯繫小編為你解答
Ps:歡迎關注公眾號,獲取更多計算機視覺、圖像分割和自然語言處理領域資料: