從感知機到Transformer,一文概述深度學習簡史

機器之心發表於2022-05-24

從感知機到Transformer,一文概述深度學習簡史

1958 年:感知機的興起

1958 年,弗蘭克 · 羅森布拉特發明了感知機,這是一種非常簡單的機器模型,後來成為當今智慧機器的核心和起源。

感知機是一個非常簡單的二元分類器,可以確定給定的輸入影像是否屬於給定的類。為了實現這一點,它使用了單位階躍啟用函式。使用單位階躍啟用函式,如果輸入大於 0,則輸出為 1,否則為 0。

下圖是感知機的演算法。
從感知機到Transformer,一文概述深度學習簡史
感知

Frank 的意圖不是將感知機構建為演算法,而是構建成一種機器。感知機是在名為 Mark I 感知機的硬體中實現的。Mark I 感知機是一臺純電動機器。它有 400 個光電管(或光電探測器),其權重被編碼到電位器中,權重更新(發生在反向傳播中)由電動機執行。下圖是 Mark I 感知機。
從感知機到Transformer,一文概述深度學習簡史
Mark I 感知機。圖片來自美國國家歷史博物館

就像你今天在新聞中看到的關於神經網路的內容一樣,感知機也是當時的頭條新聞。《紐約時報》報導說,“[海軍] 期望電子計算機的初步模型能夠行走、說話、觀察、書寫、自我複製並意識到它的存在”。今天,我們都知道機器仍然難以行走、說話、觀察、書寫、複製自己,而意識則是另一回事。

Mark I 感知機的目標僅僅是識別影像,而當時它只能識別兩個類別。人們花了一些時間才知道新增更多層(感知機是單層神經網路)可以使網路具有學習複雜功能的能力。這進一步產生了多層感知機 (MLP)。

1982~1986 : 迴圈神經網路 (RNN)

在多層感知機顯示出解決影像識別問題的潛力之後,人們開始思考如何對文字等序列資料進行建模。

迴圈神經網路是一類旨在處理序列的神經網路。與多層感知機 (MLP) 等前饋網路不同,RNN 有一個內部反饋迴路,負責記住每個時間步的資訊狀態。

從感知機到Transformer,一文概述深度學習簡史

前饋網路與迴圈神經網路

第一種 RNN 單元在 1982 年到 1986 年之間被發現,但它並沒有引起人們的注意,因為簡單的 RNN 單元在用於長序列時會受到很大影響,主要是由於記憶力短和梯度不穩定的問題。

1998:LeNet-5:第一個卷積神經網路架構

LeNet-5 是最早的卷積網路架構之一,於 1998 年用於文件識別。LeNet-5 由 3 個部分組成:2 個卷積層、2 個子取樣或池化層和 3 個全連線層。卷積層中沒有啟用函式

正如論文所說,LeNet-5 已進行商業化部署,每天讀取數百萬張支票。下面是 LeNet-5 的架構。該影像取自其原始論文。
從感知機到Transformer,一文概述深度學習簡史
LeNet-5 在當時確實是一個有影響力的東西,但它(常規的卷積網路)直到 20 年後才受到關注!LeNet-5 建立在早期工作的基礎上,例如福島邦彥提出的第一個卷積神經網路、反向傳播(Hinton 等人,1986 年)和應用於手寫郵政編碼識別的反向傳播(LeCun 等人,1989 年)。

1998:長短期記憶(LSTM)

由於梯度不穩定的問題,簡單 RNN 單元無法處理長序列問題。LSTM 是可用於處理長序列的 RNN 版本。LSTM 基本上是 RNN 單元的極端情況。

LSTM 單元的一個特殊設計差異是它有一個門機制,這是它可以控制多個時間步長的資訊流的基礎。

簡而言之,LSTM 使用門來控制從當前時間步到下一個時間步的資訊流,有以下 4 種方式:
  • 輸入門識別輸入序列。

  • 遺忘門去掉輸入序列中包含的所有不相關資訊,並將相關資訊儲存在長期記憶中。

  • LTSM 單元更新更新單元的狀態值。

  • 輸出門控制必須傳送到下一個時間步的資訊。

從感知機到Transformer,一文概述深度學習簡史

LSTM 架構。圖片取自 MIT 的課程《6.S191 Introduction to Deep Learning》

LSTM 處理長序列的能力使其成為適合各種序列任務的神經網路架構,例如文字分類、情感分析、語音識別、影像標題生成和機器翻譯

LSTM 是一種強大的架構,但它的計算成本很高。2014 年推出的 GRU(Gated Recurrent Unit)可以解決這個問題。與 LSTM 相比,它的引數更少,而且效果也很好。

2012 年:ImageNet 挑戰賽、AlexNet 和 ConvNet 的興起

如果跳過 ImageNet 大規模視覺識別挑戰賽 (ILSVRC) 和 AlexNet,就幾乎不可能討論神經網路深度學習的歷史。

ImageNet 挑戰賽的唯一目標是評估大型資料集上的影像分類和物件分類架構。它帶來了許多新的、強大的、有趣的視覺架構,我們將簡要回顧這些架構。

挑戰賽始於 2010 年,但在 2012 年發生了變化,AlexNet 以 15.3% 的 Top 5 低錯誤率贏得了挑戰,這幾乎是之前獲勝者錯誤率的一半。AlexNet 由 5 個卷積層、隨後的最大池化層、3 個全連線層和一個 softmax 層組成。AlexNet 提出了深度卷積神經網路可以很好地處理視覺識別任務的想法。但當時,這個觀點還沒有深入到其他應用上!

在隨後的幾年裡,ConvNets 架構不斷變得更大並且工作得更好。例如,有 19 層的 VGG 以 7.3% 的錯誤率贏得了挑戰。GoogLeNet(Inception-v1) 更進一步,將錯誤率降低到 6.7%。2015 年,ResNet(Deep Residual Networks)擴充套件了這一點,並將錯誤率降低到 3.6%,並表明透過殘差連線,我們可以訓練更深的網路(超過 100 層),在此之前,訓練如此深的網路是不可能的。之前人們發現更深層次的網路工作得更好,這導致了其他新架構,如 ResNeXt、Inception-ResNet、DenseNet、Xception 等。

讀者可以在這裡找到這些架構和其他現代架構的總結和實現:https://github.com/Nyandwi/ModernConvNets

從感知機到Transformer,一文概述深度學習簡史

ModernConvNets 庫。

從感知機到Transformer,一文概述深度學習簡史

ImageNet 挑戰賽。圖片來自課程《 CS231n》

2014 年 : 深度生成網路

生成網路用於從訓練資料中生成或合成新的資料樣本,例如影像和音樂。

生成網路有很多種型別,但最流行的型別是由 Ian Goodfellow 在 2014 年建立的生成對抗網路 (GAN)。GAN 由兩個主要元件組成:生成假樣本的生成器和區分真實樣本和生成器生成樣本的判別器。生成器和鑑別器可以說是互相競爭的關係。他們都是獨立訓練的,在訓練過程中,他們玩的是零和遊戲。生成器不斷生成欺騙判別器的假樣本,而判別器則努力發現那些假樣本(參考真實樣本)。在每次訓練迭代中,生成器在生成接近真實的假樣本方面做得更好,判別器必須提高標準來區分不真實的樣本和真實樣本。

GAN 一直是深度學習社群中最熱門的事物之一,該社群以生成偽造的影像和 Deepfake 影片而聞名。如果讀者對 GAN 的最新進展感興趣,可以閱讀 StyleGAN2、DualStyleGAN、ArcaneGAN 和 AnimeGANv2 的簡介。如需 GAN 資源的完整列表,請檢視 Awesome GAN 庫:https://github.com/nashory/gans-awesome-applications。下圖說明了 GAN 的模型架構。
從感知機到Transformer,一文概述深度學習簡史
生成對抗網路(GAN)

GAN 是生成模型的一種。其他流行的生成模型型別還有 Variation Autoencoder (變分自編碼器,VAE)、AutoEncoder (自編碼器)和擴散模型等。

2017 年:Transformers 和注意力機制

時間來到 2017 年。ImageNet 挑戰賽結束了。新的卷積網路架構也被製作出來。計算機視覺社群的每個人都對當前的進展感到高興。核心計算機視覺任務(影像分類目標檢測影像分割)不再像以前那樣複雜。人們可以使用 GAN 生成逼真的影像。NLP 似乎落後了。但是隨後出現了一些事情,並且在整個網路上都成為了頭條新聞:一種完全基於注意力機制的新神經網路架構橫空出世。並且 NLP 再次受到啟發,在隨後的幾年,注意力機制繼續主導其他方向(最顯著的是視覺)。該架構被稱為 Transformer 。

在此之後的 5 年,也就是現在,我們在這裡談論一下這個最大的創新成果。Transformer 是一類純粹基於注意力機制神經網路演算法。Transformer 不使用迴圈網路或卷積。它由多頭注意力、殘差連線、層歸一化、全連線層和位置編碼組成,用於保留資料中的序列順序。下圖說明了 Transformer 架構。

從感知機到Transformer,一文概述深度學習簡史

圖片來自於《Attention Is All You Need》

Transformer 徹底改變了 NLP,目前它也在改變著計算機視覺領域。在 NLP 中,它被用於機器翻譯、文字摘要、語音識別、文字補全、文件搜尋等。

讀者可以在其論文 《Attention is All You Need》 中瞭解有關 Transformer 的更多資訊。

2018 年至今

自 2017 年以來,深度學習演算法、應用和技術突飛猛進。為了清楚起見,後來的介紹是按類別劃分的。在每個類別中,我們都會重新審視主要趨勢和一些最重要的突破。

Vision Transformers

Transformer 在 NLP 中表現出優異的效能後不久,一些勇於創新的人就迫不及待地將注意力機制放到了影像上。在論文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》中,谷歌的幾位研究人員表明,對直接在影像塊序列上執行的正常 Transformer 進行輕微修改可以在影像分類資料集上產生實質性的結果。他們將他們的架構稱為 Vision Transformer (ViT),它在大多數計算機視覺基準測試中都有體現(在作者撰寫本文時,ViT 是 Cifar-10 上最先進的分類模型)。

ViT 設計師並不是第一個嘗試在識別任務中使用注意力機制的人。我們可以在論文 Attention Augmented Convolutional Networks 中找到第一個使用的記錄,這篇論文試圖結合自注意力機制和卷積(擺脫卷積主要是由於 CNN 引入的空間歸納偏置)。另一個例子見於論文《Visual Transformers: Token-based Image Representation and Processing for Computer Vision,這篇論文在基於濾波器的 token 或視覺 token 上執行 Transformer。這兩篇論文和許多其他未在此處列出的論文突破了一些基線架構(主要是 ResNet)的界限,但當時並沒有超越當前的基準。ViT 確實是最偉大的論文之一。這篇論文最重要的見解之一是 ViT 設計師實際上使用影像 patch 作為輸入表示。他們對 Transformer 架構沒有太大的改變。
從感知機到Transformer,一文概述深度學習簡史
Vision Transformer(ViT)

除了使用影像 patch 之外,使 Vision Transformer 成為強大架構的結構是 Transformer 的超強並行性及其縮放行為。但就像生活中的一切一樣,沒有什麼是完美的。一開始,ViT 在視覺下游任務(目標檢測和分割)上表現不佳。

在引入 Swin Transformers 之後,Vision Transformer 開始被用作目標檢測影像分割等視覺下游任務的骨幹網路。Swin Transformer 超強效能的核心亮點是由於在連續的自注意力層之間使用了移位視窗。下圖描述了 Swin Transformer 和 Vision Transformer (ViT) 在構建分層特徵圖方面的區別。

從感知機到Transformer,一文概述深度學習簡史

圖片來自 Swin Transformer 原文

Vision Transformer 一直是近來最令人興奮的研究領域之一。我們可以在這裡討論許多 Vision Transformers 論文,但讀者可以在論文《Transformers in Vision: A Survey》中瞭解更多資訊。其他最新視覺 Transformer 還有 CrossViT、ConViT 和 SepViT 等。

視覺和語言模型

視覺和語言模型通常被稱為多模態。它們是涉及視覺和語言的模型,例如文字到影像生成(給定文字,生成與文字描述匹配的影像)、影像字幕(給定影像,生成其描述)和視覺問答(給定一個影像和關於影像中內容的問題,生成答案)。Transformer 在視覺和語言領域的成功很大程度上促成了多模型作為一個單一的統一網路。

實際上,所有視覺和語言任務都利用了預訓練技術。在計算機視覺中,預訓練需要對在大型資料集(通常是 ImageNet)上訓練的網路進行微調,而在 NLP 中,往往是對預訓練的 BERT 進行微調。要了解有關 V-L 任務中預訓練的更多資訊,請閱讀論文《A Survey of Vision-Language Pre-Trained Models》。有關視覺和語言任務、資料集的一般概述,請檢視論文《Trends in Integration of Vision and Language Research: A Survey of Tasks, Datasets, and Methods》。

前段時間,OpenAI 釋出了 DALL·E 2(改進後的 DALL·E),這是一種可以根據文字生成逼真影像的視覺語言模型。現有的文字轉影像模型有很多,但 DALL·E 2 的解析度、影像標題匹配和真實感都相當出色。

DALL·E 2 尚未對公眾開放,但你可以加入候補名單。以下是 DALL·E 2 建立的一些影像示例。
從感知機到Transformer,一文概述深度學習簡史
上面呈現的 DALL·E 2 生成的影像取自一些 OpenAI 員工,例如 @sama、@ilyasut、@model_mechanic 和 openaidalle。

大規模語言模型 (LLM)

語言模型有多種用途。它們可用於預測句子中的下一個單詞或字元、總結一段文件、將給定文字從一種語言翻譯成另一種語言、識別語音或將一段文字轉換為語音。

開玩笑地說,發明 Transformers 的人必須為語言模型在朝著大規模引數化方向前進受到指責(但實際上沒有人應該受到責備,Transformers 是 2010 年代十年中最偉大的發明之一,大模型令人震驚的地方在於:如果給定足夠的資料和計算,它總能更好地工作)。在過去的 5 年中,語言模型的大小一直在不斷增長。

在引入論文《Attention is all you need》一年後,大規模語言模型開始出現。2018 年,OpenAI 釋出了 GPT(Generative Pre-trained Transformer),這是當時最大的語言模型之一。一年後,OpenAI 釋出了 GPT-2,一個擁有 15 億個引數的模型。又一年後,他們釋出了 GPT-3,它有 1750 億個引數。GPT-3 用了 570GB 的 文字來訓練。這個模型有 175B 的引數,模型有 700GB 大。根據 lambdalabs 的說法,如果使用在市場上價格最低的 GPU 雲,訓練它需要 366 年,花費 460 萬美元!

GPT-n 系列型號僅僅是個開始。還有其他更大的模型接近甚至比 GPT-3 更大。如:NVIDIA Megatron-LM 有 8.3B 引數。最新的 DeepMind Gopher 有 280B 引數。2022 年 4 月 12 日,DeepMind 釋出了另一個名為 Chinchilla 的 70B 語言模型,儘管比 Gopher、GPT-3 和 Megatron-Turing NLG(530B 引數)小,但它的效能優於許多語言模型。Chinchilla 的論文表明,現有的語言模型是訓練不足的,具體來說,它表明透過將模型的大小加倍,資料也應該加倍。但是,幾乎在同一周內又出現了具有 5400 億個引數的 Google Pathways 語言模型(PaLM)!

從感知機到Transformer,一文概述深度學習簡史

Chinchilla 語言模型

程式碼生成模型

程式碼生成是一項涉及補全給定程式碼或根據自然語言或文字生成程式碼的任務,或者簡單地說,它是可以編寫計算機程式的人工智慧系統。可以猜到,現代程式碼生成器是基於 Transformer 的。

我們可以確定地說,人們已經開始考慮讓計算機編寫自己的程式了(就像我們夢想教計算機做的所有其他事情一樣),但程式碼生成器在 OpenAI 釋出 Codex 後受到關注。Codex 是在 GitHub 公共倉庫和其他公共原始碼上微調的 GPT-3。OpenAI 表示:“OpenAI Codex 是一種通用程式設計模型,這意味著它基本上可以應用於任何程式設計任務(儘管結果可能會有所不同)。我們已經成功地將它用於編譯、解釋程式碼和重構程式碼。但我們知道,我們只觸及了可以做的事情的皮毛。” 目前,由 Codex 支援的 GitHub Copilot 扮演著結對程式設計師的角色。

在我使用 Copilot 後,我對它的功能感到非常驚訝。作為不編寫 Java 程式的人,我用它來準備我的移動應用程式(使用 Java)考試。人工智慧幫助我準備學術考試真是太酷了!

在 OpenAI 釋出 Codex 幾個月後,DeepMind 釋出了 AlphaCode,這是一種基於 Transformer 的語言模型,可以解決程式設計競賽問題。AlphaCode 釋出的博文稱:“AlphaCode 透過解決需要結合批判性思維、邏輯、演算法、編碼和自然語言理解的新問題,在程式設計競賽的參與者中估計排名前 54%。” 解決程式設計問題(或一般的競爭性程式設計)非常困難(每個做過技術面試的人都同意這一點),正如 Dzmitry 所說,擊敗 “人類水平仍然遙遙無期”。

前不久,來自 Meta AI 的科學家釋出了 InCoder,這是一種可以生成和編輯程式的生成模型
更多關於程式碼生成的論文和模型可以在這裡找到:https://paperswithcode.com/task/code-generation/codeless

再次回到感知

在卷積神經網路和 Transformer 興起之前的很長一段時間裡,深度學習都圍繞著感知機展開。ConvNets 在取代 MLP 的各種識別任務中表現出優異的效能。視覺 Transformer 目前也展示出似乎是一個很有前途的架構。但是感知機完全死了嗎?答案可能不是。

在 2021 年 7 月,兩篇基於感知機的論文被發表。一個是 MLP-Mixer: An all-MLP Architecture for Vision,另一個是 Pay Attention to MLPs(gMLP) .

MLP-Mixer 聲稱卷積和注意力都不是必需的。這篇論文僅使用多層感知機 (MLP),就在影像分類資料集上取得了很高的準確性。MLP-Mixer 的一個重要亮點是它包含兩個主要的 MLP 層:一個獨立應用於影像塊(通道混合),另一個層跨塊應用(空間混合)。

gMLP 還表明,透過避免使用自注意和卷積(當前 NLP 和 CV 的實際使用的方式),可以在不同的影像識別和 NLP 任務中實現很高的準確性。
從感知機到Transformer,一文概述深度學習簡史
讀者顯然不會使用 MLP 去獲得最先進的效能,但它們與最先進的深度網路的可比性卻是令人著迷的。

再次使用卷積網路:2020 年代的卷積網路

自 Vision Transformer(2020 年)推出以來,計算機視覺的研究圍繞著 Transformer 展開(在 NLP 中,transformer 已經是一種規範)。Vision Transformer (ViT) 在影像分類方面取得了最先進的結果,但在視覺下游任務(物件檢測和分割)中效果不佳。隨著 Swin Transformers 的推出, Vision Transformer 很快也接管了視覺下游任務。

很多人(包括我自己)都喜歡卷積神經網路。卷積神經網路確實能起效,而且放棄已經被證明有效的東西是很難的。這種對深度網路模型結構的熱愛讓一些傑出的科學家回到過去,研究如何使卷積神經網路(準確地說是 ResNet)現代化,使其具有和 Vision Transformer 同樣的吸引人的特徵。特別是,他們探討了「Transformers 中的設計決策如何影響卷積神經網路的效能?」這個問題。他們想把那些塑造了 Transformer 的秘訣應用到 ResNet 上。

Meta AI 的 Saining Xie 和他的同事們採用了他們在論文中明確陳述的路線圖,最終形成了一個名為 ConvNeXt 的 ConvNet 架構。ConvNeXt 在不同的基準測試中取得了可與 Swin Transformer 相媲美的結果。讀者可以透過 ModernConvNets 庫(現代 CNN 架構的總結和實現)瞭解更多關於他們採用的路線圖。

結論

深度學習是一個非常有活力、非常寬廣的領域。很難概括其中所發生的一切,作者只觸及了表面,論文多到一個人讀不完。很難跟蹤所有內容。例如,我們沒有討論強化學習深度學習演算法,如 AlphaGo、蛋白質摺疊 AlphaFold(這是最大的科學突破之一)、深度學習框架的演變(如 TensorFlow 和 PyTorch),以及深度學習硬體。或許,還有其他重要的事情構成了我們沒有討論過的深度學習歷史、演算法和應用程式的很大一部分。

作為一個小小的免責宣告,讀者可能已經注意到,作者偏向於計算機視覺深度學習。可能還有其他專門為 NLP 設計的重要深度學習技術作者沒有涉及。

此外,很難確切地知道某項特定技術是什麼時候發表的,或者是誰最先發表的,因為大多數奇特的東西往往受到以前作品的啟發。如有紕漏,讀者可以去原文評論區與作者討論。

原文連結:https://www.getrevue.co/profile/deeprevision/issues/a-revised-history-of-deep-learning-issue-1-1145664

相關文章