第四章 聯結學派:大腦如何學習
終極算法:機器學習和人工智能如何重塑世界 作者:佩德羅·多明戈斯 投票推薦 加入書簽 留言反饋
赫布律,就如它為人們所知的那樣,是聯結主義的奠基石。確實,聯結主義相信知識儲存在神經元之間的聯結關係中,它也因此而得名。唐納德·赫布(donald hebb)是加拿大的心理學家,他在1949年出版的《行為的組織》(the organization of behavior)一書中這樣說道:“當a細胞的軸突和b細胞足夠近,並且重複或不斷地對其放電時,a、b中的一個細胞或者兩個細胞都會經曆生長過程或者代謝改變,這樣a細胞(作為對b細胞放電的細胞之一)的效率就會得到提高。”這段話經常被轉述成“一起放電的神經元也會被串連在一起”。
赫布律是心理學和神經科學思想的融合,其中摻雜了合理的猜想。通過連接來進行學習,是英國經驗主義者最喜愛的話題,從洛克和休謨到約翰·穆勒都是如此。威廉·詹姆斯(william james)在其著作《心理學原理》(principles of psychology)中,闡明了連接的主要原理,這和赫布律十分相似,隻是大腦活動被神經元取代,放電效率被興奮的傳播取代。差不多同時,偉大的西班牙神經學科學家聖地亞哥·拉蒙·卡哈爾第一次對腦部進行詳細觀察,利用當時發明的高爾基染色法來對單個神經元進行染色,把他所看到的編成目錄,就像植物學家對樹木的新品種進行分類一樣。赫布時期,神經學科學家對神經元如何發揮功能有了徹底了解,但赫布是第一個提出這種機製的人,通過這個機製可以對連接進行編碼。
在符號學派中,符號和它們代表的概念之間有一一對應的關係。相反,符號學派的代表方式卻是分散式的:每個概念由許多神經元來表示,而每個神經元又會和其他神經元一起代表許多不同的概念。互相激發的神經元會形成赫布所稱的“細胞集”。概念和記憶由細胞集在大腦中表示出來。每個細胞集都可以包含來自不同大腦區域的神經元,也可以和其他集合相互重疊。“腿”的細胞集中包含“腳”的細胞集,包含腳的圖片的細胞集,以及腳的聲音的細胞集。如果你問一個符號學派係統,“紐約”這個概念在哪裏被表示出來,它可以指向存儲該記憶的準確位置。在聯結學派體係中,答案就是“這個概念通過這裏一點、那裏一點地被儲存起來”。
符號學派和聯結學派的另外一個區別就在於,前者是按次序的,而後者是平行的。在逆向演繹中,我們可以一步一步地弄明白,為了從前提出發得到滿意的結論,需要哪些新的規則。而在聯結學派模型中,根據赫布律,所有的神經元都會同時進行學習。這也反映了計算機和人腦之間的不同屬性。計算機做每件事都會一點點來,例如,把兩個數相加,或者拉開關。所以為了完成所有有意義的事情,計算機得經過很多步驟,但那些步驟可以很快被完成,因為晶體管每秒可以打開、關閉數十億次。相反,人腦可以同時進行多項運算,這時數十億的神經元會同時起作用,但每項遠算都會很慢,因為神經元最多可每秒放電1000次。
計算機裏晶體管的數量已經趕上人類大腦裏神經元的數量,但在連接數量上,人類的大腦輕易獲勝。在一台微處理器中,典型的晶體管僅僅和其他幾個晶體管直接相連,而派上用場的平麵半導體技術對計算機功能的發揮又有很大的限製。相反,一個神經元就有數千個突觸。如果你走在大街上碰到熟人,你認出他隻需要0.1秒。以神經轉換的速度,這些時間勉強夠用來進行100個處理步驟,但在那些處理步驟中,你的大腦能夠瀏覽整個記憶庫,找到最佳搭配,然後使其適應新的背景(不同的服裝、不同的燈光等)。在大腦中,每個處理步驟有可能會很複雜,而且會涉及很多信息,並符合分散的概念表達方式。
這並不意味著我們就不能利用計算機來模擬人腦,畢竟這是聯結學派算法要做的事。因為計算機是通用的圖靈機,隻要我們給它足夠的時間和記憶力,它就能執行大腦的計算,以及別的任何事情。尤其計算機可以利用速度來彌補缺乏連接的劣勢,千千萬萬遍利用同樣的線來模擬1000根線。實際上,目前計算機和人腦相比,主要的限製是能量損耗:人的大腦消耗的能量僅僅相當於一個小燈泡,而沃森消耗的電卻能點亮整棟辦公樓。
然而為了模擬大腦,我們需要的不僅僅是赫布律,還要知道大腦是如何構造的。每個神經元就像一棵小樹,有數目驚人的根須(樹突)還有細長蜿蜒的樹幹(軸突)。大腦就是由數十億棵這樣的樹組成的森林,但這些樹也有不同尋常的地方:每棵樹的枝丫都會和其他數千棵樹的根部有連接(突觸),形成大片你沒見過的糾纏狀態。有些神經元有很短的軸突,而有些神經元的軸突則很長,可以從大腦的一邊纏繞到另一邊。你大腦裏軸突的長度相當於地球到月亮的距離。
這片森林還會充滿電流。火星會沿著樹幹閃爍,然後會引發相鄰樹木更多的火花。時不時整個區域的叢林會使自己進入狂熱狀態,然後又會平靜下來。如果你動動腳趾,會發生一係列放電現象,人們稱之為“動作電位”。這種放電現象會沿著你的脊髓一直到達腿部,直到到達你的腳趾肌肉,然後告訴肌肉要運動。你的大腦運轉時的情景就是這些電火花火光四射的場麵。如果你能坐在大腦裏麵,看看你閱讀這頁書時大腦發生了什麽,你看到的情景會讓科幻小說裏最繁忙的都市景象也遜色幾分。這個十分複雜的神經元放電模式的背後,就是你的意識在起作用。
在赫布時代,沒有什麽方法能夠測量突觸的強度或者發生在其內部的變化,更不用說弄明白突觸變化的分子生物學相關信息。如今,我們知道,當突觸後神經元在突觸前神經元之後會很快放電時,突觸會變大(或重新形成突觸)。和所有的細胞一樣,神經元裏外有不同的離子濃度,穿過神經元的細胞膜形成一股電壓。當突觸前神經元放電時,微小的囊會向突觸間隙釋放神經遞質分子。這會使突觸後神經元的膜中的通道打開,讓鉀離子和鈉離子進入,最終會改變通過膜的電壓。如果有足夠多的突觸前神經元一起放電,電壓會突然升高,一個動作電位會順著突觸後神經元的軸突而下。這還會使離子通道變得更加靈敏,並出現新的通道,對突觸進行加強。就我們的知識所能達到的水平,這就是神經元進行學習的過程。
下一步就是把這個過程運用到算法中。 <h2>感知器的興盛與衰亡</h2>
第一個正式的神經元模型是由沃倫·麥卡洛克(warren ulloch)和沃爾特·皮茨(walter pitts)於1943年提出的。這個模型看起來很像組成計算機的邏輯門。當“或”門至少一個輸入開關打開時,“或”門開通,當所有輸入開關打開時,“且”門開通。當其輸入的活躍信息超過某個界限值時,一個麥卡洛克—皮茨神經元會打開。另外,如果界限值隻有一個,神經元就相當於一道“或”門;如果界限值等於輸入信息的數量,神經元就相當於一道“且”門。另外,一個麥卡洛克—皮茨神經元會阻止另外一個麥卡洛克—皮茨神經元打開,這就模擬了抑製性突觸和“非”門。因此神經元的一個網絡就可以完成計算機的所有計算。在早些年,計算機常常被稱為“電腦”,這不隻是一個類比那麽簡單。
麥卡洛克—皮茨神經元做不了的事情就是學習。為此我們需要對神經元之間的連接給予不同的權重,這就是所謂的“感知器”。感知器於20世紀50年代由康奈爾大學的心理學家弗蘭克·羅森布拉特(frank rosentt)發明。作為富有魅力的演講者和活躍人物,羅森布拉特在早期機器學習領域形成的過程中,比任何人付出的都要多。“感知器”這個名稱源於他的興趣,他喜歡將自己的模型應用到諸如演講和字符識別的感知任務中。他沒有將感知器應用於軟件中,因為在那個年代這個過程會非常緩慢,他構建了自己的裝置。權值是由可變電阻器來實現的,這些電阻器和調光燈開關中的那些電阻器一樣,而且權值學習由電動機來實現,電動機會打開電阻器上的開關。
在感知器中,一個正權值代表一個興奮性連接,一個負權值代表一個抑製性連接。如果其輸入量的加權和高於界限值,那麽會輸出1;如果加權和小於界限值,那麽輸入0。通過改變權值和界限值,我們可以改變感知器計算的函數。當然,這種做法忽略了神經元發揮作用的很多細節,但我們想讓這個過程盡可能簡單點。我們的目標是形成一種多用途的學習算法,而不是構建一個大腦的現實模型。如果被我們忽略的一些細節最後證明很重要,可以在後麵加上去。盡管我們把抽象的東西簡化了,卻仍可以看到這個模型的每個部分都與神經元的一個部分相對應(見圖4–1)。
圖4–1
輸入量的權值越高,相應的突觸也會越強。細胞體把所有加權輸入量加起來,軸突使結果變成一個階躍函數。圖中代表軸突的框表明了階躍函數的圖像:0代表輸入量的低值,當輸入量到達界限值時,會突然變成1。
假設感知器有兩個持續輸入量x和y(換句話說,x和y可以是任何數值,不僅僅是0和1),那麽每個例子都可以由平麵上的一個點來表示,而正麵例子(例如,感知器中輸出量為1)和負麵例子(輸出量為0)之間的界線就是一條直線(見圖4–2)。
圖4–2
這是因為這條界線是由一係列點組成的,在這些點上,加權和剛好等於界限值,而一個加權和就是一個線性函數。例如,如果x的係數是2,y的係數是3,那麽界限值是6,界限就由方程式2x+3y=6來確定。x=0,y=2的點就在界線上,為了停留在這條線上,我們要水平向右平移3個單位,同時垂直向下平移2個單位,這樣x增加的量就是y減少的量,經過的點就形成一條直線。
掌握感知器的權值意味著要改變直線的方向,知道所有的正麵例子都在這邊,所有的負麵例子都在另一邊。在一維概念中,這個界線是一個點;在二維概念中,它是一條直線;在三維概念中,它是一個麵;在超過三維的概念中,它是一個超平麵。在超平麵中很難把東西形象化,但數學就是這樣發揮作用的。在n維概念中,我們有n個輸入量,而感知器有n個權值。為了確認感知器是否放電,我們把每個權值乘以相應的輸入量,然後將得數相加,和界限值進行對比。
如果所有的輸入量都有一個權值1,而且界限值是輸入量數值的一半,當感知器超過一半的輸入量放電時,那麽感知器放電。換句話說,感知器就像一個微型社會,少數服從多數(可能也沒有那麽小,因為它有數千個成員)。盡管如此,整體來說它並不那麽民主,因為一般不是人人都平等地享有選擇權。神經網絡看起來更像社交網絡,在這裏,幾個親密朋友比臉書上的數千個好友更加重要。最信任的朋友對你的影響也最大。如果有個朋友推薦了一部電影,你去看了,覺得喜歡,下次可能還會再聽他的建議。另一方麵,如果他滔滔不絕地講你不喜歡的電影,你會開始忽略他的建議(甚至你們的友情都可能變淡)。
這就是羅森布拉特的感知器算法掌握權值的方法。
想想祖母細胞,這是認知神經學科學家最熱衷的思維實驗。祖母細胞是你大腦中的一個神經元,無論何時你看到自己的祖母,它都會放電,而且隻有這樣的情況才會放電。祖母細胞是否真實存在有待探尋,但我們可以設計一個,並將其應用於機器學習。下麵,我們來分析一下感知器學習識別你的祖母的過程。進入細胞的要麽是圖片中的原始像素,要麽就是圖片的各種固有特征,就像棕色的眼睛,如果圖片上有一雙棕色的眼睛就會取值1,否則是0。一開始,從特征到神經元的所有連接有小的隨機值,就像剛出生時你大腦中的突觸一樣。那麽我們向感知器展示了一組圖片,有些是你祖母的,有些不是。如果感知器在看到一張你祖母的照片時會放電,或者在看到別的圖片時不會放電,那麽就不需要進行學習活動(如果東西沒壞,就別修理它)。但如果感知器在看到你的祖母時沒有放電,這意味著它的輸入量的加權和應該取更高的值,這樣我們就增加進行中的輸入量的權值(例如,如果你的祖母有一雙棕色的眼睛,這個特征的權值會增長)。相反,如果感知器在不該放電的時候放電,我們就減少活躍的輸入量的權值。誤差迫使學習活動正常進行。經過一段時間,表明你祖母的特征會取得更高的權值,相反則得到低權值。一旦感知器看到你祖母時就會放電,而且也隻有這時,學習才算完成。
感知器會產生許多興奮。它雖然簡單,但僅憑借例子訓練,它就能識別書麵文字和語音。羅森布拉特在康奈爾大學的同事證實,如果正麵例子和負麵例子能夠通過超平麵來分離,那麽感知器會找到超平麵。對於羅森布拉特和其他人來說,真正理解大腦如何進行學習似乎在能力範圍之內,有了這種理解力,就可以得到強大的多用途學習算法了。
但是感知器卻碰壁了。知識工程師被羅森布拉特的觀點激怒,羨慕其不斷增長的被關注度,而神經網絡,特別是感知器獲得的資金也變得越來越多。馬文·明斯基就是其中一個,他是羅森布拉特之前在布朗士科學高中的同學,那時他還是麻省理工學院人工智能研究小組的領導(具有諷刺意味的是,他的博士論文和神經網絡相關,但對於神經網絡,他越來越不抱幻想)。1969年,明斯基和他的同事西摩爾·派普特一起出版了《感知器》(perceptroms)一書,該書詳細介紹了同名算法的缺點,還一一列舉了該算法無法學習的內容。最簡單的一個(所以也是最受批評的一個)就是排斥—“或”功能(exclusive–or function,xor)。如果它其中的一個輸入量是對的,那麽這就是對的,但如果兩個都是對的,則是錯的。例如,耐克的兩大忠實消費人群被認為是年輕男性和中年婦女。換句話說,如果你是年輕的xor女性,那麽有可能購買耐克的鞋子。年輕挺好的,做女人也挺好的,但兩個加起來就不一定好了。如果你既不年輕,也不是女性,那麽你也不是耐克做廣告的對象。xor的問題就在於,沒有能夠區分正麵例子和負麵例子的直線。圖4–3展示了兩種不可行的備選方法:
既然感知器隻能學習線性界線,那麽它就無法對xor進行學習。而如果感知器無法做到這一點,就無法很好地模擬大腦學習的方法,也不是終極算法可行的備選項。
圖4–3
然而,一台感知器隻能模擬單個神經元的學習過程,盡管明斯基和派普特承認,幾層相互連接的神經元能做的應該更多,但他們找不到研究這些神經元的方法,其他人也找不到。問題就在於,沒有明確的方法來改變“隱層”中神經元的權值,以減少輸出層中神經元造成的誤差。每個隱藏的神經元會通過多種路線來影響輸出量,而且造成每個誤差的原因也可能達到上千種。你該責怪誰?或者,相反,誰該因為正確的輸入量而受到讚揚?這個問題在我們努力對一個複雜模型進行學習時隨時會出現,而這個問題也是機器學習領域中的中心問題。從數學角度看,《感知器》無懈可擊,思路清晰、效果明顯。機器學習當時主要和神經網絡相關聯,而且多數研究者(更不用說創建人)得出結論,構建智能體係的唯一方法就是對其進行明確設定。在未來15年,知識工程師會站在舞台中央,而機器學習則會變成曆史的殘灰。 <h2>物理學家用玻璃製作大腦</h2>
如果機器學習的曆史是一部好萊塢電影,電影中的反麵人物就是馬文·明斯基。他是給白雪公主毒蘋果的邪惡皇後,讓白雪公主處於昏迷狀態(在1988年的一篇文章中,西摩爾·派普特甚至半開玩笑地將自己比作故事裏的獵人,故事裏皇後派他去殺死森林中的白雪公主)。那麽白馬王子就是名叫約翰·霍普菲爾德的加州理工學院的物理學家。1982年,霍普菲爾德發現了大腦和自旋玻璃(spinss)驚人的相似之處,自旋玻璃是深受統計物理學家喜愛的特殊材料。這引起聯結學派的複興,在第一個解決讚譽分配問題的算法發明出來的幾年,聯結學派複興達到頂峰,並進入一個新時代,機器學習代替知識工程學成為人工智能領域的主導範式。
旋轉玻璃其實並不是玻璃,雖然有一些玻璃的屬性,其實是磁性材料。每個電子都是一塊微小的磁鐵,由於本身的自旋運動,可以指“上”或指“下”。比如在鐵這樣的材料中,電子自旋就趨向於往上:如果一個自旋向下的電子被多個自旋向上的電子包圍,這個電子可能會翻轉向上。如果一塊鐵中的大部分自旋都向上,那麽這塊鐵就會變成一塊磁鐵。在普通磁鐵中,每對相鄰電子自旋的交互力都一樣,但在自旋玻璃中,這種力就可能不一樣。這種力甚至會是相反的,使得附近的電子自旋指向相反的方向。當普通磁鐵所有的自旋都排成一行時,能量是最低的,但在自旋玻璃中卻沒那麽簡單。的確,找到自旋玻璃的最低能量狀態就是一個np—完全問題,意味著幾乎所有其他最優化難題都可以簡化為np—完全問題。因為這個,自旋玻璃沒有必要適應其整體能力最低的狀態。這很像雨水可能會沿著山坡流入湖中,而不是進入大海,自旋玻璃可能會陷入局部最小值的困境,而不是在全局最小值中得到發展。處於最小值狀態中的能量會比在其他狀態下低,通過翻轉一圈,最低能量狀態就可以轉變為其他狀態。
霍普菲爾德注意到自旋玻璃和神經網絡之間有趣的相似點:一個電子的自旋對其相鄰電子的活動所做的反應和一個神經元的反應十分相似。在電子的情況中,如果相鄰電子的加權和超過界限值,電子就會向上翻,反之則向下翻。受到這一點的啟發,他確定了一種神經網絡,和自旋玻璃一樣隨著時間的推移而演變,他還提出網絡的最低值狀態就是它的記憶。每個這樣的狀態都具備原始狀態的“吸引盆”(basin of attraction),原始狀態就收斂於該盆中,這樣這個網絡就可以進行模式識別了。例如,如果其中的一個記憶是由數字9形成的黑白像素模式,而網絡看到一個扭曲了的9,它會收斂成“理想”的9,然後據此重新識別它。突然間,大量的物理理論能夠應用於機器學習中,而隨之也湧入大批的統計物理學家,幫助自旋玻璃打破之前就陷入的局部最小值困境。
雖然如此,但自旋玻璃仍然是大腦的一個不現實的模型。對於一個電子來說,自旋相互作用是對稱的,而大腦中神經元之間的連接卻不是對稱的。霍普菲爾德的模型忽略的另外一個大問題就是,真正的神經元是和統計相關的:它們不會根據其輸入量來確定地進行打開或關閉。隨著輸入量加權和的增加,神經元更有可能放電,但不確定它是否真的會放電。1985年,大衛·艾克利、傑夫·辛頓、特裏·索諾斯基把霍普菲爾德網絡裏的確定性神經元用可能性神經元代替。現在一個神經網絡的狀態就有了概率分布,高能量狀態的概率要比低能量狀態的概率低得多。實際上,找到處於特定狀態中的網絡,這樣的概率由著名的熱力學中的玻爾茲曼分布得出,因此他們稱自己的網絡為玻爾茲曼機器。
一台玻爾茲曼機器擁有混合的感官和隱藏神經元(分別類似於視網膜和大腦)。它通過清醒和睡眠兩種交替狀態進行學習,就像人類一樣。清醒時,感官神經元根據數據指令放電,隱藏神經元根據網絡的動態和感官輸入來逐步發展。例如,如果網絡收到9的圖片,與圖片中黑色像素對應的神經元會留下,其他的則離開,而隱藏神經元則在給定那些像素值的情況下,根據玻爾茲曼分布隨機放電。睡眠狀態時,機器會做夢,讓感官和隱藏神經元都能自由漂移。新一天的黎明到來之前,機器會統計睡夢中的狀態,以及昨天活動中的狀態,直到進行比較,接著改變連接權值,讓權值符合搭配。如果兩個神經元白天時易於在一起放電,但睡眠時放電次數卻變少了,那麽它們連接的權值會升高;如果情況相反,則權值會降低。通過日複一日重複這樣的工作,感官神經之間經過預測的相關性會進一步發展,知道它們和真正的神經元搭配起來。這時,玻爾茲曼機器就掌握了一個很好的數據模型,並有效解決讚譽分布問題。
傑夫·辛頓在接下來的幾十年繼續在玻爾茲曼機器中嚐試了許多變量。辛頓由心理學家變成計算機科學家,他是邏輯運算(被應用於所有計算機中)的發明者——喬治·布爾的曾孫,是世界領先的聯結主義者。為了了解大腦如何運轉,他比任何人付出的時間、精力都要多。他講到有一天他懷著極度興奮的心情下班回家,驚呼:“我做到了!我知道大腦怎麽運轉了!”他的女兒回答道:“啊!爸爸,你怎麽又來了!”辛頓最近的熱情在於研究深度學習,本章的後麵部分會談到。他還參與了反向傳播的研究,這是一個比玻爾茲曼機器能更好地解決讚譽分布問題的算法,我們後麵會談到。玻爾茲曼機器原則上可以解決讚譽分布問題,但在實踐中,學習這個行為非常緩慢且痛苦,對大多數應用來說,玻爾茲曼機器有點不切實際。下一個突破會涉及解決麥卡洛克和皮茨時期的另外一個過度簡化(oversimplication)問題。 <h2>世界上最重要的曲線</h2>
就其相鄰神經元而言,一個神經元隻能處於兩種狀態:放電或不放電。但是這忽略了一個很重要的巧妙之處。動作電位壽命短,電壓會在一秒之內驟然升高,然後突然回到靜息狀態。而單個峰值對接收神經幾乎不會有影響,為了喚醒接收神經,需要一連串連續不斷的峰值。典型的神經元會偶爾在沒有刺激的情況下電壓達到峰值,當刺激建立起來時,電壓達到峰值的頻率會越來越高,然後保持在它所能達到峰值的最快速度,快於這個速度時,不斷增強的刺激就沒有效果了。神經元與其說是一道邏輯門,不如說是一台電壓頻率轉換器。隨電壓而變化的頻率曲線如圖4–4所示。
圖4–4
該曲線看起來像被拉長的字母s,它有很多叫法,比如邏輯函數、s形函數和s形曲線。仔細研究它吧,因為這是世界上最重要的曲線。首先輸出量隨著輸入量緩慢增長,如此緩慢,似乎保持不變。接著它開始變化得很快,然後變得更快,之後越來越慢,直到幾乎保持不變為止。晶體管的轉換曲線,將其輸入電壓和輸出電壓聯係在一起,也是一條s形曲線。所以計算機和大腦都充滿了s形曲線。這還沒結束,s形曲線是所有種類相變的形狀:電子應用領域自旋反轉的概率、鐵的磁化、將少量記憶寫到硬盤上、細胞中離子通道的打開、冰塊融化、水蒸發、早期宇宙的膨脹擴張、進化中的間斷平衡、科學中的範式轉移、新技術的傳播、離開多民族社區的白人大遷徙、謠言、流行病、革命、帝國的沒落等。“引爆點”也很適合(可能不那麽有吸引力)“s形曲線”這個名字。在兩個相鄰板塊的相對位置中,地震就是一個相變。夜裏的碰撞聲,也隻是你隔壁房間裏微觀板塊移動的聲音,所以別害怕。約瑟夫·熊彼特說過,經濟是在裂縫和飛躍中得以發展的:s形曲線就是創造性破壞的形狀。經濟收益和損失對你的幸福度的影響遵循s形曲線原則,所以不要在大事上感到苦惱。隨機的邏輯公式可滿足的概率(典型的np完全問題)隨著公式變長,會經曆從接近1到接近0的相變。統計物理學家花了一輩子時間來研究相變。
在海明威的《太陽照常升起》中,當麥克·坎貝爾被問到他是如何走向破產時,他答道:“有兩種方式,先是慢慢地,然後突然破產。”雷曼兄弟的情況也十分相似。這就是s形曲線的精華。未來學家保羅·薩夫預言的規則就是:尋找s形曲線。當你沒法調好淋浴的溫度時(開始水很冷,然後很快又變得很熱),都是s形曲線的錯。你做爆米花時,看看s形曲線的進度:一開始什麽也沒發生,幾粒玉米爆開,又有一把爆開,很多玉米突然像煙花一樣爆開,更多的玉米爆開,最後你就可以吃爆米花了。你肌肉的每個動作都遵循s形曲線:先是緩慢移動,然後快速移動,最後又緩慢移動。當迪士尼的動畫師指出這一點時,動畫片變得更自然了,然後人們紛紛模仿。你的眼睛沿著s形曲線移動,注視一樣東西然後換另一樣,你的意識也跟你的眼睛一起轉移。情緒波動也屬於相變。出生、長大、墜入愛河、結婚、懷孕、工作、失業、搬到新的城市、升職、退休、死亡,這些都屬於相變。宇宙就是相變的巨大集合體,從宇宙到微觀世界,從世俗到人生的改變。
s形曲線作為一個獨立的模型,不僅很重要,它還是數學的萬事通。如果放大它的中段部位,你會發現它近似一條直線。很多我們認為是線性的現象,其實都是s形曲線,因為沒有什麽能夠毫無限製地增長下去。因為相對性和反牛頓定律,加速度並不會隨著力的施加而呈線性增長,但會遵循s形曲線,以0為中心。電路中或者燈泡中電阻的電流也不會隨著電壓的增長而線性增長(直到燈泡中的燈絲熔化,這本身又是另外一個相變)。如果你把s形曲線縮小,它會近似一個階躍函數,輸出值會突然從0界限值變到1界限值。那麽根據輸入電壓,同樣的曲線也會表示這些裝置中電阻的工作原理,包括數字計算機和類似的裝置,如擴音器和廣播協調器。s形曲線的開始部分是有效指數,在飽和點附近它則接近指數式衰減。當有人討論指數式增長時,問問你自己:它什麽時候會變成一條s形曲線?人口爆炸什麽時候才會慢慢消失,摩爾定律的重要性什麽時候削減,或者說技術奇異點什麽時候才不會發生?辨別一條s形曲線,你就會得到一條鍾形曲線:緩慢、快速、緩慢變低、高、低。在s形曲線加入一連串向上和向下交錯的曲線,你會得到接近正弦波的曲線。實際上,每個函數都可以近似看作s形曲線的總和:函數上升時,你加一條s形曲線;函數下降時,你減掉一條s形曲線。孩子的學習也不是一直都處於進步狀態,這個過程是若幹個s形曲線的累積。技術變革也是如此。斜眼看紐約的天空,你會看到一組s形曲線在地平線上逐漸展開,每條曲線都和摩天大樓的角一樣尖。
對我們來說最重要的是,s形曲線會找到解決讚譽分布問題的新方法。如果宇宙是相變的大集合體,那讓我們用一條s形曲線來模仿這個集合體。這就是大腦要做的事:將裏麵的相變係統調整到外麵。那麽讓我們用s形曲線來代替感知器的階躍函數,然後看看會發生什麽。 <h2>攀登超空間裏的高峰</h2>
在感知器算法中,誤差信號要麽是全有,要麽是全無:你不是收到對的信號,就是收到錯的信號。繼續下去不會有很大的意義,尤其是當你有眾多神經元網絡時。你可能會知道,輸出神經元出錯了(“哎呀,那不是你的祖母”),但如果是大腦深處的某個神經元會怎麽樣呢?這樣的神經元都會出錯,那意味著什麽呢?如果神經元的輸出信息是持續的,而不是二進製的,畫麵就會改變。首先,我們現在知道輸出神經元犯的錯誤有多嚴重:它和理想輸出信息之間的區別。如果神經元應該不停地放電(“啊,您好,祖母”),但它隻放了一點電,那就比什麽電也不放要好。更重要的是,我們現在可以將該誤差傳播到隱藏神經中:如果輸出神經元應該放更多的電,而a神經元與其相連,那麽a放的電越多,我們就越應該加強它們的連接;但是如果a神經元受到神經元b的抑製,那麽b神經元就應該少放電,以此類推。根據與其連接的所有神經元的反饋看,每個神經元會決定該多放或者少放多少電。根據這一點以及輸入神經的活動,它會加強或者減弱它與它們的聯係。我得放更多的電,但是b神經元在阻止我?把它的權值降低。c神經元不斷放電,但它和我的連接很弱?那就加強連接。我的“消費者”神經元位於網絡的下遊,會告訴我下一輪我的表現如何。
無論什麽時候學習算法的“視網膜”看到一張新的圖片,這個信號就會在網絡中傳播,知道它產生輸出信息。將這條輸出信息和理想的輸出信息相比,會發出錯誤信號,這個信號會穿過神經元層,然後反向傳播回去,直到它到達視網膜。根據返回來的信號以及在前進過程中它接收到的輸入信息,每個神經元會調整各自的權值。隨著網絡看到越來越多你祖母和其他人的照片,權值會逐漸收斂到能夠讓它區分兩者的值中。反向傳播,正如這個算法為人們所知的一樣,比感知器算法要強大很多。單個神經元隻能夠對直線進行學習。給定足夠的隱藏神經,一台多層感知器,正如它的名字一樣,可以代表任意的複雜邊界。這使得反向傳播成為聯結學派的主算法。
反向傳播是自然及技術領域中非常常見的戰略實例:如果你著急爬到山頂,那你就得爬能找到的最陡的坡。這在技術上的術語為“梯度上升”(如果你想爬到山頂)或者梯度下降(如果你想走到山穀)。細菌就是通過遊向食物(例如葡萄糖)分子濃度高的地方來覓食的;遇到有毒物質,它們則會遊向有毒物質濃度低的地方。所有事物,從機翼到天線陣,都可以通過梯度上升來優化。反向傳播就是在多層感知器中有效做到這一點的方法:不斷對權值進行微調,以降低誤差,然後當所有調整失敗時,停止調整。有了反向傳播,你就不必從頭開始弄明白怎樣對每個神經元的權值進行微調,這樣做起來會很慢。你可以一層一層來做,根據調整與其相連神經元的方法,來調整每個神經元。如果在突發事件中,除了一件工具,你得把整個機器學習工具包都扔掉,那麽梯度下降可能是你想留下的工具。
那麽反向傳播解決機器學習的問題了嗎?我們能否把一大堆神經元扔到一起,讓它們自己發揮魔力,然後在去銀行的路上,順便領了諾貝爾獎,獎勵你弄明白大腦如何運轉?唉,人生不會那麽簡單。假設你的網絡隻有一個權值,而圖4–5中的誤差就是權值的一個函數。
圖4–5
最優權值是2.0,這時的誤差值最低。如果網絡以權值0.75作為開始,例如,反向傳播會在幾個步驟之後達到最佳效果,就像球滾下坡一樣。但如果它以權值5.5作為開頭,反向傳播會下滑至7.0,而且會停在那裏。反向傳播,隨著漸進權值的變化,不知道該如何找到全局誤差最小值,而局部誤差值可能會很糟糕,就像把你的祖母錯認成帽子那樣。有了一個權值,你可以以0.01的增量來嚐試每個可能的值,然後用那種方法找到最佳效果。但如果你有數千個權值(數百萬或者數十億個就更不用說了),就不該選這種方法,因為網格線上的點會隨著權值數量的增長呈指數級上漲。全局最低值隱藏在浩瀚的超空間的某個角落裏,找到它就走運了。
想象一下你被綁架了,然後在喜馬拉雅山脈的某個地方被蒙住眼睛。你感到頭痛,也不記得什麽了。你知道的一切就是你得爬到珠穆朗瑪峰峰頂。你會做什麽?你向前走了幾步,差點滑到山溝裏。你喘了幾口氣之後,決定要更有計劃地行動。你用腳仔細感覺了周圍的地形,直到找到最高的點,然後小心翼翼走向那點。然後你重複同樣的動作。一步一步,你走得越來越高。這就是梯度上升。如果這個山脈剛好就是珠穆朗瑪峰,而珠穆朗瑪峰是一個標準的圓錐,那它就很有吸引力了。但更有可能的是,當你到達一個地方,那裏每走一步都是往下時,那麽你距離峰頂還很遠。這時你隻是站在山腳的某個地方,而且你被困住了。這就是反向傳播遇到的事情,除非它在超空間而不是3d空間中攀登高峰。如果你的網絡有單個神經元,隻要一步一步爬向更好的權值,你就可以到達峰頂。但在多層感知器中,山路會很崎嶇,找到最高的山峰已算走運。
這也是明斯基、派普特和其他人無法找到學習多層感知器的部分原因。他們可能想象到用s形曲線來代替階躍函數,然後進行梯度下降,不過他們會遇到誤差的局部最小值這個問題。在那個年代,研究者們不相信計算機模擬,他們需要數學來證明算法可以起作用,而反向傳播卻沒有這樣的證據。但我們最好意識到的是,多數情況下局部最小值挺好的,不會有不良影響。誤差表麵看起來往往像豪豬的剛毛,有很多高峰和低穀,但如果我們找到絕對最低的點之後,這真的不重要了,並且任何人都有可能找到。更好的消息是,實際上,局部最小值可能更適合,因為它和全局最小值比,不太可能證明對我們的數據過擬合。
超空間是一把雙刃劍:一方麵,空間的維度越高,它越有可能存在高度複雜的表麵和局部最優解;另一方麵,被困在局部最優解中,意味著被困在每個維度中,所以被困在多維中的難度會比被困在三維中的難度大。在超空間中,到處都有穿山而過的通道。那麽,借助夏爾巴人的小小幫助,反向傳播往往會找到通往完美權值的道路。它可能僅僅是香格裏拉的神秘山穀,而不是海洋,但如果在超空間中,有數百萬個這樣的山穀,每個山穀都有數十億的山口對著它,那為什麽要抱怨呢?
然而要當心,不要過於重視反向傳播找到權值的意義。記住,可能會有許多不同的優良權值。多層感官器中的學習活動是一個混亂的過程,其意義在於從稍有不同的地方開始,就會讓你結束時的解決方法迥然不同。現象本身並無區別,無論這輕微的差別是存在於最初權值中,還是存在於訓練數據中,而且是否會在所有強大的學習算法(不隻是反向傳播)中表現出來。
我們可以去掉s形曲線來解決局部最優問題,然後隻讓每個神經元輸出其輸入量的加權和。這樣做會使誤差變得非常平緩,隻剩下一個最小值——全局最小值。雖然如此,問題是線性函數的一個線性函數也隻是一個線性函數,那麽線性神經元的一個網絡與單個神經元幾乎一樣。一個線性大腦,無論多大,總比一條線蟲要笨。s形曲線是線性函數非智能性和階躍函數難解性的完美中轉站。 <h2>感知器的複仇</h2>
反向傳播於1986年是由加州大學聖迭戈分校的心理學家大衛·魯梅爾哈特在傑夫·辛頓以及羅納德·威廉斯的協助下發明出來的。他們表明反向傳播還可以學習xor,這讓聯結學派對明斯基和派普特嗤之以鼻。回顧之前耐克的例子:年輕男性和中年婦女最有可能購買耐克鞋。其中,我們可以用三個神經元的網絡來代表:第一個神經元看到年輕男性時會放電;第二個神經元在看到中年女性時會放電;第三個神經元看到其中一個時會放電。通過反向傳播,我們可以掌握適當權值,最後成功完成耐克的前景預測(馬文,事情就是這樣,沒什麽可說的)。
早期在證明反向傳播力量的時候,特裏·索諾斯基和查爾斯·羅森伯格訓練了一台多層感知器,讓其大聲朗讀。他們的網絡聊天係統瀏覽文本,根據背景選擇準確的音素,然後加入語音合成器。他們的網絡聊天不僅適用於新詞——這是基於知識的係統無法做到的——網絡聊天係統還可以說話,而且說得和人類極為相似。索諾斯基過去經常在研究會議上通過播放網絡聊天進展的磁帶來對觀眾進行催眠:一開始是牙牙學語,然後開始能讓人們聽懂,最後說得很流利,隻是偶爾會犯錯。
神經網絡第一次取得大的成功是準確預測股票市場。因為神經網絡可以在噪聲很大的數據中探測到微小非線性,它們打敗線性模型,並在金融領域流行起來,它們的應用也變得更廣泛。典型的投資基金會為每大批股票訓練出一個分離的網絡,讓神經網絡挑出最有希望的選項,然後讓人類分析師來決定該投資哪些股票。然而,有幾隻基金順利通過挑選,學習算法會自行買賣這些基金。這些過程到底如何進行的仍是個秘密,但機器學習算法一直處於不為人所知的狀態,然後以驚人的速度進入對衝基金,這也許並非偶然。
非線性模型不僅在股票市場有重要作用,在其他很多領域中也是如此。科學家們到處使用線性回歸,因為那就是他們知道的東西,但是通常他們研究的現象又都是非線性的,一台多層感知器就可以模擬這些現象。線性模型對相變不了解,神經網絡像海綿一樣把它們吸收了。
網絡神經早期的另外一個成功之處在於掌握駕車技能。無人駕駛汽車在2004—2005年的darpa大挑戰中才進入公眾視野,但早在10年前,卡內基–梅隆大學的研究員就已經成功訓練出一台多層感知器來駕駛汽車,方法就是探測視頻圖像中的路麵,然後適當轉動方向盤。卡內基–梅隆大學的無人駕駛汽車可以沿著海岸跨越美國,而其視力卻非常模糊(30x30像素),其大腦比蟲子的大腦還要小,但僅僅通過人類副駕駛員的幾次協助就完成了此次任務(該計劃被稱為“橫穿美國的實驗”)。這可能不是第一輛真正意義上的無人駕駛汽車,但和一些未成年司機相比,它更靠譜。
如今反向傳播的應用太多了,數不過來。隨著它為越來越多的人知道,關於它的更多曆史也被挖掘出來。原來,反向傳播不止一次被創造出來,在科學領域這是常有的事。來自法國的伊恩·勒坤(yann lecun)和其他人偶然發現了它,和魯梅爾哈特發現的時間差不多。20世紀80年代,有一篇關於反向傳播的論文被領先人工智能會議否定了,因為根據評論者的觀點,明斯基和派普特已經證實感知器無法起作用。實際上,魯梅爾哈特已經通過哥倫布測試獲得反向傳播發明者的榮譽:哥倫布不是第一個發現美洲大陸的人,但他卻是最後一個。原來,哈佛大學研究生保羅·韋伯斯已經在1974年的博士論文中提出類似的算法。非常諷刺的是,亞瑟·布萊森和何毓琦(兩位控製理論家)早就已經做了同樣的事情(1969年明斯基和派普特出版《感知器》的同一年)。的確,機器學習本身的曆史表明我們為什麽需要學習算法。如果能自行在科學文獻中找到相關論文的算法在1969年已經出現,它們就可以避免幾十年時間的浪費,並加快傳播“誰知道有什麽發現”這樣的信息。
在感知器曆史眾多有諷刺意味的事件中,也許最讓人悲傷的一件事就是,弗蘭克·羅森布拉特於1969年在切薩皮克灣的一起輪船事故中離世,沒有活著看到他創造的東西得到進一步應用。 <h2>一個完整的細胞模型</h2>
活細胞就是非線性係統的典型例子。細胞發揮其所有功能的方式,就是通過化學反應的複雜網絡,將原材料轉化為最終產物。我們利用符號學派的方法,比如逆向演繹,可以找到這個網絡的結構,正如我們在第四章看到的那樣。但是為了構建一個完整的細胞模型,我們需要得到定量因素,掌握結合了不同基因表達水平的參數,還需要將環境變量與內部變量結合起來……做到這些很難,因為這些數量之間並沒有簡單的線性關係。細胞通過對反饋回路進行互鎖來維持穩定,這會引起非常複雜的活動。反向傳播很適合解決這個問題,因為它能夠有效掌握非線性函數。如果我們有完整的細胞代謝路徑圖,以及對所有相關變量足夠的觀察,原則上,反向傳播可以掌握細胞的詳細模型,利用多層感官器根據直接起因預測每個變量。
然而,對於可預見的未來,我們僅僅掌握細胞代謝網絡的部分知識,也隻掌握了我們想掌握的一部分變量。麵對信息缺失以及所有可用信息不可避免的矛盾,要掌握有用的模型就需要利用貝葉斯方法,在第六章我們會深入研究這個問題。對特殊患者進行預測也是同樣的道理,掌握模型:可利用的證據必然會雜亂和不完整,但貝葉斯推理會充分利用它。它起到作用了,如果把治愈癌症作為目標,我們不必知道癌細胞運轉的所有細節,隻需要知道如何在不損害正常細胞的情況下,使癌細胞失去繁殖能力,這就足夠了。在第六章中,我們也會看到如何避開我們不知道也不必知道的事,使學習麵向目標。
更直接的是,我們可以利用逆向演繹從數據及之前的知識中推導出細胞網絡的結構,但應用它的方法可以呈現出組合爆炸式增長,我們需要的是一個策略。既然代謝網絡由進化來決定,也許在我們的學習算法中對其進行刺激才是可行辦法。在第五章中,我們會看到如何做到這一點。 <h2>大腦的更深處</h2>
在反向傳播初次進入公眾視線時,聯結學派幻想能夠快速掌握越來越大規模的網絡,直到硬件允許的條件下,這些網絡等同於人工大腦。結果卻並非如此。掌握擁有一個隱含層的網絡沒問題,但在那之後,很快事情就會變得很困難。幾層的網絡,隻有為了應用(比如文字識別)而經過精心設計的才能起作用。超出這個範圍,反向傳播就會癱瘓。隨著我們增加越來越多的層數,誤差信號會變得越來越散漫,就像河流分成越來越小的支流,直到我們隻剩下雨滴,不留痕跡。利用幾十或數百個隱藏層來進行學習,就像大腦一樣,過去是一個遙遠的夢,而到了20世紀90年代中期,對多層感知器的熱情已經逐漸消減。聯結學派的中堅分子仍在堅持,但總的來說,人們對機器學習領域的關注度已經轉移到別的領域(在第六章和第七章中我們會探索這些領域)。
然而,如今聯結學派又複活了。我們比現在掌握了更深層的網絡,而且這些網絡在視覺、語音識別、藥物研製和其他領域都在設定新標準。這個領域新的深入學習成果被刊登在《紐約時報》的頭版上。往發動機蓋下麵看……驚喜:是值得信賴的老式反向傳播發動機,還在嗡嗡作響。什麽發生改變了?評論家說,沒什麽大的改變:隻是計算機變得更快了,數據變得更大了。辛頓和其他人答道:確實,我們一直都沒錯!
實際上,聯結學派有實質性的進步。如果聯結學派是過山車,那麽對於最近的過山車轉彎,貢獻者之一的就是一個看上去普通的小設備,稱為“自動編碼器”。自動編碼器就是一台多層感知器,其輸出量和輸入量一樣。輸入一張你祖母的照片,然後輸出的還是你祖母的照片。起初,這就像一個愚蠢的想法:這樣一個奇異的裝置可能有什麽用?答案就是,讓隱藏層比輸入和輸出層小很多,那麽網絡就不會隻把輸入信息複製到隱藏層,然後再從隱藏層複製到輸出信息那裏,在這種情況下,我們可能也會把所有東西都扔出去。但如果隱藏層變小了,就會發生有趣的事情:網絡會被迫將輸入信息編碼在更少的比特裏,那樣在隱藏層就可以表示出來了,然後網絡會解壓那些信息,還原到原來的大小。例如,它可以對你祖母百萬像素的照片進行編碼,變成僅僅7個字母的單詞“grandma”,或者它自己創造出來的更短代碼,同時學習將“grandma”解碼成一個老奶奶的照片。因此,一台自動編碼器就像一個文件壓縮工具,它有兩個重要的優點:知道如何自行壓縮東西,和霍普菲爾德網絡一樣;可以把一張雜亂、扭曲的圖片變得幹淨清晰。
自動編碼器於20世紀80年代為人所知,雖然有一個單個隱藏層,但它很難學習。要弄明白怎樣把眾多信息打包壓縮至幾個相同比特大小,是非常難的問題(一個代碼是你的祖母,另一個稍有不同的代碼是你的祖父,再一個是詹妮弗·安妮斯頓,等等)。超空間裏的地形實在是太崎嶇,讓人無法到達峰頂;隱藏的單位要掌握輸入量的過多xor相當於什麽。因此自動編碼器並沒有真正跟上步伐。花了十餘年來尋找的訣竅,就是讓隱藏層比輸入和輸出層大一些。啊?實際上,這隻是一半的訣竅:另一半就是,在任何特定時間,隻把幾個隱藏的單位趕走。這樣做仍然會阻止隱藏層對輸入層進行複製,而且關鍵是,這樣做把學習變得更簡單了。如果我們允許用不同比特來代表不同輸入層,那麽輸入層就不再需要爭相設置相同的比特。同樣,網絡現在有比之前多很多的參數,那麽你所處的超空間會有更多的維度,而你也有更多的方法來逃出局部最大值的困境。這就叫作稀疏自動編碼器,而它是一個訣竅。
雖然如此,我們還沒有看到任何深入的學習行為。下一個聰明的主意就是把稀疏自動編碼器逐個堆積起來,就像一個多層三明治那樣。第一個自動編碼器的隱藏層變成第二個的輸入或輸出層,依此類推。因為神經元是非線性的,每個隱藏層會掌握輸入層更為複雜的表達方式,在前一個隱藏層的基礎上進行構建。給定大批的麵部圖片,第一個自動編碼器會對局部特征,如棱角和斑點進行編碼;第二個自動編碼器利用這些信息來對諸如鼻尖、眼睛的虹膜這些麵部特征進行編碼;第三個掌握整個鼻子和眼睛的麵部特征等。最終,最頂端的一層可以是一台傳統的感知器,會通過下一層編碼器提供的上層特征來識別你的祖母,這和隻利用單個隱藏層提供的粗糙信息,以及對所有層進行反向傳播相比,要簡單得多。登上《紐約時報》的穀歌大腦網絡是一個由自動編碼器和其他材料組成的9層三明治,能夠從視頻網站youtube的視頻中識別出貓。它包含數十億個連接,是當時能夠進行學習的最大網絡。不足為奇的是,吳恩達(該項目的主要負責人之一)也是支持“人類智能可以歸結為單個算法”這個思想的主要人物。吳恩達平易近人且很有誌向,認為疊加在一起的稀疏自動編碼器能夠幫助我們更好地解決人工智能問題,比之前的任何方法都行得通。
疊加自動編碼器不是唯一的深度學習算法,另外一種以玻爾茲曼機器作為基礎,還有一種——卷積神經網絡,則把視皮質模型作為基礎。盡管取得了很大的成功,然而這些成果仍與大腦相去甚遠。穀歌網絡可以識別出貓臉的正麵;人類可以認出各種姿勢的貓,甚至在很難辨認臉部時也能認出。穀歌網絡仍非常膚淺,它9層裏麵隻有3層是自動編碼器。多層感知器是小腦還算不錯的模型,大腦的這部分負責低水平運動控製,但皮質就不一樣了。它缺失用於傳播誤差的逆向連接,但它是學習這個魔法的真正所在。傑夫·霍金斯在《人工智能》一書中,提倡緊緊地把皮質組織形式作為基礎,進行算法設計,但到目前為止,沒有一個算法能夠與今天的深度網絡相比。
隨著我們對大腦理解的深入,這種情況可能會改變。受到人類基因組計劃的啟示,神經連接組學正在力求繪製出大腦中的每個突觸。歐盟正在進行10億歐元的投資,用於構建大腦一應俱全的模型。美國的大腦計劃也有相似的目標,僅僅2014年的基金就達到1億美元。雖然如此,符號學派對這種尋找終極算法的方法仍非常懷疑。雖然我們可以在單個突觸水平上想象完整的大腦,但是我們需要更好的機器學習算法,來將那些想象的圖片變成布線圖,僅僅用手來完成是不可能的。更糟糕的是,即使有了大腦的完整構圖,我們仍然不知道它在幹什麽。秀麗線蟲的神經係統僅僅由302個神經元組成,而且在1986年被完整繪製出來,但關於它幹什麽,我們也僅僅了解了一部分。我們需要更高水平的概念,用來搞明白底層細節這個難題,剔除那些針對人腦或隻針對進化怪癖的細節。我們不會通過對羽毛進行逆向工程來製造飛機,而飛機也不會拍翅膀。飛機是在氣體力學的基礎上設計的,所有飛行的物體都必須遵循氣體力學原則。我們還是沒有理解那些想法的類似原則。
也許神經連接組學有點過分了。聯結學派的一些人高調稱,反向傳播就是終極算法,而我們隻需要擴大反向傳播的規模。但符號學派對這種想法不屑一顧,他們指出一長串人類能做但神經網絡做不了的事情。按照常識進行推理,這就涉及把之前從來沒有被放在一起的信息組合在一起。瑪麗午飯吃鞋子嗎?不,因為瑪麗是人,人類隻吃能吃的東西,而鞋子不能吃。符號係統做到這些沒有問題——它隻會把相關規則串起來,但是多層感知器卻做不到這一點。一旦完成學習,它隻會不斷計算同一個指定函數。神經網絡不是組合出來的,而語意合成性是人類認知的一大部分。另外一個大問題就是人類,以及諸如規則集和決策樹之類的符號模型,可以對它們的推理進行解釋,而神經網絡是一大堆沒人能看懂的數字。
但是如果人類具備所有這些能力,大腦不經過調整突觸就能掌握這些能力,那麽這些能力從何而來?除非你相信魔法,答案一定是:通過進化得來。如果你是聯結學派懷疑論者,而且有勇氣肯定自己的觀點,應該弄明白進化如何掌握孩子出生就知道的所有東西——你越覺得是天生的,要求也就越高。如果你弄明白了,然後對計算機進行編程來完成這個任務,別人否認你已經發明了終極算法的至少一個版本,這會顯得十分無禮。
赫布律是心理學和神經科學思想的融合,其中摻雜了合理的猜想。通過連接來進行學習,是英國經驗主義者最喜愛的話題,從洛克和休謨到約翰·穆勒都是如此。威廉·詹姆斯(william james)在其著作《心理學原理》(principles of psychology)中,闡明了連接的主要原理,這和赫布律十分相似,隻是大腦活動被神經元取代,放電效率被興奮的傳播取代。差不多同時,偉大的西班牙神經學科學家聖地亞哥·拉蒙·卡哈爾第一次對腦部進行詳細觀察,利用當時發明的高爾基染色法來對單個神經元進行染色,把他所看到的編成目錄,就像植物學家對樹木的新品種進行分類一樣。赫布時期,神經學科學家對神經元如何發揮功能有了徹底了解,但赫布是第一個提出這種機製的人,通過這個機製可以對連接進行編碼。
在符號學派中,符號和它們代表的概念之間有一一對應的關係。相反,符號學派的代表方式卻是分散式的:每個概念由許多神經元來表示,而每個神經元又會和其他神經元一起代表許多不同的概念。互相激發的神經元會形成赫布所稱的“細胞集”。概念和記憶由細胞集在大腦中表示出來。每個細胞集都可以包含來自不同大腦區域的神經元,也可以和其他集合相互重疊。“腿”的細胞集中包含“腳”的細胞集,包含腳的圖片的細胞集,以及腳的聲音的細胞集。如果你問一個符號學派係統,“紐約”這個概念在哪裏被表示出來,它可以指向存儲該記憶的準確位置。在聯結學派體係中,答案就是“這個概念通過這裏一點、那裏一點地被儲存起來”。
符號學派和聯結學派的另外一個區別就在於,前者是按次序的,而後者是平行的。在逆向演繹中,我們可以一步一步地弄明白,為了從前提出發得到滿意的結論,需要哪些新的規則。而在聯結學派模型中,根據赫布律,所有的神經元都會同時進行學習。這也反映了計算機和人腦之間的不同屬性。計算機做每件事都會一點點來,例如,把兩個數相加,或者拉開關。所以為了完成所有有意義的事情,計算機得經過很多步驟,但那些步驟可以很快被完成,因為晶體管每秒可以打開、關閉數十億次。相反,人腦可以同時進行多項運算,這時數十億的神經元會同時起作用,但每項遠算都會很慢,因為神經元最多可每秒放電1000次。
計算機裏晶體管的數量已經趕上人類大腦裏神經元的數量,但在連接數量上,人類的大腦輕易獲勝。在一台微處理器中,典型的晶體管僅僅和其他幾個晶體管直接相連,而派上用場的平麵半導體技術對計算機功能的發揮又有很大的限製。相反,一個神經元就有數千個突觸。如果你走在大街上碰到熟人,你認出他隻需要0.1秒。以神經轉換的速度,這些時間勉強夠用來進行100個處理步驟,但在那些處理步驟中,你的大腦能夠瀏覽整個記憶庫,找到最佳搭配,然後使其適應新的背景(不同的服裝、不同的燈光等)。在大腦中,每個處理步驟有可能會很複雜,而且會涉及很多信息,並符合分散的概念表達方式。
這並不意味著我們就不能利用計算機來模擬人腦,畢竟這是聯結學派算法要做的事。因為計算機是通用的圖靈機,隻要我們給它足夠的時間和記憶力,它就能執行大腦的計算,以及別的任何事情。尤其計算機可以利用速度來彌補缺乏連接的劣勢,千千萬萬遍利用同樣的線來模擬1000根線。實際上,目前計算機和人腦相比,主要的限製是能量損耗:人的大腦消耗的能量僅僅相當於一個小燈泡,而沃森消耗的電卻能點亮整棟辦公樓。
然而為了模擬大腦,我們需要的不僅僅是赫布律,還要知道大腦是如何構造的。每個神經元就像一棵小樹,有數目驚人的根須(樹突)還有細長蜿蜒的樹幹(軸突)。大腦就是由數十億棵這樣的樹組成的森林,但這些樹也有不同尋常的地方:每棵樹的枝丫都會和其他數千棵樹的根部有連接(突觸),形成大片你沒見過的糾纏狀態。有些神經元有很短的軸突,而有些神經元的軸突則很長,可以從大腦的一邊纏繞到另一邊。你大腦裏軸突的長度相當於地球到月亮的距離。
這片森林還會充滿電流。火星會沿著樹幹閃爍,然後會引發相鄰樹木更多的火花。時不時整個區域的叢林會使自己進入狂熱狀態,然後又會平靜下來。如果你動動腳趾,會發生一係列放電現象,人們稱之為“動作電位”。這種放電現象會沿著你的脊髓一直到達腿部,直到到達你的腳趾肌肉,然後告訴肌肉要運動。你的大腦運轉時的情景就是這些電火花火光四射的場麵。如果你能坐在大腦裏麵,看看你閱讀這頁書時大腦發生了什麽,你看到的情景會讓科幻小說裏最繁忙的都市景象也遜色幾分。這個十分複雜的神經元放電模式的背後,就是你的意識在起作用。
在赫布時代,沒有什麽方法能夠測量突觸的強度或者發生在其內部的變化,更不用說弄明白突觸變化的分子生物學相關信息。如今,我們知道,當突觸後神經元在突觸前神經元之後會很快放電時,突觸會變大(或重新形成突觸)。和所有的細胞一樣,神經元裏外有不同的離子濃度,穿過神經元的細胞膜形成一股電壓。當突觸前神經元放電時,微小的囊會向突觸間隙釋放神經遞質分子。這會使突觸後神經元的膜中的通道打開,讓鉀離子和鈉離子進入,最終會改變通過膜的電壓。如果有足夠多的突觸前神經元一起放電,電壓會突然升高,一個動作電位會順著突觸後神經元的軸突而下。這還會使離子通道變得更加靈敏,並出現新的通道,對突觸進行加強。就我們的知識所能達到的水平,這就是神經元進行學習的過程。
下一步就是把這個過程運用到算法中。 <h2>感知器的興盛與衰亡</h2>
第一個正式的神經元模型是由沃倫·麥卡洛克(warren ulloch)和沃爾特·皮茨(walter pitts)於1943年提出的。這個模型看起來很像組成計算機的邏輯門。當“或”門至少一個輸入開關打開時,“或”門開通,當所有輸入開關打開時,“且”門開通。當其輸入的活躍信息超過某個界限值時,一個麥卡洛克—皮茨神經元會打開。另外,如果界限值隻有一個,神經元就相當於一道“或”門;如果界限值等於輸入信息的數量,神經元就相當於一道“且”門。另外,一個麥卡洛克—皮茨神經元會阻止另外一個麥卡洛克—皮茨神經元打開,這就模擬了抑製性突觸和“非”門。因此神經元的一個網絡就可以完成計算機的所有計算。在早些年,計算機常常被稱為“電腦”,這不隻是一個類比那麽簡單。
麥卡洛克—皮茨神經元做不了的事情就是學習。為此我們需要對神經元之間的連接給予不同的權重,這就是所謂的“感知器”。感知器於20世紀50年代由康奈爾大學的心理學家弗蘭克·羅森布拉特(frank rosentt)發明。作為富有魅力的演講者和活躍人物,羅森布拉特在早期機器學習領域形成的過程中,比任何人付出的都要多。“感知器”這個名稱源於他的興趣,他喜歡將自己的模型應用到諸如演講和字符識別的感知任務中。他沒有將感知器應用於軟件中,因為在那個年代這個過程會非常緩慢,他構建了自己的裝置。權值是由可變電阻器來實現的,這些電阻器和調光燈開關中的那些電阻器一樣,而且權值學習由電動機來實現,電動機會打開電阻器上的開關。
在感知器中,一個正權值代表一個興奮性連接,一個負權值代表一個抑製性連接。如果其輸入量的加權和高於界限值,那麽會輸出1;如果加權和小於界限值,那麽輸入0。通過改變權值和界限值,我們可以改變感知器計算的函數。當然,這種做法忽略了神經元發揮作用的很多細節,但我們想讓這個過程盡可能簡單點。我們的目標是形成一種多用途的學習算法,而不是構建一個大腦的現實模型。如果被我們忽略的一些細節最後證明很重要,可以在後麵加上去。盡管我們把抽象的東西簡化了,卻仍可以看到這個模型的每個部分都與神經元的一個部分相對應(見圖4–1)。
圖4–1
輸入量的權值越高,相應的突觸也會越強。細胞體把所有加權輸入量加起來,軸突使結果變成一個階躍函數。圖中代表軸突的框表明了階躍函數的圖像:0代表輸入量的低值,當輸入量到達界限值時,會突然變成1。
假設感知器有兩個持續輸入量x和y(換句話說,x和y可以是任何數值,不僅僅是0和1),那麽每個例子都可以由平麵上的一個點來表示,而正麵例子(例如,感知器中輸出量為1)和負麵例子(輸出量為0)之間的界線就是一條直線(見圖4–2)。
圖4–2
這是因為這條界線是由一係列點組成的,在這些點上,加權和剛好等於界限值,而一個加權和就是一個線性函數。例如,如果x的係數是2,y的係數是3,那麽界限值是6,界限就由方程式2x+3y=6來確定。x=0,y=2的點就在界線上,為了停留在這條線上,我們要水平向右平移3個單位,同時垂直向下平移2個單位,這樣x增加的量就是y減少的量,經過的點就形成一條直線。
掌握感知器的權值意味著要改變直線的方向,知道所有的正麵例子都在這邊,所有的負麵例子都在另一邊。在一維概念中,這個界線是一個點;在二維概念中,它是一條直線;在三維概念中,它是一個麵;在超過三維的概念中,它是一個超平麵。在超平麵中很難把東西形象化,但數學就是這樣發揮作用的。在n維概念中,我們有n個輸入量,而感知器有n個權值。為了確認感知器是否放電,我們把每個權值乘以相應的輸入量,然後將得數相加,和界限值進行對比。
如果所有的輸入量都有一個權值1,而且界限值是輸入量數值的一半,當感知器超過一半的輸入量放電時,那麽感知器放電。換句話說,感知器就像一個微型社會,少數服從多數(可能也沒有那麽小,因為它有數千個成員)。盡管如此,整體來說它並不那麽民主,因為一般不是人人都平等地享有選擇權。神經網絡看起來更像社交網絡,在這裏,幾個親密朋友比臉書上的數千個好友更加重要。最信任的朋友對你的影響也最大。如果有個朋友推薦了一部電影,你去看了,覺得喜歡,下次可能還會再聽他的建議。另一方麵,如果他滔滔不絕地講你不喜歡的電影,你會開始忽略他的建議(甚至你們的友情都可能變淡)。
這就是羅森布拉特的感知器算法掌握權值的方法。
想想祖母細胞,這是認知神經學科學家最熱衷的思維實驗。祖母細胞是你大腦中的一個神經元,無論何時你看到自己的祖母,它都會放電,而且隻有這樣的情況才會放電。祖母細胞是否真實存在有待探尋,但我們可以設計一個,並將其應用於機器學習。下麵,我們來分析一下感知器學習識別你的祖母的過程。進入細胞的要麽是圖片中的原始像素,要麽就是圖片的各種固有特征,就像棕色的眼睛,如果圖片上有一雙棕色的眼睛就會取值1,否則是0。一開始,從特征到神經元的所有連接有小的隨機值,就像剛出生時你大腦中的突觸一樣。那麽我們向感知器展示了一組圖片,有些是你祖母的,有些不是。如果感知器在看到一張你祖母的照片時會放電,或者在看到別的圖片時不會放電,那麽就不需要進行學習活動(如果東西沒壞,就別修理它)。但如果感知器在看到你的祖母時沒有放電,這意味著它的輸入量的加權和應該取更高的值,這樣我們就增加進行中的輸入量的權值(例如,如果你的祖母有一雙棕色的眼睛,這個特征的權值會增長)。相反,如果感知器在不該放電的時候放電,我們就減少活躍的輸入量的權值。誤差迫使學習活動正常進行。經過一段時間,表明你祖母的特征會取得更高的權值,相反則得到低權值。一旦感知器看到你祖母時就會放電,而且也隻有這時,學習才算完成。
感知器會產生許多興奮。它雖然簡單,但僅憑借例子訓練,它就能識別書麵文字和語音。羅森布拉特在康奈爾大學的同事證實,如果正麵例子和負麵例子能夠通過超平麵來分離,那麽感知器會找到超平麵。對於羅森布拉特和其他人來說,真正理解大腦如何進行學習似乎在能力範圍之內,有了這種理解力,就可以得到強大的多用途學習算法了。
但是感知器卻碰壁了。知識工程師被羅森布拉特的觀點激怒,羨慕其不斷增長的被關注度,而神經網絡,特別是感知器獲得的資金也變得越來越多。馬文·明斯基就是其中一個,他是羅森布拉特之前在布朗士科學高中的同學,那時他還是麻省理工學院人工智能研究小組的領導(具有諷刺意味的是,他的博士論文和神經網絡相關,但對於神經網絡,他越來越不抱幻想)。1969年,明斯基和他的同事西摩爾·派普特一起出版了《感知器》(perceptroms)一書,該書詳細介紹了同名算法的缺點,還一一列舉了該算法無法學習的內容。最簡單的一個(所以也是最受批評的一個)就是排斥—“或”功能(exclusive–or function,xor)。如果它其中的一個輸入量是對的,那麽這就是對的,但如果兩個都是對的,則是錯的。例如,耐克的兩大忠實消費人群被認為是年輕男性和中年婦女。換句話說,如果你是年輕的xor女性,那麽有可能購買耐克的鞋子。年輕挺好的,做女人也挺好的,但兩個加起來就不一定好了。如果你既不年輕,也不是女性,那麽你也不是耐克做廣告的對象。xor的問題就在於,沒有能夠區分正麵例子和負麵例子的直線。圖4–3展示了兩種不可行的備選方法:
既然感知器隻能學習線性界線,那麽它就無法對xor進行學習。而如果感知器無法做到這一點,就無法很好地模擬大腦學習的方法,也不是終極算法可行的備選項。
圖4–3
然而,一台感知器隻能模擬單個神經元的學習過程,盡管明斯基和派普特承認,幾層相互連接的神經元能做的應該更多,但他們找不到研究這些神經元的方法,其他人也找不到。問題就在於,沒有明確的方法來改變“隱層”中神經元的權值,以減少輸出層中神經元造成的誤差。每個隱藏的神經元會通過多種路線來影響輸出量,而且造成每個誤差的原因也可能達到上千種。你該責怪誰?或者,相反,誰該因為正確的輸入量而受到讚揚?這個問題在我們努力對一個複雜模型進行學習時隨時會出現,而這個問題也是機器學習領域中的中心問題。從數學角度看,《感知器》無懈可擊,思路清晰、效果明顯。機器學習當時主要和神經網絡相關聯,而且多數研究者(更不用說創建人)得出結論,構建智能體係的唯一方法就是對其進行明確設定。在未來15年,知識工程師會站在舞台中央,而機器學習則會變成曆史的殘灰。 <h2>物理學家用玻璃製作大腦</h2>
如果機器學習的曆史是一部好萊塢電影,電影中的反麵人物就是馬文·明斯基。他是給白雪公主毒蘋果的邪惡皇後,讓白雪公主處於昏迷狀態(在1988年的一篇文章中,西摩爾·派普特甚至半開玩笑地將自己比作故事裏的獵人,故事裏皇後派他去殺死森林中的白雪公主)。那麽白馬王子就是名叫約翰·霍普菲爾德的加州理工學院的物理學家。1982年,霍普菲爾德發現了大腦和自旋玻璃(spinss)驚人的相似之處,自旋玻璃是深受統計物理學家喜愛的特殊材料。這引起聯結學派的複興,在第一個解決讚譽分配問題的算法發明出來的幾年,聯結學派複興達到頂峰,並進入一個新時代,機器學習代替知識工程學成為人工智能領域的主導範式。
旋轉玻璃其實並不是玻璃,雖然有一些玻璃的屬性,其實是磁性材料。每個電子都是一塊微小的磁鐵,由於本身的自旋運動,可以指“上”或指“下”。比如在鐵這樣的材料中,電子自旋就趨向於往上:如果一個自旋向下的電子被多個自旋向上的電子包圍,這個電子可能會翻轉向上。如果一塊鐵中的大部分自旋都向上,那麽這塊鐵就會變成一塊磁鐵。在普通磁鐵中,每對相鄰電子自旋的交互力都一樣,但在自旋玻璃中,這種力就可能不一樣。這種力甚至會是相反的,使得附近的電子自旋指向相反的方向。當普通磁鐵所有的自旋都排成一行時,能量是最低的,但在自旋玻璃中卻沒那麽簡單。的確,找到自旋玻璃的最低能量狀態就是一個np—完全問題,意味著幾乎所有其他最優化難題都可以簡化為np—完全問題。因為這個,自旋玻璃沒有必要適應其整體能力最低的狀態。這很像雨水可能會沿著山坡流入湖中,而不是進入大海,自旋玻璃可能會陷入局部最小值的困境,而不是在全局最小值中得到發展。處於最小值狀態中的能量會比在其他狀態下低,通過翻轉一圈,最低能量狀態就可以轉變為其他狀態。
霍普菲爾德注意到自旋玻璃和神經網絡之間有趣的相似點:一個電子的自旋對其相鄰電子的活動所做的反應和一個神經元的反應十分相似。在電子的情況中,如果相鄰電子的加權和超過界限值,電子就會向上翻,反之則向下翻。受到這一點的啟發,他確定了一種神經網絡,和自旋玻璃一樣隨著時間的推移而演變,他還提出網絡的最低值狀態就是它的記憶。每個這樣的狀態都具備原始狀態的“吸引盆”(basin of attraction),原始狀態就收斂於該盆中,這樣這個網絡就可以進行模式識別了。例如,如果其中的一個記憶是由數字9形成的黑白像素模式,而網絡看到一個扭曲了的9,它會收斂成“理想”的9,然後據此重新識別它。突然間,大量的物理理論能夠應用於機器學習中,而隨之也湧入大批的統計物理學家,幫助自旋玻璃打破之前就陷入的局部最小值困境。
雖然如此,但自旋玻璃仍然是大腦的一個不現實的模型。對於一個電子來說,自旋相互作用是對稱的,而大腦中神經元之間的連接卻不是對稱的。霍普菲爾德的模型忽略的另外一個大問題就是,真正的神經元是和統計相關的:它們不會根據其輸入量來確定地進行打開或關閉。隨著輸入量加權和的增加,神經元更有可能放電,但不確定它是否真的會放電。1985年,大衛·艾克利、傑夫·辛頓、特裏·索諾斯基把霍普菲爾德網絡裏的確定性神經元用可能性神經元代替。現在一個神經網絡的狀態就有了概率分布,高能量狀態的概率要比低能量狀態的概率低得多。實際上,找到處於特定狀態中的網絡,這樣的概率由著名的熱力學中的玻爾茲曼分布得出,因此他們稱自己的網絡為玻爾茲曼機器。
一台玻爾茲曼機器擁有混合的感官和隱藏神經元(分別類似於視網膜和大腦)。它通過清醒和睡眠兩種交替狀態進行學習,就像人類一樣。清醒時,感官神經元根據數據指令放電,隱藏神經元根據網絡的動態和感官輸入來逐步發展。例如,如果網絡收到9的圖片,與圖片中黑色像素對應的神經元會留下,其他的則離開,而隱藏神經元則在給定那些像素值的情況下,根據玻爾茲曼分布隨機放電。睡眠狀態時,機器會做夢,讓感官和隱藏神經元都能自由漂移。新一天的黎明到來之前,機器會統計睡夢中的狀態,以及昨天活動中的狀態,直到進行比較,接著改變連接權值,讓權值符合搭配。如果兩個神經元白天時易於在一起放電,但睡眠時放電次數卻變少了,那麽它們連接的權值會升高;如果情況相反,則權值會降低。通過日複一日重複這樣的工作,感官神經之間經過預測的相關性會進一步發展,知道它們和真正的神經元搭配起來。這時,玻爾茲曼機器就掌握了一個很好的數據模型,並有效解決讚譽分布問題。
傑夫·辛頓在接下來的幾十年繼續在玻爾茲曼機器中嚐試了許多變量。辛頓由心理學家變成計算機科學家,他是邏輯運算(被應用於所有計算機中)的發明者——喬治·布爾的曾孫,是世界領先的聯結主義者。為了了解大腦如何運轉,他比任何人付出的時間、精力都要多。他講到有一天他懷著極度興奮的心情下班回家,驚呼:“我做到了!我知道大腦怎麽運轉了!”他的女兒回答道:“啊!爸爸,你怎麽又來了!”辛頓最近的熱情在於研究深度學習,本章的後麵部分會談到。他還參與了反向傳播的研究,這是一個比玻爾茲曼機器能更好地解決讚譽分布問題的算法,我們後麵會談到。玻爾茲曼機器原則上可以解決讚譽分布問題,但在實踐中,學習這個行為非常緩慢且痛苦,對大多數應用來說,玻爾茲曼機器有點不切實際。下一個突破會涉及解決麥卡洛克和皮茨時期的另外一個過度簡化(oversimplication)問題。 <h2>世界上最重要的曲線</h2>
就其相鄰神經元而言,一個神經元隻能處於兩種狀態:放電或不放電。但是這忽略了一個很重要的巧妙之處。動作電位壽命短,電壓會在一秒之內驟然升高,然後突然回到靜息狀態。而單個峰值對接收神經幾乎不會有影響,為了喚醒接收神經,需要一連串連續不斷的峰值。典型的神經元會偶爾在沒有刺激的情況下電壓達到峰值,當刺激建立起來時,電壓達到峰值的頻率會越來越高,然後保持在它所能達到峰值的最快速度,快於這個速度時,不斷增強的刺激就沒有效果了。神經元與其說是一道邏輯門,不如說是一台電壓頻率轉換器。隨電壓而變化的頻率曲線如圖4–4所示。
圖4–4
該曲線看起來像被拉長的字母s,它有很多叫法,比如邏輯函數、s形函數和s形曲線。仔細研究它吧,因為這是世界上最重要的曲線。首先輸出量隨著輸入量緩慢增長,如此緩慢,似乎保持不變。接著它開始變化得很快,然後變得更快,之後越來越慢,直到幾乎保持不變為止。晶體管的轉換曲線,將其輸入電壓和輸出電壓聯係在一起,也是一條s形曲線。所以計算機和大腦都充滿了s形曲線。這還沒結束,s形曲線是所有種類相變的形狀:電子應用領域自旋反轉的概率、鐵的磁化、將少量記憶寫到硬盤上、細胞中離子通道的打開、冰塊融化、水蒸發、早期宇宙的膨脹擴張、進化中的間斷平衡、科學中的範式轉移、新技術的傳播、離開多民族社區的白人大遷徙、謠言、流行病、革命、帝國的沒落等。“引爆點”也很適合(可能不那麽有吸引力)“s形曲線”這個名字。在兩個相鄰板塊的相對位置中,地震就是一個相變。夜裏的碰撞聲,也隻是你隔壁房間裏微觀板塊移動的聲音,所以別害怕。約瑟夫·熊彼特說過,經濟是在裂縫和飛躍中得以發展的:s形曲線就是創造性破壞的形狀。經濟收益和損失對你的幸福度的影響遵循s形曲線原則,所以不要在大事上感到苦惱。隨機的邏輯公式可滿足的概率(典型的np完全問題)隨著公式變長,會經曆從接近1到接近0的相變。統計物理學家花了一輩子時間來研究相變。
在海明威的《太陽照常升起》中,當麥克·坎貝爾被問到他是如何走向破產時,他答道:“有兩種方式,先是慢慢地,然後突然破產。”雷曼兄弟的情況也十分相似。這就是s形曲線的精華。未來學家保羅·薩夫預言的規則就是:尋找s形曲線。當你沒法調好淋浴的溫度時(開始水很冷,然後很快又變得很熱),都是s形曲線的錯。你做爆米花時,看看s形曲線的進度:一開始什麽也沒發生,幾粒玉米爆開,又有一把爆開,很多玉米突然像煙花一樣爆開,更多的玉米爆開,最後你就可以吃爆米花了。你肌肉的每個動作都遵循s形曲線:先是緩慢移動,然後快速移動,最後又緩慢移動。當迪士尼的動畫師指出這一點時,動畫片變得更自然了,然後人們紛紛模仿。你的眼睛沿著s形曲線移動,注視一樣東西然後換另一樣,你的意識也跟你的眼睛一起轉移。情緒波動也屬於相變。出生、長大、墜入愛河、結婚、懷孕、工作、失業、搬到新的城市、升職、退休、死亡,這些都屬於相變。宇宙就是相變的巨大集合體,從宇宙到微觀世界,從世俗到人生的改變。
s形曲線作為一個獨立的模型,不僅很重要,它還是數學的萬事通。如果放大它的中段部位,你會發現它近似一條直線。很多我們認為是線性的現象,其實都是s形曲線,因為沒有什麽能夠毫無限製地增長下去。因為相對性和反牛頓定律,加速度並不會隨著力的施加而呈線性增長,但會遵循s形曲線,以0為中心。電路中或者燈泡中電阻的電流也不會隨著電壓的增長而線性增長(直到燈泡中的燈絲熔化,這本身又是另外一個相變)。如果你把s形曲線縮小,它會近似一個階躍函數,輸出值會突然從0界限值變到1界限值。那麽根據輸入電壓,同樣的曲線也會表示這些裝置中電阻的工作原理,包括數字計算機和類似的裝置,如擴音器和廣播協調器。s形曲線的開始部分是有效指數,在飽和點附近它則接近指數式衰減。當有人討論指數式增長時,問問你自己:它什麽時候會變成一條s形曲線?人口爆炸什麽時候才會慢慢消失,摩爾定律的重要性什麽時候削減,或者說技術奇異點什麽時候才不會發生?辨別一條s形曲線,你就會得到一條鍾形曲線:緩慢、快速、緩慢變低、高、低。在s形曲線加入一連串向上和向下交錯的曲線,你會得到接近正弦波的曲線。實際上,每個函數都可以近似看作s形曲線的總和:函數上升時,你加一條s形曲線;函數下降時,你減掉一條s形曲線。孩子的學習也不是一直都處於進步狀態,這個過程是若幹個s形曲線的累積。技術變革也是如此。斜眼看紐約的天空,你會看到一組s形曲線在地平線上逐漸展開,每條曲線都和摩天大樓的角一樣尖。
對我們來說最重要的是,s形曲線會找到解決讚譽分布問題的新方法。如果宇宙是相變的大集合體,那讓我們用一條s形曲線來模仿這個集合體。這就是大腦要做的事:將裏麵的相變係統調整到外麵。那麽讓我們用s形曲線來代替感知器的階躍函數,然後看看會發生什麽。 <h2>攀登超空間裏的高峰</h2>
在感知器算法中,誤差信號要麽是全有,要麽是全無:你不是收到對的信號,就是收到錯的信號。繼續下去不會有很大的意義,尤其是當你有眾多神經元網絡時。你可能會知道,輸出神經元出錯了(“哎呀,那不是你的祖母”),但如果是大腦深處的某個神經元會怎麽樣呢?這樣的神經元都會出錯,那意味著什麽呢?如果神經元的輸出信息是持續的,而不是二進製的,畫麵就會改變。首先,我們現在知道輸出神經元犯的錯誤有多嚴重:它和理想輸出信息之間的區別。如果神經元應該不停地放電(“啊,您好,祖母”),但它隻放了一點電,那就比什麽電也不放要好。更重要的是,我們現在可以將該誤差傳播到隱藏神經中:如果輸出神經元應該放更多的電,而a神經元與其相連,那麽a放的電越多,我們就越應該加強它們的連接;但是如果a神經元受到神經元b的抑製,那麽b神經元就應該少放電,以此類推。根據與其連接的所有神經元的反饋看,每個神經元會決定該多放或者少放多少電。根據這一點以及輸入神經的活動,它會加強或者減弱它與它們的聯係。我得放更多的電,但是b神經元在阻止我?把它的權值降低。c神經元不斷放電,但它和我的連接很弱?那就加強連接。我的“消費者”神經元位於網絡的下遊,會告訴我下一輪我的表現如何。
無論什麽時候學習算法的“視網膜”看到一張新的圖片,這個信號就會在網絡中傳播,知道它產生輸出信息。將這條輸出信息和理想的輸出信息相比,會發出錯誤信號,這個信號會穿過神經元層,然後反向傳播回去,直到它到達視網膜。根據返回來的信號以及在前進過程中它接收到的輸入信息,每個神經元會調整各自的權值。隨著網絡看到越來越多你祖母和其他人的照片,權值會逐漸收斂到能夠讓它區分兩者的值中。反向傳播,正如這個算法為人們所知的一樣,比感知器算法要強大很多。單個神經元隻能夠對直線進行學習。給定足夠的隱藏神經,一台多層感知器,正如它的名字一樣,可以代表任意的複雜邊界。這使得反向傳播成為聯結學派的主算法。
反向傳播是自然及技術領域中非常常見的戰略實例:如果你著急爬到山頂,那你就得爬能找到的最陡的坡。這在技術上的術語為“梯度上升”(如果你想爬到山頂)或者梯度下降(如果你想走到山穀)。細菌就是通過遊向食物(例如葡萄糖)分子濃度高的地方來覓食的;遇到有毒物質,它們則會遊向有毒物質濃度低的地方。所有事物,從機翼到天線陣,都可以通過梯度上升來優化。反向傳播就是在多層感知器中有效做到這一點的方法:不斷對權值進行微調,以降低誤差,然後當所有調整失敗時,停止調整。有了反向傳播,你就不必從頭開始弄明白怎樣對每個神經元的權值進行微調,這樣做起來會很慢。你可以一層一層來做,根據調整與其相連神經元的方法,來調整每個神經元。如果在突發事件中,除了一件工具,你得把整個機器學習工具包都扔掉,那麽梯度下降可能是你想留下的工具。
那麽反向傳播解決機器學習的問題了嗎?我們能否把一大堆神經元扔到一起,讓它們自己發揮魔力,然後在去銀行的路上,順便領了諾貝爾獎,獎勵你弄明白大腦如何運轉?唉,人生不會那麽簡單。假設你的網絡隻有一個權值,而圖4–5中的誤差就是權值的一個函數。
圖4–5
最優權值是2.0,這時的誤差值最低。如果網絡以權值0.75作為開始,例如,反向傳播會在幾個步驟之後達到最佳效果,就像球滾下坡一樣。但如果它以權值5.5作為開頭,反向傳播會下滑至7.0,而且會停在那裏。反向傳播,隨著漸進權值的變化,不知道該如何找到全局誤差最小值,而局部誤差值可能會很糟糕,就像把你的祖母錯認成帽子那樣。有了一個權值,你可以以0.01的增量來嚐試每個可能的值,然後用那種方法找到最佳效果。但如果你有數千個權值(數百萬或者數十億個就更不用說了),就不該選這種方法,因為網格線上的點會隨著權值數量的增長呈指數級上漲。全局最低值隱藏在浩瀚的超空間的某個角落裏,找到它就走運了。
想象一下你被綁架了,然後在喜馬拉雅山脈的某個地方被蒙住眼睛。你感到頭痛,也不記得什麽了。你知道的一切就是你得爬到珠穆朗瑪峰峰頂。你會做什麽?你向前走了幾步,差點滑到山溝裏。你喘了幾口氣之後,決定要更有計劃地行動。你用腳仔細感覺了周圍的地形,直到找到最高的點,然後小心翼翼走向那點。然後你重複同樣的動作。一步一步,你走得越來越高。這就是梯度上升。如果這個山脈剛好就是珠穆朗瑪峰,而珠穆朗瑪峰是一個標準的圓錐,那它就很有吸引力了。但更有可能的是,當你到達一個地方,那裏每走一步都是往下時,那麽你距離峰頂還很遠。這時你隻是站在山腳的某個地方,而且你被困住了。這就是反向傳播遇到的事情,除非它在超空間而不是3d空間中攀登高峰。如果你的網絡有單個神經元,隻要一步一步爬向更好的權值,你就可以到達峰頂。但在多層感知器中,山路會很崎嶇,找到最高的山峰已算走運。
這也是明斯基、派普特和其他人無法找到學習多層感知器的部分原因。他們可能想象到用s形曲線來代替階躍函數,然後進行梯度下降,不過他們會遇到誤差的局部最小值這個問題。在那個年代,研究者們不相信計算機模擬,他們需要數學來證明算法可以起作用,而反向傳播卻沒有這樣的證據。但我們最好意識到的是,多數情況下局部最小值挺好的,不會有不良影響。誤差表麵看起來往往像豪豬的剛毛,有很多高峰和低穀,但如果我們找到絕對最低的點之後,這真的不重要了,並且任何人都有可能找到。更好的消息是,實際上,局部最小值可能更適合,因為它和全局最小值比,不太可能證明對我們的數據過擬合。
超空間是一把雙刃劍:一方麵,空間的維度越高,它越有可能存在高度複雜的表麵和局部最優解;另一方麵,被困在局部最優解中,意味著被困在每個維度中,所以被困在多維中的難度會比被困在三維中的難度大。在超空間中,到處都有穿山而過的通道。那麽,借助夏爾巴人的小小幫助,反向傳播往往會找到通往完美權值的道路。它可能僅僅是香格裏拉的神秘山穀,而不是海洋,但如果在超空間中,有數百萬個這樣的山穀,每個山穀都有數十億的山口對著它,那為什麽要抱怨呢?
然而要當心,不要過於重視反向傳播找到權值的意義。記住,可能會有許多不同的優良權值。多層感官器中的學習活動是一個混亂的過程,其意義在於從稍有不同的地方開始,就會讓你結束時的解決方法迥然不同。現象本身並無區別,無論這輕微的差別是存在於最初權值中,還是存在於訓練數據中,而且是否會在所有強大的學習算法(不隻是反向傳播)中表現出來。
我們可以去掉s形曲線來解決局部最優問題,然後隻讓每個神經元輸出其輸入量的加權和。這樣做會使誤差變得非常平緩,隻剩下一個最小值——全局最小值。雖然如此,問題是線性函數的一個線性函數也隻是一個線性函數,那麽線性神經元的一個網絡與單個神經元幾乎一樣。一個線性大腦,無論多大,總比一條線蟲要笨。s形曲線是線性函數非智能性和階躍函數難解性的完美中轉站。 <h2>感知器的複仇</h2>
反向傳播於1986年是由加州大學聖迭戈分校的心理學家大衛·魯梅爾哈特在傑夫·辛頓以及羅納德·威廉斯的協助下發明出來的。他們表明反向傳播還可以學習xor,這讓聯結學派對明斯基和派普特嗤之以鼻。回顧之前耐克的例子:年輕男性和中年婦女最有可能購買耐克鞋。其中,我們可以用三個神經元的網絡來代表:第一個神經元看到年輕男性時會放電;第二個神經元在看到中年女性時會放電;第三個神經元看到其中一個時會放電。通過反向傳播,我們可以掌握適當權值,最後成功完成耐克的前景預測(馬文,事情就是這樣,沒什麽可說的)。
早期在證明反向傳播力量的時候,特裏·索諾斯基和查爾斯·羅森伯格訓練了一台多層感知器,讓其大聲朗讀。他們的網絡聊天係統瀏覽文本,根據背景選擇準確的音素,然後加入語音合成器。他們的網絡聊天不僅適用於新詞——這是基於知識的係統無法做到的——網絡聊天係統還可以說話,而且說得和人類極為相似。索諾斯基過去經常在研究會議上通過播放網絡聊天進展的磁帶來對觀眾進行催眠:一開始是牙牙學語,然後開始能讓人們聽懂,最後說得很流利,隻是偶爾會犯錯。
神經網絡第一次取得大的成功是準確預測股票市場。因為神經網絡可以在噪聲很大的數據中探測到微小非線性,它們打敗線性模型,並在金融領域流行起來,它們的應用也變得更廣泛。典型的投資基金會為每大批股票訓練出一個分離的網絡,讓神經網絡挑出最有希望的選項,然後讓人類分析師來決定該投資哪些股票。然而,有幾隻基金順利通過挑選,學習算法會自行買賣這些基金。這些過程到底如何進行的仍是個秘密,但機器學習算法一直處於不為人所知的狀態,然後以驚人的速度進入對衝基金,這也許並非偶然。
非線性模型不僅在股票市場有重要作用,在其他很多領域中也是如此。科學家們到處使用線性回歸,因為那就是他們知道的東西,但是通常他們研究的現象又都是非線性的,一台多層感知器就可以模擬這些現象。線性模型對相變不了解,神經網絡像海綿一樣把它們吸收了。
網絡神經早期的另外一個成功之處在於掌握駕車技能。無人駕駛汽車在2004—2005年的darpa大挑戰中才進入公眾視野,但早在10年前,卡內基–梅隆大學的研究員就已經成功訓練出一台多層感知器來駕駛汽車,方法就是探測視頻圖像中的路麵,然後適當轉動方向盤。卡內基–梅隆大學的無人駕駛汽車可以沿著海岸跨越美國,而其視力卻非常模糊(30x30像素),其大腦比蟲子的大腦還要小,但僅僅通過人類副駕駛員的幾次協助就完成了此次任務(該計劃被稱為“橫穿美國的實驗”)。這可能不是第一輛真正意義上的無人駕駛汽車,但和一些未成年司機相比,它更靠譜。
如今反向傳播的應用太多了,數不過來。隨著它為越來越多的人知道,關於它的更多曆史也被挖掘出來。原來,反向傳播不止一次被創造出來,在科學領域這是常有的事。來自法國的伊恩·勒坤(yann lecun)和其他人偶然發現了它,和魯梅爾哈特發現的時間差不多。20世紀80年代,有一篇關於反向傳播的論文被領先人工智能會議否定了,因為根據評論者的觀點,明斯基和派普特已經證實感知器無法起作用。實際上,魯梅爾哈特已經通過哥倫布測試獲得反向傳播發明者的榮譽:哥倫布不是第一個發現美洲大陸的人,但他卻是最後一個。原來,哈佛大學研究生保羅·韋伯斯已經在1974年的博士論文中提出類似的算法。非常諷刺的是,亞瑟·布萊森和何毓琦(兩位控製理論家)早就已經做了同樣的事情(1969年明斯基和派普特出版《感知器》的同一年)。的確,機器學習本身的曆史表明我們為什麽需要學習算法。如果能自行在科學文獻中找到相關論文的算法在1969年已經出現,它們就可以避免幾十年時間的浪費,並加快傳播“誰知道有什麽發現”這樣的信息。
在感知器曆史眾多有諷刺意味的事件中,也許最讓人悲傷的一件事就是,弗蘭克·羅森布拉特於1969年在切薩皮克灣的一起輪船事故中離世,沒有活著看到他創造的東西得到進一步應用。 <h2>一個完整的細胞模型</h2>
活細胞就是非線性係統的典型例子。細胞發揮其所有功能的方式,就是通過化學反應的複雜網絡,將原材料轉化為最終產物。我們利用符號學派的方法,比如逆向演繹,可以找到這個網絡的結構,正如我們在第四章看到的那樣。但是為了構建一個完整的細胞模型,我們需要得到定量因素,掌握結合了不同基因表達水平的參數,還需要將環境變量與內部變量結合起來……做到這些很難,因為這些數量之間並沒有簡單的線性關係。細胞通過對反饋回路進行互鎖來維持穩定,這會引起非常複雜的活動。反向傳播很適合解決這個問題,因為它能夠有效掌握非線性函數。如果我們有完整的細胞代謝路徑圖,以及對所有相關變量足夠的觀察,原則上,反向傳播可以掌握細胞的詳細模型,利用多層感官器根據直接起因預測每個變量。
然而,對於可預見的未來,我們僅僅掌握細胞代謝網絡的部分知識,也隻掌握了我們想掌握的一部分變量。麵對信息缺失以及所有可用信息不可避免的矛盾,要掌握有用的模型就需要利用貝葉斯方法,在第六章我們會深入研究這個問題。對特殊患者進行預測也是同樣的道理,掌握模型:可利用的證據必然會雜亂和不完整,但貝葉斯推理會充分利用它。它起到作用了,如果把治愈癌症作為目標,我們不必知道癌細胞運轉的所有細節,隻需要知道如何在不損害正常細胞的情況下,使癌細胞失去繁殖能力,這就足夠了。在第六章中,我們也會看到如何避開我們不知道也不必知道的事,使學習麵向目標。
更直接的是,我們可以利用逆向演繹從數據及之前的知識中推導出細胞網絡的結構,但應用它的方法可以呈現出組合爆炸式增長,我們需要的是一個策略。既然代謝網絡由進化來決定,也許在我們的學習算法中對其進行刺激才是可行辦法。在第五章中,我們會看到如何做到這一點。 <h2>大腦的更深處</h2>
在反向傳播初次進入公眾視線時,聯結學派幻想能夠快速掌握越來越大規模的網絡,直到硬件允許的條件下,這些網絡等同於人工大腦。結果卻並非如此。掌握擁有一個隱含層的網絡沒問題,但在那之後,很快事情就會變得很困難。幾層的網絡,隻有為了應用(比如文字識別)而經過精心設計的才能起作用。超出這個範圍,反向傳播就會癱瘓。隨著我們增加越來越多的層數,誤差信號會變得越來越散漫,就像河流分成越來越小的支流,直到我們隻剩下雨滴,不留痕跡。利用幾十或數百個隱藏層來進行學習,就像大腦一樣,過去是一個遙遠的夢,而到了20世紀90年代中期,對多層感知器的熱情已經逐漸消減。聯結學派的中堅分子仍在堅持,但總的來說,人們對機器學習領域的關注度已經轉移到別的領域(在第六章和第七章中我們會探索這些領域)。
然而,如今聯結學派又複活了。我們比現在掌握了更深層的網絡,而且這些網絡在視覺、語音識別、藥物研製和其他領域都在設定新標準。這個領域新的深入學習成果被刊登在《紐約時報》的頭版上。往發動機蓋下麵看……驚喜:是值得信賴的老式反向傳播發動機,還在嗡嗡作響。什麽發生改變了?評論家說,沒什麽大的改變:隻是計算機變得更快了,數據變得更大了。辛頓和其他人答道:確實,我們一直都沒錯!
實際上,聯結學派有實質性的進步。如果聯結學派是過山車,那麽對於最近的過山車轉彎,貢獻者之一的就是一個看上去普通的小設備,稱為“自動編碼器”。自動編碼器就是一台多層感知器,其輸出量和輸入量一樣。輸入一張你祖母的照片,然後輸出的還是你祖母的照片。起初,這就像一個愚蠢的想法:這樣一個奇異的裝置可能有什麽用?答案就是,讓隱藏層比輸入和輸出層小很多,那麽網絡就不會隻把輸入信息複製到隱藏層,然後再從隱藏層複製到輸出信息那裏,在這種情況下,我們可能也會把所有東西都扔出去。但如果隱藏層變小了,就會發生有趣的事情:網絡會被迫將輸入信息編碼在更少的比特裏,那樣在隱藏層就可以表示出來了,然後網絡會解壓那些信息,還原到原來的大小。例如,它可以對你祖母百萬像素的照片進行編碼,變成僅僅7個字母的單詞“grandma”,或者它自己創造出來的更短代碼,同時學習將“grandma”解碼成一個老奶奶的照片。因此,一台自動編碼器就像一個文件壓縮工具,它有兩個重要的優點:知道如何自行壓縮東西,和霍普菲爾德網絡一樣;可以把一張雜亂、扭曲的圖片變得幹淨清晰。
自動編碼器於20世紀80年代為人所知,雖然有一個單個隱藏層,但它很難學習。要弄明白怎樣把眾多信息打包壓縮至幾個相同比特大小,是非常難的問題(一個代碼是你的祖母,另一個稍有不同的代碼是你的祖父,再一個是詹妮弗·安妮斯頓,等等)。超空間裏的地形實在是太崎嶇,讓人無法到達峰頂;隱藏的單位要掌握輸入量的過多xor相當於什麽。因此自動編碼器並沒有真正跟上步伐。花了十餘年來尋找的訣竅,就是讓隱藏層比輸入和輸出層大一些。啊?實際上,這隻是一半的訣竅:另一半就是,在任何特定時間,隻把幾個隱藏的單位趕走。這樣做仍然會阻止隱藏層對輸入層進行複製,而且關鍵是,這樣做把學習變得更簡單了。如果我們允許用不同比特來代表不同輸入層,那麽輸入層就不再需要爭相設置相同的比特。同樣,網絡現在有比之前多很多的參數,那麽你所處的超空間會有更多的維度,而你也有更多的方法來逃出局部最大值的困境。這就叫作稀疏自動編碼器,而它是一個訣竅。
雖然如此,我們還沒有看到任何深入的學習行為。下一個聰明的主意就是把稀疏自動編碼器逐個堆積起來,就像一個多層三明治那樣。第一個自動編碼器的隱藏層變成第二個的輸入或輸出層,依此類推。因為神經元是非線性的,每個隱藏層會掌握輸入層更為複雜的表達方式,在前一個隱藏層的基礎上進行構建。給定大批的麵部圖片,第一個自動編碼器會對局部特征,如棱角和斑點進行編碼;第二個自動編碼器利用這些信息來對諸如鼻尖、眼睛的虹膜這些麵部特征進行編碼;第三個掌握整個鼻子和眼睛的麵部特征等。最終,最頂端的一層可以是一台傳統的感知器,會通過下一層編碼器提供的上層特征來識別你的祖母,這和隻利用單個隱藏層提供的粗糙信息,以及對所有層進行反向傳播相比,要簡單得多。登上《紐約時報》的穀歌大腦網絡是一個由自動編碼器和其他材料組成的9層三明治,能夠從視頻網站youtube的視頻中識別出貓。它包含數十億個連接,是當時能夠進行學習的最大網絡。不足為奇的是,吳恩達(該項目的主要負責人之一)也是支持“人類智能可以歸結為單個算法”這個思想的主要人物。吳恩達平易近人且很有誌向,認為疊加在一起的稀疏自動編碼器能夠幫助我們更好地解決人工智能問題,比之前的任何方法都行得通。
疊加自動編碼器不是唯一的深度學習算法,另外一種以玻爾茲曼機器作為基礎,還有一種——卷積神經網絡,則把視皮質模型作為基礎。盡管取得了很大的成功,然而這些成果仍與大腦相去甚遠。穀歌網絡可以識別出貓臉的正麵;人類可以認出各種姿勢的貓,甚至在很難辨認臉部時也能認出。穀歌網絡仍非常膚淺,它9層裏麵隻有3層是自動編碼器。多層感知器是小腦還算不錯的模型,大腦的這部分負責低水平運動控製,但皮質就不一樣了。它缺失用於傳播誤差的逆向連接,但它是學習這個魔法的真正所在。傑夫·霍金斯在《人工智能》一書中,提倡緊緊地把皮質組織形式作為基礎,進行算法設計,但到目前為止,沒有一個算法能夠與今天的深度網絡相比。
隨著我們對大腦理解的深入,這種情況可能會改變。受到人類基因組計劃的啟示,神經連接組學正在力求繪製出大腦中的每個突觸。歐盟正在進行10億歐元的投資,用於構建大腦一應俱全的模型。美國的大腦計劃也有相似的目標,僅僅2014年的基金就達到1億美元。雖然如此,符號學派對這種尋找終極算法的方法仍非常懷疑。雖然我們可以在單個突觸水平上想象完整的大腦,但是我們需要更好的機器學習算法,來將那些想象的圖片變成布線圖,僅僅用手來完成是不可能的。更糟糕的是,即使有了大腦的完整構圖,我們仍然不知道它在幹什麽。秀麗線蟲的神經係統僅僅由302個神經元組成,而且在1986年被完整繪製出來,但關於它幹什麽,我們也僅僅了解了一部分。我們需要更高水平的概念,用來搞明白底層細節這個難題,剔除那些針對人腦或隻針對進化怪癖的細節。我們不會通過對羽毛進行逆向工程來製造飛機,而飛機也不會拍翅膀。飛機是在氣體力學的基礎上設計的,所有飛行的物體都必須遵循氣體力學原則。我們還是沒有理解那些想法的類似原則。
也許神經連接組學有點過分了。聯結學派的一些人高調稱,反向傳播就是終極算法,而我們隻需要擴大反向傳播的規模。但符號學派對這種想法不屑一顧,他們指出一長串人類能做但神經網絡做不了的事情。按照常識進行推理,這就涉及把之前從來沒有被放在一起的信息組合在一起。瑪麗午飯吃鞋子嗎?不,因為瑪麗是人,人類隻吃能吃的東西,而鞋子不能吃。符號係統做到這些沒有問題——它隻會把相關規則串起來,但是多層感知器卻做不到這一點。一旦完成學習,它隻會不斷計算同一個指定函數。神經網絡不是組合出來的,而語意合成性是人類認知的一大部分。另外一個大問題就是人類,以及諸如規則集和決策樹之類的符號模型,可以對它們的推理進行解釋,而神經網絡是一大堆沒人能看懂的數字。
但是如果人類具備所有這些能力,大腦不經過調整突觸就能掌握這些能力,那麽這些能力從何而來?除非你相信魔法,答案一定是:通過進化得來。如果你是聯結學派懷疑論者,而且有勇氣肯定自己的觀點,應該弄明白進化如何掌握孩子出生就知道的所有東西——你越覺得是天生的,要求也就越高。如果你弄明白了,然後對計算機進行編程來完成這個任務,別人否認你已經發明了終極算法的至少一個版本,這會顯得十分無禮。