淺析計算機視覺中的自監督學習

在計算機視覺(CV)領域,目前的方法主要依賴大量的標注樣本來學習豐富的視覺表征,從而在各項CV任務中取得較好的表現。然而在許多情況下,大規模的人工標注并不容易獲得。因此,我們希望可以利用無監督方法去學習那些不帶標注的樣本。那么問題來了,一個樣本沒有了標簽,我們該設計怎樣的目標任務,才能促使網絡學習到好的特征表示呢?


首先,我們來聽一個隔壁領域的小故事。

在自然語言處理(NLP)領域,上下文信息(context)常常作為特征學習的監督信號。舉個栗子,我們學生時代的老朋友——“完形填空”:給定一個很大的語料庫,我們要訓練一個模型,能夠將每個詞映射為特征向量,然后根據上下文信息去預測某個被挖掉的詞。在特征空間中哪個詞和上下文詞距離越近,那么要填這個詞的可能性越大。這可以看作是把一個無監督問題(找到單詞間的相似性度量)轉化為了“自監督問題”:學習一個函數,能夠表示挖掉的詞與他旁邊的詞的關系。這里的“完形填空”就作為一個pretext task(直譯借口任務,或稱代理任務)促進模型學習詞特征,進而在很多真實任務中起到很大幫助。

于是,這樣的思路被帶進了CV領域。CV中的自監督學習隆重登場。


下面正式地向大家介紹——“自監督學習”(Self-supervised Learning)

自監督學習,是無監督學習的一種,即無需額外的人工標簽,僅利用數據自身的信息作為監督(自己監督自己)。利用來自數據自身的監督信息,設計一個pretext task,訓練網絡去完成該pretext task,從而促使網絡學習到數據特征。

如何檢驗 pretext task 的有效性,或者說學習到的數據特征是否足夠好?

通過遷移學習,將pretext task中學到的特征遷移到downstream task(直譯下游任務,或稱后續任務)中,包括圖像分類、檢測、分割等任務,類似于提供了預訓練模型。如果能促進這些 downstream ?task 中取得很好的表現,則說明學習到的特征是好的。

自監督表征學習流程

說到這里,想必大家可以發現,自監督學習中最重要的一環,就是如何設計一個pretext task,讓模型可以學到更好的數據特征。接下來,帶大家看看各種腦洞大開的pretext task。

[1] 相對位置預測:預測一張圖像中隨機選擇的兩個圖像塊之間的相對位置。

[2] 圖像修復:預測一張圖像中被遮擋的部分。

[3] 拼圖游戲:將圖像中打亂的9個圖像塊復原。

[4] 旋轉角度預測:預測圖像中物體的旋轉角度。

[5] 圖像著色:Lab圖像中利用L亮度通道,預測ab色彩通道。

[6] 跨通道預測:L通道和ab通道相互預測。

[7] 計數:預測鼻子、眼睛、爪子、頭的數量。

[8] 實例區分:分類,一張圖像和其增強的圖像為一類,和其他圖像為不同類。

[9] 對比預測編碼:根據“過去的”信息,預測“未來的”信息。



欲知后事如何,且待明天繼續更...

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。