人工智能300年!
?Datawhale干貨? 編輯: 昕朋 ,來源 :新智元
【導(dǎo)讀】最近,LSTM之父Jürgen Schmidhuber梳理了17世紀(jì)以來人工智能的歷史。在這篇萬字長(zhǎng)文中,Schmidhuber為讀者提供了一個(gè)大事年表,其中包括神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)、人工智能等領(lǐng)域的重要事件,以及那些為AI奠定基礎(chǔ)的科學(xué)家們。
「人工智能」一詞,首次在1956年達(dá)特茅斯會(huì)議上,由約翰麥卡錫等人正式提出。
實(shí)用AI地提出,最早可以追溯到1914年。當(dāng)時(shí)Leonardo Torres y Quevedo構(gòu)建了第一個(gè)工作的國(guó)際象棋機(jī)器終端游戲玩家。當(dāng)時(shí),國(guó)際象棋被認(rèn)為是一種僅限于智能生物領(lǐng)域的活動(dòng)。
至于人工智能理論,則可以追溯到1931-34年。當(dāng)時(shí)庫爾特·哥德爾(Kurt G?del )確定了任何類型的基于計(jì)算的人工智能的基本限制。
時(shí)間來到1980年代,此時(shí)的AI歷史會(huì)強(qiáng)調(diào)定理證明、邏輯編程、專家系統(tǒng)和啟發(fā)式搜索等主題。
2000年代初期的AI歷史會(huì)更加強(qiáng)調(diào)支持向量機(jī)和內(nèi)核方法等主題。貝葉斯推理(Bayesian reasoning)和其他概率論和統(tǒng)計(jì)概念、決策樹、 集成方法、群體智能和進(jìn)化計(jì)算,此類技術(shù)推動(dòng)了許多成功的AI應(yīng)用。
2020年代的AI研究反而更加「復(fù)古」,比如強(qiáng)調(diào)諸如鏈?zhǔn)椒▌t和通過梯度下降(gradient descent)訓(xùn)練的深度非線性人工神經(jīng)網(wǎng)絡(luò),特別是基于反饋的循環(huán)網(wǎng)絡(luò)等概念。
Schmidhuber表示,這篇文章對(duì)之前具有誤導(dǎo)性的「深度學(xué)習(xí)歷史」進(jìn)行糾正。
在他看來,之前的深度學(xué)習(xí)史忽略了文章中提到的大部分開創(chuàng)性工作。
此外,Schmidhuber還駁斥了一個(gè)常見的錯(cuò)誤,即神經(jīng)網(wǎng)絡(luò)「作為幫助計(jì)算機(jī)識(shí)別模式和模擬人類智能的工具是在1980年代引入的」。因?yàn)槭聦?shí)上,神經(jīng)網(wǎng)絡(luò)早在80年代前就已出現(xiàn)。
一、1676年:反向信用分配的鏈?zhǔn)椒▌t
1676年,戈特弗里德·威廉·萊布尼茨(Gottfried Wilhelm Leibniz)在回憶錄中發(fā)表了微積分的鏈?zhǔn)椒▌t。如今,這條規(guī)則成為了深度神經(jīng)網(wǎng)絡(luò)中信用分配的核心,是現(xiàn)代深度學(xué)習(xí)的基礎(chǔ)。

二、19世紀(jì)初:神經(jīng)網(wǎng)絡(luò)、線性回歸與淺層學(xué)習(xí)
1805 年,阿德利昂·瑪利·?!だ兆尩拢ˋdrien-Marie Legendre)發(fā)表了現(xiàn)在通常稱為線性神經(jīng)網(wǎng)絡(luò)的內(nèi)容。


三、1920-1925年:第一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)
與人腦相似,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)具有反饋連接,因此可以遵循從某些內(nèi)部節(jié)點(diǎn)到其他節(jié)點(diǎn)的定向連接,并最終在起點(diǎn)處結(jié)束。這對(duì)于在序列處理期間實(shí)現(xiàn)對(duì)過去事件的記憶至關(guān)重要。


四、1958年:多層前饋神經(jīng)網(wǎng)絡(luò)
1958年,弗蘭克·羅森布拉特(Frank Rosenblatt)結(jié)合了線性神經(jīng)網(wǎng)絡(luò)和閾值函數(shù),設(shè)計(jì)出了更深層次的多層感知器 (MLP)。

五、1965年:第一個(gè)深度學(xué)習(xí)
深度前饋網(wǎng)絡(luò)架構(gòu)的成功學(xué)習(xí)始于1965年的烏克蘭,當(dāng)時(shí)Alexey Ivakhnenko和Valentin Lapa為具有任意多個(gè)隱藏層的深度MLP引入了第一個(gè)通用的工作學(xué)習(xí)算法。

六、1967-68年:隨機(jī)梯度下降
1967年,甘利俊一首次提出通過隨機(jī)梯度下降 (SGD)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。 甘利俊一與他的學(xué)生Saito在具有兩個(gè)可修改層的五層MLP中學(xué)習(xí)了內(nèi)部表示,該層被訓(xùn)練用于對(duì)非線性可分離模式類進(jìn)行分類。 Rumelhart和Hinton等人在1986年做出了類似的工作,并將其命名為反向傳播算法。
七、1970年:反向傳播算法
1970 年,Seppo Linnainmaa率先發(fā)表了反向傳播的算法,這是一種著名的可微節(jié)點(diǎn)網(wǎng)絡(luò)信用分配算法,也稱為「自動(dòng)微分的反向模式」。


八、1979年:首個(gè)卷積神經(jīng)網(wǎng)絡(luò)
1979年,福島邦彥(Kunihiko Fukushima)在STRL開發(fā)了一種用于模式識(shí)別的神經(jīng)網(wǎng)絡(luò)模型:Neocognitron。
福島邦彥
但這個(gè)Neocognitron用今天的話來說,叫卷積神經(jīng)網(wǎng)絡(luò)(CNN),是深度神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)的最偉大發(fā)明之一,也是當(dāng)前人工智能的核心技術(shù)。
福島博士引入的Neocognitron,是第一個(gè)使用卷積和下采樣的神經(jīng)網(wǎng)絡(luò),也是卷積神經(jīng)網(wǎng)絡(luò)的雛形。
福島邦彥設(shè)計(jì)的具有學(xué)習(xí)能力的人工多層神經(jīng)網(wǎng)絡(luò),可以模仿大腦的視覺網(wǎng)絡(luò),這種「洞察力」成為現(xiàn)代人工智能技術(shù)的基礎(chǔ)。福島博士的工作帶來了一系列實(shí)際應(yīng)用,從自動(dòng)駕駛汽車到面部識(shí)別,從癌癥檢測(cè)到洪水預(yù)測(cè),還會(huì)有越來越多的應(yīng)用。
1987年,Alex Waibel將具有卷積的神經(jīng)網(wǎng)絡(luò)與權(quán)值共享和反向傳播相結(jié)合,提出了延時(shí)神經(jīng)網(wǎng)絡(luò)(TDNN)的概念。
1989年以來,Yann LeCun的團(tuán)隊(duì)為CNN的改進(jìn)做出了貢獻(xiàn),尤其是在圖像方面。

九、1987-1 990年代:圖神經(jīng)網(wǎng)絡(luò)與隨機(jī)Delta法則
可以操縱結(jié)構(gòu)化數(shù)據(jù)(例如圖形)的深度學(xué)習(xí)架構(gòu)于1987年由Pollack提出,并在20世紀(jì)90年代初由 Sperduti、Goller和Küchler進(jìn)行擴(kuò)展和改進(jìn)。如今,圖神經(jīng)網(wǎng)絡(luò)被用于許多應(yīng)用程序中。
Paul Werbos和R. J. Williams等人分析了在RNN中實(shí)現(xiàn)梯度下降的方法。Teuvo Kohonen的自組織映射(Self-Organizing Map)也流行起來。

十、1990年2月:生成式對(duì)抗網(wǎng)絡(luò)/好奇心
生成對(duì)抗網(wǎng)絡(luò)(GAN)最早于1990年在以「人工智能好奇心」為名發(fā)表。
兩個(gè)對(duì)抗的NN(一個(gè)概率生成器和一個(gè)預(yù)測(cè)器)試圖在一個(gè)最小極限游戲中使對(duì)方的 損失最大化。其中:-
生成器(稱為控制器)生成概率輸出(使用隨機(jī)單元,如后來的StyleGAN)。
-
預(yù)測(cè)器(稱為世界模型)看到控制器的輸出并預(yù)測(cè)環(huán)境對(duì)它們的反應(yīng)。使用梯度下降法,預(yù)測(cè)器NN將其誤差最小化,而生成器NN試圖這個(gè)誤差最大化——一個(gè)網(wǎng)的損失就是另一個(gè)網(wǎng)絡(luò)的收益。
在2014年關(guān)于GAN的論文之前4年,Schmidhuber就在著名的2010年調(diào)查中,將1990年的生成式對(duì)抗NN總結(jié)如下:「作為預(yù)測(cè)世界模型的神經(jīng)網(wǎng)絡(luò)被用來最大化控制器的內(nèi)在獎(jiǎng)勵(lì),它與模型的預(yù)測(cè)誤差成正比」。
而之后發(fā)布的GAN,只是一個(gè)實(shí)例。其中,試驗(yàn)非常短,環(huán)境只是根據(jù)控制器(或生成器)的輸出是否在一個(gè)給定的集合中而返回1或0。
1990年的原理被廣泛用于強(qiáng)化學(xué)習(xí)的探索和現(xiàn)實(shí)圖像的合成,盡管后者的領(lǐng)域最近被Rombach等人的Latent Diffusion接替。
1991年,Schmidhuber發(fā)表了另一個(gè)基于兩個(gè)對(duì)抗性NN的ML方法,稱為可預(yù)測(cè)性最小化,用于創(chuàng)建部分冗余數(shù)據(jù)的分離表征,1996年應(yīng)用于圖像。
十一、1990年4月:生成子目標(biāo)/按指令工作
近幾個(gè)世紀(jì)以來,大多數(shù)NN都致力于簡(jiǎn)單的模式識(shí)別,而不是高級(jí)推理。
然而,在20世紀(jì)90年代初,首次出現(xiàn)了例外。這項(xiàng)工作將傳統(tǒng)的「符號(hào)」層次式人工智能的概念注入到端到端的可區(qū)分的「次符號(hào)」(sub-symbolic)NN中。 1990年,Schmidhuber團(tuán)隊(duì)的NN學(xué)會(huì)了用端到端可微分NN的子目標(biāo)生成器來生成層次化的行動(dòng)計(jì)劃,用于層次化強(qiáng)化學(xué)習(xí)(HRL)。
一個(gè)RL機(jī)器得到額外的命令輸入,其形式為(開始,目標(biāo))。一個(gè)評(píng)估器NN學(xué)習(xí)預(yù)測(cè)從開始到目標(biāo)的當(dāng)前獎(jiǎng)勵(lì)/成本。一個(gè)基于(R)NN的子目標(biāo)生成器也看到了(開始,目標(biāo)),并使用評(píng)估器NN的(副本)通過梯度下降學(xué)習(xí)一連串成本最低的中間子目標(biāo)。RL機(jī)器試圖使用這種子目標(biāo)序列來實(shí)現(xiàn)最終目標(biāo)。
該系統(tǒng)在多個(gè)抽象層次和多個(gè)時(shí)間尺度上學(xué)習(xí)行動(dòng)計(jì)劃,并在原則上解決了最近被稱為「開放性問題」的問題。
十二、1991年3月:具有線性自注意力的Transformer
具有「線性自注意力」的Transformer首次發(fā)表于1991年3月。
這些所謂的「快速權(quán)重程序員」(Fast Weight Programmers)或「快速權(quán)重控制器」(Fast Weight Controllers)就像傳統(tǒng)計(jì)算機(jī)一樣分離了存儲(chǔ)和控制,但以一種端到端差異化、自適應(yīng),以及神經(jīng)網(wǎng)絡(luò)的方式。
此外,今天的Transformer大量使用無監(jiān)督預(yù)訓(xùn)練,這是Schmidhuber在1990-1991年首次發(fā)表的一種深度學(xué)習(xí)方法。
十三、1991年4月:通過自監(jiān)督的預(yù)訓(xùn)練進(jìn)行深度學(xué)習(xí)
今天最強(qiáng)大的NN往往是非常深的,也就是說,它們有很多層的神經(jīng)元或很多后續(xù)的計(jì)算階段。 然而,在20世紀(jì)90年代之前,基于梯度的訓(xùn)練對(duì)深度NN并不奏效(只對(duì)淺層NN有效)。 與前饋NN(FNN)不同的是,RNN有反饋連接。這使得RNN成為強(qiáng)大的、通用的、平行序列的計(jì)算機(jī),可以處理任意長(zhǎng)度的輸入序列(比如語音或者視頻)。 然而,在20世紀(jì)90年代之前,RNN在實(shí)踐中未能學(xué)習(xí)深層次的問題。 為此,Schmidhuber建立了一個(gè)自監(jiān)督的RNN層次結(jié)構(gòu),來嘗試實(shí)現(xiàn)「通用深度學(xué)習(xí)」。
1991年4月:將一個(gè)NN蒸餾成另一個(gè)NN
通過使用Schmidhuber在1991年提出的NN蒸餾程序,上述神經(jīng)歷史壓縮機(jī)的分層內(nèi)部表征可以被壓縮成一個(gè)單一的遞歸NN(RNN)。 在這里,教師NN的知識(shí)被「蒸餾」到學(xué)生NN中,方法是訓(xùn)練學(xué)生NN模仿教師NN的行為(同時(shí)也重新訓(xùn)練學(xué)生NN,從而保證之前學(xué)到的技能不會(huì)被忘記)。NN蒸餾法也在許多年后被重新發(fā)表,并在今天被廣泛使用。十四、1991年6月:基本問題——梯度消失
Schmidhuber的第一個(gè)學(xué)生Sepp Hochreiter在1991年的畢業(yè)論文中發(fā)現(xiàn)并分析了基本的深度學(xué)習(xí)問題。
深度NN受到現(xiàn)在著名的梯度消失問題的困擾:在典型的深度或遞歸網(wǎng)絡(luò)中,反向傳播的錯(cuò)誤信號(hào)要么迅速縮小,要么超出界限增長(zhǎng)。在這兩種情況下,學(xué)習(xí)都會(huì)失敗。
十五、1991年6月:LSTM/Highway Net/ResNet的基礎(chǔ)
長(zhǎng)短期記憶(LSTM)遞歸神經(jīng)網(wǎng)絡(luò)克服了Sepp Hochreiter在上述1991年的畢業(yè)論文中指出的基本深度學(xué)習(xí)問題。
在1997年發(fā)表了經(jīng)同行評(píng)審的論文之后(現(xiàn)在是20世紀(jì)被引用最多的NN文章),Schmidhuber的學(xué)生Felix Gers和Alex Graves等人,進(jìn)一步改進(jìn)了LSTM及其訓(xùn)練程序。 1999-2000年發(fā)表的LSTM變體——帶有遺忘門的「vanilla LSTM架構(gòu)」,在如今谷歌的Tensorflow中依然還在應(yīng)用。 2005年,Schmidhuber首次發(fā)表了LSTM在時(shí)間上完全反向傳播和雙向傳播的文章(同樣也被廣泛使用)。
2006年一個(gè)里程碑式的訓(xùn)練方法是「聯(lián)結(jié)主義時(shí)間分類」(CTC),用于同時(shí)對(duì)齊和識(shí)別序列。
Schmidhuber的團(tuán)隊(duì)在2007年成功地將CTC訓(xùn)練的LSTM應(yīng)用于語音(也有分層的LSTM堆棧),第一次實(shí)現(xiàn)了卓越的端到端神經(jīng)語音識(shí)別效果。
2009年,通過Alex的努力,由CTC訓(xùn)練的LSTM成為第一個(gè)贏得國(guó)際比賽的RNN,即三個(gè)ICDAR 2009手寫比賽(法語、波斯語、阿拉伯語)。這引起了業(yè)界的極大興趣。LSTM很快被用于所有涉及序列數(shù)據(jù)的場(chǎng)合,比如語音和視頻。
2015年,CTC-LSTM的組合極大地改善了谷歌在安卓智能手機(jī)上的語音識(shí)別性能。直到2019年,谷歌在移動(dòng)端搭載的語音識(shí)別仍然是基于LSTM。
1995年:神經(jīng)概率語言模型
1995年,Schmidhuber提出了一個(gè)優(yōu)秀的神經(jīng)概率文本模型,其基本概念在2003年被重新使用。 2001年,Schmidhuber表明LSTM可以學(xué)習(xí)HMM等傳統(tǒng)模型無法學(xué)習(xí)的語言。 2016年的谷歌翻譯,則是基于兩個(gè)連接的LSTM(白皮書提到LSTM超過50次),一個(gè)用于傳入文本,一個(gè)用于傳出翻譯。 同年,谷歌數(shù)據(jù)中心用于推理的超強(qiáng)計(jì)算能力中,有超過四分之一用于LSTM(還有5%用于另一種流行的深度學(xué)習(xí)技術(shù),即CNN)。
到了2017年,LSTM還為Facebook的機(jī)器翻譯(每周超過300億次翻譯)、蘋果在大約10億部iPhone上的Quicktype、亞馬遜的Alexa的語音、谷歌的圖像標(biāo)題生成和自動(dòng)電子郵件回答等提供支持。
當(dāng)然,Schmidhuber的LSTM也被大量用于醫(yī)療保健和醫(yī)療診斷——簡(jiǎn)單的谷歌學(xué)術(shù)搜索就能找到無數(shù)標(biāo)題中帶有「LSTM」的醫(yī)學(xué)文章。
2015年5月,Schmidhuber團(tuán)隊(duì)基于LSTM原理提出了Highway Network,第一個(gè)具有數(shù)百層的非常深的FNN(以前的NN最多只有幾十層)。微軟的ResNet(贏得了ImageNet 2015比賽)便是它的一個(gè)版本。
早期Highway Net在ImageNet上的表現(xiàn)與ResNet大致相同。Highway Net的變體也被用于某些算法任務(wù),在這些任務(wù)中,純殘差層的效果并不理想 。
LSTM/Highway Net原理是現(xiàn)代深度學(xué)習(xí)的核心
深度學(xué)習(xí)的核心是NN深度。 在20世紀(jì)90年代,LSTM為有監(jiān)督的遞歸NN帶來了基本無限的深度;在2000年,受LSTM啟發(fā)的Highway Net為前饋NN帶來了深度。
十六、1980至今:在沒有老師的情況下學(xué)習(xí)行動(dòng)的NNN
此外,NN也與強(qiáng)化學(xué)習(xí)(RL)有關(guān)。 雖然部分問題可以通過早在20世紀(jì)80年代之前發(fā)明的非神經(jīng)技術(shù)來解決。比如,蒙特卡洛樹搜索(MC)、動(dòng)態(tài)規(guī)劃(DP)、人工進(jìn)化、α-β-剪枝、控制理論和系統(tǒng)識(shí)別、隨機(jī)梯度下降,以及通用搜索技術(shù)。但深度FNN和RNN可以為某些類型的RL任務(wù)帶來更好的效果。 一般來說,強(qiáng)化學(xué)習(xí)智能體必須學(xué)會(huì)如何在沒有老師的幫助下,與一個(gè)動(dòng)態(tài)的、最初未知的、部分可觀察的環(huán)境互動(dòng),從而使預(yù)期的累積獎(jiǎng)勵(lì)信號(hào)最大化。在行動(dòng)和可感知的結(jié)果之間可能存在任意的、先驗(yàn)的未知延遲。 當(dāng)環(huán)境有一個(gè)馬爾可夫接口,使RL智能體的輸入可以傳達(dá)確定下一個(gè)最佳行動(dòng)所需的所有信息時(shí),基于動(dòng)態(tài)規(guī)劃(DP)/時(shí)序差分(TD)/蒙特卡洛樹搜索(MC)的RL會(huì)非常成功。 對(duì)于沒有馬爾可夫接口的更復(fù)雜的情況,智能體不僅要考慮現(xiàn)在的輸入,還要考慮以前輸入的歷史。對(duì)此,由RL算法和LSTM形成的組合已經(jīng)成為了一種標(biāo)準(zhǔn)方案,特別是通過策略梯度訓(xùn)練的LSTM。
例如,在2018年,一個(gè)經(jīng)過PG訓(xùn)練的LSTM是OpenAI著名的Dactyl的核心,它在沒有老師的情況下學(xué)會(huì)了控制一只靈巧的機(jī)器人手。
視頻游戲也是如此。
2019年,DeepMind(由Schmidhuber實(shí)驗(yàn)室的一名學(xué)生共同創(chuàng)立)在《星際爭(zhēng)霸》游戲中擊敗了職業(yè)選手,其中用到的Alphastar,就是有一個(gè)由PG訓(xùn)練的深度LSTM核心。

十七、是硬件問題,呆子!
在過去的一千年里,如果沒有不斷改進(jìn)和加速升級(jí)的計(jì)算機(jī)硬件,深度學(xué)習(xí)算法不可能迎來重大突破。
我們第一個(gè)已知的齒輪計(jì)算設(shè)備是2000多年前古希臘的安提基特拉機(jī)械(Antikythera mechanism)。這是現(xiàn)今所知的最古老的復(fù)雜科學(xué)計(jì)算機(jī),同時(shí)也是世界上第一臺(tái)模擬計(jì)算機(jī)。







十八、1931年以來的人工智能理論
現(xiàn)代人工智能和深度學(xué)習(xí)的核心主要是基于近幾個(gè)世紀(jì)的數(shù)學(xué):微積分、線性代數(shù)和統(tǒng)計(jì)學(xué)。
20世紀(jì)30年代初,哥德爾創(chuàng)立了現(xiàn)代理論計(jì)算機(jī)科學(xué)。他引入了一種以整數(shù)為基礎(chǔ)的通用編碼語言,允許以公理形式將任何數(shù)字計(jì)算機(jī)的操作正規(guī)化。 同時(shí),哥德爾還構(gòu)建了著名的形式化語句,通過給定一個(gè)計(jì)算性的定理檢驗(yàn)器,從可列舉的公理集合中系統(tǒng)地列舉所有可能的定理。因此,他確定了算法定理證明、計(jì)算以及任何類型的基于計(jì)算的人工智能的基本限制。 此外,哥德爾在寫給約翰·馮·諾伊曼的著名信件中,確定了計(jì)算機(jī)科學(xué)中最著名的開放問題「P=NP?」。
1935年,Alonzo Church通過證明Hilbert和Ackermann的決策問題沒有一般的解決方案,得出了哥德爾結(jié)果的一個(gè)推論。為了做到這一點(diǎn),他使用了他的另一種通用編碼語言,稱為Untyped Lambda Calculus,它構(gòu)成了極具影響力的編程語言LISP的基礎(chǔ)。
1936年,阿蘭·圖靈引入了另一個(gè)通用模型:圖靈機(jī),重新得出了上述結(jié)果。同年,Emil Post發(fā)表了另一個(gè)獨(dú)立的計(jì)算通用模型。
康拉德·楚澤不僅創(chuàng)造了世界上第一臺(tái)可用的可編程通用計(jì)算機(jī),并且還設(shè)計(jì)了第一種高級(jí)編程語言——Plankalkül。他在1945年將其應(yīng)用于國(guó)際象棋,在1948年應(yīng)用于定理證明。


https://people.idsia.ch/~juergen/deep-learning-history.html
整理不易, 點(diǎn) 贊 三連 ↓