02.03 自監督學習,如何從數據困境中拯救深度學習?

自監督學習,如何從數據困境中拯救深度學習?

者 | Thalles Silva編譯 | 翻譯官balala

大規模標註的數據集的出現是深度學習在計算機視覺領域取得巨大成功的關鍵因素之一。然而監督式學習過於依賴大規模標註數據集,數據集的收集和人工標註需耗費大量的人力成本。自監督模型解決了這一難題,它能夠從大規模未標記數據中學習圖像特徵,而無需使用任何人工標註數據。

每個深度學習實踐者都認同的一件事是:深度學習模型是數據低效的。

1、數據低效的深度學習模型

讓我們首先考慮計算機視覺中的主流分類任務。以 ImageNet 數據庫為例,它包含 1000 個不同類別的130 萬張圖像,其中的每一個圖像都有人工標註的標籤。

ImageNet 無疑是現在深度學習復興的基石之一,這源於 2012 年 Krizhevsky 等人所著的論文《Imagenet Classification with Deep Convolutional Neural Networks》。

在這篇文章中, 卷積網絡模型首次大幅度超越了當時最先進的模型。它是在所有的對比模型中唯一一個基於卷積神經網絡的解決方案。此後,卷積神經網絡變得無處不在。

在深度學習之前,研究人員一直認為 ImageNet 挑戰非常困難,其主要原因是 ImageNet 數據集突出的變化性。即便只是找到能覆蓋 ImageNet 中各種犬類的手工特徵就已經很不容易。

然而,通過深度學習,我們很快意識到,大量的數據導致了 ImageNet 如此困難,同時實際上也是使深度學習如此有效的秘訣。

雖然如此,通過多年的深度學習研究,我們知道了大型數據庫用於訓練精確模型的必要性已成為一個非常重要的問題。並且需要低效的人工標註數據成為一個更大的問題。

而且在當前的深度學習應用中,數據的問題無處不在。以 DeepMind 的 AlphaStar 模型為例。

自监督学习,如何从数据困境中拯救深度学习?

來源:《AlphaStar : Mastering the Real-Time Strategy Game StarCraft II》

  • 論文地址:https://deepmind.com/blog/article/alphastar-mastering-real-time-strategy-game-starcraft-ii

AlphaStar 深度學習系統使用監督學習和強化學習來操作《星際爭霸2》。在訓練期間,AlphaStar 僅從遊戲終端上觀看遊戲畫面。DeepMind 研究人員使用可並行訓練大量智能體的分佈式策略訓練模型。每個智能體都至少觀看過 200 年的實時《星際爭霸》錄像(不間斷)。通過像職業選手一樣的訓練,AlphaStar 取得了在官方遊戲服務器中的排名超過了99.8%的活躍玩家的巨大成功。

雖然其中使用了各種通用性的技術來訓練系統,但成功構建 AlphaStar(或任何其他 RL 智能體)的真正關鍵是使用了大量數據。實際上最佳的強化學習算法需要進行大量試驗才能達到人類水平,這與我們人類的學習方式正好相反。

結果,強化學習在具有大量可用數據的受限且定義明確的場景上取得了巨大成功。相關閱讀可以查看 DeepMind 《Rainbow: Combining Improvements in Deep Reinforcement Learning》這篇論文。

  • 論文地址:https://arxiv.org/pdf/1710.02298.pdf

如果讓最好的 RL 方法玩某個 Atari 遊戲,它需要一共玩近100個小時(1080萬幀),才能達到和專業人類玩家相同的表現水平。儘管時長最近有所改進,但100小時似乎仍然太多。

自监督学习,如何从数据困境中拯救深度学习?

來源:《 Rainbow: Combining Improvements in Deep Reinforcement Learning》

  • 論文地址:https://arxiv.org/pdf/1710.02298.pdf

有關 AlphaStar 的更多信息,可以查看這篇文章:

  • 文章地址:https://blog.deeplearning.ai/blog/the-batch-google-achieves-quantum-supremacy-amazon-aims-to-sway-lawmakers-ai-predicts-basketball-plays-face-detector-preserves-privacy-1-0-0-0-0

雖然我可以給大家再舉幾個例子,但我想這兩句話足以說明我的意思:

目前深度學習基於大規模數據,當滿足所需環境和約束條件時,這些系統就會產出給人驚喜的結果。但在一些特殊情況下,它們也會完全失效。

讓我們回到 ImageNet 分類問題:ImageNet 數據庫的人類識別錯誤率約為5.1%,而目前最先進的深度學習 top-5 準確性約為1.8%。

  • 論文地址:https://paperswithcode.com/sota/image-classification-on-imagenet

因此我們可以完美地證明:深度學習在 ImageNet 這項任務上已經比人類做的更好。但是真的是這樣嗎?

如果是這樣的話,我們怎麼解釋如下的問題呢?

自监督学习,如何从数据困境中拯救深度学习?

來源:《 Attacking Machine Learning with Adversarial Examples》

  • 論文地址:https://openai.com/blog/adversarial-example-research/

我們可以將這些在互聯網上非常流行的對抗樣本(adversarial examples)看作是設計用於誤導機器學習模型的優化任務。相關閱讀可以查看下面這篇文章:

  • 文章地址:https://openai.com/blog/adversarial-example-research/

這個想法很簡單:

我們如何讓分類器將以前歸類為“熊貓”的圖像歸類為“長臂猿”?

我們可以簡單地認為被精心設計的輸入樣本導致了 ML 模型分類錯誤。

自监督学习,如何从数据困境中拯救深度学习?

來源:《One Pixel Attack for Fooling Deep Neural Networks》

  • 論文地址:https://arxiv.org/pdf/1710.08864.pdf

正如我們所見,優化效果好到我們(用肉眼)無法察覺到真實圖像(左)和對抗圖像(右)之間的差異。實際上,造成分類錯誤的噪聲不是任何類型的已知信號。相反它是經過精心設計用於發現模型中的隱藏誤差。並且最近的研究表明:在某些情況我們只需要改變1個像素,就可以成功誤導最好的深度學習分類器,詳細討論可以查看這篇論文:

  • 論文地址:https://arxiv.org/pdf/1710.08864.pdf

在這一點上,我們可以看到問題開始相互疊加。我們不僅需要大量樣本來學習新任務,還需要確保我們的模型學習正確的表徵。

油管視頻:https://www.youtube.com/watch?v=piYnd_wYlT8

我們看到深度學習系統失敗時產生了一個有趣的討論:為什麼 我們人類不會輕易被對抗樣本誤導呢?

2、建立和利用先驗知識

有的人說當我們需要掌握一項新任務時,我們實際上並沒有從頭開始學習它。相反,我們使用了我們一生中積累的許多先驗知識。

自监督学习,如何从数据困境中拯救深度学习?

牛頓發現萬有引力定律

我們瞭解重力及其含義,知道如果讓炮彈和羽毛從同一起點落下,由於兩個物體的空氣阻力不同,炮彈將先到達地面;知道物體不能漂浮在空中;瞭解有關世界運作方式的常識。我們知道如果我們自己的父親有孩子,他或她將是自己的兄弟姐妹;知道如果我們讀了一篇文章說某人出生於 1900 年代,那麼他/她可能不再活著,因為我們(通過觀察世界)知道人們的壽命通常不會超過 120 歲。

我們瞭解事件之間的因果關係。最神奇的是我們實際上很早就學會了許多高級概念。實際上,我們僅用6~7個月就學會了重力和慣性等概念,而在這個時期我們與世界的互動幾乎為0!

自监督学习,如何从数据困境中拯救深度学习?

來源:《Early Conceptual Acquisition in Infants [from Emmanuel Dupoux].》, Yann LeCun講義

  • https://drive.google.com/file/d/12pDCno02FJPDEBk4iGuuaj8b2rr48Hh0/view

從這種意義上講,有人可能會說將算法性能與人類能力進行比較是“不公平的”。

Yann LeCun 在關於自監督學習的研究中,認為至少有3種獲取知識的方法。

(1)通過觀察

(2)通過監督(大部分來自家長和老師)

(3)通過強化反饋

論文地址:https://www.facebook.com/epflcampus/videos/1960325127394608

自监督学习,如何从数据困境中拯救深度学习?

人類通過生活獲得不同知識的來源。通過觀察/互動、監督和反饋來學習

但是如果以嬰兒為例,那麼這個年齡與外界的互動幾乎沒有。儘管如此,嬰兒還是成功建立了物理世界的直覺模型。因此像重力這樣的高級知識只能通過純粹的觀察來學習——至少,我還沒有看到任何父母教一個6個月大的嬰兒物理。

直到我們長大一些掌握語言並開始上學時,監督和互動(帶有反饋)才變得更加重要。但更重要的是,當我們處於生命的這些階段時,我們已經建立了一個魯棒性的模型世界。這可能是人類比當前機器更高效處理數據的主要原因之一。

正如 LeCun 所說,強化學習就像蛋糕上的櫻桃。監督學習是錦上添花,而自監督學習才是蛋糕!

自监督学习,如何从数据困境中拯救深度学习?

來源:Yann LeCun(https://drive.google.com/drive/folders/0BxKBnD5y2M8NUXhZaXBCNXE4QlE)

3、自監督學習

自監督學習系統學會通過輸入的其他部分預測輸入的一部分。

—— LeCun

自監督學習源於無監督學習, 解決從未標記的數據中學習語義特徵的問題。本文中我們最關心的是在計算機視覺領域的自我監督。

通常的方法是通過設計一個“名義任務”將無監督的問題轉換為有監督的任務。通常,名義任務不會有什麼新的產出,它的目的是使網絡學習如何從數據中捕獲有用的特徵。

名義任務與常見的監督問題有相似之處。

我們知道監督訓練需要標註。轉而變成通常需要人工標註者的不斷努力。但在許多情況下,標註非常昂貴或無法獲得。我們也知道學習模型天生需要數據,這導致大規模的標註數據集已成為學習模型進一步發展的主要壁壘之一。

同樣,自監督學習也需要標註來訓練名義任務。然而與名義任務的關鍵不同在於:用於名義任務的標註(偽標註)的特徵是不同的。

實際上對於自監督訓練,偽標籤僅來自數據特徵本身。

換句話說偽數據不需要人工標註。確實,自我學習和監督學習之間的主要區別在於標註的來源。

(1)如果標註來自標註者(像大多數數據集一樣),則這是一項監督任務。

(2)如果標註是從數據中獲取,那麼在這種情況下我們可以自動生成它們,則這是一項自監督學習。

最近的研究提出了許多名義任務。最常見的有:

(1)圖片旋轉(Rotation)

(2)圖像拼接(Jigsaw puzzle )

(3)圖像著色(Image Colorization)

(4)圖像修復(Image inpainting)

(5)用 GANs 生成圖像/視頻(Image/Video Generation using GANs)

  • 論文地址:https://arxiv.org/abs/1902.06162

自监督学习,如何从数据困境中拯救深度学习?

來源:《Self-supervised Visual Feature Learning with Deep Neural Networks: A Survey》

在自監督的訓練期間,我們訓練網絡從而來學習名義任務。同樣,根據數據本身自動生成偽標籤用來訓練目標。訓練結束後,我們通常將學習到的視覺特徵作為知識轉譯給下游任務(downstream task)。

通常,下游任務可以是任何監督問題。目的是用自監督特徵改善下游任務的性能。

通常下游任務的最大問題是數據有限和過度擬合。這裡,我們可以看到基於大型標註數據庫(如 ImageNet )預訓練卷積神經網絡的普通遷移學習的相似性。但有一個關鍵的優勢:通過自監督訓練,我們可以在難以置信的大型數據庫上對模型進行預訓練而無需擔心人為標籤。

此外, 名義任務和普通分類任務之間有一個細微差別。在純分類任務中,網絡學習表徵是為了分離特徵空間中的類。在自監督學習中,名義任務通常會促使網絡學習更多的通用概念。

以圖像著色這一名義任務為例:為了擅長圖像著色,網絡必須學習通用用途的特徵,這些特徵解釋了數據集中對象的特徵,包括物體的形狀、一般紋理、怕光、陰影、遮擋等。

總之,通過解決名義任務,網絡將學習容易轉譯給學習新問題的語義特徵。換句話說:我們的目標是在進行監督之前從未標註的數據中學習有用的表徵。

4、結論

自監督學習讓我們能夠沒有大規模標註數據也能獲得優質的表徵,反而我們可以使用大量的未標註數據並且優化預定義的 pretext 任務。然後我們可以使用這些特性來學習缺乏數據的新任務。

相關文獻可參考原文:https://towardsdatascience.com/self-supervised-learning-and-the-quest-for-reducing-labeled-data-in-deep-learning-db59a563e25b?gi=60c8260b84fc


分享到:


相關文章: