原文:Deep Learning’s Most Important Ideas[1]
作者:Denny Britz(ML 研究員,Google Brain 前成員)
譯者:REN
深度學習是一個瞬息萬變的領域,層出不窮的論文和新思路可能會令人不知所措。即使是經驗豐富的研究人員,也很難準確將研究成果傳達給公司的公關部門,繼而傳達給大眾。
對於初學者來說,理解和實現這些技術有利於打下堅實的理論基礎,是入門的最佳方法。
在深度學習領域,很多技術都可以跨域多個應用領域,包括計算機視覺,自然語言,語音識別和強化學習等等。在計算機視覺領域使用過深度學習的人,可能很快就能將類似的技術應用到自然語言研究中,即使特定的網絡結構有所不同,但其概念,實現方法和代碼基本一致。
必須強調的是,本文側重於計算機視覺,自然語言,語音識別和強化學習領域,但不會詳細解釋每種深度學習技術,用寥寥數百字解釋清楚一篇幾十頁的論文是不現實的。另外還有一些不容易重現的重要研究,比如 DeepMind 的 AlphaGo 或 OpenAI 的 OpenAI Five(Dota 2 模型),涉及到巨大的工程和運算挑戰,因此也不是討論的重點。
這篇文章的目的,是回顧在深度學習領域影響深遠的成果,概述每種技術及其歷史背景,儘量引導深度學習新人接觸多個領域的基礎技術。它們是這個領域最值得信賴的基石,每一個技術都經過了無數次的引用、使用和改進,經得起推敲。
文末會附上論文和代碼連結。如果想要更好地掌握基礎技術和知識,可以嘗試先不看參考代碼,從零開始用 PyTorch 實現論文中的某些算法。
2012 年:用 AlexNet 和 Dropout 解決 ImageNet 圖像分類
AlexNet 通常被認為是近年來引領深度學習和人工智慧研究蓬勃發展的基礎算法。它是一種深度卷積神經網絡(CNN),基於人工智慧大牛 Yann LeCun 早年間開發的 LeNet 模型。
AlexNet 結合了 GPU 的強大性能和先進的算法,在對 ImageNet 圖像數據集分類時,其表現遠遠超越了之前的所有算法。它證明了神經網絡真的很好用(至少在圖像分類上)。AlexNet 也是首次使用 Dropout 技巧的算法之一,為了防止過擬合。此後 Dropout 成為了提高各種深度學習模型泛化能力的重要工具。
AlexNet 使用的結構,包括一系列卷積層,ReLU 非線性激活函數和最大池化(Max-pooling)已成為公認標準模式,在許多計算機視覺模型結構中都有用到和進一步擴展。
與最新的模型相比,AlexNet 顯得異常簡單,得益於 PyTorch 等強大的軟體庫,僅需幾行代碼即可實現。值得注意的是,目前 AlexNet 的許多實現方法都與最早論文中闡述的有些許不同,目的是為了對卷積神經網絡並行運算。
2013 年:利用深度強化學習玩 Atari 遊戲
基於在圖像識別和 GPU 方面取得的突破,DeepMind 團隊成功利用強化學習(RL)訓練了一個神經網絡,可以通過原始像素輸入來玩 Atari 遊戲。而且在不知道遊戲規則的前提下,相同的神經網絡模型還學會了玩 7 種不同的遊戲,證明了這種方法的泛化性。
強化學習與監督學習(例如圖像分類)的不同之處在於,AI 代理(agent)必須學會在多個時間點上最大化整體獎勵,比如贏得一場比賽,而不僅僅是預測分類標籤。
由於 AI 代理直接與環境交互且每個動作都會影響環境,因此訓練數據不是獨立同分布的(i.i.d.),這使得許多機器學習模型的訓練非常不穩定。這可以使用經驗回放等技術解決。
儘管沒有明顯的算法創新,但 DeepMind 的研究巧妙地結合了當時的現有技術,在 GPU 上訓練的卷積神經網絡,經驗回放以及一些數據處理技巧,從而實現了超出大部分人預期的驚豔結果。這使人們有信心繼續探索深度強化學習技術,以解決更複雜的任務,由此演變出 AlphaGo 圍棋 AI,Dota 2 AI 和星際爭霸 2 AI 等等。
此後,Atari 系列遊戲成為了強化學習研究的基準。最初的算法只能在 7 個遊戲中超越人類,但未來幾年中,更先進的模型開始在越來越多的遊戲中擊敗人類。其中一款名為 「蒙特祖瑪的復仇」 的遊戲因需要長期規劃而聞名,也被認為是最難解決的遊戲之一,於 2018 年被攻克。
今年 4 月,AI 終於在 Atari 的全部 57 款遊戲中超越了人類。
2014 年:採用注意力機制的編碼器 - 解碼器網絡
在自然語言處理領域,儘管有長短期記憶網絡(LSTM)和編碼器 - 解碼器網絡(Encoder-Decoder),能夠處理語言建模和翻譯任務,但其實直到 2014 年注意力機制(Attention Mechanism)的問世,才獲得了跨越式的進步。
在處理語言時,每個標記(token)—— 可能是字符,單詞或介於兩者之間的某種東西 —— 都會被輸入一個循環神經網絡(RNN)之中。例如 LSTM,該網絡可以記住之前一定時間之內的輸入值。
換句話說,句子與時間序列非常相似,每個標記都是一個時間步長。這些循環神經網絡模型通常很難處理長時間的相關性,因為會 「忘記」 較早的輸入值,而且使用梯度下降來優化這些模型同樣非常困難。
新的注意力機制有助於緩解這一問題。它通過引入 「快捷連接(shortcut connections)」,使神經網絡可以自適應選擇 「回顧」 前面的輸入值(將輸入加到輸出上)。在生成特定輸出時,這些連接允許網絡決定哪些輸入很重要。翻譯模型是一個經典例子,在生成翻譯後的輸出字 / 詞時,模型會將其映射到一個或多個特定的輸入字 / 詞。
2014 年:Adam 優化器
訓練神經網絡需要使用優化器使損失函數(比如平均分類錯誤)最小化。優化器負責弄清楚如何調整網絡參數,實現學習目標。
大多數優化器都基於隨機梯度下降(SGD)及其變種。許多優化器本身都包含可調參數,例如學習率(learning rate)。為特定問題找到正確的參數配置,不僅可以減少訓練時間,還可以找到更好的損失函數局部最小值,得到更好的訓練結果。
大型研究實驗室經常運行昂貴的超參數搜索,需要設計非常複雜的學習率變化計劃,以便從優化器中獲得最大收益。有時候,他們找到的最終結果超過了現有基準,但這是花費了大量資金對優化器進行優化的結果。類似的細節經常在論文中被忽略,導致沒有相同預算來優化其優化器的研究人員找不到最優解。
Adam 優化器使用了自適應矩估計方法,對隨機目標函數執行一階梯度優化並自動調整學習率。結果非常可靠,並且對超參數選擇不太敏感。
簡而言之,Adam 不需要像其他優化器一樣進行大量的調整。儘管調整得非常好的 SGD 優化器可以得到更好的結果,但是 Adam 讓研究更容易完成,因為如果無法得到預想中的結果,科研人員至少可以排除優化器調整不當這一原因。
2014/2015 年:生成式對抗網絡(GAN)
生成式模型的目標是創建逼真的數據樣本,例如栩栩如生的假人臉圖片。因為這類模型必須對全部數據分布進行建模(像素很多),而不僅僅是分類圖片,所以它們通常很難訓練。生成式對抗網絡(GAN)就是這樣一種模型。
GAN 的基本思想是訓練兩個神經網絡:生成器和判別器。生成器的目標是生成樣本,蒙蔽判別器,而判別器則是要區分真實圖像和(生成器生成的)虛假圖像。隨著訓練的進行,鑑別器的表現會越來越好,但生成器也會變得更好,生成的圖像也更加逼真。
初代 GAN 只能產生模糊的低解析度圖像,並且訓練起來非常不穩定。但是隨著人們不斷努力,誕生了諸如 DCGAN,Wasserstein GAN,CycleGAN,StyleGAN 等多種多樣的模型,現在已經可以生成高解析度的逼真圖像和視頻。
2015 年:殘差網絡(ResNet)
自 2012 年以來,研究人員在 AlexNet 的基礎上添磚加瓦,發明了性能更好的基於卷積神經網絡的模型,例如 VGGNet 和 Inception 等等。ResNet 是其中最有代表性的一個,標誌著下一個迭代。
目前,ResNet 的變體通常用作各種任務的基準模型,也被用來構建更複雜的模型。
除了在 ILSVRC 2015 分類挑戰中獲得第一名之外,ResNet 的過人之處還在於它的模型深度:論文中提到的最深 ResNet 有 1000 層,並且仍然表現良好,儘管在基準任務上比其 101 和 152 層對應的網絡稍差。由於梯度消失,訓練這種非常深的網絡是一個極具挑戰性的優化問題,幾乎沒有研究人員認為訓練如此深的網絡可以帶來良好的穩定結果。
ResNet 使用了 「身份快捷連接(identity shortcut connections)」 連接來幫助實現梯度流動。解釋這些連接的一種方法是,ResNet 只需要學習從一層到另一層的 「增量 delta」,這通常比學習完整的(傳遞)要容易得多。
2017 年:Transformer
引入注意力機制的 Seq2Seq 模型已經有很好的表現,但缺點在於需要順序計算,很難做到並行。這讓研究人員很難將它們擴大到非常長的序列,即使引入了注意力機制,該模型在構建複雜的長期相關關係時仍然相形見絀。大多數的 「工作」 似乎都在循環層中完成。
Transformer 的出現解決了這些問題,方法是完全消除循環,用多個前饋自我注意力層代替,然後並行處理序列中的所有單詞或符號。由於輸入和輸出之間的路徑較短,更容易通過梯度下降優化,進而實現快速訓練且易於擴展。此外,Transformer 還會使用位置編碼技術,將輸入值的順序告訴神經網絡。
Transformer 的效果超出了所有人的預料。在接下來的幾年中,它成為了絕大多數自然語言處理任務和其他序列任務的標準架構,甚至還用到了計算機視覺領域中。
2018 年:BERT 和微調自然語言處理模型
預訓練是指訓練模型執行某些任務,然後將學到的參數作為初始參數,用於其他類似任務中。這符合人們的直覺:一個已經學會將圖像分類為貓或狗的模型,應該已經掌握了有關圖像和毛茸茸的動物的通用知識。所以微調該模型並對狐狸分類時,人們希望它比從零學習的模型做得更好。
類似地,學會預測句子中下一個單詞的模型應該已經學會了有關人類語言模式的通用知識。人們希望它在翻譯或情緒分析等相關任務中起點更高。
預訓練和微調已在計算機視覺領域作為標準使用許久,但將其運用在自然語言處理中更具挑戰性。大多數表現最好的結果仍來自完全監督模型。隨著 Transformer 的出現,研究人員終於可以更方便的開展預訓練,由此誕生了 ELMo,ULMFiT 和 OpenAI GPT 之類的模型。
BERT 是這種思路的最新成果,許多人認為它開啟了自然語言處理研究的新紀元。該模型在預訓練中會對句子中故意被刪掉的單詞進行預測,還會判斷兩個句子彼此相連的可性能,而不是單純地預訓練如何預測下一個單詞。
完成這些任務不需要標記數據,因此它可以在任何文本上訓練,這意味著取之不盡的訓練數據。該預訓練模型已經學習了一些語言方面的常規屬性,之後對其進行微調就能用來解決監督式任務,例如問題回答或預測情緒。
BERT 在各種各樣的任務中都表現出色,還有 HuggingFace 一類的公司,允許人們輕鬆獲取和微調用於各種自然語言處理任務的 BERT 類模型。時至今日,在 BERT 的基礎上出現了 XLNet,RoBERTa 和 ALBERT 等更加先進的模型。
2019/2020 年及未來:巨大的語言模型和自我監督式學習
縱觀深度學習歷史及其發展趨勢,人們不難發現,可以更好地並行運算,擁有更多數據和更多模型參數的算法一次又一次地擊敗了所謂的 「更聰明的技術」。這種趨勢似乎一直持續至今,OpenAI 放出了擁有 1750 億個參數的巨大語言模型 GPT-3,儘管它只有簡單的訓練目標和標準網絡結構,卻顯示出無可比擬的強大泛化能力。
同樣的趨勢還出現在自我監督學習方法上,比如 SimCLR,它們可以更好地利用未標記的數據。 隨著模型變大和訓練速度變快,那些可以更有效地利用網絡上大量未標記的數據,並將學習到的通用知識轉移到其他任務上的模型將變得越來越有價值。
2012 年:用 AlexNet 和 Dropout 解決 ImageNet 圖像分類·ImageNet Classification with Deep Convolutional Neural Networks (2012)·Improving neural networks by preventing co-adaptation of feature detectors (2012)·One weird trick for parallelizing convolutional neural networks (2014)2013 年:利用深度強化學習玩 Atari 遊戲·Playing Atari with Deep Reinforcement Learning (2013)2014 年:採用注意力機制的編碼器 - 解碼器網絡·Sequence to Sequence Learning with Neural Networks·Neural Machine Translation by Jointly Learning to Align and Translate·Seq2Seq with Attention in PyTorch·Seq2Seq with Attention in TensorFlow·Adam: A Method for Stochastic Optimization·Implementing Adam in Python·PyTorch Adam implementation·TensorFlow Adam implementation·Generative Adversarial Networks·Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks·Deep Residual Learning for Image Recognition·Attention is All You Need·PyTorch: Sequence-to-Sequence Modeling with nn.Transformer and TorchText·Tensorflow: Transformer model for language understanding·HuggingFace Transformers Library·BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding·Fine-Tuning BERT with HuggingFace[1]https://www.kdnuggets.com/2020/09/deep-learnings-most-important-ideas.html未來智能實驗室的主要工作包括:建立AI智能系統智商評測體系,開展世界人工智慧智商評測;開展網際網路(城市)雲腦研究計劃,構建網際網路(城市)雲腦技術和企業圖譜,為提升企業,行業與城市的智能水平服務。
如果您對實驗室的研究感興趣,歡迎加入未來智能實驗室線上平臺。掃描以下二維碼或點擊本文左下角「閱讀原文」