概要: 來源:小象 《深度學(xué)習(xí)》英文版由美國(guó)麻省理工學(xué)院 MIT 出版社于 2016 年 12 月推出,一經(jīng)出版就風(fēng)靡全球,。它的一大特點(diǎn)是介紹深度學(xué)習(xí)算法的本質(zhì),,脫離具體代碼實(shí)現(xiàn)給出算法背后的邏輯,不寫代碼的人也完全可以看,。 -- 伊恩等人 引言 在古希臘時(shí)期,發(fā)明家就夢(mèng)想著創(chuàng)造能自主思考的機(jī)器,。神話人物皮格馬利翁,、代達(dá)羅斯和赫淮斯托斯 可以被看作傳說中的發(fā)明家,而加拉蒂亞,、塔洛斯和潘多拉則可以被視為人造生命 (Ovid and Martin, 2004; Sparkes, 1996; Tandy, 1997),。 當(dāng)人類第一次構(gòu)思可編程計(jì)算機(jī)時(shí),就已經(jīng)在思考計(jì)算機(jī)能否變得智能 (盡管這距造出第一臺(tái)計(jì)算機(jī)還有一百多年)(Lovelace, 1842),。如今,,人工智能(AI)已經(jīng)成為一個(gè)具有眾多實(shí)際應(yīng)用和活躍研究課題的領(lǐng)域,并且正在蓬勃發(fā)展,。我們期望通過智能軟件自動(dòng)地處理常規(guī)勞動(dòng),、理解語音或圖像、幫助醫(yī)學(xué)診斷和支持基礎(chǔ)科學(xué)研究,。 在人工智能的早期,,那些對(duì)人類智力來說非常困難、但對(duì)計(jì)算機(jī)來說相對(duì)簡(jiǎn)單的問題得到迅速解決,,比如,,那些可以通過一系列形式化的數(shù)學(xué)規(guī)則來描述的問題。人工智能的真正挑戰(zhàn)在于解決那些對(duì)人來說很容易執(zhí)行,、但很難形式化描述的任務(wù),,如識(shí)別人們所說的話或圖像中的臉。對(duì)于這些問題,,我們?nèi)祟愅梢詰{借直覺輕易地解決,。 針對(duì)這些比較直觀的問題,本書討論一種解決方案,。該方案可以讓計(jì)算機(jī)從經(jīng)驗(yàn)中學(xué)習(xí),,并根據(jù)層次化的概念體系來理解世界,而每個(gè)概念則通過與某些相對(duì)簡(jiǎn)單的概念之間的關(guān)系來定義,。讓計(jì)算機(jī)從經(jīng)驗(yàn)獲取知識(shí),,可以避免由人類來給計(jì)算機(jī)形式化地指定它需要的所有知識(shí)。層次化的概念讓計(jì)算機(jī)構(gòu)建較簡(jiǎn)單的概念來學(xué)習(xí)復(fù)雜概念,。如果繪制出表示這些概念如何建立在彼此之上的圖,,我們將得到一張“深”(層次很多) 的圖,。基于這個(gè)原因,,我們稱這種方法為 AI 深度學(xué)習(xí),。 AI 許多早期的成功發(fā)生在相對(duì)樸素且形式化的環(huán)境中,而且不要求計(jì)算機(jī)具備很多關(guān)于世界的知識(shí),。例如,,IBM 的深藍(lán) 國(guó)際象棋系統(tǒng)在 1997 年擊敗了世界冠軍 Garry Kasparov(Hsu, 2002)。顯然國(guó)際象棋是一個(gè)非常簡(jiǎn)單的領(lǐng)域,,因?yàn)樗鼉H含有 64 個(gè)位置并只能以嚴(yán)格限制的方式移動(dòng) 32 個(gè)棋子,。設(shè)計(jì)一種成功的國(guó)際象棋策略是巨大的成就,但向計(jì)算機(jī)描述棋子及其允許的走法并不是這一挑戰(zhàn)的困難所在,。國(guó)際象棋完全可以由一個(gè)非常簡(jiǎn)短的,、完全形式化的規(guī)則列表來描述,并可以容易地由程序員事先準(zhǔn)備好,。 具有諷刺意義的是,,抽象和形式化的任務(wù)對(duì)人類而言是最困難的腦力任務(wù)之一,,但對(duì)計(jì)算機(jī)而言卻屬于最容易的,。計(jì)算機(jī)早就能夠打敗人類最好的國(guó)際象棋選手,但直到最近計(jì)算機(jī)才在識(shí)別對(duì)象或語音任務(wù)中達(dá)到人類平均水平,。一個(gè)人的日常生活需要關(guān)于世界的巨量知識(shí),。很多這方面的知識(shí)是主觀的、直觀的,,因此很難通過形式化的方式表達(dá)清楚,。計(jì)算機(jī)需要獲取同樣的知識(shí)才能表現(xiàn)出智能。人工智能的一個(gè)關(guān)鍵挑戰(zhàn)就是如何將這些非形式化的知識(shí)傳達(dá)給計(jì)算機(jī),。 一些人工智能項(xiàng)目力求將關(guān)于世界的知識(shí)用形式化的語言進(jìn)行硬編碼,。計(jì)算機(jī)可以使用邏輯推理規(guī)則來自動(dòng)地理解這些形式化語言中的聲明。這就是眾所周知的人工智能的知識(shí)庫 方法,。然而,,這些項(xiàng)目最終都沒有取得重大的成功。其中最著名的項(xiàng)目是 Cyc (Lenat and Guha, 1989),。Cyc 包括一個(gè)推斷引擎和一個(gè)使用 CycL 語言描述的聲明數(shù)據(jù)庫,。這些聲明是由人類監(jiān)督者輸入的。這是一個(gè)笨拙的過程,。人們?cè)O(shè)法設(shè)計(jì)出足夠復(fù)雜的形式化規(guī)則來精確地描述世界,。例如,Cyc 不能理解一個(gè)關(guān)于名為 Fred 的人在早上剃須的故事 (Linde, 1992),。它的推理引擎檢測(cè)到故事中的不一致性:它知道人體的構(gòu)成不包含電氣零件,,但由于 Fred 正拿著一個(gè)電動(dòng)剃須刀,,它認(rèn)為實(shí)體——“正在剃須的 Fred” 含有電氣部件。因此,,它產(chǎn)生了這樣的疑問——Fred 在刮胡子的時(shí)候是否仍然是一個(gè)人,。 依靠硬編碼的知識(shí)體系面臨的困難表明,AI 系統(tǒng)需要具備自己獲取知識(shí)的能力,,即從原始數(shù)據(jù)中提取模式的能力,。這種能力稱為機(jī)器學(xué)習(xí)。引入機(jī)器學(xué)習(xí)使計(jì)算機(jī)能夠解決涉及現(xiàn)實(shí)世界知識(shí)的問題,,并能做出看似主觀的決策,。比如,一個(gè)稱為邏輯回歸 的簡(jiǎn)單機(jī)器學(xué)習(xí)算法可以決定是否建議剖腹產(chǎn) (Mor-Yosef et al., 1990),。而同樣是簡(jiǎn)單機(jī)器學(xué)習(xí)算法的樸素貝葉斯 則可以區(qū)分垃圾電子郵件和合法電子郵件,。 這些簡(jiǎn)單的機(jī)器學(xué)習(xí)算法的性能在很大程度上依賴于給定數(shù)據(jù)的表示。例如,,當(dāng)邏輯回歸用于判斷產(chǎn)婦是否適合剖腹產(chǎn)時(shí),,AI 系統(tǒng)不會(huì)直接檢查患者。相反,,醫(yī)生需要告訴系統(tǒng)幾條相關(guān)的信息,,諸如是否存在子宮疤痕。表示患者的每條信息稱為一個(gè)特征,。邏輯回歸學(xué)習(xí)病人的這些特征如何與各種結(jié)果相關(guān)聯(lián),。然而,它絲毫不能影響該特征定義的方式,。如果將病人的 MRI(核磁共振) 掃描而不是醫(yī)生正式的報(bào)告作為邏輯回歸的輸入,,它將無法做出有用的預(yù)測(cè)。MRI 掃描的單一像素與分娩過程中并發(fā)癥之間的相關(guān)性微乎其微,。 在整個(gè)計(jì)算機(jī)科學(xué)乃至日常生活中,,對(duì)表示的依賴都是一個(gè)普遍現(xiàn)象。在計(jì)算機(jī)科學(xué)中,,如果數(shù)據(jù)集合被精巧地結(jié)構(gòu)化并被智能地索引,,那么諸如搜索之類的操作的處理速度就可以成指數(shù)級(jí)地加快。人們可以很容易地在阿拉伯?dāng)?shù)字的表示下進(jìn)行算術(shù)運(yùn)算,,但在羅馬數(shù)字的表示下,,運(yùn)算會(huì)比較耗時(shí)。因此,,毫不奇怪,,表示的選擇會(huì)對(duì)機(jī)器學(xué)習(xí)算法的性能產(chǎn)生巨大的影響。圖 1.1 展示了一個(gè)簡(jiǎn)單的可視化例子,。 圖 1.1 不同表示的例子:假設(shè)我們想在散點(diǎn)圖中畫一條線來分隔兩類數(shù)據(jù),。在左圖中,,我們使用笛卡兒坐標(biāo)表示數(shù)據(jù),這個(gè)任務(wù)是不可能的,。在右圖中,,我們用極坐標(biāo)表示數(shù)據(jù),可以用垂直線簡(jiǎn)單地解決這個(gè)任務(wù) (與 David Warde-Farley 合作繪制此圖) 許多人工智能任務(wù)都可以通過以下方式解決:先提取一個(gè)合適的特征集,,然后將這些特征提供給簡(jiǎn)單的機(jī)器學(xué)習(xí)算法,。例如,對(duì)于通過聲音鑒別說話者的任務(wù)來說,,一個(gè)有用的特征是對(duì)其聲道大小的估計(jì),。這個(gè)特征為判斷說話者是男性、女性還是兒童提供了有力線索,。 然而,,對(duì)于許多任務(wù)來說,我們很難知道應(yīng)該提取哪些特征,。例如,,假設(shè)我們想編寫一個(gè)程序來檢測(cè)照片中的車。我們知道,,汽車有輪子,,所以我們可能會(huì)想用車輪的存在與否作為特征。遺憾的是,,我們難以準(zhǔn)確地根據(jù)像素值來描述車輪看上去像什么,。雖然車輪具有簡(jiǎn)單的幾何形狀,但它的圖像可能會(huì)因場(chǎng)景而異,,如落在車輪上的陰影、太陽照亮的車輪的金屬零件,、汽車的擋泥板或者遮擋的車輪一部分的前景物體等,。 解決這個(gè)問題的途徑之一是使用機(jī)器學(xué)習(xí)來發(fā)掘表示本身,而不僅僅把表示映射到輸出,。 這種方法我們稱之為表示學(xué)習(xí),。學(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í)算法的典型例子是自編碼器,。自編碼器由一個(gè)編碼器 函數(shù)和一個(gè)解碼器 函數(shù)組合而成,。編碼器函數(shù)將輸入數(shù)據(jù)轉(zhuǎn)換為一種不同的表示,而解碼器函數(shù)則將這個(gè)新的表示轉(zhuǎn)換回原來的形式,。我們期望當(dāng)輸入數(shù)據(jù)經(jīng)過編碼器和解碼器之后盡可能多地保留信息,,同時(shí)希望新的表示有各種好的特性,這也是自編碼器的訓(xùn)練目標(biāo),。為了實(shí)現(xiàn)不同的特性,,我們可以設(shè)計(jì)不同形式的自編碼器。 當(dāng)設(shè)計(jì)特征或設(shè)計(jì)用于學(xué)習(xí)特征的算法時(shí),,我們的目標(biāo)通常是分離出能解釋觀察數(shù)據(jù)的變差因素,。在此背景下,“因素”這個(gè)詞僅指代影響的不同來源,;因素通常不是乘性組合,。這些因素通常是不能被直接觀察到的量。相反,,它們可能是現(xiàn)實(shí)世界中觀察不到的物體或者不可觀測(cè)的力,,但會(huì)影響可觀測(cè)的量。為了對(duì)觀察到的數(shù)據(jù)提供有用的簡(jiǎn)化解釋或推斷其原因,,它們還可能以概念的形式存在于人類的思維中,。它們可以被看作數(shù)據(jù)的概念或者抽象,幫助我們了解這些數(shù)據(jù)的豐富多樣性,。當(dāng)分析語音記錄時(shí),,變差因素包括說話者的年齡、性別,、他們的口音和他們正在說的詞語,。當(dāng)分析汽車的圖像時(shí),變差因素包括汽車的位置,、它的顏色,、太陽的角度和亮度。 在許多現(xiàn)實(shí)的人工智能應(yīng)用中,,困難主要源于多個(gè)變差因素同時(shí)影響著我們能夠觀察到的每一個(gè)數(shù)據(jù),。比如,在一張包含紅色汽車的圖片中,,其單個(gè)像素在夜間可能會(huì)非常接近黑色,。汽車輪廓的形狀取決于視角。大多數(shù)應(yīng)用需要我們理清變差因素并忽略我們不關(guān)心的因素,。 顯然,,從原始數(shù)據(jù)中提取如此高層次、抽象的特征是非常困難的。許多諸如說話口音這樣的變差因素,,只能通過對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的,、接近人類水平的理解來辨識(shí)。這幾乎與獲得原問題的表示一樣困難,,因此,,乍一看,表示學(xué)習(xí)似乎并不能幫助我們,。 深度學(xué)習(xí)通過其他較簡(jiǎn)單的表示來表達(dá)復(fù)雜表示,,解決了表示學(xué)習(xí)中的核心問題。 深度學(xué)習(xí)讓計(jì)算機(jī)通過較簡(jiǎn)單的概念構(gòu)建復(fù)雜的概念,。圖 1.2 展示了深度學(xué)習(xí)系統(tǒng)如何通過組合較簡(jiǎn)單的概念 (例如角和輪廓,,它們反過來由邊線定義) 來表示圖像中人的概念。深度學(xué)習(xí)模型的典型例子是前饋深度網(wǎng)絡(luò)或或多層感知機(jī)(MLP),。多層感知機(jī)僅僅是一個(gè)將一組輸入值映射到輸出值的數(shù)學(xué)函數(shù),。該函數(shù)由許多較簡(jiǎn)單的函數(shù)復(fù)合而成。我們可以認(rèn)為不同數(shù)學(xué)函數(shù)的每一次應(yīng)用都為輸入提供了新的表示,。 學(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)信息類似于傳統(tǒng)計(jì)算機(jī)程序中的計(jì)數(shù)器或指針,。它與具體的輸入內(nèi)容無關(guān),,但有助于模型組織其處理過程。 圖 1.2 深度學(xué)習(xí)模型的示意圖,。計(jì)算機(jī)難以理解原始感觀輸入數(shù)據(jù)的含義,如表示為像素值集合的圖像,。將一組像素映射到對(duì)象標(biāo)識(shí)的函數(shù)非常復(fù)雜,。如果直接處理,學(xué)習(xí)或評(píng)估此映射似乎是不可能的,。深度學(xué)習(xí)將所需的復(fù)雜映射分解為一系列嵌套的簡(jiǎn)單映射 (每個(gè)由模型的不同層描述) 來解決這一難題,。輸入展示在可見層,這樣命名的原因是因?yàn)樗覀兡苡^察到的變量。然后是一系列從圖像中提取越來越多抽象特征的隱藏層,。因?yàn)樗鼈兊闹挡辉跀?shù)據(jù)中給出,,所以將這些層稱為“隱藏層”; 模型必須確定哪些概念有利于解釋觀察數(shù)據(jù)中的關(guān)系。這里的圖像是每個(gè)隱藏單元表示的特征的可視化,。給定像素,,第 1 層可以輕易地通過比較相鄰像素的亮度來識(shí)別邊緣。有了第 1 隱藏層描述的邊緣,,第 2 隱藏層可以容易地搜索可識(shí)別為角和擴(kuò)展輪廓的邊集合,。給定第 2 隱藏層中關(guān)于角和輪廓的圖像描述,第 3 隱藏層可以找到輪廓和角的特定集合來檢測(cè)特定對(duì)象的整個(gè)部分,。最后,,根據(jù)圖像描述中包含的對(duì)象部分,可以識(shí)別圖像中存在的對(duì)象 (經(jīng) Zeiler and Fergus (2014) 許可引用此圖) 目前主要有兩種度量模型深度的方式,。一種方式是基于評(píng)估架構(gòu)所需執(zhí)行的順序指令的數(shù)目,。假設(shè)我們將模型表示為給定輸入后,計(jì)算對(duì)應(yīng)輸出的流程圖,,則可以將這張流程圖中的最長(zhǎng)路徑視為模型的深度,。正如兩個(gè)使用不同語言編寫的等價(jià)程序?qū)⒕哂胁煌拈L(zhǎng)度,相同的函數(shù)可以被繪制為具有不同深度的流程圖,,其深度取決于我們可以用來作為一個(gè)步驟的函數(shù),。圖 1.3 說明了語言的選擇如何給相同的架構(gòu)兩個(gè)不同的衡量。 圖 1.3 將輸入映射到輸出的計(jì)算圖表的示意圖,,其中每個(gè)節(jié)點(diǎn)執(zhí)行一個(gè)操作,。深度是從輸入到輸出的最長(zhǎng)路徑的長(zhǎng)度,但這取決于可能的計(jì)算步驟的定義,。這些圖中所示的計(jì)算是邏輯回歸模型的輸出,,σ(wTx),其中 σ 是 logistic sigmoid 函數(shù),。如果使用加法,、乘法和 logistic sigmoid 作為計(jì)算機(jī)語言的元素,那么這個(gè)模型深度為 3,;如果將邏輯回歸視為元素本身,,那么這個(gè)模型深度為 1 另一種是在深度概率模型中使用的方法,它不是將計(jì)算圖的深度視為模型深度,,而是將描述概念彼此如何關(guān)聯(lián)的圖的深度視為模型深度,。在這種情況下,計(jì)算每個(gè)概念表示的計(jì)算流程圖的深度可能比概念本身的圖更深,。這是因?yàn)橄到y(tǒng)對(duì)較簡(jiǎn)單概念的理解在給出更復(fù)雜概念的信息后可以進(jìn)一步精細(xì)化,。例如,一個(gè) AI 系統(tǒng)觀察其中一只眼睛在陰影中的臉部圖像時(shí),它最初可能只看到一只眼睛,。但當(dāng)檢測(cè)到臉部的存在后,,系統(tǒng)可以推斷第二只眼睛也可能是存在的。在這種情況下,,概念的圖僅包括兩層 (關(guān)于眼睛的層和關(guān)于臉的層),,但如果我們細(xì)化每個(gè)概念的估計(jì)將需要額外的 n 次計(jì)算,那么計(jì)算的圖將包含 2n 層,。 由于并不總是清楚計(jì)算圖的深度和概率模型圖的深度哪一個(gè)是最有意義的,,并且由于不同的人選擇不同的最小元素集來構(gòu)建相應(yīng)的圖,所以就像計(jì)算機(jī)程序的長(zhǎng)度不存在單一的正確值一樣,,架構(gòu)的深度也不存在單一的正確值,。另外,也不存在模型多么深才能被修飾為“深” 的共識(shí),。但相比傳統(tǒng)機(jī)器學(xué)習(xí),,深度學(xué)習(xí)研究的模型涉及更多學(xué)到功能或?qū)W到概念的組合,這點(diǎn)毋庸置疑,。 總之,,這本書的主題 —— 深度學(xué)習(xí)是通向人工智能的途徑之一。具體來說,,它是機(jī)器學(xué)習(xí)的一種,,一種能夠使計(jì)算機(jī)系統(tǒng)從經(jīng)驗(yàn)和數(shù)據(jù)中得到提高的技術(shù)。我們堅(jiān)信機(jī)器學(xué)習(xí)可以構(gòu)建出在復(fù)雜實(shí)際環(huán)境下運(yùn)行的 AI 系統(tǒng),,并且是唯一切實(shí)可行的方法,。深度學(xué)習(xí)是一種特定類型的機(jī)器學(xué)習(xí),具有強(qiáng)大的能力和靈活性,,它將大千世界表示為嵌套的層次概念體系 (由較簡(jiǎn)單概念間的聯(lián)系定義復(fù)雜概念,、從一般抽象概括到高級(jí)抽象表示)。圖 1.4 說明了這些不同的 AI 學(xué)科之間的關(guān)系,。圖 1.5 展示了每個(gè)學(xué)科如何工作的高層次原理,。 圖 1.4 維恩圖展示了深度學(xué)習(xí)既是一種表示學(xué)習(xí),也是一種機(jī)器學(xué)習(xí),,可以用于許多 (但不是全部)AI 方法,。維恩圖的每個(gè)部分包括一個(gè) AI 技術(shù)的實(shí)例 圖 1.5 流程圖展示了 AI 系統(tǒng)的不同部分如何在不同的 AI 學(xué)科中彼此相關(guān)。陰影框表示能從數(shù)據(jù)中學(xué)習(xí)的組件 深度學(xué)習(xí)的歷史趨勢(shì) 通過歷史背景了解深度學(xué)習(xí)是最簡(jiǎn)單的方式,。這里我們僅指出深度學(xué)習(xí)的幾個(gè)關(guān)鍵趨勢(shì),,而不是提供其詳細(xì)的歷史:
神經(jīng)網(wǎng)絡(luò)的眾多名稱和命運(yùn)變遷 我們期待這本書的許多讀者都聽說過深度學(xué)習(xí)這一激動(dòng)人心的新技術(shù),,并對(duì)一本書提及一個(gè)新興領(lǐng)域的“歷史”而感到驚訝。事實(shí)上,,深度學(xué)習(xí)的歷史可以追溯到 20 世紀(jì) 40 年代,。深度學(xué)習(xí)看似是一個(gè)全新的領(lǐng)域,只不過因?yàn)樵谀壳傲餍械那皫啄晁€是相對(duì)冷門的,,同時(shí)也因?yàn)樗毁x予了許多不同的名稱 (其中大部分已經(jīng)不再使用),,最近才成為眾所周知的“深度學(xué)習(xí)”。這個(gè)領(lǐng)域已經(jīng)更換了很多名稱,,它反映了不同的研究人員和不同觀點(diǎn)的影響,。 全面地講述深度學(xué)習(xí)的歷史超出了本書的范圍。然而,,一些基本的背景對(duì)理解深度學(xué)習(xí)是有用的,。一般認(rèn)為,迄今為止深度學(xué)習(xí)已經(jīng)經(jīng)歷了 3 次發(fā)展浪潮:20 世紀(jì) 40 年代到 60 年代,,深度學(xué)習(xí)的雛形出現(xiàn)在控制論 中,;20 世紀(jì) 80 年代到 90 年代,深度學(xué)習(xí)表現(xiàn)為聯(lián)結(jié)主義,;直到 2006 年,,才真正以深度學(xué)習(xí)之名復(fù)興。圖 1.7 給出了定量的展示,。 我們今天知道的一些最早的學(xué)習(xí)算法,,旨在模擬生物學(xué)習(xí)的計(jì)算模型,即大腦怎樣學(xué)習(xí)或?yàn)槭裁茨軐W(xué)習(xí)的模型,。其結(jié)果是深度學(xué)習(xí)以人工神經(jīng)網(wǎng)絡(luò) (ANN)之名而淡去,。彼時(shí),深度學(xué)習(xí)模型被認(rèn)為是受生物大腦 (無論人類大腦或其他動(dòng)物的大腦) 所啟發(fā)而設(shè)計(jì)出來的系統(tǒng),。盡管有些機(jī)器學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)有時(shí)被用來理解大腦功能 (Hinton and Shallice, 1991),,但它們一般都沒有設(shè)計(jì)成生物功能的真實(shí)模型。深度學(xué)習(xí)的神經(jīng)觀點(diǎn)受兩個(gè)主要思想啟發(fā):一個(gè)想法是,,大腦作為例子證明智能行為是可能的,,因此,,概念上,建立智能的直接途徑是逆向大腦背后的計(jì)算原理,,并復(fù)制其功能,;另一種看法是,理解大腦和人類智能背后的原理也非常有趣,,因此機(jī)器學(xué)習(xí)模型除了解決工程應(yīng)用的能力,,如果能讓人類對(duì)這些基本的科學(xué)問題有進(jìn)一步的認(rèn)識(shí),也將會(huì)很有用,。 圖 1.7 根據(jù) Google 圖書中短語“控制論”“聯(lián)結(jié)主義”或“神經(jīng)網(wǎng)絡(luò)”頻率衡量的人工神經(jīng)網(wǎng)絡(luò)研究的歷史浪潮 ( 圖中展示了 3 次浪潮的前兩次,,第 3 次最近才出現(xiàn))。第 1 次浪潮開始于 20 世紀(jì) 40 年代到 20 世紀(jì) 60 年代的控制論,,隨著生物學(xué)習(xí)理論的發(fā)展 (McCulloch and Pitts, 1943; Hebb, 1949) 和第一個(gè)模型的實(shí)現(xiàn) (如感知機(jī) (Rosenblatt, 1958)),,能實(shí)現(xiàn)單個(gè)神經(jīng)元的訓(xùn)練。第 2 次浪潮開始于 1980—1995 年間的聯(lián)結(jié)主義方法,,可以使用反向傳播 (Rumelhart et al., 1986a) 訓(xùn)練具有一兩個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò),。當(dāng)前第 3 次浪潮,也就是深度學(xué)習(xí),,大約始于 2006 年 (Hinton et al., 2006a; Bengio et al., 2007a; Ranzato et al., 2007a),,并且于 2016 年以圖書的形式出現(xiàn)。另外,,前兩次浪潮類似地出現(xiàn)在書中的時(shí)間比相應(yīng)的科學(xué)活動(dòng)晚得多,。 現(xiàn)代術(shù)語“深度學(xué)習(xí)”超越了目前機(jī)器學(xué)習(xí)模型的神經(jīng)科學(xué)觀點(diǎn)。它訴諸于學(xué)習(xí)多層次組合這一更普遍的原理,,這一原理也可以應(yīng)用于那些并非受神經(jīng)科學(xué)啟發(fā)的機(jī)器學(xué)習(xí)框架,。 現(xiàn)代深度學(xué)習(xí)最早的前身是從神經(jīng)科學(xué)的角度出發(fā)的簡(jiǎn)單線性模型。這些模型設(shè)計(jì)為使用一組 n 個(gè)輸入 x1,··· ,xn,,并將它們與一個(gè)輸出 y 相關(guān)聯(lián),。這些模型希望學(xué)習(xí)一組權(quán)重 w1,··· ,wn,并計(jì)算它們的輸出 f(x,w) = x1w1 + ··· + xnwn,。如圖 1.7 所示,,第一次神經(jīng)網(wǎng)絡(luò)研究浪潮稱為控制論。 McCulloch-Pitts 神經(jīng)元 (McCulloch and Pitts, 1943) 是腦功能的早期模型,。該線性模型通過檢驗(yàn)函數(shù) f(x,w) 的正負(fù)來識(shí)別兩種不同類別的輸入,。顯然,模型的權(quán)重需要正確設(shè)置后才能使模型的輸出對(duì)應(yīng)于期望的類別,。這些權(quán)重可以由操作人員設(shè)定,。20 世紀(jì) 50 年代,感知機(jī) (Rosenblatt, 1956, 1958) 成為第一個(gè)能根據(jù)每個(gè)類別的輸入樣本來學(xué)習(xí)權(quán)重的模型,。大約在同一時(shí)期,,自適應(yīng)線性單元(ADALINE) 簡(jiǎn)單地返回函數(shù) f(x) 本身的值來預(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)練算法是被稱為隨機(jī)梯度下降的一種特例,。稍加改進(jìn)后的隨機(jī)梯度下降算法仍然是當(dāng)今深度學(xué)習(xí)的主要訓(xùn)練算法。 基于感知機(jī)和 ADALINE 中使用的函數(shù) f(x,w) 的模型稱為線性模型,。盡管在許多情況下,這些模型以不同于原始模型的方式進(jìn)行訓(xùn)練,,但仍是目前最廣泛使用的機(jī)器學(xué)習(xí)模型,。 線性模型有很多局限性。最著名的是,,它們無法學(xué)習(xí)異或 (XOR) 函數(shù),,即 f([0,1],w) = 1 和 f([1,0],w) = 1,但 f([1,1],w) = 0 和 f([0,0],w) = 0,。觀察到線性模型這個(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ǐng)域的主要指導(dǎo)。 如今神經(jīng)科學(xué)在深度學(xué)習(xí)研究中的作用被削弱,,主要原因是我們根本沒有足夠的關(guān)于大腦的信息來作為指導(dǎo)去使用它,。要獲得對(duì)被大腦實(shí)際使用算法的深刻理解,我們需要有能力同時(shí)監(jiān)測(cè) (至少是) 數(shù)千相連神經(jīng)元的活動(dòng),。我們不能夠做到這一點(diǎn),,所以我們甚至連大腦最簡(jiǎn)單、最深入研究的部分都還遠(yuǎn)遠(yuǎn)沒有理解 (Olshausen and Field, 2005),。 神經(jīng)科學(xué)已經(jīng)給了我們依靠單一深度學(xué)習(xí)算法解決許多不同任務(wù)的理由,。神經(jīng)學(xué)家們發(fā)現(xiàn),如果將雪貂的大腦重新連接,,使視覺信號(hào)傳送到聽覺區(qū)域,,它們可以學(xué)會(huì)用大腦的聽覺處理區(qū)域去“看”(Von Melchner et al., 2000)。這暗示著大多數(shù)哺乳動(dòng)物的大腦使用單一的算法就可以解決其大腦可以解決的大部分不同任務(wù),。在這個(gè)假設(shè)之前,,機(jī)器學(xué)習(xí)研究是比較分散的,研究人員在不同的社群研究自然語言處理,、計(jì)算機(jī)視覺,、運(yùn)動(dòng)規(guī)劃和語音識(shí)別。如今,,這些應(yīng)用社群仍然是獨(dú)立的,,但是對(duì)于深度學(xué)習(xí)研究團(tuán)體來說,,同時(shí)研究許多甚至所有這些應(yīng)用領(lǐng)域是很常見的。 我們能夠從神經(jīng)科學(xué)得到一些粗略的指南,。僅通過計(jì)算單元之間的相互作用而變得智能的基本思想是受大腦啟發(fā)的,。新認(rèn)知機(jī) (Fukushima, 1980) 受哺乳動(dòng)物視覺系統(tǒng)的結(jié)構(gòu)啟發(fā),引入了一個(gè)處理圖片的強(qiáng)大模型架構(gòu),,它后來成為了現(xiàn)代卷積網(wǎng)絡(luò)的基礎(chǔ) (LeCun et al., 1998c)(參見第 9.10 節(jié)),。目前大多數(shù)神經(jīng)網(wǎng)絡(luò)是基于一個(gè)稱為整流線性單元的神經(jīng)單元模型。原始認(rèn)知機(jī) (Fukushima, 1975) 受我們關(guān)于大腦功能知識(shí)的啟發(fā),,引入了一個(gè)更復(fù)雜的版本,。簡(jiǎn)化的現(xiàn)代版通過吸收來自不同觀點(diǎn)的思想而形成,Nair and Hinton (2010b) 和 Glorot et al. (2011a) 援引神經(jīng)科學(xué)作為影響,,Jarrett et al. (2009a) 援引更多面向工程的影響,。雖然神經(jīng)科學(xué)是靈感的重要來源,但它不需要被視為剛性指導(dǎo),。我們知道,,真實(shí)的神經(jīng)元計(jì)算著與現(xiàn)代整流線性單元非常不同的函數(shù),但更接近真實(shí)神經(jīng)網(wǎng)絡(luò)的系統(tǒng)并沒有導(dǎo)致機(jī)器學(xué)習(xí)性能的提升,。此外,,雖然神經(jīng)科學(xué)已經(jīng)成功地啟發(fā)了一些神經(jīng)網(wǎng)絡(luò)架構(gòu),但我們對(duì)用于神經(jīng)科學(xué)的生物學(xué)習(xí)還沒有足夠多的了解,,因此也就不能為訓(xùn)練這些架構(gòu)用的學(xué)習(xí)算法提供太多的借鑒,。 媒體報(bào)道經(jīng)常強(qiáng)調(diào)深度學(xué)習(xí)與大腦的相似性。的確,,深度學(xué)習(xí)研究者比其他機(jī)器學(xué)習(xí)領(lǐng)域 (如核方法或貝葉斯統(tǒng)計(jì)) 的研究者更可能地引用大腦作為影響,,但是大家不應(yīng)該認(rèn)為深度學(xué)習(xí)在嘗試模擬大腦。現(xiàn)代深度學(xué)習(xí)從許多領(lǐng)域獲取靈感,,特別是應(yīng)用數(shù)學(xué)的基本內(nèi)容,,如線性代數(shù)、概率論,、信息論和數(shù)值優(yōu)化,。盡管一些深度學(xué)習(xí)的研究人員引用神經(jīng)科學(xué)作為靈感的重要來源,然而其他學(xué)者完全不關(guān)心神經(jīng)科學(xué),。 值得注意的是,,了解大腦是如何在算法層面上工作的嘗試確實(shí)存在且發(fā)展良好。這項(xiàng)嘗試主要被稱為“計(jì)算神經(jīng)科學(xué)”,,并且是獨(dú)立于深度學(xué)習(xí)的領(lǐng)域,。研究人員在兩個(gè)領(lǐng)域之間來回研究是很常見的。深度學(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è)被稱為聯(lián)結(jié)主義 或并行分布處理 潮流而出現(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é)主義者開始研究真正基于神經(jīng)系統(tǒng)實(shí)現(xiàn)的認(rèn)知模型 (Touretzky and Minton, 1985),,其中很多復(fù)蘇的想法可以追溯到心理學(xué)家 Donald Hebb 在 20 世紀(jì) 40 年代的工作 (Hebb, 1949)。 聯(lián)結(jié)主義的中心思想是,,當(dāng)網(wǎng)絡(luò)將大量簡(jiǎn)單的計(jì)算單元連接在一起時(shí)可以實(shí)現(xiàn)智能行為,。這種見解同樣適用于生物神經(jīng)系統(tǒng)中的神經(jīng)元,因?yàn)樗陀?jì)算模型中隱藏單元起著類似的作用,。 在 20 世紀(jì) 80 年代的聯(lián)結(jié)主義期間形成的幾個(gè)關(guān)鍵概念在今天的深度學(xué)習(xí)中仍然是非常重要的,。 其中一個(gè)概念是分布式表示(Hinton et al., 1986)。其思想是:系統(tǒng)的每一個(gè)輸入都應(yīng)該由多個(gè)特征表示,,并且每一個(gè)特征都應(yīng)該參與到多個(gè)可能輸入的表示,。例如,假設(shè)我們有一個(gè)能夠識(shí)別紅色,、綠色或藍(lán)色的汽車,、卡車和鳥類的視覺系統(tǒng),表示這些輸入的其中一個(gè)方法是將 9 個(gè)可能的組合:紅卡車,、紅汽車,、紅鳥、綠卡車等使用單獨(dú)的神經(jīng)元或隱藏單元激活,。這需要 9 個(gè)不同的神經(jīng)元,,并且每個(gè)神經(jīng)必須獨(dú)立地學(xué)習(xí)顏色和對(duì)象身份的概念。改善這種情況的方法之一是使用分布式表示,,即用 3 個(gè)神經(jīng)元描述顏色,,3 個(gè)神經(jīng)元描述對(duì)象身份。這僅僅需要 6 個(gè)神經(jīng)元而不是 9 個(gè),,并且描述紅色的神經(jīng)元能夠從汽車,、卡車和鳥類的圖像中學(xué)習(xí)紅色,而不僅僅是從一個(gè)特定類別的圖像中學(xué)習(xí),。分布式表示的概念是本書的核心,,我們將在第 15 章中更加詳細(xì)地描述,。 聯(lián)結(jié)主義潮流的另一個(gè)重要成就是反向傳播在訓(xùn)練具有內(nèi)部表示的深度神經(jīng)網(wǎng)絡(luò)中的成功使用以及反向傳播算法的普及 (Rumelhart et al., 1986c; LeCun, 1987)。這個(gè)算法雖然曾黯然失色且不再流行,,但截至寫書之時(shí),,它仍是訓(xùn)練深度模型的主導(dǎo)方法。 20 世紀(jì) 90 年代,,研究人員在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行序列建模的方面取得了重要進(jìn)展,。Hochreiter (1991b) 和 Bengio et al. (1994b) 指出了對(duì)長(zhǎng)序列進(jìn)行建模的一些根本性數(shù)學(xué)難題,這將在第 10.7 節(jié)中描述,。Hochreiter 和 Schmidhuber(1997) 引入長(zhǎng)短期記憶( LSTM) 網(wǎng)絡(luò)來解決這些難題,。如今,LSTM 在許多序列建模任務(wù)中廣泛應(yīng)用,,包括 Google 的許多自然語言處理任務(wù),。 神經(jīng)網(wǎng)絡(luò)研究的第二次浪潮一直持續(xù)到 20 世紀(jì) 90 年代中期?;谏窠?jīng)網(wǎng)絡(luò)和其他AI技術(shù)的創(chuàng)業(yè)公司開始尋求投資,,其做法野心勃勃但不切實(shí)際。當(dāng)AI研究不能實(shí)現(xiàn)這些不合理的期望時(shí),,投資者感到失望,。同時(shí),機(jī)器學(xué)習(xí)的其他領(lǐng)域取得了進(jìn)步,。比如,,核方法 (Boser et al., 1992; Cortes and Vapnik, 1995; Sch¨olkopf 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) 通過其神經(jīng)計(jì)算和自適應(yīng)感知 (NCAP) 研究計(jì)劃幫助維持神經(jīng)網(wǎng)絡(luò)研究,。該計(jì)劃聯(lián)合了分別由 Geoffrey Hinton、Yoshua Bengio和 Yann LeCun 領(lǐng)導(dǎo)的多倫多大學(xué),、蒙特利爾大學(xué)和紐約大學(xué)的機(jī)器學(xué)習(xí)研究小組,。這個(gè)多學(xué)科的 CIFAR NCAP 研究計(jì)劃還包括了神經(jīng)科學(xué)家、人類和計(jì)算機(jī)視覺專家,。 在那個(gè)時(shí)候,,人們普遍認(rèn)為深度網(wǎng)絡(luò)是難以訓(xùn)練的。現(xiàn)在我們知道,,20 世紀(jì) 80 年代就存在的算法能工作得非常好,,但是直到 2006 年前后都沒有體現(xiàn)出來。這可能僅僅由于其計(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ò)可以使用一種稱為“貪婪逐層預(yù)訓(xùn)練”的策略來有效地訓(xùn)練 (Hinton et al., 2006a),我們將在第 15.1 節(jié)中更詳細(xì)地描述,。其他 CIFAR 附屬研究小組很快表明,,同樣的策略可以被用來訓(xùn)練許多其他類型的深度網(wǎng)絡(luò) (Bengio and LeCun, 2007a; Ranzato et al., 2007b),并能系統(tǒng)地幫助提高在測(cè)試樣例上的泛化能力,。神經(jīng)網(wǎng)絡(luò)研究的這一次浪潮普及了“深度學(xué)習(xí)”這一術(shù)語,,強(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)。在寫這本書的時(shí)候,,神經(jīng)網(wǎng)絡(luò)的第三次發(fā)展浪潮仍在繼續(xù),,盡管深度學(xué)習(xí)的研究重點(diǎn)在這一段時(shí)間內(nèi)發(fā)生了巨大變化。第三次浪潮已開始著眼于新的無監(jiān)督學(xué)習(xí)技術(shù)和深度模型在小數(shù)據(jù)集的泛化能力,,但目前更多的興趣點(diǎn)仍是比較傳統(tǒng)的監(jiān)督學(xué)習(xí)算法和深度模型充分利用大型標(biāo)注數(shù)據(jù)集的能力,。 與日俱增的數(shù)據(jù)量 人們可能想問,既然人工神經(jīng)網(wǎng)絡(luò)的第一個(gè)實(shí)驗(yàn)在 20 世紀(jì) 50 年代就完成了,,但為什么深度學(xué)習(xí)直到最近才被認(rèn)為是關(guān)鍵技術(shù)?自 20 世紀(jì) 90 年代以來,,深度學(xué)習(xí)就已經(jīng)成功用于商業(yè)應(yīng)用,,但通常被視為一種只有專家才可以使用的藝術(shù)而不是一種技術(shù),這種觀點(diǎn)一直持續(xù)到最近,。確實(shí),,要從一個(gè)深度學(xué)習(xí)算法獲得良好的性能需要一些技巧。幸運(yùn)的是,,隨著訓(xùn)練數(shù)據(jù)的增加,,所需的技巧正在減少。目前在復(fù)雜的任務(wù)中達(dá)到人類水平的學(xué)習(xí)算法,,與 20 世紀(jì) 80 年代努力解決玩具問題 的學(xué)習(xí)算法幾乎是一樣的,,盡管我們使用這些算法訓(xùn)練的模型經(jīng)歷了變革,即簡(jiǎn)化了極深架構(gòu)的訓(xùn)練,。最重要的新進(jìn)展是,,現(xiàn)在我們有了這些算法得以成功訓(xùn)練所需的資源。圖 1.8 展示了基準(zhǔn)數(shù)據(jù)集的大小如何隨著時(shí)間的推移而顯著增加,。 圖 1.8 與日俱增的數(shù)據(jù)量,。20 世紀(jì)初,統(tǒng)計(jì)學(xué)家使用數(shù)百或數(shù)千的手動(dòng)制作的度量來研究數(shù)據(jù)集 (Garson, 1900; Gosset, 1908; Anderson, 1935; Fisher, 1936)。20 世紀(jì) 50 年代到 80 年代,,受生物啟發(fā)的機(jī)器學(xué)習(xí)開拓者通常使用小的合成數(shù)據(jù)集,,如低分辨率的字母位圖,設(shè)計(jì)為在低計(jì)算成本下表明神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)特定功能 (Widrow and Hoff, 1960; Rumelhart et al., 1986b),。20 世紀(jì) 80 年代和 90 年代,,機(jī)器學(xué)習(xí)變得更偏統(tǒng)計(jì),并開始利用包含成千上萬個(gè)樣本的更大數(shù)據(jù)集,,如手寫掃描數(shù)字的 MNIST 數(shù)據(jù)集 (如圖 1.9 所示)(LeCun et al., 1998c),。 在 21 世紀(jì)的第一個(gè) 10 年里,相同大小更復(fù)雜的數(shù)據(jù)集持續(xù)出現(xiàn),,如 CIFAR-10 數(shù)據(jù)集 (Krizhevsky and Hinton, 2009),。在這 10 年結(jié)束和接下來的 5 年,明顯更大的數(shù)據(jù)集 (包含數(shù)萬到數(shù)千萬的樣例) 完全改變了深度學(xué)習(xí)可能實(shí)現(xiàn)的事,。這些數(shù)據(jù)集包括公共 Street View House Numbers 數(shù)據(jù)集 (Netzer et al., 2011),、各種版本的 ImageNet 數(shù)據(jù)集 (Deng et al., 2009, 2010a; Russakovsky et al., 2014a) 以及 Sports-1M 數(shù)據(jù)集 (Karpathy et al., 2014)。在圖頂部,,我們看到翻譯句子的數(shù)據(jù)集通常遠(yuǎn)大于其他數(shù)據(jù)集,,如根據(jù) Canadian Hansard 制作的 IBM 數(shù)據(jù)集 (Brown et al., 1990) 和 WMT 2014 英法數(shù)據(jù)集 (Schwenk, 2014)這種趨勢(shì)是由社會(huì)日益數(shù)字化驅(qū)動(dòng)的。由于我們的活動(dòng)越來越多地發(fā)生在計(jì)算機(jī)上,,我們做什么也越來越多地被記錄,。由于計(jì)算機(jī)越來越多地聯(lián)網(wǎng)在一起,這些記錄變得更容易集中管理,,并更容易將它們整理成適于機(jī)器學(xué)習(xí)應(yīng)用的數(shù)據(jù)集,。因?yàn)榻y(tǒng)計(jì)估計(jì)的主要負(fù)擔(dān) (觀察少量數(shù)據(jù)以在新數(shù)據(jù)上泛化) 已經(jīng)減輕,“大數(shù)據(jù)”時(shí)代使機(jī)器學(xué)習(xí)更加容易,。截至 2016 年,,一個(gè)粗略的經(jīng)驗(yàn)法則是,監(jiān)督深度學(xué)習(xí)算法在每類給定約 5000 個(gè)標(biāo)注樣本情況下一般將達(dá)到可以接受的性能,,當(dāng)至少有 1000 萬個(gè)標(biāo)注樣本的數(shù)據(jù)集用于訓(xùn)練時(shí),,它將達(dá)到或超過人類表現(xiàn)。此外,,在更小的數(shù)據(jù)集上獲得成功是一個(gè)重要的研究領(lǐng)域,,為此我們應(yīng)特別側(cè)重于如何通過無監(jiān)督或半監(jiān)督學(xué)習(xí)充分利用大量的未標(biāo)注樣本。 圖1.9 MNIST 數(shù)據(jù)集的輸入樣例,。 “NIST”代表國(guó)家標(biāo)準(zhǔn)和技術(shù)研究所,,是最初收集這些數(shù)據(jù)的機(jī)構(gòu)?!癕”代表“修改的”,,為更容易地與機(jī)器學(xué)習(xí)算法一起使用,,數(shù)據(jù)已經(jīng)過預(yù)處理。MNIST 數(shù)據(jù)集包括手寫數(shù)字的掃描和相關(guān)標(biāo)簽 (描述每個(gè)圖像中包含 0~9 中哪個(gè)數(shù)字),。這個(gè)簡(jiǎn)單的分類問題是深度學(xué)習(xí)研究中最簡(jiǎn)單和最廣泛使用的測(cè)試之一,。盡管現(xiàn)代技術(shù)很容易解決這個(gè)問題,它仍然很受歡迎,。Geoffrey Hinton 將其描述為“機(jī)器學(xué)習(xí)的果蠅”,,這意味著機(jī)器學(xué)習(xí)研究人員可以在受控的實(shí)驗(yàn)室條件下研究他們的算法,就像生物學(xué)家經(jīng)常研究果蠅一樣 與日俱增的模型規(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é)主義的主要見解之一是,,當(dāng)動(dòng)物的許多神經(jīng)元一起工作時(shí)會(huì)變得聰明,。單獨(dú)神經(jīng)元或小集合的神經(jīng)元不是特別有用。 生物神經(jīng)元不是特別稠密地連接在一起,。如圖 1.10 所示,,幾十年來,我們的機(jī)器學(xué)習(xí)模型中每個(gè)神經(jīng)元的連接數(shù)量已經(jīng)與哺乳動(dòng)物的大腦在同一數(shù)量級(jí)上,。 圖 1.10 與日俱增的每個(gè)神經(jīng)元的連接數(shù),。最初,人工神經(jīng)網(wǎng)絡(luò)中神經(jīng)元之間的連接數(shù)受限于硬件能力,。而現(xiàn)在,,神經(jīng)元之間的連接數(shù)大多是出于設(shè)計(jì)考慮。一些人工神經(jīng)網(wǎng)絡(luò)中每個(gè)神經(jīng)元的連接數(shù)與貓一樣多,,并且對(duì)于其他神經(jīng)網(wǎng)絡(luò)來說,,每個(gè)神經(jīng)元的連接數(shù)與較小哺乳動(dòng)物 (如小鼠) 一樣多,這種情況是非常普遍的,。甚至人類大腦每個(gè)神經(jīng)元的連接數(shù)也沒有過高的數(shù)量。生物神經(jīng)網(wǎng)絡(luò)規(guī)模來自 Wikipedia (2015) 1. 自適應(yīng)線性單元 (Widrow and Hoff, 1960),;2. 神經(jīng)認(rèn)知機(jī) (Fukushima, 1980),;3. GPU- 加速卷積網(wǎng)絡(luò) (Chellapilla et al., 2006);4. 深度玻爾茲曼機(jī) (Salakhutdinov and Hinton, 2009a),;5. 無監(jiān)督卷積網(wǎng)絡(luò) (Jarrett et al., 2009b),;6. GPU- 加速多層感知機(jī) (Ciresan et al., 2010);7. 分布式自編碼器 (Le et al., 2012),;8. Multi-GPU 卷積網(wǎng)絡(luò)(Krizhevsky et al., 2012a),;9. COTS HPC 無監(jiān)督卷積網(wǎng)絡(luò) (Coates et al., 2013);10. GoogLeNet (Szegedy et al., 2014a) 如圖 1.11 所示,,就神經(jīng)元的總數(shù)目而言,,直到最近神經(jīng)網(wǎng)絡(luò)都是驚人的小。自從隱藏單元引入以來,人工神經(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ì)看起來將持續(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ò)可能比圖中描繪的甚至要更大,。 圖 1.11 與日俱增的神經(jīng)網(wǎng)絡(luò)規(guī)模,。自從引入隱藏單元,人工神經(jīng)網(wǎng)絡(luò)的規(guī)模大約每 2.4 年翻一倍,。生物神經(jīng)網(wǎng)絡(luò)規(guī)模來自 Wikipedia (2015) 1. 感知機(jī) (Rosenblatt, 1958, 1962),;2. 自適應(yīng)線性單元 (Widrow and Hoff,1960);3. 神經(jīng)認(rèn)知機(jī) (Fukushima, 1980),;4. 早期后向傳播網(wǎng)絡(luò) (Rumelhart et al., 1986b),;5. 用于語音識(shí)別的循環(huán)神經(jīng)網(wǎng)絡(luò) (Robinson and Fallside, 1991);6. 用于語音識(shí)別的多層感知機(jī) (Bengio et al., 1991),;7. 均勻場(chǎng) sigmoid 信念網(wǎng)絡(luò) (Saul et al., 1996),;8. LeNet5 (LeCun et al., 1998c);9. 回聲狀態(tài)網(wǎng)絡(luò) (Jaeger and Haas, 2004),;10. 深度信念網(wǎng)絡(luò) (Hinton et al., 2006a),;11. GPU- 加速卷積網(wǎng)絡(luò) (Chellapilla et al., 2006);12. 深度玻爾茲曼機(jī) (Salakhutdinov and Hinton, 2009a),;13. GPU加速深度信念網(wǎng)絡(luò) (Raina et al., 2009a),;14. 無監(jiān)督卷積網(wǎng)絡(luò) (Jarrett et al., 2009b);15. GPU- 加速多層感知機(jī) (Ciresan et al., 2010),;16. OMP-1 網(wǎng)絡(luò) (Coates and Ng, 2011),;17. 分布式自編碼器 (Le et al., 2012);18. MultiGPU 卷積網(wǎng)絡(luò) (Krizhevsky et al., 2012a),;19. COTS HPC 無監(jiān)督卷積網(wǎng)絡(luò) (Coates et al., 2013),;20. GoogLeNet (Szegedy et al., 2014a) 現(xiàn)在看來,神經(jīng)元數(shù)量比一個(gè)水蛭還少的神經(jīng)網(wǎng)絡(luò)不能解決復(fù)雜的人工智能問題,,這是不足為奇的,。即使現(xiàn)在的網(wǎng)絡(luò),從計(jì)算系統(tǒng)角度來看它可能相當(dāng)大,,但實(shí)際上它比相對(duì)原始的脊椎動(dòng)物 (如青蛙) 的神經(jīng)系統(tǒng)還要小,。 由于更快的 CPU,、通用 GPU 的出現(xiàn)、更快的網(wǎng)絡(luò)連接和更好的分布式計(jì)算的軟件基礎(chǔ)設(shè)施,,模型規(guī)模隨著時(shí)間的推移不斷增加是深度學(xué)習(xí)歷史中最重要的趨勢(shì)之一,。人們普遍預(yù)計(jì)這種趨勢(shì)將很好地持續(xù)到未來。 與日俱增的精度,、復(fù)雜度和對(duì)現(xiàn)實(shí)世界的沖擊 20 世紀(jì) 80 年代以來,,深度學(xué)習(xí)提供精確識(shí)別和預(yù)測(cè)的能力一直在提高。而且,,深度學(xué)習(xí)持續(xù)成功地應(yīng)用于越來越廣泛的實(shí)際問題中,。 最早的深度模型被用來識(shí)別裁剪緊湊且非常小的圖像中的單個(gè)對(duì)象 (Rumelhart et al., 1986d)。此后,,神經(jīng)網(wǎng)絡(luò)可以處理的圖像尺寸逐漸增加?,F(xiàn)代對(duì)象識(shí)別網(wǎng)絡(luò)能處理豐富的高分辨率照片,并且不需要在被識(shí)別的對(duì)象附近進(jìn)行裁剪 (Krizhevsky et al., 2012b),。類似地,,最早的網(wǎng)絡(luò)只能識(shí)別兩種對(duì)象 (或在某些情況下,單類對(duì)象的存在與否),,而這些現(xiàn)代網(wǎng)絡(luò)通常能夠識(shí)別至少1000個(gè)不同類別的對(duì)象,。對(duì)象識(shí)別中最大的比賽是每年舉行的 ImageNet 大型視覺識(shí)別挑戰(zhàn) (ILSVRC)。深度學(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è)圖像的可能類別生成一個(gè)順序列表,除了 15.3% 的測(cè)試樣本,,其他測(cè)試樣本的正確類標(biāo)都出現(xiàn)在此列表中的前 5 項(xiàng)里,。此后,深度卷積網(wǎng)絡(luò)連續(xù)地贏得這些比賽,,截至寫作本書時(shí),,深度學(xué)習(xí)的最新結(jié)果將這個(gè)比賽中的前 5 錯(cuò)誤率降到了 3.6%,如圖 1.12 所示,。 圖 1.12 日益降低的錯(cuò)誤率,。由于深度網(wǎng)絡(luò)達(dá)到了在 ImageNet 大規(guī)模視覺識(shí)別挑戰(zhàn)中競(jìng)爭(zhēng)所必需的規(guī)模,它們每年都能贏得勝利,,并且產(chǎn)生越來越低的錯(cuò)誤率。數(shù)據(jù)來源于 Russakovsky et al. (2014b) 和 He et al. (2015) 深度學(xué)習(xí)也對(duì)語音識(shí)別產(chǎn)生了巨大影響,。語音識(shí)別在 20 世紀(jì) 90 年代得到提高后,,直到約 2000 年都停滯不前。深度學(xué)習(xí)的引入 (Dahl et al., 2010; Deng et al., 2010b; Seide et al., 2011; Hinton et al., 2012a) 使得語音識(shí)別錯(cuò)誤率陡然下降,,有些錯(cuò)誤率甚至降低了一半,。我們將在第 12.3 節(jié)更詳細(xì)地探討這個(gè)歷史,。 深度網(wǎng)絡(luò)在行人檢測(cè)和圖像分割中也取得了引人注目的成功 (Sermanet et al., 2013; Farabet et al., 2013; Couprie et al., 2013),并且在交通標(biāo)志分類上取得了超越人類的表現(xiàn) (Ciresan et al., 2012),。 在深度網(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ǔ)單元寫入任意內(nèi)容。這樣的神經(jīng)網(wǎng)絡(luò)可以從期望行為的樣本中學(xué)習(xí)簡(jiǎn)單的程序,。例如,,從雜亂和排好序的樣本中學(xué)習(xí)對(duì)一系列數(shù)進(jìn)行排序。這種自我編程技術(shù)正處于起步階段,,但原則上未來可以適用于幾乎所有的任務(wù),。 深度學(xué)習(xí)的另一個(gè)最大的成就是其在強(qiáng)化學(xué)習(xí) 領(lǐng)域的擴(kuò)展。在強(qiáng)化學(xué)習(xí)中,,一個(gè)自主的智能體必須在沒有人類操作者指導(dǎo)的情況下,,通過試錯(cuò)來學(xué)習(xí)執(zhí)行任務(wù)。DeepMind 表明,,基于深度學(xué)習(xí)的強(qiáng)化學(xué)習(xí)系統(tǒng)能夠?qū)W會(huì)玩 Atari 視頻游戲,,并在多種任務(wù)中可與人類匹敵 (Mnih et al., 2015)。深度學(xué)習(xí)也顯著改善了機(jī)器人強(qiáng)化學(xué)習(xí)的性能 (Finn et al., 2015),。 許多深度學(xué)習(xí)應(yīng)用都是高利潤(rùn)的?,F(xiàn)在深度學(xué)習(xí)被許多頂級(jí)的技術(shù)公司使用,包括 Google,、Microsoft,、Facebook、IBM,、Baidu,、Apple,、Adobe、Netflix,、NVIDIA 和 NEC 等,。 深度學(xué)習(xí)的進(jìn)步也嚴(yán)重依賴于軟件基礎(chǔ)架構(gòu)的進(jìn)展。軟件庫如 Theano (Bergstra et al., 2010a; Bastien et al., 2012a),、PyLearn2 (Goodfellow et al., 2013e),、Torch (Collobert et al., 2011b)、DistBelief (Dean et al., 2012),、Caffe (Jia, 2013),、MXNet (Chen et al., 2015) 和 TensorFlow (Abadi et al., 2015) 都能支持重要的研究項(xiàng)目或商業(yè)產(chǎn)品。 深度學(xué)習(xí)也為其他科學(xué)做出了貢獻(xiàn),。用于對(duì)象識(shí)別的現(xiàn)代卷積網(wǎng)絡(luò)為神經(jīng)科學(xué)家們提供了可以研究的視覺處理模型 (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) 等多個(gè)場(chǎng)合,。我們期待深度學(xué)習(xí)未來能夠出現(xiàn)在越來越多的科學(xué)領(lǐng)域中,。 總之,深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種方法,。在過去幾十年的發(fā)展中,,它大量借鑒了我們關(guān)于人腦、統(tǒng)計(jì)學(xué)和應(yīng)用數(shù)學(xué)的知識(shí),。近年來,,得益于更強(qiáng)大的計(jì)算機(jī)、更大的數(shù)據(jù)集和能夠訓(xùn)練更深網(wǎng)絡(luò)的技術(shù),,深度學(xué)習(xí)的普及性和實(shí)用性都有了極大的發(fā)展,。未來幾年,深度學(xué)習(xí)更是充滿了進(jìn)一步提高并應(yīng)用到新領(lǐng)域的挑戰(zhàn)和機(jī)遇,。 關(guān)于《深度學(xué)習(xí)》一書 《深度學(xué)習(xí)》中文版從引進(jìn)版權(quán)到正式出版歷經(jīng)三年,,中文版的推出填補(bǔ)了目前國(guó)內(nèi)缺乏深度學(xué)習(xí)綜合性教科書的空白。該書從淺入深介紹了基礎(chǔ)數(shù)學(xué)知識(shí),、機(jī)器學(xué)習(xí)經(jīng)驗(yàn)以及現(xiàn)階段深度學(xué)習(xí)的理論和發(fā)展,,它能幫助人工智能技術(shù)愛好者和從業(yè)人員在三位專家學(xué)者的思維帶領(lǐng)下全方位了解深度學(xué)習(xí)。 本書對(duì)各類讀者都有一定的用處,,但主要是為兩類受眾而寫的,。其中,一類受眾是學(xué)習(xí)機(jī)器學(xué)習(xí)的大學(xué)生 (本科或研究生),包括那些已經(jīng)開始職業(yè)生涯的深度學(xué)習(xí)和人工智能研究者,。另一類受眾是沒有機(jī)器學(xué)習(xí)或統(tǒng)計(jì)背景,但希望能快速地掌握這方面知識(shí),,并在他們的產(chǎn)品或平臺(tái)中使用深度學(xué)習(xí)的軟件工程師?,F(xiàn)已證明,深度學(xué)習(xí)在許多軟件領(lǐng)域都是有用的,,包括計(jì)算機(jī)視覺,、語音和音頻處理、自然語言處理,、機(jī)器人技術(shù),、生物信息學(xué)和化學(xué)、電子游戲,、搜索引擎,、網(wǎng)絡(luò)廣告和金融。 為了更好地服務(wù)各類讀者,,我們將本書組織為 3 個(gè)部分,。第 1 部分介紹基本的數(shù)學(xué)工具和機(jī)器學(xué)習(xí)的概念。第 2 部分介紹最成熟的深度學(xué)習(xí)算法,,這些技術(shù)基本上已經(jīng)得到解決,。第 3 部分討論某些具有展望性的想法,它們被廣泛地認(rèn)為是深度學(xué)習(xí)未來的研究重點(diǎn),。 讀者可以隨意跳過不感興趣或與自己背景不相關(guān)的部分,。熟悉線性代數(shù)、概率和基本機(jī)器學(xué)習(xí)概念的讀者可以跳過第 1 部分,。若讀者只是想實(shí)現(xiàn)一個(gè)能工作的系統(tǒng),,則不需要閱讀超出第 2 部分的內(nèi)容。為了幫助讀者選擇章節(jié),,下圖給出了本書高層組織結(jié)構(gòu)的流程圖,。 本書的高層組織結(jié)構(gòu)的流程圖。從一章到另一章的箭頭表示前一章是理解后一章的必備內(nèi)容 我們假設(shè)所有讀者都具備計(jì)算機(jī)科學(xué)背景,。也假設(shè)讀者熟悉編程,,并且對(duì)計(jì)算的性能問題、復(fù)雜性理論,、入門級(jí)微積分和一些圖論術(shù)語有基本的了解,。 來源:小象 |
|