0
大規模標注的數據集的出現是深度學習在計算機視覺領域取得巨大成功的關鍵因素之一。然而監督式學習過于依賴大規模標注數據集,數據集的收集和人工標注需耗費大量的人力成本。自監督模型解決了這一難題,從大規模未標記數據中學習圖像特征,無需使用任何人工標注數據。
每個深度學習實踐者都認同的一件事是:深度學習模型數據低效。
讓我們首先考慮計算機視覺中的主流分類任務。以 ImageNet 數據庫為例,它包含 1000 個不同類別的130 萬張圖像,對于每一個圖像中都有一個人工標注的標簽。
ImageNet 無疑是現在深度學習復興的基石之一。 ImageNet 起源于 2012 年 Krizhevsky 等人所著的論文《Imagenet Classification with Deep Convolutional Neural Networks》。
在這篇文章中, 卷積網絡模型首次大幅度超越了當時最先進的模型。它是在所有的對比模型中唯一一個基于卷積神經網絡的解決方案。此后,卷積神經網絡變得無處不在。
在深度學習之前,研究人員一直認為 ImageNet 挑戰非常困難,其主要原因是 ImageNet 數據集突出的變化性。即便只是找到能覆蓋 ImageNet 中各種犬類的手工特征就已經很不容易。
然而,通過深度學習,我們很快意識到大量的數據導致了 ImageNet 如此困難,同時實際上也是使深度學習如此有效的秘訣。
雖然如此,通過多年的深度學習研究,我們知道了大型數據庫用于訓練精確模型的必要性已成為一個非常重要的問題。并且需要低效的人工標注數據成為一個更大的問題。
而且在當前的深度學習應用中,數據的問題無處不在。以 DeepMind 的 AlphaStar 模型為例。

圖1 圖片來源:《AlphaStar : Mastering the Real-Time Strategy Game StarCraft II》
AlphaStar 深度學習系統使用監督學習和強化學習來操作《星際爭霸2》。在訓練期間,AlphaStar 僅從游戲終端上觀看游戲畫面。DeepMind 研究人員使用可并行訓練大量智能體的分布式策略訓練模型。每個智能體都至少觀看過 200 年的實時《星際爭霸》錄像(不間斷)。 通過像職業選手一樣的訓練,AlphaStar 取得了在官方游戲服務器中的排名超過了99.8%的活躍玩家的這一巨大成功。
雖然其中使用了各種通用性的技術來訓練系統,但成功構建 AlphaStar(或任何其他 RL 智能體)的真正關鍵是使用了大量數據。實際上最佳的強化學習算法需要進行大量試驗才能達到人類水平,這與我們人類的學習方式正好相反。
結果,強化學習在具有大量可用數據的受限且定義明確的場景上取得了巨大成功。相關閱讀可以查看 DeepMind 《Rainbow: Combining Improvements in Deep Reinforcement Learning》這篇論文:
如果讓最好的 RL 方法玩某個 Atari 游戲,它需要一共玩近100個小時(1080萬幀),才能達到和專業人類玩家相同的表現水平。盡管時長最近有所改進,但100小時似乎仍然太多。

圖2 圖片來源:《 Rainbow: Combining Improvements in Deep Reinforcement Learning》
有關 AlphaStar 的更多信息,可以查看這篇文章:
雖然我可以給大家再舉幾個例子,但我想這2句話足以說明我的意思:
目前深度學習基于大規模數據,當滿足所需環境和約束條件時,這些系統就會產出給人驚喜的結果。但在一些特殊情況下,它們也會完全失效。
讓我們回到 ImageNet 分類問題: ImageNet 數據庫的人類識別錯誤率約為5.1%,而目前最先進的深度學習 top-5 準確性約為1.8%。
因此我們可以完美地證明:深度學習在 ImageNet 這項任務上已經比人類做的更好。但是真的是這樣嗎?
如果是這樣的話,我們怎么解釋這些問題呢?

圖3 圖片來源:《 Attacking Machine Learning with Adversarial Examples》
我們可以將這些在互聯網上非常流行的對抗樣本(adversarial examples)看作是設計用于誤導機器學習模型的優化任務。相關閱讀可以查看下面這篇文章:
文章地址:https://openai.com/blog/adversarial-example-research/
這個想法很簡單:
我們如何讓分類器將以前歸類為“熊貓”的圖像歸類為“長臂猿”?
我們可以簡單地認為被精心設計的輸入樣本導致了 ML 模型分類錯誤。

圖4:圖片來源:《One Pixel Attack for Fooling Deep Neural Networks》
正如我們所見,優化效果好到我們(用肉眼)無法察覺到真實圖像(左)和對抗圖像(右)之間的差異。實際上,造成分類錯誤的噪聲不是任何類型的已知信號。相反它是經過精心設計用于發現模型中的隱藏誤差。并且最近的研究表明:在某些情況我們只需要改變1個像素,就可以 成功誤導最好的深度學習分類器,詳細討論可以查看這篇論文:
在這一點上,我們可以看到問題開始相互疊加。 我們不僅需要大量樣本來學習新任務,還需要確保我們的模型學習正確的表征。
油管視頻:https://www.youtube.com/watch?v=piYnd_wYlT8
我們看到深度學習系統失敗時產生了一個有趣的討論:為什么 我們人類不會輕易被對抗樣本誤導呢?
有的人說當我們需要掌握一項新任務時,我們實際上并沒有從頭開始學習它。 相反,我們使用了我們一生中積累的許多先驗知識。

圖6 牛頓發現萬有引力定律
我們了解重力及其含義,知道如果讓炮彈和羽毛從同一起點落下,由于兩個物體的空氣阻力不同,炮彈將先到達地面;知道物體不能漂浮在空中;了解有關世界運作方式的常識。 我們知道如果我們自己的父親有孩子,他或她將是自己的兄弟姐妹;知道如果我們讀了一篇文章說某人出生于 1900 年代,那么他/她可能不再活著,因為我們(通過觀察世界)知道人們的壽命通常不會超過 120 歲。
我們了解事件之間的因果關系。最神奇的是我們實際上很早就學會了許多高級概念。實際上,我們僅用6~7個月就學會了重力和慣性等概念,而在這個時期我們與世界的互動幾乎為0!

圖7 圖片來源:《Early Conceptual Acquisition in Infants [from Emmanuel Dupoux].》, Yann LeCun講義
從這種意義上講,有人可能會說將算法性能與人類能力進行比較是``不公平的''-。
Yann LeCun 在關于自監督學習的研究中,認為至少有3種獲取知識的方法。
(1)通過觀察
(2)通過監督(大部分來自家長和老師)
(3)通過強化反饋

圖8 :人類通過生活獲得不同知識的來源。通過觀察/互動、監督和反饋來學習
但是如果以嬰兒為例,那么這個年齡與外界的互動幾乎沒有。 盡管如此,嬰兒還是成功建立了物理世界的直覺模型。 因此像重力這樣的高級知識只能通過純粹的觀察來學習——至少,我還沒有看到任何父母教一個6個月大的嬰兒物理。
直到我們長大一些掌握語言并開始上學時,監督和互動(帶有反饋)才變得更加重要。 但更重要的是,當我們處于生命的這些階段時,我們已經建立了一個魯棒性的模型世界。 這可能是人類比當前機器更高效處理數據的主要原因之一。
正如 LeCun 所說,強化學習就像蛋糕上的櫻桃。 監督學習是錦上添花,而自監督學習才是蛋糕!

圖9 圖片來源:Yann LeCun(https://drive.google.com/drive/folders/0BxKBnD5y2M8NUXhZaXBCNXE4QlE)
自監督學習系統學會通過輸入的其他部分預測輸入的一部分。
—— LeCun
自監督學習源于無監督學習, 解決從未標記的數據中學習語義特征的問題。本文中我們最關心的是在計算機視覺領域的自我監督。
通常的方法是通過設計一個“名義任務”將無監督的問題轉換為有監督的任務。 通常,名義任務不會有什么新的產出,它的目的是使網絡學習如何從數據中捕獲有用的特征。
名義任務與常見的監督問題有相似之處。
我們知道監督訓練需要標注。轉而變成通常需要人工標注者的不斷努力。 但在許多情況下,標注非常昂貴或無法獲得。 我們也知道學習模型天生需要數據,這導致大規模的標注數據集已成為學習模型進一步發展的主要壁壘之一。
同樣,自監督學習也需要標注來訓練名義任務。然而與名義任務的關鍵不同在于:用于名義任務的標注(偽標注)的特征是不同的。
實際上對于自監督訓練,偽標簽僅來自數據特征本身。
換句話說偽數據不需要人工標注。 確實,自我學習和監督學習之間的主要區別在于標注的來源。
(1)如果標注來自標注者(像大多數數據集一樣),則這是一項監督任務。
(2)如果標注是從數據中獲取,那么在這種情況下我們可以自動生成它們,則這是一項自監督學習。
最近的研究提出了許多名義任務。最常見的有:
(1)圖片旋轉(Rotation)
(2)圖像拼接(Jigsaw puzzle )
(3)圖像著色(Image Colorization)
(4)圖像修復(Image inpainting)
(5)用 GANs 生成圖像/視頻(Image/Video Generation using GANs)
如果想要了解更多關于每個 pretext 任務的介紹,可以查看《Self-supervised Visual Feature Learning with Deep Neural Networks: A Survey》這篇論文:

圖10:圖片來源:《Self-supervised Visual Feature Learning with Deep Neural Networks: A Survey》
在自監督的訓練期間,我們挑戰網絡以學習名義任務。同樣,根據數據本身自動生成偽標簽用來訓練目標。 訓練結束后,我們通常將學習到的視覺特征作為知識轉譯給下游任務(downstream task)。
通常,下游任務可以是任何監督問題。 目的是用自監督特征改善下游任務的性能。
通常下游任務的最大問題是數據有限和過度擬合。這里,我們可以看到基于大型標注數據庫(如 ImageNet )預訓練卷積神經網絡的普通遷移學習的相似性。但有一個關鍵的優勢:通過自監督訓練,我們可以在難以置信的大型數據庫上對模型進行預訓練而無需擔心人為標簽。
此外, 名義任務和普通分類任務之間有一個細微差別。在純分類任務中,網絡學習表征是為了分離特征空間中的類。在自監督學習中,名義任務通常會促使網絡學習更多的通用概念。
以圖像著色這一名義任務為例:為了擅長圖像著色,網絡必須學習通用用途的特征,這些特征解釋了數據集中對象的特征,包括物體的形狀、一般紋理、怕光、陰影、遮擋等。
總之,通過解決名義任務,網絡將學習容易轉譯給學習新問題的語義特征。換句話說:我們的目標是在進行監督之前從未標注的數據中學習有用的表征。
自監督學習讓我們能夠沒有大規模標注數據也能獲得優質的表征,反而我們可以使用大量的未標注數據并且優化預定義的 pretext 任務。然后我們可以使用這些特性來學習缺乏數據的新任務。
相關文獻可參考原文:https://towardsdatascience.com/self-supervised-learning-and-the-quest-for-reducing-labeled-data-in-deep-learning-db59a563e25b?gi=60c8260b84fc 雷鋒網雷鋒網雷鋒網
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。