第一章 引言

在人工智能的早期,那些對(duì)人類(lèi)智力來(lái)說(shuō)非常困難、但對(duì)計(jì)算機(jī)來(lái)說(shuō)相對(duì)簡(jiǎn)單的問(wèn)題得到迅速解決,比如,那些可以通過(guò)一系列形式化的數(shù)學(xué)規(guī)則來(lái)描述的問(wèn)題。人工智能的真正挑戰(zhàn)在于解決那些對(duì)人來(lái)說(shuō)很容易執(zhí)行、但很難形式化描述的任務(wù),如識(shí)別人們所說(shuō)的話(huà)或圖像中的臉。對(duì)于這些問(wèn)題,我們?nèi)祟?lèi)往往可以憑借直覺(jué)輕易地解決。

針對(duì)這些比較直觀(guān)的問(wèn)題,本書(shū)討論一種解決方案。該方案可以讓計(jì)算機(jī)從經(jīng)驗(yàn)中學(xué)習(xí),并根據(jù)層次化的概念體系來(lái)理解世界,而每個(gè)概念則通過(guò)與某些相對(duì)簡(jiǎn)單的概念之間的關(guān)系來(lái)定義。讓計(jì)算機(jī)從經(jīng)驗(yàn)獲取知識(shí),可以避免由人類(lèi)來(lái)給計(jì)算機(jī)形式化地指定它需要的所有知識(shí)。層次化的概念讓計(jì)算機(jī)構(gòu)建較簡(jiǎn)單的概念來(lái)學(xué)習(xí)復(fù)雜概念。如果繪制出這些概念如何建立在彼此之上的圖,我們將得到一張 ‘‘深’’(層次很多)的圖?;谶@個(gè)原因,我們稱(chēng)這種方法為 AI深度學(xué)習(xí)(deep learning)。

AI 許多早期的成功發(fā)生在相對(duì)樸素且形式化的環(huán)境中,而且不要求計(jì)算機(jī)具備很多關(guān)于世界的知識(shí)。例如“深藍(lán)”打敗了國(guó)際象世界冠軍。設(shè)計(jì)一種成功的國(guó)際象棋策略是巨大的成就,但向計(jì)算機(jī)描述棋子及其允許的走法并不是挑戰(zhàn)的困難所在。國(guó)際象棋完全可以由一個(gè)非常簡(jiǎn)短的、完全形式化的規(guī)則列表來(lái)描述,并可以容易地由程序員事先準(zhǔn)備好。

諷刺的是,抽象和形式化的任務(wù)對(duì)人類(lèi)而言是最困難的腦力任務(wù)之一,但對(duì)計(jì)算機(jī)而言卻屬于最容易的。一個(gè)人的日常生活需要關(guān)于世界的巨量知識(shí)。很多這方面的知識(shí)是主觀(guān)的、直觀(guān)的,因此很難通過(guò)形式化的方式表達(dá)清楚。計(jì)算機(jī)需要獲取同樣的知識(shí)才能表現(xiàn)出智能。人工智能的一個(gè)關(guān)鍵挑戰(zhàn)就是如何將這些非形式化的知識(shí)傳達(dá)給計(jì)算機(jī)。

一些人工智能項(xiàng)目力求將關(guān)于世界的知識(shí)用形式化的語(yǔ)言進(jìn)行硬編碼 (hard-code)。計(jì)算機(jī)可以使用邏輯推理規(guī)則來(lái)自動(dòng)地理解這些形式化語(yǔ)言中的聲明。這就是眾所周知的人工智能的知識(shí)庫(kù)(knowledge base)方法。著名的項(xiàng)目Cyc包括一個(gè)推斷引擎和一個(gè)使用 CycL 語(yǔ)言描述的聲明數(shù)據(jù)庫(kù)。這些聲明是由人類(lèi)監(jiān)督者輸入的。這是一個(gè)笨拙的過(guò)程。人們?cè)O(shè)法設(shè)計(jì)出足夠復(fù)雜的形式化規(guī)則來(lái)精確地描述世界。例如,Cyc 不能理解一個(gè)關(guān)于名為 Fred 的人在早上剃須的故事 (Linde, 1992)。它的推理引擎檢測(cè)到故事中的不一致性:它知道人體的構(gòu)成不包含電氣零件,但由于 Fred 正拿著一個(gè)電動(dòng)剃須刀,它認(rèn)為實(shí)體 ‘‘正在剃須的Fred” (“Fred While Shaving”) 含有電氣部件。因此它產(chǎn)生了這樣的疑問(wèn)——Fred 在刮胡子的時(shí)候是否仍然是一個(gè)人。

依靠硬編碼的知識(shí)體系面對(duì)的困難表明,AI 系統(tǒng)需要具備自己獲取知識(shí)的能力,即從原始數(shù)據(jù)中提取模式的能力。這種能力被稱(chēng)為機(jī)器學(xué)習(xí)(machine learning)。引入機(jī)器學(xué)習(xí)使計(jì)算機(jī)能夠解決涉及現(xiàn)實(shí)世界知識(shí)的問(wèn)題,并能作出看似主觀(guān)的決策。

這些簡(jiǎn)單的機(jī)器學(xué)習(xí)算法的性能在很大程度上依賴(lài)于給定數(shù)據(jù)的表示(representation)。例如,當(dāng)邏輯回歸被用于判斷產(chǎn)婦是否適合剖腹產(chǎn)時(shí),AI 系統(tǒng)不會(huì)直接檢查患者。相反,醫(yī)生需要告訴系統(tǒng)幾條相關(guān)的信息,諸如是否存在子宮疤痕。表示患者的每條信息被稱(chēng)為一個(gè)特征。邏輯回歸學(xué)習(xí)病人的這些特征如何與各種結(jié)果相關(guān)聯(lián)。然而,它絲毫不能影響該特征定義的方式。如果將病人的 MRI 掃描作為邏輯回歸的輸入,而不是醫(yī)生正式的報(bào)告,它將無(wú)法作出有用的預(yù)測(cè)。MRI 掃描的單一像素與分娩過(guò)程中并發(fā)癥之間的相關(guān)性微乎其微。

在整個(gè)計(jì)算機(jī)科學(xué)乃至日常生活中,對(duì)表示的依賴(lài)都是一個(gè)普遍現(xiàn)象。在計(jì)算機(jī)科學(xué)中,如果數(shù)據(jù)集合被精巧地結(jié)構(gòu)化并被智能地索引,那么諸如搜索之類(lèi)的操作的處理速度就可以成指數(shù)級(jí)地加快。表示的選擇會(huì)對(duì)機(jī)器學(xué)習(xí)算法的性能產(chǎn)生巨大的影響。

許多人工智能任務(wù)都可以通過(guò)以下方式解決:先提取一個(gè)合適的特征集,然后將這些特征提供給簡(jiǎn)單的機(jī)器學(xué)習(xí)算法。

然而,對(duì)于許多任務(wù)來(lái)說(shuō),我們很難知道應(yīng)該提取哪些特征。

解決這個(gè)問(wèn)題的途徑之一是使用機(jī)器學(xué)習(xí)來(lái)發(fā)掘表示本身,而不僅僅把表示映射到輸出。這種方法我們稱(chēng)之為表示學(xué)習(xí)(representation learning)。學(xué)習(xí)到的表示往往比手動(dòng)設(shè)計(jì)的表示表現(xiàn)得更好。并且它們只需最少的人工干預(yù),就能讓AI系統(tǒng)迅速適應(yīng)新的任務(wù)。表示學(xué)習(xí)算法只需幾分鐘就可以為簡(jiǎn)單的任務(wù)發(fā)現(xiàn)一個(gè)很好的特征集,對(duì)于復(fù)雜任務(wù)則需要幾小時(shí)到幾個(gè)月。手動(dòng)為一個(gè)復(fù)雜的任務(wù)設(shè)計(jì)特征需要耗費(fèi)大量的人工時(shí)間和精力;甚至需要花費(fèi)整個(gè)社群研究人員幾十年的時(shí)間。

表示學(xué)習(xí)算法的典型例子是自編碼器(autoencoder)。自編碼器由一個(gè)編碼器(encoder)函數(shù)和一個(gè)解碼器(decoder)函數(shù)組合而成。編碼器函數(shù)將輸入數(shù)據(jù)轉(zhuǎn)換為一種不同的表示,而解碼器函數(shù)則將這個(gè)新的表示轉(zhuǎn)換到原來(lái)的形式。我們期望當(dāng)輸入數(shù)據(jù)經(jīng)過(guò)編碼器和解碼器之后盡可能多地保留信息,同時(shí)希望新的表示有
各種好的特性,這也是自編碼器的訓(xùn)練目標(biāo)。為了實(shí)現(xiàn)不同的特性,我們可以設(shè)計(jì)不同形式的自編碼器。

當(dāng)設(shè)計(jì)特征或設(shè)計(jì)用于學(xué)習(xí)特征的算法時(shí),我們的目標(biāo)通常是分離出能解釋觀(guān)察數(shù)據(jù)的變差因素(factors of variation)。在此背景下,‘‘因素’’ 這個(gè)詞僅指代影響的不同來(lái)源;因素通常不是乘性組合。這些因素通常是不能被直接觀(guān)察到的量。相反,它們可能是現(xiàn)實(shí)世界中觀(guān)察不到的物體或者不可觀(guān)測(cè)的力,但會(huì)影響可觀(guān)測(cè)的量。為了對(duì)觀(guān)察到的數(shù)據(jù)提供有用的簡(jiǎn)化解釋或推斷其原因,它們還可能以概念的形式存在于人類(lèi)的思維中。它們可以被看作數(shù)據(jù)的概念或者抽象,幫助我們了解這些數(shù)據(jù)的豐富多樣性。當(dāng)分析語(yǔ)音記錄時(shí),變差因素包括說(shuō)話(huà)者的年齡、性別、他們的口音和他們正在說(shuō)的詞語(yǔ)。當(dāng)分析汽車(chē)的圖像時(shí),變差因素包括汽車(chē)的位置、它的顏色、太陽(yáng)的角度和亮度。

在許多現(xiàn)實(shí)的人工智能應(yīng)用中,困難主要源于多個(gè)變差因素同時(shí)影響著我們能夠觀(guān)察到的每一個(gè)數(shù)據(jù)。大多數(shù)應(yīng)用需要我們理清變差
因素并忽略我們不關(guān)心的因素。

顯然,從原始數(shù)據(jù)中提取如此高層次、抽象的特征是非常困難的。

深度學(xué)習(xí)(deep learning)通過(guò)其他較簡(jiǎn)單的表示來(lái)表達(dá)復(fù)雜表示,解決了表示學(xué)習(xí)中的核心問(wèn)題。

深度學(xué)習(xí)讓計(jì)算機(jī)通過(guò)較簡(jiǎn)單概念構(gòu)建復(fù)雜的概念。圖1.2展示了深度學(xué)習(xí)系統(tǒng)如何通過(guò)組合較簡(jiǎn)單的概念(例如轉(zhuǎn)角和輪廓,它們轉(zhuǎn)而由邊線(xiàn)定義)來(lái)表示圖像中人的概念。

學(xué)習(xí)數(shù)據(jù)的正確表示的想法是解釋深度學(xué)習(xí)的一個(gè)視角。另一個(gè)視角是深度促使計(jì)算機(jī)學(xué)習(xí)一個(gè)多步驟的計(jì)算機(jī)程序。每一層表示都可以被認(rèn)為是并行執(zhí)行另一組指令之后計(jì)算機(jī)的存儲(chǔ)器狀態(tài)。更深的網(wǎng)絡(luò)可以按順序執(zhí)行更多的指令。順序指令提供了極大的能力,因?yàn)楹竺娴闹噶羁梢詤⒖荚缙谥噶畹慕Y(jié)果。從這個(gè)角度上看,在某層激活函數(shù)里,并非所有信息都蘊(yùn)涵著解釋輸入的變差因素。表示還存儲(chǔ)著狀態(tài)信息,用于幫助程序理解輸入。這里的狀態(tài)信息類(lèi)似于傳統(tǒng)計(jì)算機(jī)程序中的計(jì)數(shù)器或指針。它與具體的輸入內(nèi)容無(wú)關(guān),但有助于模型組織其處理過(guò)程。

目前主要有兩種度量模型深度的方式。第一種方式是基于評(píng)估架構(gòu)所需執(zhí)行的順序指令的數(shù)目。假設(shè)我們將模型表示為給定輸入后,計(jì)算對(duì)應(yīng)輸出的流程圖,則可以將這張流程圖中的最長(zhǎng)路徑視為模型的深度。

另一種是在深度概率模型中使用的方法,它不是將計(jì)算圖的深度視為模型深度,而是將描述概念彼此如何關(guān)聯(lián)的圖的深度視為模型深度。在這種情況下,計(jì)算每個(gè)概念表示的計(jì)算流程圖的深度可能比概念本身的圖更深。這是因?yàn)橄到y(tǒng)對(duì)較簡(jiǎn)單概念的理解在給出更復(fù)雜概念的信息后可以進(jìn)一步精細(xì)化。例如,一個(gè) AI 系統(tǒng)觀(guān)察其中一只眼睛在陰影中的臉部圖像時(shí),它最初可能只看到一只眼睛。但當(dāng)檢測(cè)到臉部的存在后,系統(tǒng)可以推斷第二只眼睛也可能是存在的。在這種情況下,概念的圖僅包括兩層(關(guān)于眼睛的層和關(guān)于臉的層),但如果我們細(xì)化每個(gè)概念的估計(jì)將需要額外的 n 次計(jì)算,即計(jì)算的圖將包含 2n 層。

就像計(jì)算機(jī)程序的長(zhǎng)度不存在單一的正確值一樣,架構(gòu)的深度也不存在單一的正確值。另外,也不存在模型多么深才能被修飾為 ‘‘深’’ 的共識(shí)。但相比傳統(tǒng)機(jī)器學(xué)習(xí),深度學(xué)習(xí)研究的模型涉及更多學(xué)到功能或?qū)W到概念的組合,這點(diǎn)毋庸置疑。

總之,這本書(shū)的主題——深度學(xué)習(xí)是通向人工智能的途徑之一。具體來(lái)說(shuō),它是機(jī)器學(xué)習(xí)的一種,一種能夠使計(jì)算機(jī)系統(tǒng)從經(jīng)驗(yàn)和數(shù)據(jù)中得到提高的技術(shù)。深度學(xué)習(xí)是一種特定類(lèi)型的機(jī)器學(xué)習(xí),具有強(qiáng)大的能力和靈活性,它將大千世界表示為嵌套的層次概念體系(由較簡(jiǎn)單概念間的聯(lián)系定義復(fù)雜概念、從一般抽象概括到高級(jí)抽象表示)。圖1.4說(shuō)明了這些不同的 AI 學(xué)科之間的關(guān)系。圖1.5展示了每個(gè)學(xué)科如何工作的高層次原理。


image.png

image.png

1.1 本書(shū)面向的讀者

1.2 深度學(xué)習(xí)的歷史趨勢(shì)

? 深度學(xué)習(xí)有著悠久而豐富的歷史,但隨著許多不同哲學(xué)觀(guān)點(diǎn)的漸漸消逝,與之對(duì)應(yīng)的名稱(chēng)也漸漸塵封。
? 隨著可用的訓(xùn)練數(shù)據(jù)量不斷增加,深度學(xué)習(xí)變得更加有用。
? 隨著時(shí)間的推移,針對(duì)深度學(xué)習(xí)的計(jì)算機(jī)軟硬件基礎(chǔ)設(shè)施都有所改善,深度學(xué)習(xí)模型的規(guī)模也隨之增長(zhǎng)。
? 隨著時(shí)間的推移,深度學(xué)習(xí)已經(jīng)解決日益復(fù)雜的應(yīng)用,并且精度不斷提高。

1.2.1 神經(jīng)網(wǎng)絡(luò)的眾多名稱(chēng)和命運(yùn)變遷

事實(shí)上,深度學(xué)習(xí)的歷史可以追溯到20 世紀(jì) 40 年代。深度學(xué)習(xí)看似是一個(gè)全新的領(lǐng)域,只不過(guò)因?yàn)樵谀壳傲餍械那皫啄晁窍鄬?duì)冷門(mén)的,同時(shí)也因?yàn)樗毁x予了許多不同的名稱(chēng)(其中大部分已經(jīng)不再使用),最近才成為眾所周知的 “深度學(xué)習(xí)’’。這個(gè)領(lǐng)域已經(jīng)更換了很多名稱(chēng),它反映了不同的研究人員和不同觀(guān)點(diǎn)的影響。

一般來(lái)說(shuō),目前為止深度學(xué)習(xí)已經(jīng)經(jīng)歷了三次發(fā)展浪潮:20 世紀(jì)
40 年代到 60 年代深度學(xué)習(xí)的雛形出現(xiàn)在控制論(cybernetics)中,20 世紀(jì) 80 年代到 90 年代深度學(xué)習(xí)表現(xiàn)為聯(lián)結(jié)主義(connectionism),直到 2006 年,才真正以深度學(xué)習(xí)之名復(fù)興。圖1.7給出了定量的展示。

image.png

我們今天知道的一些最早的學(xué)習(xí)算法,是旨在模擬生物學(xué)習(xí)的計(jì)算模型,即大腦怎樣學(xué)習(xí)或?yàn)槭裁茨軐W(xué)習(xí)的模型。其結(jié)果是深度學(xué)習(xí)以人工神經(jīng)網(wǎng)絡(luò)(artificialneural network, ANN)之名而淡去。深度學(xué)習(xí)的神經(jīng)觀(guān)點(diǎn)受兩個(gè)主要思想啟發(fā)。一個(gè)想法是大腦作為例子證明智能行為是可能的,因此,概念上,建立智能的直接途徑是逆向大腦背后的計(jì)算原理,并復(fù)制其功能。另一種看法是,理解大腦和人類(lèi)智能背后的原理也非常有趣,因此機(jī)器學(xué)習(xí)模型除了解決工程應(yīng)用的能力,如果能讓人類(lèi)對(duì)這些基本的科學(xué)問(wèn)題有進(jìn)一步的認(rèn)識(shí)也將會(huì)很有用。

現(xiàn)代術(shù)語(yǔ) “深度學(xué)習(xí)’’ 超越了目前機(jī)器學(xué)習(xí)模型的神經(jīng)科學(xué)觀(guān)點(diǎn)。它訴諸于學(xué)習(xí)多層次組合這一更普遍的原理,這一原理也可以應(yīng)用于那些并非受神經(jīng)科學(xué)啟發(fā)的機(jī)器學(xué)習(xí)框架。

現(xiàn)代深度學(xué)習(xí)的最早前身是從神經(jīng)科學(xué)的角度出發(fā)的簡(jiǎn)單線(xiàn)性模型。這些模型被設(shè)計(jì)為使用一組 n個(gè)輸入 x _1 ,...,x _n并將它們與一個(gè)輸出y相關(guān)聯(lián)。這些模型希望學(xué)習(xí)一組權(quán)重 w _1 ,...,w _n ,并計(jì)算它們的輸出 f(\boldsymbol{x},\boldsymbol{w}) = x _1 w _1 + ··· + x _n w _n。如圖1.7所示,這第一波神經(jīng)網(wǎng)絡(luò)研究浪潮被稱(chēng)為控制論。

McCulloch-Pitts 神經(jīng)元 (McCulloch and Pitts, 1943) 是腦功能的早期模型。該線(xiàn)性模型通過(guò)檢驗(yàn)函數(shù) f(\boldsymbol{x},\boldsymbol{w})的正負(fù)來(lái)識(shí)別兩種不同類(lèi)別的輸入。顯然,模型的權(quán)重需要正確設(shè)置后才能使模型的輸出對(duì)應(yīng)于期望的類(lèi)別。這些權(quán)重可以由操作人員設(shè)定。在 20 世紀(jì) 50 年代,感知機(jī) (Rosenblatt, 1956, 1958) 成為第一個(gè)能根據(jù)每個(gè)類(lèi)別的輸入樣本來(lái)學(xué)習(xí)權(quán)重的模型。約在同一時(shí)期,自適應(yīng)線(xiàn)性單元 (adaptive linear element, ADALINE) 簡(jiǎn)單地返回函數(shù) f(x) 本身的值來(lái)預(yù)測(cè)一個(gè)實(shí)數(shù) (Widrow and Hoff, 1960),并且它還可以學(xué)習(xí)從數(shù)據(jù)預(yù)測(cè)這些數(shù)。

這些簡(jiǎn)單的學(xué)習(xí)算法大大影響了機(jī)器學(xué)習(xí)的現(xiàn)代景象。用于調(diào)節(jié) ADALINE 權(quán)重的訓(xùn)練算法是被稱(chēng)為隨機(jī)梯度下降(stochastic gradient descent)的一種特例。稍加改進(jìn)后的隨機(jī)梯度下降算法仍然是當(dāng)今深度學(xué)習(xí)的主要訓(xùn)練算法。

基于感知機(jī)和 ADALINE 中使用的函數(shù) f(\boldsymbol{x},\boldsymbol{w}) 的模型被稱(chēng)為線(xiàn)性模型(linearmodel)。盡管在許多情況下,這些模型以不同于原始模型的方式進(jìn)行訓(xùn)練,但仍是目前最廣泛使用的機(jī)器學(xué)習(xí)模型。

線(xiàn)性模型有很多局限性。最著名的是,它們無(wú)法學(xué)習(xí)異或(XOR)函數(shù),即f([0,1],w) = 1f([1,0],w) = 1,但f([1,1],w) = 0f([0,0],w) = 0。觀(guān)察到線(xiàn)性模型這個(gè)缺陷的批評(píng)者對(duì)受生物學(xué)啟發(fā)的學(xué)習(xí)普遍地產(chǎn)生了抵觸 (Minsky and Papert, 1969)。這導(dǎo)致了神經(jīng)網(wǎng)絡(luò)熱潮的第一次大衰退。

現(xiàn)在,神經(jīng)科學(xué)被視為深度學(xué)習(xí)研究的一個(gè)重要靈感來(lái)源,但它已不再是該領(lǐng)域的主要指導(dǎo)。

如今神經(jīng)科學(xué)在深度學(xué)習(xí)研究中的作用被削弱,主要原因是我們根本沒(méi)有足夠的關(guān)于大腦的信息來(lái)作為指導(dǎo)去使用它。要獲得對(duì)被大腦實(shí)際使用算法的深刻理解,我們需要有能力同時(shí)監(jiān)測(cè)(至少是)數(shù)千相連神經(jīng)元的活動(dòng)。

神經(jīng)科學(xué)已經(jīng)給了我們依靠單一深度學(xué)習(xí)算法解決許多不同任務(wù)的理由。神經(jīng)學(xué)家們發(fā)現(xiàn),如果將雪貂的大腦重新連接,使視覺(jué)信號(hào)傳送到聽(tīng)覺(jué)區(qū)域,它們可以學(xué)會(huì)用大腦的聽(tīng)覺(jué)處理區(qū)域去 ‘‘看” (Von Melchner et al., 2000)。這暗示著大多數(shù)哺乳動(dòng)物的大腦能夠使用單一的算法就可以解決其大腦可以解決的大部分不同任務(wù)。對(duì)于深度學(xué)習(xí)研究團(tuán)體來(lái)說(shuō),同時(shí)研究許多或甚至所有這些應(yīng)用領(lǐng)域是很常見(jiàn)的。

我們能夠從神經(jīng)科學(xué)得到一些粗略的指南。僅通過(guò)計(jì)算單元之間的相互作用而變得智能的基本思想是受大腦啟發(fā)的。新認(rèn)知機(jī) (Fukushima, 1980) 受哺乳動(dòng)物視覺(jué)系統(tǒng)的結(jié)構(gòu)啟發(fā),引入了一個(gè)處理圖片的強(qiáng)大模型架構(gòu),它后來(lái)成為了現(xiàn)代卷積網(wǎng)絡(luò)的基礎(chǔ) (LeCun et al., 1998c)。目前大多數(shù)神經(jīng)網(wǎng)絡(luò)是基于一個(gè)稱(chēng)為整流線(xiàn)性單元(rectified linear unit)的神經(jīng)單元模型。原始認(rèn)知機(jī) (Fukushima, 1975) 受我們關(guān)于大腦功能知識(shí)的啟發(fā),引入了一個(gè)更復(fù)雜的版本。簡(jiǎn)化的現(xiàn)代版通過(guò)吸收來(lái)自不同觀(guān)點(diǎn)的思想而形成,Nair and Hinton (2010b)和 Glorot et al. (2011a) 援引神經(jīng)科學(xué)作為影響,Jarrett et al. (2009a) 援引更多面向工程的影響。雖然神經(jīng)科學(xué)是靈感的重要來(lái)源,但它不需要被視為剛性指導(dǎo)。我們知道,真實(shí)的神經(jīng)元計(jì)算著與現(xiàn)代整流線(xiàn)性單元非常不同的函數(shù),但更接近真實(shí)神經(jīng)網(wǎng)絡(luò)的系統(tǒng)并沒(méi)有導(dǎo)致機(jī)器學(xué)習(xí)性能的提升。此外,雖然神經(jīng)科學(xué)已經(jīng)成功地啟發(fā)了一些神經(jīng)網(wǎng)絡(luò)架構(gòu),但我們對(duì)用于神經(jīng)科學(xué)的生物學(xué)習(xí)還沒(méi)有足夠多的了解,因此也就不能為訓(xùn)練這些架構(gòu)用的學(xué)習(xí)算法提供太多的借鑒。

大家不應(yīng)該認(rèn)為深度學(xué)習(xí)在嘗試模擬大腦,現(xiàn)代深度學(xué)習(xí)從許多領(lǐng)域獲取靈感,特別是應(yīng)用數(shù)學(xué)的基本內(nèi)容如線(xiàn)性代數(shù)、概率論、信息論和數(shù)值優(yōu)化。

計(jì)算神經(jīng)科學(xué)與深度學(xué)習(xí)

值得注意的是,了解大腦是如何在算法層面上工作的嘗試確實(shí)存在且發(fā)展良好。這項(xiàng)嘗試主要被稱(chēng)為 ‘‘計(jì)算神經(jīng)科學(xué)’’,并且是獨(dú)立于深度學(xué)習(xí)的領(lǐng)域。研究人員在兩個(gè)領(lǐng)域之間來(lái)回研究是很常見(jiàn)的。深度學(xué)習(xí)領(lǐng)域主要關(guān)注如何構(gòu)建計(jì)算機(jī)系統(tǒng),從而成功解決需要智能才能解決的任務(wù),而計(jì)算神經(jīng)科學(xué)領(lǐng)域主要關(guān)注構(gòu)建大腦如何真實(shí)工作的比較精確的模型。

在 20 世紀(jì) 80 年代,神經(jīng)網(wǎng)絡(luò)研究的第二次浪潮在很大程度上是伴隨一個(gè)被稱(chēng)為聯(lián)結(jié)主義(connectionism)或并行分布處理 ( parallel distributed processing) 潮流而出現(xiàn)的 (Rumelhart et al., 1986d; McClelland et al., 1995)。聯(lián)結(jié)主義是在認(rèn)知科學(xué)的背景下出現(xiàn)的。認(rèn)知科學(xué)是理解思維的跨學(xué)科途徑,即它融合多個(gè)不同的分析層次。在 20 世紀(jì) 80 年代初期,大多數(shù)認(rèn)知科學(xué)家研究符號(hào)推理模型。盡管這很流行,但符號(hào)模型很難解釋大腦如何真正使用神經(jīng)元實(shí)現(xiàn)推理功能。

聯(lián)結(jié)主義的中心思想是,當(dāng)網(wǎng)絡(luò)將大量簡(jiǎn)單的計(jì)算單元連接在一起時(shí)可以實(shí)現(xiàn)智能行為。這種見(jiàn)解同樣適用于生物神經(jīng)系統(tǒng)中的神經(jīng)元,因?yàn)樗陀?jì)算模型中隱藏單元起著類(lèi)似的作用。

在上世紀(jì) 80 年代的聯(lián)結(jié)主義期間形成的幾個(gè)關(guān)鍵概念在今天的深度學(xué)習(xí)中仍然是非常重要的。

其中一個(gè)概念是分布式表示(distributed representation)(Hinton et al., 1986)。其思想是:系統(tǒng)的每一個(gè)輸入都應(yīng)該由多個(gè)特征表示,并且每一個(gè)特征都應(yīng)該參與到多個(gè)可能輸入的表示。例如,假設(shè)我們有一個(gè)能夠識(shí)別紅色、綠色、或藍(lán)色的汽車(chē)、卡車(chē)和鳥(niǎo)類(lèi)的視覺(jué)系統(tǒng),表示這些輸入的其中一個(gè)方法是將九個(gè)可能的組合:紅卡車(chē),紅汽車(chē),紅鳥(niǎo),綠卡車(chē)等等使用單獨(dú)的神經(jīng)元或隱藏單元激活。這需要九個(gè)不同的神經(jīng)元,并且每個(gè)神經(jīng)必須獨(dú)立地學(xué)習(xí)顏色和對(duì)象身份的概念。改善這種情況的方法之一是使用分布式表示,即用三個(gè)神經(jīng)元描述顏色,三個(gè)神經(jīng)元描述對(duì)象身份。這僅僅需要 6 個(gè)神經(jīng)元而不是 9 個(gè),并且描述紅色的神經(jīng)元能夠從汽車(chē)、卡車(chē)和鳥(niǎo)類(lèi)的圖像中學(xué)習(xí)紅色,而不僅僅是從一個(gè)特定類(lèi)別的圖像中學(xué)習(xí)。分布式表示的概念是本書(shū)的核心,我們將在第十五章中更加詳細(xì)地描述。

聯(lián)結(jié)主義潮流的另一個(gè)重要成就是反向傳播在訓(xùn)練具有內(nèi)部表示的深度神經(jīng)網(wǎng)絡(luò)中的成功使用以及反向傳播算法的普及 (Rumelhart et al., 1986c; LeCun, 1987)。這個(gè)算法雖然曾黯然失色不再流行,但截至寫(xiě)書(shū)之時(shí),它仍是訓(xùn)練深度模型的主導(dǎo)方法。

在 20 世紀(jì) 90 年代,研究人員在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行序列建模的方面取得了重要進(jìn)展。Hochreiter (1991b) 和 Bengio et al. (1994a) 指出了對(duì)長(zhǎng)序列進(jìn)行建模的一些根本性數(shù)學(xué)難題,這將在第10.7節(jié)中描述。Hochreiter and Schmidhuber (1997)引入長(zhǎng)短期記憶(long short-term memory, LSTM)網(wǎng)絡(luò)來(lái)解決這些難題。如今,LSTM 在許多序列建模任務(wù)中廣泛應(yīng)用,包括 Google 的許多自然語(yǔ)言處理任務(wù)。

神經(jīng)網(wǎng)絡(luò)研究的第二次浪潮一直持續(xù)到上世紀(jì) 90 年代中期。當(dāng)AI研究不能實(shí)現(xiàn)這些不合理的期望時(shí),投資者感到失望。同時(shí),機(jī)器學(xué)習(xí)的其他領(lǐng)域取得了進(jìn)步。比如,核方法 (Boser et al., 1992; Cortes and Vapnik, 1995; Sch?lkopf et al., 1999)和圖模型 (Jordan, 1998) 都在很多重要任務(wù)上實(shí)現(xiàn)了很好的效果。這兩個(gè)因素導(dǎo)致了神經(jīng)網(wǎng)絡(luò)熱潮的第二次衰退,并一直持續(xù)到 2007 年。

在此期間,神經(jīng)網(wǎng)絡(luò)繼續(xù)在某些任務(wù)上獲得令人印象深刻的表現(xiàn) (LeCun et al., 1998c; Bengio et al., 2001a)。加拿大高級(jí)研究所(CIFAR)通過(guò)其神經(jīng)計(jì)算和自適應(yīng)感知(NCAP)研究計(jì)劃幫助維持神經(jīng)網(wǎng)絡(luò)研究。在那個(gè)時(shí)候,人們普遍認(rèn)為深度網(wǎng)絡(luò)是難以訓(xùn)練的?,F(xiàn)在我們知道,20 世紀(jì) 80年代就存在的算法能工作得非常好,但是直到在 2006 年前后都沒(méi)有體現(xiàn)出來(lái)。這可能僅僅由于其計(jì)算代價(jià)太高,而以當(dāng)時(shí)可用的硬件難以進(jìn)行足夠的實(shí)驗(yàn)。

神經(jīng)網(wǎng)絡(luò)研究的第三次浪潮始于 2006 年的突破。Geoffrey Hinton 表明名為深度信念網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)可以使用一種稱(chēng)為貪婪逐層預(yù)訓(xùn)練的策略來(lái)有效地訓(xùn)練(Hinton et al., 2006a),我們將在第15.1節(jié)中更詳細(xì)地描述。其他 CIFAR 附屬研究小組很快表明,同樣的策略可以被用來(lái)訓(xùn)練許多其他類(lèi)型的深度網(wǎng)絡(luò) (Bengio and
LeCun, 2007a; Ranzato et al., 2007b),并能系統(tǒng)地幫助提高在測(cè)試樣例上的泛化能力。神經(jīng)網(wǎng)絡(luò)研究的這一次浪潮普及了 “深度學(xué)習(xí)’’ 這一術(shù)語(yǔ)的使用,強(qiáng)調(diào)研究者現(xiàn)在有能力訓(xùn)練以前不可能訓(xùn)練的比較深的神經(jīng)網(wǎng)絡(luò),并著力于深度的理論重要性上 (Bengio and LeCun, 2007b; Delalleau and Bengio, 2011; Pascanu et al., 2014a;Montufar et al., 2014)。此時(shí),深度神經(jīng)網(wǎng)絡(luò)已經(jīng)優(yōu)于與之競(jìng)爭(zhēng)的基于其他機(jī)器學(xué)習(xí)技術(shù)以及手工設(shè)計(jì)功能的 AI 系統(tǒng)。在寫(xiě)這本書(shū)的時(shí)候,神經(jīng)網(wǎng)絡(luò)的第三次發(fā)展浪潮仍在繼續(xù),盡管深度學(xué)習(xí)的研究重點(diǎn)在這一段時(shí)間內(nèi)發(fā)生了巨大變化。第三次浪潮已開(kāi)始著眼于新的無(wú)監(jiān)督學(xué)習(xí)技術(shù)和深度模型在小數(shù)據(jù)集的泛化能力,但目前更多的興趣點(diǎn)仍是比較傳統(tǒng)的監(jiān)督學(xué)習(xí)算法和深度模型充分利用大型標(biāo)注數(shù)據(jù)集的能力。

1.2.2 與日俱增的數(shù)據(jù)量

既然人工神經(jīng)網(wǎng)絡(luò)的第一個(gè)實(shí)驗(yàn)在 20 世紀(jì) 50 年代就完成了,但為什么深度學(xué)習(xí)直到最近才被認(rèn)為是關(guān)鍵技術(shù)。自 20 世紀(jì) 90 年代以來(lái),深度學(xué)習(xí)就已經(jīng)成功用于商業(yè)應(yīng)用,但通常被視為是一種只有專(zhuān)家才可以使用的藝術(shù)而不是一種技術(shù),這種觀(guān)點(diǎn)一直持續(xù)到最近。最重要的新進(jìn)展是現(xiàn)在我們有了這些算法得以成功訓(xùn)練所需的資源。圖1.8展示了基準(zhǔn)數(shù)據(jù)集的大小如何隨著時(shí)間的推移而顯著增加。這種趨勢(shì)是由社會(huì)日益數(shù)字化驅(qū)動(dòng)的。因?yàn)榻y(tǒng)計(jì)估計(jì)的主要負(fù)擔(dān)(觀(guān)察少量數(shù)據(jù)以在新數(shù)據(jù)上泛化)已經(jīng)減輕,‘‘大數(shù)據(jù)’’ 時(shí)代使機(jī)器學(xué)習(xí)更加容易。截至 2016 年,一個(gè)粗略的經(jīng)驗(yàn)法則是,監(jiān)督深度學(xué)習(xí)算法在每類(lèi)給定約 5000 個(gè)標(biāo)注樣本情況下一般將達(dá)到可以接受的性能,當(dāng)至少有 1000 萬(wàn)個(gè)標(biāo)注樣本的數(shù)據(jù)集用于訓(xùn)練時(shí),它將達(dá)到或超過(guò)人類(lèi)表現(xiàn)。此外,在更小的數(shù)據(jù)集上獲得成功是一個(gè)重要的研究領(lǐng)域,為此我們應(yīng)特別側(cè)重于如何通過(guò)無(wú)監(jiān)督或半監(jiān)督學(xué)習(xí)充分利用大量的未標(biāo)注樣本。
image.png

1.2.3 與日俱增的模型規(guī)模

20 世紀(jì) 80 年代,神經(jīng)網(wǎng)絡(luò)只能取得相對(duì)較小的成功,而現(xiàn)在神經(jīng)網(wǎng)絡(luò)非常成功的另一個(gè)重要原因是我們現(xiàn)在擁有的計(jì)算資源可以運(yùn)行更大的模型。聯(lián)結(jié)主義的主要見(jiàn)解之一是,當(dāng)動(dòng)物的許多神經(jīng)元一起工作時(shí)會(huì)變得聰明。單獨(dú)神經(jīng)元或小集合的神經(jīng)元不是特別有用。

生物神經(jīng)元不是特別稠密地連接在一起。如圖1.10所示,幾十年來(lái),我們的機(jī)器學(xué)習(xí)模型中每個(gè)神經(jīng)元的連接數(shù)量已經(jīng)與哺乳動(dòng)物的大腦在同一數(shù)量級(jí)上。
image.png

如圖1.11所示,就神經(jīng)元的總數(shù)目而言,直到最近神經(jīng)網(wǎng)絡(luò)都是驚人的小。自從隱藏單元引入以來(lái),人工神經(jīng)網(wǎng)絡(luò)的規(guī)模大約每 2.4 年擴(kuò)大一倍。這種增長(zhǎng)是由更大內(nèi)存、更快的計(jì)算機(jī)和更大的可用數(shù)據(jù)集驅(qū)動(dòng)的。更大的網(wǎng)絡(luò)能夠在更復(fù)雜的任務(wù)中實(shí)現(xiàn)更高的精度。這種趨勢(shì)看起來(lái)將持續(xù)數(shù)十年。除非有能力迅速擴(kuò)展的新技術(shù),否則至少要到 21 世紀(jì) 50 年代,人工神經(jīng)網(wǎng)絡(luò)將才能具備與人腦相同數(shù)量級(jí)的神經(jīng)元。生物神經(jīng)元表示的功能可能比目前的人工神經(jīng)元所表示的更復(fù)雜,因此生物神經(jīng)網(wǎng)絡(luò)可能比圖中描繪的甚至要更大。
image.png

現(xiàn)在看來(lái),其神經(jīng)元比一個(gè)水蛭還少的神經(jīng)網(wǎng)絡(luò)不能解決復(fù)雜的人工智能問(wèn)題是不足為奇的。即使現(xiàn)在的網(wǎng)絡(luò),從計(jì)算系統(tǒng)角度來(lái)看它可能相當(dāng)大的,但實(shí)際上它比相對(duì)原始的脊椎動(dòng)物如青蛙的神經(jīng)系統(tǒng)還要小。

由于更快的 CPU、通用 GPU 的出現(xiàn)(在第12.1.2節(jié)中討論)、更快的網(wǎng)絡(luò)連接和更好的分布式計(jì)算的軟件基礎(chǔ)設(shè)施,模型規(guī)模隨著時(shí)間的推移不斷增加是深度學(xué)習(xí)歷史中最重要的趨勢(shì)之一。人們普遍預(yù)計(jì)這種趨勢(shì)將很好地持續(xù)到未來(lái)。

1.2.4 與日俱增的精度、復(fù)雜度和對(duì)現(xiàn)實(shí)世界的沖擊

20 世紀(jì) 80 年代以來(lái),深度學(xué)習(xí)提供精確識(shí)別和預(yù)測(cè)的能力一直在提高。

最早的深度模型被用來(lái)識(shí)別裁剪緊湊且非常小的圖像中的單個(gè)對(duì)象(Rumelhart et al., 1986d)。深度學(xué)習(xí)迅速崛起的激動(dòng)人心的一幕是卷積網(wǎng)絡(luò)第一次大幅贏得這一挑戰(zhàn),它將最高水準(zhǔn)的前5 錯(cuò)誤率從 26.1% 降到 15.3% (Krizhevsky et al., 2012b),這意味著該卷積網(wǎng)絡(luò)針對(duì)每個(gè)圖像的可能類(lèi)別生成一個(gè)順序列表,除了 15.3% 的測(cè)試樣本,其他測(cè)試樣本的正確類(lèi)標(biāo)都出現(xiàn)在此列表中的前 5 項(xiàng)里。

在深度網(wǎng)絡(luò)的規(guī)模和精度有所提高的同時(shí),它們可以解決的任務(wù)也日益復(fù)雜。Goodfellow et al. (2014d) 表明,神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)輸出描述圖像的整個(gè)字符序列,而不是僅僅識(shí)別單個(gè)對(duì)象。此前,人們普遍認(rèn)為,這種學(xué)習(xí)需要對(duì)序列中的單個(gè)元素進(jìn)行標(biāo)注 (Gulcehre and Bengio, 2013)。循環(huán)神經(jīng)網(wǎng)絡(luò),如之前提到的 LSTM 序列模型,現(xiàn)在用于對(duì)序列和其他序列之間的關(guān)系進(jìn)行建模,而不是僅僅固定輸入之間的關(guān)系。這種序列到序列的學(xué)習(xí)似乎引領(lǐng)著另一個(gè)應(yīng)用的顛覆性發(fā)展,即機(jī)器翻譯 (Sutskever et al., 2014; Bahdanau et al., 2015)。

這種復(fù)雜性日益增加的趨勢(shì)已將其推向邏輯結(jié)論,即神經(jīng)圖靈機(jī) (Graves et al.,2014) 的引入,它能學(xué)習(xí)讀取存儲(chǔ)單元和向存儲(chǔ)單元寫(xiě)入任意內(nèi)容。這樣的神經(jīng)網(wǎng)絡(luò)可以從期望行為的樣本中學(xué)習(xí)簡(jiǎn)單的程序。例如,從雜亂和排好序的樣本中學(xué)習(xí)對(duì)一系列數(shù)進(jìn)行排序。這種自我編程技術(shù)正處于起步階段,但原則上未來(lái)可以適用
于幾乎所有的任務(wù)。

深度學(xué)習(xí)的另一個(gè)最大的成就是其在強(qiáng)化學(xué)習(xí)(reinforcement learning)領(lǐng)域的擴(kuò)展。在強(qiáng)化學(xué)習(xí)中,一個(gè)自主的智能體必須在沒(méi)有人類(lèi)操作者指導(dǎo)的情況下,通過(guò)試錯(cuò)來(lái)學(xué)習(xí)執(zhí)行任務(wù)。DeepMind 表明,基于深度學(xué)習(xí)的強(qiáng)化學(xué)習(xí)系統(tǒng)能夠?qū)W會(huì)玩
Atari 視頻游戲,并在多種任務(wù)中可與人類(lèi)匹敵 (Mnih et al., 2015)。深度學(xué)習(xí)也顯著改善了機(jī)器人強(qiáng)化學(xué)習(xí)的性能 (Finn et al., 2015)。

深度學(xué)習(xí)的進(jìn)步也嚴(yán)重依賴(lài)于軟件基礎(chǔ)架構(gòu)的進(jìn)展。

深度學(xué)習(xí)也為其他科學(xué)做出了貢獻(xiàn)。用于對(duì)象識(shí)別的現(xiàn)代卷積網(wǎng)絡(luò)為神經(jīng)科學(xué)家們提供了可以研究的視覺(jué)處理模型 (DiCarlo, 2013)。深度學(xué)習(xí)也為處理海量數(shù)據(jù)以及在科學(xué)領(lǐng)域作出有效的預(yù)測(cè)提供了非常有用的工具。它已成功地用于預(yù)測(cè)分子如何相互作用從而幫助制藥公司設(shè)計(jì)新的藥物 (Dahl et al., 2014),搜索亞原子粒子 (Baldi et al., 2014),以及自動(dòng)解析用于構(gòu)建人腦三維圖的顯微鏡圖像
(Knowles-Barley et al., 2014) 等。我們期待深度學(xué)習(xí)未來(lái)能夠出現(xiàn)在越來(lái)越多的科學(xué)領(lǐng)域中。

總之,深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種方法。在過(guò)去幾十年的發(fā)展中,它大量借鑒了我們關(guān)于人腦、統(tǒng)計(jì)學(xué)和應(yīng)用數(shù)學(xué)的知識(shí)。近年來(lái),得益于更強(qiáng)大的計(jì)算機(jī)、更大的數(shù)據(jù)集和能夠訓(xùn)練更深網(wǎng)絡(luò)的技術(shù),深度學(xué)習(xí)的普及性和實(shí)用性都有了極大的發(fā)展。未來(lái)幾年充滿(mǎn)了進(jìn)一步提高深度學(xué)習(xí)并將它帶到新領(lǐng)域的挑戰(zhàn)和機(jī)遇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容