姓名:雷欣嵐;學號:21021210909;學院:電子工程學院
【嵌牛導讀】深度學習簡史
【嵌牛正文】
1
1958 年:感知機的興起
1958 年,弗蘭克 · 羅森布拉特發明了感知機,這是一種非常簡單的機器模型,后來成為當今智能機器的核心和起源。
感知機是一個非常簡單的二元分類器,可以確定給定的輸入圖像是否屬于給定的類。為了實現這一點,它使用了單位階躍激活函數。使用單位階躍激活函數,如果輸入大于 0,則輸出為 1,否則為 0。
感知機
Frank 的意圖不是將感知機構建為算法,而是構建成一種機器。感知機是在名為 Mark I 感知機的硬件中實現的。Mark I 感知機是一臺純電動機器。它有 400 個光電管(或光電探測器),其權重被編碼到電位器中,權重更新(發生在反向傳播中)由電動機執行。
就像你今天在新聞中看到的關于神經網絡的內容一樣,感知機也是當時的頭條新聞。《紐約時報》報道說,“[海軍] 期望電子計算機的初步模型能夠行走、說話、觀察、書寫、自我復制并意識到它的存在”。今天,我們都知道機器仍然難以行走、說話、觀察、書寫、復制自己,而意識則是另一回事。
Mark I 感知機的目標僅僅是識別圖像,而當時它只能識別兩個類別。人們花了一些時間才知道添加更多層(感知機是單層神經網絡)可以使網絡具有學習復雜功能的能力。這進一步產生了多層感知機 (MLP)。
2
1982-1986 : 循環神經網絡 (RNN)
在多層感知機顯示出解決圖像識別問題的潛力之后,人們開始思考如何對文本等序列數據進行建模。
循環神經網絡是一類旨在處理序列的神經網絡。與多層感知機 (MLP) 等前饋網絡不同,RNN 有一個內部反饋回路,負責記住每個時間步長的信息狀態。
第一種 RNN 單元在 1982 年到 1986 年之間被發現,但它并沒有引起人們的注意,因為簡單的 RNN 單元在用于長序列時會受到很大影響,主要是存在記憶力短和梯度不穩定的問題。
3
1998:LeNet-5,第一個CNN架構
LeNet-5 是最早的卷積網絡架構之一,于 1998 年用于文檔識別。LeNet-5 由 3 個部分組成:2 個卷積層、2 個子采樣或池化層和 3 個全連接層。卷積層中沒有激活函數。
LeNet-5 在當時確實是一個有影響力的研究,但它(常規的卷積網絡)直到 20 年后才受到關注!LeNet-5 建立在早期工作的基礎上,例如福島邦彥提出的第一個卷積神經網絡、反向傳播(Hinton 等人,1986 年)和應用于手寫郵政編碼識別的反向傳播(LeCun 等人,1989 年)。
4
1998:長短期記憶(LSTM)
由于梯度不穩定的問題,簡單 RNN 單元無法處理長序列問題。LSTM 是可用于處理長序列的 RNN 版本。LSTM 基本上是 RNN 單元的極端情況。
LSTM 單元的一個特殊設計差異是它有一個門機制,這是它可以控制多個時間步長的信息流的基礎。
簡而言之,LSTM 使用門來控制從當前時間步長到下一個時間步長的信息流,有以下 4 種方式:
輸入門識別輸入序列。
遺忘門去掉輸入序列中包含的所有不相關信息,并將相關信息存儲在長期記憶中。
LTSM 單元更新“更新單元“的狀態值。
輸出門控制必須發送到下一個時間步長的信息。
LSTM 處理長序列的能力使其成為適合各種序列任務的神經網絡架構,例如文本分類、情感分析、語音識別、圖像標題生成和機器翻譯。
LSTM 是一種強大的架構,但它的計算成本很高。2014 年推出的 GRU(Gated Recurrent Unit)可以解決這個問題。與 LSTM 相比,GRU的參數更少,效果也很好。
5
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 等。
6
2014 年 : 深度生成網絡
生成網絡用于從訓練數據中生成或合成新的數據樣本,例如圖像和音樂。
生成網絡有很多種類型,但最流行的是由 Ian Goodfellow 在 2014 年創建的生成對抗網絡 (GAN)。GAN 由兩個主要組件組成:生成假樣本的生成器,以及區分真實樣本和生成器生成樣本的判別器。生成器和鑒別器可以說是互相競爭的關系。他們都是獨立訓練的,在訓練過程中,他們玩的是零和游戲。生成器不斷生成欺騙判別器的假樣本,而判別器則努力發現那些假樣本(參考真實樣本)。在每次訓練迭代中,生成器在生成接近真實的假樣本方面做得更好,判別器必須提高標準來區分不真實的樣本和真實樣本。
GAN 一直是深度學習社區中最熱門的研究之一,該社區以生成偽造的圖像和 Deepfake 視頻而聞名。如果讀者對 GAN 的最新進展感興趣,可以閱讀 StyleGAN2、DualStyleGAN、ArcaneGAN 和 AnimeGANv2 的簡介。如需 GAN 資源的完整列表:https://github.com/nashory/gans-awesome-applications。
GAN 是生成模型的一種。其他流行的生成模型類型還有 Variation Autoencoder (變分自編碼器,VAE)、AutoEncoder (自編碼器)和擴散模型等。
7
2017 年:Transformers 和注意力機制
時間來到 2017 年。ImageNet 挑戰賽結束了。新的卷積網絡架構也被制作出來。計算機視覺社區的每個人都對當前的進展感到高興。核心計算機視覺任務(圖像分類、目標檢測、圖像分割)不再像以前那樣復雜。人們可以使用 GAN 生成逼真的圖像。
NLP 似乎落后了。但是隨后出現了一些事情,并且在整個網絡上都成為了頭條新聞:一種完全基于注意力機制的新神經網絡架構橫空出世。并且 NLP 再次受到啟發,在隨后的幾年,注意力機制繼續主導其他方向(最顯著的是視覺)。該架構被稱為?Transformer?。
在此之后的 5 年,也就是現在,我們在這里談論一下這個最大的創新成果。Transformer 是一類純粹基于注意力機制的神經網絡算法。Transformer 不使用循環網絡或卷積。它由多頭注意力、殘差連接、層歸一化、全連接層和位置編碼組成,用于保留數據中的序列順序。
Transformer 徹底改變了 NLP,目前它也在改變著計算機視覺領域。在 NLP 領域,它被用于機器翻譯、文本摘要、語音識別、文本補全、文檔搜索等。
讀者可以在其論文 《Attention is All You Need》 中了解有關 Transformer 的更多信息。
8
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 架構沒有太大的改變。
除了使用圖像 patch 之外,使 Vision Transformer 成為強大架構的結構是 Transformer 的超強并行性及其縮放行為。但就像生活中的一切一樣,沒有什么是完美的。一開始,ViT 在視覺下游任務(目標檢測和分割)上表現不佳。
在引入 Swin Transformers 之后,Vision Transformer 開始被用作目標檢測和圖像分割等視覺下游任務的骨干網絡。Swin Transformer 超強性能的核心亮點是由于在連續的自注意力層之間使用了移位窗口。
Vision Transformer 一直是近來最令人興奮的研究領域之一。讀者可以在論文《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 的分辨率、圖像標題匹配度和真實感都相當出色。
大規模語言模型 (LLM)
語言模型有多種用途。它們可用于預測句子中的下一個單詞或字符、總結一段文檔、將給定文本從一種語言翻譯成另一種語言、識別語音或將一段文本轉換為語音。
開玩笑地說,發明 Transformers 的人必須為語言模型在朝著大規模參數化方向前進而受到指責(但實際上沒有人應該受到責備,Transformers 是過去十年中最偉大的發明之一,大模型令人震驚的地方在于:如果給定足夠的數據和計算,它總能更好地工作)。在過去的 5 年中,語言模型的大小一直在不斷增長。
在引入論文《Attention is all you need》一年后,大規模語言模型開始出現。2018 年,OpenAI 發布了 GPT(Generative Pre-trained Transformer),這是當時最大的語言模型之一。一年后,OpenAI 發布了 GPT-2,一個擁有 15 億個參數的模型。又一年后,他們發布了 GPT-3,它有 1750 億個參數,用了 570GB 的 文本來訓練。這個模型有 175B 的參數,模型有 700GB。根據 lambdalabs 的說法,如果使用在市場上價格最低的 GPU 云訓練GPT-3,需要 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 的。
可以確定地說,人們已經開始考慮讓計算機編寫自己的程序了(就像我們夢想教計算機做的所有其他事情一樣),不過代碼生成器是在 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 任務中實現很高的準確性。
讀者顯然不會使用 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 架構的總結和實現)了解更多關于他們采用的路線圖。
9
結論
深度學習是一個非常有活力、非常寬廣的領域,很難概括其中所發生的一切。作者只觸及了表面,論文多到一個人讀不完,很難跟蹤所有內容。例如,我們沒有討論強化學習和深度學習算法,如 AlphaGo、蛋白質折疊 AlphaFold(這是最大的科學突破之一)、深度學習框架的演變(如 TensorFlow 和 PyTorch),以及深度學習硬件。或許,還有其他重要的事情構成了我們沒有討論過的深度學習歷史、算法和應用程序的很大一部分。