來自Andrey Kurenkov
作者:Andrey Kurenkov
機器之心編譯出品
參與:chenxiaoqing、范娜Fiona、楊超、微胖、汪汪、趙巍
導讀:這是《神經網絡和深度學習簡史》第一部分。這一部分,我們會介紹1958年感知機神經網絡的誕生,70年代人工智能寒冬以及1986年BP算法讓神經網絡再度流行起來。
深度學習掀起海嘯
如今,深度學習浪潮拍打計算機語言的海岸已有好幾年,但是,2015年似乎才是這場海嘯全力沖擊自然語言處理(NLP)會議的一年。——Dr. Christopher D. Manning, Dec 2015
整個研究領域的成熟方法已經迅速被新發現超越,這句話聽起來有些夸大其詞,就像是說它被「海嘯」襲擊了一樣。但是,這種災難性的形容的確可以用來描述深度學習在過去幾年中的異軍突起——顯著改善人們對解決人工智能最難問題方法的駕馭能力,吸引工業巨人(比如谷歌等)的大量投資,研究論文的指數式增長(以及機器學習的研究生生源上升)。在聽了數節機器學習課堂,甚至在本科研究中使用它以后,我不禁好奇:這個新的「深度學習」會不會是一個幻想,抑或上世紀80年代已經研發出來的「人工智能神經網絡」擴大版?讓我告訴你,說來話長——這不僅僅是一個有關神經網絡的故事,也不僅僅是一個有關一系列研究突破的故事,這些突破讓深度學習變得比「大型神經網絡」更加有趣,而是一個有關幾位不放棄的研究員如何熬過黑暗數十年,直至拯救神經網絡,實現深度學習夢想的故事。
機器學習算法的百年歷史
線性回歸
首先簡單介紹一下機器學習是什么。從二維圖像上取一些點,盡可能繪出一條擬合這些點的直線。你剛才做的就是從幾對輸入值(x)和輸出值(y)的實例中概括出一個一般函數,任何輸入值都會有一個對應的輸出值。這叫做線性回歸,一個有著兩百年歷史從一些輸入輸出對組中推斷出一般函數的技巧。這就是它很棒的原因:很多函數難以給出明確的方程表達,但是,卻很容易在現實世界搜集到輸入和輸出值實例——比如,將說出來的詞的音頻作為輸入,詞本身作為輸出的映射函數。
線性回歸對于解決語音識別這個問題來說有點太無用,但是,它所做的基本上就是監督式機器學習:給定訓練樣本,「學習」一個函數,每一個樣本數據就是需要學習的函數的輸入輸出數據(無監督學習,稍后在再敘)。尤其是,機器學習應該推導出一個函數,它能夠很好地泛化到不在訓練集中的輸入值上,既然我們真的能將它運用到尚未有輸出的輸入中。例如,谷歌的語音識別技術由擁有大量訓練集的機器學習驅動,但是,它的訓練集也不可能大到包含你手機所有語音輸入。
泛化能力機制如此重要,以至于總會有一套測試數據組(更多的輸入值與輸出值樣本)這套數據組并不包括在訓練組當中。通過觀察有多少個正確計算出輸入值所對應的輸出值的樣本,這套單獨數據組可以用來估測機器學習技術有效性。概括化的克星是過度擬合——學習一個對于訓練集有效但是卻在測試數據組中表現很差的函數。既然機器學習研究者們需要用來比較方法有效性的手段,隨著時間的推移,標準訓練數據組以及測試組可被用來評估機器學習算法。
好了,定義談得足夠多了。重點是——我們繪制線條的聯系只是一個非常簡單的監督機器學習例子:要點在于訓練集(X為輸入,Y為輸出),線條是近似函數,用這條線來為任何沒有包含在訓練集數據里的X值(輸入值)找到相應的Y值(輸出值)。別擔心,接下來的歷史就不會這么干巴巴了。讓我們繼續吧。
虛假承諾的荒唐
顯然這里話題是神經網絡,那我們前言里為何要扯線性回歸呢?呃, 事實上線性回歸和機器學習一開始的方法構想,弗蘭克· 羅森布拉特(Frank Rosenblatt)的感知機, 有些許相似性。
Perceptron
心理學家Rosenblatt構想了感知機,它作為簡化的數學模型解釋大腦神經元如何工作:它取一組二進制輸入值(附近的神經元),將每個輸入值乘以一個連續值權重(每個附近神經元的突觸強度),并設立一個閾值,如果這些加權輸入值的和超過這個閾值,就輸出1,否則輸出0(同理于神經元是否放電)。對于感知機,絕大多數輸入值不是一些數據,就是別的感知機的輸出值。但有一個額外的細節:這些感知機有一個特殊的,輸入值為1的,「偏置」輸入,因為我們能補償加權和,它基本上確保了更多的函數在同樣的輸入值下是可計算的。這一關于神經元的模型是建立在沃倫·麥卡洛克(Warren McCulloch)和沃爾特·皮茲(Walter Pitts)工作上的。他們曾表明,把二進制輸入值加起來,并在和大于一個閾值時輸出1,否則輸出0的神經元模型,可以模擬基本的或/與/非邏輯函數。這在人工智能的早期時代可不得了——當時的主流思想是,計算機能夠做正式的邏輯推理將本質上解決人工智能問題。
另一個圖表,顯示出生物學上的靈感。激活函數就是人們當前說的非線性函數,它作用于輸入值的加權和以產生人工神經元的輸出值——在羅森布拉特的感知機情況下,這個函數就是輸出一個閾值操作
然而,麥卡洛克-皮茲模型缺乏一個對AI而言至關重要的學習機制。這就是感知機更出色的地方所在——羅森布拉特受到唐納德·赫布(Donald Hebb) 基礎性工作的啟發,想出一個讓這種人工神經元學習的辦法。赫布提出了一個出人意料并影響深遠的想法,稱知識和學習發生在大腦主要是通過神經元間突觸的形成與變化,簡要表述為赫布法則:
當細胞A的軸突足以接近以激發細胞B,并反復持續地對細胞B放電,一些生長過程或代謝變化將發生在某一個或這兩個細胞內,以致A作為對B放電的細胞中的一個,效率增加。
感知機并沒有完全遵循這個想法,但通過調輸入值的權重,可以有一個非常簡單直觀的學習方案:給定一個有輸入輸出實例的訓練集,感知機應該「學習」一個函數:對每個例子,若感知機的輸出值比實例低太多,則增加它的權重,否則若設比實例高太多,則減少它的權重。更正式一點兒的該算法如下:
從感知機有隨機的權重和一個訓練集開始。
對于訓練集中一個實例的輸入值,計算感知機的輸出值。
如若感知機的輸出值和實例中默認正確的輸出值不同:(1)若輸出值應該為0但實際為1,減少輸入值是1的例子的權重。(2)若輸出值應該為1但實際為0,增加輸入值是1的例子的權重。
對于訓練集中下一個例子做同樣的事,重復步驟2-4直到感知機不再出錯。
這個過程很簡單,產生了一個簡單的結果:一個輸入線性函數(加權和),正如線性回歸被非線性激活函數「壓扁」了一樣(對帶權重求和設定閾值的行為)。當函數的輸出值是一個有限集時(例如邏輯函數,它只有兩個輸出值True/1 和 False/0),給帶權重的和設置閾值是沒問題的,所以問題實際上不在于要對任何輸入數據集生成一個數值上連續的輸出(即回歸類問題),而在于對輸入數據做好合適的標簽(分類問題)。
康奈爾航天實驗室的Mark I 感知機,第一臺感知機的硬件
羅森布拉特用定制硬件的方法實現了感知機的想法(在花哨的編程語言被廣泛使用之前),展示出它可以用來學習對20×20像素輸入中的簡單形狀進行正確分類。自此,機器學習問世了——建造了一臺可以從已知的輸入輸出對中得出近似函數的計算機。在這個例子中,它只學習了一個小玩具般的函數,但是從中不難想象出有用的應用,例如將人類亂糟糟的手寫字轉換為機器可讀的文本。
很重要的是,這種方法還可以用在多個輸出值的函數中,或具有多個類別的分類任務。這對一臺感知機來說是不可能完成的,因為它只有一個輸出,但是,多輸出函數能用位于同一層的多個感知機來學習,每個感知機接收到同一個輸入,但分別負責函數的不同輸出。實際上,神經網絡(準確的說應該是「人工神經網絡(ANN,Artificial Neural Networks)」)就是多層感知機(今天感知機通常被稱為神經元)而已,只不過在這個階段,只有一層——輸出層。所以,神經網絡的典型應用例子就是分辨手寫數字。輸入是圖像的像素,有10個輸出神經元,每一個分別對應著10個可能的數字。在這個案例中,10個神經元中,只有1個輸出1,權值最高的和被看做是正確的輸出,而其他的則輸出0。
多層輸出的神經網絡
也可以想象一個與感知機不同的人工神經網絡。例如,閾值激活函數并不是必要的; 1960年,Bernard Widrow和Tedd Hoff很快開始探索一種方法——采用適應性的「自適應(ADALINE)」神經元來輸出權值的輸入,這種神經元使用化學「 存儲電阻器」,并展示了這種「自適應線性神經元」能夠在電路中成為「 存儲電阻器」的一部分(存儲電阻器是帶有存儲的電阻)。他們還展示了,不用閾值激活函數,在數學上很美,因為神經元的學習機制是基于將錯誤最小化的微積分,而微積分我們都很熟悉了。
如果我們多思考一下 「自適應(ADALINE)」,就會有進一步的洞見:為大量輸入找到一組權重真的只是一種線性回歸。再一次,就像用線性回歸一樣,這也不足以解決諸如語音識別或計算機視覺這樣的人工智能難題。McCullough,Pitts和羅森布拉特真正感到興奮的是聯結主義(Connectionism)這個寬泛的想法:如此簡單計算機單元構成的網絡,其功能會大很多而且可以解決人工智能難題。而且羅森布拉特說的和(坦白說很可笑的)《紐約時報》這段引文的意思差不多:
海軍披露了一臺尚處初期的電子計算機,期待這臺電子計算機能行走,談話,看和寫,自己復制出自身存在意識…羅森布拉特博士,康奈爾航空實驗室的一位心理學家說,感知機能作為機械太空探險者被發射到行星上。
這種談話無疑會惹惱人工領域的其他研究人員,其中有許多研究人員都在專注于這樣的研究方法,它們以帶有具體規則(這些規則遵循邏輯數學法則)的符號操作為基礎。MIT人工智能實驗室創始人Marvin Minsky和Seymour Paper就是對這一炒作持懷疑態度研究人員中的兩位,1969年,他們在一本開創性著作中表達了這種質疑,書中嚴謹分析了感知機的局限性,書名很貼切,叫《感知機》。
他們分析中,最被廣為討論的內容就是對感知機限制的說明,例如,他們不能學習簡單的布爾函數XOR,因為它不能進行線性分離。雖然此處歷史模糊,但是,人們普遍認為這本書對人工智能步入第一個冬天起到了推波助瀾的作用——大肆炒作之后,人工智能進入泡沫幻滅期,相關資助和出版都遭凍結。
感知機局限性的視覺化。找到一個線性函數,輸入X,Y時可以正確地輸出+或-,就是在2D圖表上畫一條從+中分離出-的線;很顯然,就第三幅圖顯示的情況來看,這是不可能的
人工智能冬天的復蘇
因此,情況對神經網絡不利。但是,為什么?他們的想法畢竟是想將一連串簡單的數學神經元結合在一起,完成一些復雜任務,而不是使用單個神經元。換句話說,并不是只有一個輸出層,將一個輸入任意傳輸到多個神經元(所謂的隱藏層,因為他們的輸出會作為另一隱藏層或神經元輸出層的輸入)。只有輸出層的輸出是「可見」的——亦即神經網絡的答案——但是,所有依靠隱藏層完成的間接計算可以處理復雜得多的問題,這是單層結構望塵莫及的。
有兩個隱藏層的神經網絡
言簡意賅地說,多個隱藏層是件好事,原因在于隱藏層可以找到數據內在特點,后續層可以在這些特點(而不是嘈雜龐大的原始數據)基礎上進行操作。以圖片中的面部識別這一非常常見的神經網絡任務為例,第一個隱藏層可以獲得圖片的原始像素值,以及線、圓和橢圓等信息。接下來的層可以獲得這些線、圓和橢圓等的位置信息,并且通過這些來定位人臉的位置——處理起來簡單多了!而且人們基本上也都明白這一點。事實上,直到最近,機器學習技術都沒有普遍直接用于原始數據輸入,比如圖像和音頻。相反,機器學習被用于經過特征提取后的數據——也就是說,為了讓學習更簡單,機器學習被用在預處理的數據上,一些更加有用的特征,比如角度,形狀早已被從中提取出來。
傳統的特征的手工提取過程的視覺化
因此,注意到這一點很重要:Minsky和Paper關于感知機的分析不僅僅表明不可能用單個感知機來計算XOR,而且特別指出需要多層感知機——亦即現在所謂的多層神經網絡——才可以完成這一任務,而且羅森布拉特的學習算法對多層并不管用。那是一個真正的問題:之前針對感知機概括出的簡單學習規則并不是適用于多層結構。想知道原因?讓我們再來回顧一下單層結構感知機如何學習計算一些函數:
和函數輸出數量相等的感知機會以小的初始權值開始(僅為輸入函數的倍數)
選取訓練集中的一個例子作為輸入,計算感知機的輸出
對于每一個感知機,如果其計算結果和該例子的結果不匹配,調整初始權值
繼續采用訓練集中的下一個例子,重復過程2到4次,直到感知機不再犯錯。
這一規則并不適用多層結構的原因應該很直觀清楚了:選取訓練集中的例子進行訓練時,我們只能對最終的輸出層的輸出結果進行校正,但是,對于多層結構來說,我們該如何調整最終輸出層之前的層結構權值呢?答案(盡管需要花時間來推導)又一次需要依賴古老的微積分:鏈式法則。這里有一個重要現實:神經網絡的神經元和感知機并不完全相同,但是,可用一個激活函數來計算輸出,該函數仍然是非線性的,但是可微分,和Adaline神經元一樣;該導數不僅可以用于調整權值,減少誤差,鏈式法則也可用于計算前一層所有神經元導數,因此,調整它們權重的方式也是可知的。說得更簡單些:我們可以利用微積分將一些導致輸出層任何訓練集誤差的原因分配給前一隱藏層的每個神經元,如果還有另外一層隱藏層,我們可以將這些原因再做分配,以此類推——我們在反向傳播這些誤差。而且,如果修改了神經網絡(包括那些隱藏層)任一權重值,我們還可以找出誤差會有多大變化,通過優化技巧(時間長,典型的隨機梯度下降)找出最小化誤差的最佳權值。
反向傳播的基本思想
反向傳播由上世紀60年代早期多位研究人員提出,70年代,由Seppo Linnainmaa引入電腦運行,但是,Paul Werbos在1974年的博士畢業論文中深刻分析了將之用于神經網絡方面的可能性,成為美國第一位提出可以將其用于神經網絡的研究人員。有趣的是,他從模擬人類思維的研究工作中并沒有獲得多少啟發,在這個案例中,弗洛伊德心理學理論啟發了他,正如他自己敘述:
1968年,我提出我們可以多少模仿弗洛伊德的概念——信度指派的反向流動( a backwards flow of credit assignment,),指代從神經元到神經元的反向流動…我解釋過結合使用了直覺、實例和普通鏈式法則的反向計算,雖然它正是將弗洛伊德以前在心理動力學理論中提出的概念運用到數學領域中!
盡管解決了如何訓練多層神經網絡的問題,在寫作自己的博士學位論文時也意識到了這一點,但是,Werbos沒有發表將BP算法用于神經網絡這方面的研究,直到1982年人工智能冬天引發了寒蟬效應。實際上,Werbos認為,這種研究進路對解決感知機問題是有意義的,但是,這個圈子大體已經失去解決那些問題的信念。
Minsky的書最著名的觀點有幾個:(1)我們需要用MLPs[多層感知機,多層神經網絡的另一種說法)來代表簡單的非線性函數,比如XOR 映射;而且(2)世界上沒人發現可以將MLPs訓練得夠好,以至于可以學會這么簡單的函數的方法。Minsky的書讓世上絕大多數人相信,神經網絡是最糟糕的異端,死路一條。Widrow已經強調,這種壓垮早期『感知機』人工智能學派的悲觀主義不應怪在Minsky的頭上。他只是總結了幾百位謹慎研究人員的經驗而已,他們嘗試找出訓練MLPs的辦法,卻徒勞無功。也曾有過希望,比如Rosenblatt所謂的backPRopagation(這和我們現在說的 backpropagation并不完全相同!),而且Amari也簡短表示,我們應該考慮將最小二乘(也是簡單線性回歸的基礎)作為訓練神經網絡的一種方式(但沒有討論如何求導,還警告說他對這個方法不抱太大期望)。但是,當時的悲觀主義開始變得致命。上世紀七十年代早期,我確實在MIT采訪過Minsky。我建議我們合著一篇文章,證明MLPs實際上能夠克服早期出現的問題…但是,Minsky并無興趣(14)。事實上,當時的MIT,哈佛以及任何我能找到的研究機構,沒人對此有興趣。
我肯定不能打保票,但是,直到十年后,也就是1986年,這一研究進路才開始在David Rumelhart, Geoffrey Hinton和Ronald Williams合著的《Learning representations by back-propagating errors》中流行開來,原因似乎就是缺少學術興趣。
盡管研究方法的發現不計其數(論文甚至清楚提道,David Parker 和 Yann LeCun是事先發現這一研究進路的兩人),1986年的這篇文章卻因其精確清晰的觀點陳述而顯得很突出。實際上,學機器學習的人很容易發現自己論文中的描述與教科書和課堂上解釋概念方式本質上相同。
不幸的是,科學圈里幾乎無人知道Werbo的研究。1982年,Parker重新發現了這個研究辦法[39]并于1985年在M.I.T[40]上發表了一篇相關報道。就在Parker報道后不久,Rumelhart, Hinton和Williams [41], [42]也重新發現了這個方法, 他們最終成功地讓這個方法家喻戶曉,也主要歸功于陳述觀點的框架非常清晰。
但是,這三位作者沒有止步于介紹新學習算法,而是走得更遠。同年,他們發表了更有深度的文章《Learning internal representations by error propagation》。
文章特別談到了Minsky在《感知機》中討論過的問題。盡管這是過去學者的構想,但是,正是這個1986年提出的構想讓人們廣泛理解了應該如何訓練多層神經網絡解決復雜學習問題。而且神經網絡也因此回來了!第二部分,我們將會看到幾年后,《Learning internal representations by error propagation》探討過的BP算法和其他一些技巧如何被用來解決一個非常重要的問題:讓計算機識別人類書寫。(待續)
參考文獻
Christopher D. Manning. (2015). Computational Linguistics and Deep Learning Computational Linguistics, 41(4), 701–707.?
F. Rosenblatt. The perceptron, a perceiving and recognizing automaton Project Para. Cornell Aeronautical Laboratory, 1957. ?
W. S. McCulloch and W. Pitts. A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5(4):115–133, 1943. ?
The organization of behavior: A neuropsychological theory. D. O. Hebb. John Wiley And Sons, Inc., New York, 1949 ?
B. Widrow et al. Adaptive ”Adaline” neuron using chemical ”memistors”. Number Technical Report 1553-2. Stanford Electron. Labs., Stanford, CA, October 1960. ?
“New Navy Device Learns By Doing”, New York Times, July 8, 1958. ?
Perceptrons. An Introduction to Computational Geometry. MARVIN MINSKY and SEYMOUR PAPERT. M.I.T. Press, Cambridge, Mass., 1969. ?
Linnainmaa, S. (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master’s thesis, Univ. Helsinki. ?
P. Werbos. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, Cambridge, MA, 1974. ?
Werbos, P.J. (2006). Backwards differentiation in AD and neural nets: Past links and new opportunities. In Automatic Differentiation: applications, Theory, and Implementations, pages 15-34. Springer. ?
Rumelhart, D. E., Hinton, G. E., and Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. ?
Widrow, B., & Lehr, M. (1990). 30 years of adaptive neural networks: perceptron, madaline, and backpropagation. Proceedings of the IEEE, 78(9), 1415-1442. ?
D. E. Rumelhart, G. E. Hinton, and R. J. Williams. 1986. Learning internal representations by error propagation. In Parallel distributed processing: explorations in the microstructure of cognition, vol. 1, David E. Rumelhart, James L. McClelland, and CORPORATE PDP Research Group (Eds.). MIT Press, Cambridge, MA, USA 318-362 ?
?------------------------------------------------
加入機器之心(全職記者/實習生):[email protected]
投稿或尋求報道:[email protected]
廣告&商務合作:[email protected]
機器之心是Comet Labs旗下的前沿科技媒體。Comet Labs是由聯想之星發起、獨立運作的全球人工智能和智能機器加速投資平臺,攜手全球領先的產業公司和投資機構,幫助創業者解決產業對接、用戶拓展、全球市場、技術整合、資金等關鍵問題。旗下業務還包括:Comet舊金山加速器、Comet北京加速器、Comet垂直行業加速器。
新聞熱點
疑難解答