數據太少怎麼辦?試試自監督學習,CV訓練新利器,fast.ai新教程,LeCun點評
- 2020 年 2 月 21 日
- 筆記
十三 發自 凹非寺 量子位 報道 | 公眾號 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(位於舊金山的高級機器學習公司)的首席執行官兼創始人。
傳送門
Twitter: https://twitter.com/jeremyphoward/status/1216882509692059650
fast.ai博客: https://www.fast.ai/2020/01/13/self_supervised/
作者系網易新聞·網易號「各有態度」簽約作者