關(guān)于深度學(xué)習(xí),看這一篇就夠了
編者按:本文作者王川,投資人,中科大少年班校友,現(xiàn)居加州硅谷,個(gè)人微信號9935070,36 氪經(jīng)授權(quán)轉(zhuǎn)載自其個(gè)人微信公眾號 investguru。
一
2016 年一月底,人工智能的研究領(lǐng)域,發(fā)生了兩件大事。
先是一月二十四號,MIT 的教授,人工智能研究的先驅(qū)者,Marvin Minsky 去世,享年89 歲。
三天之后,谷歌在自然雜志上正式公開發(fā)表論文,宣布其以深度學(xué)習(xí)技術(shù)為基礎(chǔ)的電腦程序 AlphaGo, 在 2015年 十月,連續(xù)五局擊敗歐洲冠軍、職業(yè)二段樊輝。
這是第一次機(jī)器擊敗職業(yè)圍棋選手。距離 97年IBM 電腦擊敗國際象棋世界冠軍,一晃近二十年了。
極具諷刺意義的是,Minsky 教授,一直不看好深度學(xué)習(xí)的概念。他曾在 1969年 出版了 Perceptron (感知器) 一書,指出了神經(jīng)網(wǎng)絡(luò)技術(shù) (就是深度學(xué)習(xí)的前身) 的局限性。這本書直接導(dǎo)致了神經(jīng)網(wǎng)絡(luò)研究的將近二十年的長期低潮。
神經(jīng)網(wǎng)絡(luò)研究的歷史,是怎樣的?
深度學(xué)習(xí)有多深?學(xué)了究竟有幾分?
二
人工智能研究的方向之一,是以所謂 “專家系統(tǒng)” 為代表的,用大量 “如果-就” (If - Then) 規(guī)則定義的,自上而下的思路。
人工神經(jīng)網(wǎng)絡(luò) ( Artifical Neural Network),標(biāo)志著另外一種自下而上的思路。
神經(jīng)網(wǎng)絡(luò)沒有一個(gè)嚴(yán)格的正式定義。它的基本特點(diǎn),是試圖模仿大腦的神經(jīng)元之間傳遞,處理信息的模式。

一個(gè)計(jì)算模型,要劃分為神經(jīng)網(wǎng)絡(luò),通常需要大量彼此連接的節(jié)點(diǎn) (也稱 ‘神經(jīng)元’),并且具備兩個(gè)特性:
每個(gè)神經(jīng)元,通過某種特定的輸出函數(shù) (也叫激勵(lì)函數(shù) activation function),計(jì)算處理來自其它相鄰神經(jīng)元的加權(quán)輸入值
神經(jīng)元之間的信息傳遞的強(qiáng)度,用所謂加權(quán)值來定義,算法會不斷自我學(xué)習(xí),調(diào)整這個(gè)加權(quán)值
在此基礎(chǔ)上,神經(jīng)網(wǎng)絡(luò)的計(jì)算模型,依靠大量的數(shù)據(jù)來訓(xùn)練,還需要:
成本函數(shù) (cost function):用來定量評估根據(jù)特定輸入值, 計(jì)算出來的輸出結(jié)果,離正確值有多遠(yuǎn),結(jié)果有多靠譜
學(xué)習(xí)的算法 ( learning algorithm ):這是根據(jù)成本函數(shù)的結(jié)果, 自學(xué), 糾錯(cuò), 最快地找到神經(jīng)元之間最優(yōu)化的加權(quán)值
用小明、小紅和隔壁老王們都可以聽懂的語言來解釋,神經(jīng)網(wǎng)絡(luò)算法的核心就是:計(jì)算、連接、評估、糾錯(cuò)、瘋狂培訓(xùn)。
隨著神經(jīng)網(wǎng)絡(luò)研究的不斷變遷,其計(jì)算特點(diǎn)和傳統(tǒng)的生物神經(jīng)元的連接模型漸漸脫鉤。
但是它保留的精髓是:非線性、分布式、并行計(jì)算、自適應(yīng)、自組織。
三
神經(jīng)網(wǎng)絡(luò)作為一個(gè)計(jì)算模型的理論,1943年 最初由科學(xué)家 Warren McCulloch 和 Walter Pitts 提出。
康內(nèi)爾大學(xué)教授 Frank Rosenblatt 1957年 提出的“感知器” (Perceptron),是第一個(gè)用算法來精確定義神經(jīng)網(wǎng)絡(luò),第一個(gè)具有自組織自學(xué)習(xí)能力的數(shù)學(xué)模型,是日后許多新的神經(jīng)網(wǎng)絡(luò)模型的始祖。

Rosenblatt 樂觀地預(yù)測,感知器最終可以 “學(xué)習(xí)、做決定、翻譯語言”。感知器的技術(shù),六十年代一度走紅,美國海軍曾出資支持這個(gè)技術(shù)的研究,期望它 “以后可以自己走、說話、看、讀、自我復(fù)制、甚至擁有自我意識”。
Rosenblatt 和 Minsky 實(shí)際上是間隔一級的高中校友。但是六十年代,兩個(gè)人在感知器的問題上展開了長時(shí)間的激辯。Rosenblatt 認(rèn)為感應(yīng)器將無所不能,Minsky 則認(rèn)為它應(yīng)用有限。
1969 年,Marvin Minsky 和 Seymour Papert 出版了新書:“感知器:計(jì)算幾何簡介”。書中論證了感知器模型的兩個(gè)關(guān)鍵問題:
第一,單層的神經(jīng)網(wǎng)絡(luò)無法解決不可線性分割的問題,典型例子如異或門,XOR Circuit ( 通俗地說,異或門就是:兩個(gè)輸入如果是異性戀,輸出為一。兩個(gè)輸入如果是同性戀,輸出為零 )
第二,更致命的問題是,當(dāng)時(shí)的電腦完全沒有能力完成神經(jīng)網(wǎng)絡(luò)模型所需要的超大的計(jì)算量。
此后的十幾年,以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的人工智能研究進(jìn)入低潮,相關(guān)項(xiàng)目長期無法得到政府經(jīng)費(fèi)支持,這段時(shí)間被稱為業(yè)界的核冬天。
Rosenblatt 自己則沒有見證日后神經(jīng)網(wǎng)絡(luò)研究的復(fù)興。1971年 他 43 歲生日時(shí),不幸在海上開船時(shí)因?yàn)槭鹿识鴨噬?/p>
1970年,當(dāng)神經(jīng)網(wǎng)絡(luò)研究的第一個(gè)寒冬降臨時(shí)。在英國的愛丁堡大學(xué),一位二十三歲的年輕人,Geoffrey Hinton,剛剛獲得心理學(xué)的學(xué)士學(xué)位。
Hinton 六十年代還是中學(xué)生時(shí),就對腦科學(xué)著迷。當(dāng)時(shí)一個(gè)同學(xué)給他介紹關(guān)于大腦記憶的理論是:
大腦對于事物和概念的記憶,不是存儲在某個(gè)單一的地點(diǎn),而是像全息照片一樣,分布式地,存在于一個(gè)巨大的神經(jīng)元的網(wǎng)絡(luò)里。
分布式表征 (Distributed Representation),是神經(jīng)網(wǎng)絡(luò)研究的一個(gè)核心思想。
它的意思是,當(dāng)你表達(dá)一個(gè)概念的時(shí)候,不是用單個(gè)神經(jīng)元一對一地存儲定義;概念和神經(jīng)元是多對多的關(guān)系:一個(gè)概念可以用多個(gè)神經(jīng)元共同定義表達(dá),同時(shí)一個(gè)神經(jīng)元也可以參與多個(gè)不同概念的表達(dá)。
舉個(gè)最簡單的例子。一輛 “大白卡車”,如果分布式地表達(dá),一個(gè)神經(jīng)元代表大小,一個(gè)神經(jīng)元代表顏色,第三個(gè)神經(jīng)元代表車的類別。三個(gè)神經(jīng)元同時(shí)激活時(shí),就可以準(zhǔn)確描述我們要表達(dá)的物體。
分布式表征和傳統(tǒng)的局部表征 (localized representation) 相比,存儲效率高很多。線性增加的神經(jīng)元數(shù)目,可以表達(dá)指數(shù)級增加的大量不同概念。
分布式表征的另一個(gè)優(yōu)點(diǎn)是,即使局部出現(xiàn)硬件故障,信息的表達(dá)不會受到根本性的破壞。
這個(gè)理念讓 Hinton 頓悟,使他四十多年來,一直在神經(jīng)網(wǎng)絡(luò)研究的領(lǐng)域里堅(jiān)持下來沒有退縮。
本科畢業(yè)后,Hinton 選擇繼續(xù)在愛丁堡大學(xué)讀研,把人工智能作為自己的博士研究方向。
周圍的一些朋友對此頗為不解。“你瘋了嗎? 為什么浪費(fèi)時(shí)間在這些東西上? 這 (神經(jīng)網(wǎng)絡(luò)) 早就被證明是扯淡的東西了。”
Hinton 1978 年在愛丁堡獲得博士學(xué)位后,來到美國繼續(xù)他的研究工作。
二
神經(jīng)網(wǎng)絡(luò)當(dāng)年被 Minsky 詬病的問題之一是巨大的計(jì)算量。
簡單說,傳統(tǒng)的感知器用所謂 “梯度下降”的算法糾錯(cuò)時(shí),耗費(fèi)的計(jì)算量和神經(jīng)元數(shù)目的平方成正比。當(dāng)神經(jīng)元數(shù)目增多,龐大的計(jì)算量是當(dāng)時(shí)的硬件無法勝任的。
1986年 七月,Hinton 和 David Rumelhart 合作在自然雜志上發(fā)表論文, “Learning Representations by Back-propagating errors”,第一次系統(tǒng)簡潔地闡述反向傳播算法在神經(jīng)網(wǎng)絡(luò)模型上的應(yīng)用。
反向傳播算法,把糾錯(cuò)的運(yùn)算量下降到只和神經(jīng)元數(shù)目本身成正比。
反向傳播算法,通過在神經(jīng)網(wǎng)絡(luò)里增加一個(gè)所謂隱層 (hidden layer),同時(shí)也解決了感知器無法解決異或門 (XOR gate) 的難題。
使用了反向傳播算法的神經(jīng)網(wǎng)絡(luò),在做諸如形狀識別之類的簡單工作時(shí),效率比感知器大大提高。
八十年代末計(jì)算機(jī)的運(yùn)行速度,也比二十年前高了幾個(gè)數(shù)量級。
神經(jīng)網(wǎng)絡(luò)的研究開始復(fù)蘇。
三
Yann Lecun (我給他取個(gè)中文名叫 “嚴(yán)樂春”吧) 1960年 出生于巴黎。1987年 在法國獲得博士學(xué)位后,他曾追隨 Hinton 教授到多倫多大學(xué)做了一年博士后的工作,隨后搬到新澤西州的貝爾實(shí)驗(yàn)室繼續(xù)研究工作。
在貝爾實(shí)驗(yàn)室,嚴(yán)樂春 1989年 發(fā)表了論文, “反向傳播算法在手寫郵政編碼上的應(yīng)用”。他用美國郵政系統(tǒng)提供的近萬個(gè)手寫數(shù)字的樣本來培訓(xùn)神經(jīng)網(wǎng)絡(luò)系統(tǒng),培訓(xùn)好的系統(tǒng)在獨(dú)立的測試樣本中, 錯(cuò)誤率只有 5%。
嚴(yán)樂春進(jìn)一步運(yùn)用一種叫做“卷積神經(jīng)網(wǎng)絡(luò)” (Convoluted Neural Networks) 的技術(shù),開發(fā)出商業(yè)軟件用于讀取銀行支票上的手寫數(shù)字,,這個(gè)支票識別系統(tǒng)在九十年代末占據(jù)了美國接近 20%的市場。
此時(shí)就在貝爾實(shí)驗(yàn)室,嚴(yán)樂春臨近辦公室的一個(gè)同事的工作,又把神經(jīng)網(wǎng)絡(luò)的研究帶入第二個(gè)寒冬。
四
Vladmir Vapnik,1936年 出生于前蘇聯(lián),90年 移民到美國,在貝爾實(shí)驗(yàn)室做研究。
早在 1963年,Vapnik 就提出了 支持向量機(jī) (Support Vector Machine) 的算法。支持向量機(jī),是一種精巧的分類算法。
除了基本的線性分類外,在數(shù)據(jù)樣本線性不可分的時(shí)候,SVM 使用所謂 “核機(jī)制” (kernel trick) 的非線性映射算法,將線性不可分的樣本轉(zhuǎn)化到高維特征空間 (high-dimensional feature space),使其線性可分。
SVM,作為一種分類算法,九十年代初開始,在圖像和語音識別上找到了廣泛的用途。
在貝爾實(shí)驗(yàn)室的走廊上,嚴(yán)樂春和 Vapnik 常常就 (深度) 神經(jīng)網(wǎng)絡(luò)和 SVM 兩種技術(shù)的優(yōu)缺點(diǎn),展開熱烈的討論。
Vapnik 的觀點(diǎn)是:SVM,非常精巧地在 “容量調(diào)節(jié)” (Capacity Control) 上 選擇一個(gè)合適的平衡點(diǎn),而這是神經(jīng)網(wǎng)絡(luò)不擅長的。
什么是 “容量調(diào)節(jié)”? 舉個(gè)簡單的例子:如果算法容量太大,就像一個(gè)記憶力極為精準(zhǔn)的植物學(xué)家,當(dāng)她看到一顆新的樹的時(shí)候,由于這棵樹的葉子和她以前看到的樹的葉子數(shù)目不一樣,所以她判斷這不是樹;如果算法容量太小,就像一個(gè)懶惰的植物學(xué)家,只要看到綠色的東西都把它叫做樹。
嚴(yán)樂春的觀點(diǎn)是:用有限的計(jì)算能力,解決高度復(fù)雜的問題,比“容量調(diào)節(jié)”更重要。支持向量機(jī),雖然算法精巧,但本質(zhì)就是一個(gè)雙層神經(jīng)網(wǎng)絡(luò)系統(tǒng)。它的最大的局限性,在于其“核機(jī)制”的選擇。當(dāng)圖像識別技術(shù)需要忽略一些噪音信號時(shí),卷積神經(jīng)網(wǎng)絡(luò)的技術(shù),計(jì)算效率就比 SVM 高的多。
在手寫郵政編碼的識別問題上,SVM 的技術(shù)不斷進(jìn)步,1998年 就把錯(cuò)誤率降到低于 0.8%,2002年 最低達(dá)到了 0.56%,這遠(yuǎn)遠(yuǎn)超越同期傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法的表現(xiàn)。
神經(jīng)網(wǎng)絡(luò)的計(jì)算,在實(shí)踐中還有另外兩個(gè)主要問題:
第一,算法經(jīng)常停止于局部最優(yōu)解,而不是全球最優(yōu)解。這好比“只見樹木,不見森林”。
第二,算法的培訓(xùn),時(shí)間過長時(shí),會出現(xiàn)過度擬合 (overfit),把噪音當(dāng)做有效信號。