數據太少怎么辦?試試自監督學習,CV訓練新利器
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
數據少,又沒有預訓練模型,怎么破?
給你個秘密武器——自監督學習。

數據科學家 Jeremy Howard 發布一條Twitter:
在醫學圖像領域,我們經常需要靠一點點的數據來做很多工作。
在這個問題上,有一種被低估的方法,正是自監督學習,簡直太神奇!
還附上了與之相關的最新fast.ai教程。

△地址:https://www.fast.ai/2020/01/13/self_supervised/
這一推文立即引起了大量網友的關注,可謂是好評如潮。

這是篇了不起的文章,太酷了!
這是一種簡單且強大的技術。
接下來,讓我們一起看下,自監督學習到底有多厲害。
自監督學習簡介
在多數情況下,訓練神經網絡都應該從一個預訓練(pre-trained)模型開始,然后再對它進行微調。
通過預訓練模型,可以比從頭開始訓練,節省1000倍的數據。
那么試想一下,你所在的領域中,要是沒有預訓練模型,該怎么辦?
例如在醫學圖像領域,就很少有預先訓練過的模型。
而最近有一篇比較有意思的論文,就對這方面問題做了研究。

△論文地址:https://arxiv.org/pdf/1902.07208.pdf
研究發現,即便使用ImageNet模型(預訓練過的)中的前幾層(early layers),也可以提高醫學成像模型的訓練速度和最終準確性。
所以說,即便某個通用預訓練模型,不在你的研究領域范圍內,也可以嘗試使用它。
然而,這項研究也指出了一個問題:
其改進程度并不大。
那有沒有不需要大量數據,還能取得較好效果的技術呢?
自監督學習就是一個秘密武器。
它可以被看作是機器學習的一種“理想狀態”,模型直接從無標簽數據中自行學習,無需標注數據。
舉個例子,ULMFiT(一種NLP訓練方法)的關鍵就是自監督學習,極大的提高了NLP領域的技術水平。

△論文地址:https://arxiv.org/abs/1801.06146
在基于自監督學習的方法,首先訓練了一個語言模型,可以預測某句話的下一個單詞。
而當把這個預訓練好的模型,用在另一個任務中時(例如情緒分析),就可以用少量的數據,得到最新的結果。
計算機視覺中的自監督學習
在自監督學習中,用于預訓練的任務被稱為pretext task(前置/代理任務)。
然后用于微調的任務被稱為downstream task(下游任務)。
盡管目前在NLP領域中,自監督學習的應用還算普遍,但是在計算機視覺領域中,它卻很少使用。
也許是因為諸如ImageNet這樣的預訓練模型比較成功,所以像醫學成像領域中的研究人員,可能不太熟悉自監督學習的必要性。
接下來的內容便展示了CV領域中應用自監督學習的論文例子。
希望越來越多的人可以重視這一關鍵技術。
圖像著色(Colorization)
Colorful Image Colorization

△論文地址:https://arxiv.org/abs/1603.08511
Learning Representations for Automatic Colorization

△論文地址:https://arxiv.org/pdf/1603.06668
Tracking Emerges by Colorizing Videos

△https://arxiv.org/pdf/1806.09594
效果展示

將圖像patch放在正確位置
Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles

△論文地址:https://arxiv.org/pdf/1603.09246
Unsupervised Visual Representation Learning by Context Prediction

△論文地址:https://arxiv.org/pdf/1505.05192
效果展示

按照正確的順序放置幀
Unsupervised Representation Learning by Sorting Sequences

△論文地址:https://arxiv.org/pdf/1708.01246
Shuffle and Learn: Unsupervised Learning using Temporal Order Verification

△論文地址:https://arxiv.org/pdf/1603.08561
效果展示

圖像修復(Inpainting)
Context Encoders: Feature Learning by Inpainting

△論文地址:https://arxiv.org/pdf/1604.07379
效果展示

分類損壞的圖像
Self-Supervised Feature Learning by Learning to Spot Artifacts

△論文地址:https://zpascal.net/cvpr2018/Jenni_Self-Supervised_Feature_Learning_CVPR_2018_paper.pdf
效果展示
選擇一個pretext task
為了在計算機視覺中使用自監督學習,需要回答一個非常重要的問題:
應該使用哪種pretext task?
很多人選擇將“自動編碼器”作為pretext task。
自動編碼器將輸入圖像轉換為一種簡化的形式,然后將其再轉換回盡可能接近原始圖像的內容。
然而,我們不僅需要再生原始圖像內容,還需要再生原始圖像中的所有噪聲。
因此,如果要在下游任務中生成更高質量的圖像,那么這將是一個不好的選擇。
此外,還需要確保pretext task是人類可以做的事情。
例如,預測視頻的下一幀,如果預測時間點過于遙遠,那也是不太可行的。
為下游任務進行微調
一旦用pretext task預訓練了模型,就可以繼續進行微調。
在這一點上,應該把這個問題視為一種遷移學習,不要太多的改變預訓練模型的權重。
總體而言,Jeremy Howard不建議浪費太多時間來創建“完美”的pretext模型,而要構建盡可能快速且容易的模型。
然后,需要確保這個pretext模型是否可以滿足下游任務。
并且,事實證明,通常不需要非常復雜的pretext 任務,就可以在下游任務中取得較好的結果。
Yann LeCun更好的方法建議
Jeremy Howard在發出這條Twitter之后,深度學習三巨頭之一的Yann LeCun對其回復。

Yann LeCun提出了更好的建議:
現在,學習視覺特征最佳SSL方法是使用孿生神經網絡(Siamese network)來學習嵌入。
相關研究包括:
Self-Supervised Learning of Pretext-Invariant Representations

△論文地址:https://arxiv.org/pdf/1912.01991
Jeremy Howard對LeCun回復道:
將PiRL添加到任意pretext task中是非常好的一件事情。
Jeremy Howard
△Jeremy Howard
Jeremy Howard,澳大利亞數據科學家和企業家。fast.ai創始研究人員之一,fast.ai是一家致力于使深度學習更易用的研究所。
在此之前,他曾是Enlitic(位于舊金山的高級機器學習公司)的首席執行官兼創始人。