關於深度學習的思考(轉)

自從 AlphaGo 完虐李世乭,深度學習火了。但似乎沒人說得清它的原理,只是把它當作一個黑箱來使。有人說,深度學習就是一個非線性分類器?有人說,深度學習是對人腦的模擬……但我覺得都沒有捅透那層窗戶紙。

 

  人類正在慢慢接近世界的本質--物質只是承載信息模式的載體。人腦之外的器官都只是保障這一使命的給養艦隊。

  自從去年 AlphaGo 完虐李世乭,深度學習火了。但似乎沒人說得清它的原理,只是把它當作一個黑箱來使。有人說,深度學習就是一個非線性分類器?有人說,深度學習是對人腦的模擬  但我覺得都沒有捅透那層窗戶紙。

  當讀完 Jeff Hawkins 的《論智能》,「就是它了!」。而我驚奇地發現,原書竟是 2004 年出版的!我怕自己讀了本假書,或是某個美國民科的著作,特意到豆瓣、知乎上查了下,發現幾乎每個看過這本書的人都對其理論嘖嘖稱讚。但奇怪的是,似乎沒人肯替它站臺,這套理論的影響止步於此,好像大家都在刻意掩飾自己看過這本祕笈。它明明已經完整解釋了人腦智能的運作機制了啊!注意是 Real Intelligence ,而不僅僅是 Artificial Intelligence !!!

  三個洞見

  比起絕大多數腦科學論文,作者的洞見簡單得多,也深刻得多:

 長久以來,由於我們沒有能力從內部去觀察思維,所以人們總是把「智能」等同爲「表現出智能的行爲」。但當我們看書時,在外人看來並沒有任何變化,而我們自己知道,這期間產生了無數的聯想、頓悟、回憶。所以,「理解」是無法通過外部行爲來測量的,它是一個內在度量的指標。 
 從草履蟲到人類,大自然會爲每一種生物分別設計一套智能機制,還是沿用一套機制,亦或是從某一代開始出現某種全新的智能機制,並沿用至今(那麼,最先產生這套智能機制的又是什麼物種呢?)?我們所說的智能,是人類所獨有,還是生物的普遍特徵(只是多寡之別)?而作者相信,智能不可能是上帝專爲人類而設計的,它一定來自大自然的某種慣用伎倆。 
 大腦皮層,不管是結構上還是功能上,都有着相同的構造/機理(嚴格來說,這不算作者的洞見,而是早在 1978 年由 Vernon Mountcastle 發現的)。  

  由這三個洞見出發,自然而然地導向了以下疑問:

 如果智能不是由行爲定義的,那該如何定義它? 
 向前看,智能是如何演化而來的? 
 向內看,大腦皮層的結構是如何捕捉這個世界的結構的?  

  簡單地說,作者的結論是:

 智能並沒有人們想象的那麼玄乎,它不過是一種「預測未來的能力」罷了。 
 這些預測的實質,不過是「生物的應激性」在「生物自平衡機制」&「環境壓力」下產生的副產品。 
 智能的核心是某種「穩定不變的東西」。而這得益於大腦皮層同質的層級結構。  

  下面,我們就來看看作者是怎麼從那三個簡單的洞見一步步推測出智能的本質的。

  生命的鞦韆

  小到人體,大到經濟系統,複雜系統內都有着一種消減衝擊、使系統迴歸穩態的類似機制。血糖濃度低了,胰高血糖素分泌會增加,拉高血糖;而血糖高了,胰島素分泌會增加,拉低血糖。通過調節這對激素,系統竭力讓血糖維持在某一範圍內。這種自穩態機制出現在生命的各個角落,保持着生命的自我平衡。

  這就像一隻「看不見的手」,總是想推開擠壓,同時把「逃兵」抓回來。這隻「看不見的手」在我們大腦中編織了無數「正確的位置」(用腦科學家的黑話說就是「恆定表徵」)。一旦偏離,我們就開始警覺起來,並調動多個系統聯合應對。舉個書中的例子,一個球飛過來,我們並不是去計算它的彈道、落點,而是指揮肢體相應調整,直到抓住來球。這套調整算法就是「預測」。從這個事例看,人們在接球這件事上表現出的智能,和草履蟲向着食物划動所展現的應激性,又有什麼本質的分別呢?

  爲什麼說「預測」是智能的基礎?

  平常,人們理解的「預測」步子邁得太大了,就好比從一發球就要精準地算出其落點,而人腦的「預測」更像是「應激」,球動我動,一點點微調。現代社會發展得太快,讓我們看不清概念的歷史面貌,因而更容易被表象的迷霧困惑。當我們走回歷史的起點,迷霧自然散去。智能,於我們最大的益處是什麼?並非創造什麼,而是生存下去。人類無時無刻不在「生存」還是「發展」之間糾結。但很少有人看到:發展,不過是爲了應對未知的生存挑戰。

  我們應該怎麼去定義智能呢?也許演化的歷史能告訴我們更多。智能,是幫助人類生存下去的一種能力:是讓我們可以在溪流中叉到遊動的魚兒的能力,是讓我們可以只靠一幅模糊的圖像就判斷出是朋友還是猛獸  我們應該去研究那些「如何保持平衡」之類的問題,而不是什麼彈道求解問題,那不是大自然的進化目標,自然也得不到什麼大腦的機制。

  所有生存問題都可以歸結爲一個元問題:如何識別出這個問題中的那些個恆定不變的東西。比如:溪流中的魚、回家的方向  如果說智能中還存在別的成分,比如:想象、創造工具、解決問題,都可以規約到某種抽象手段上。歸根結底,人類解決一切問題的方法只有一個--運用抽象,在更高維度上調和矛盾。

  一切繞不開「恆定表徵」(invariant representations)。

  抽象的本質

  就如同人們在認可了「負數」這一概念之後,終於能將「加法」&「減法」這兩種表象上完全不同(一個增加,一個減少)的運算,統一爲「整數域上的加法」。從更高的維度調和矛盾,這正是大腦皮層的構造方式,也是其工作原理。不斷在現象中找到共同點,提取出來,取個名字;這些名字又成爲了上一層抽象的基石(或者叫「詞彙」)。這樣一層一層,直至得到那個智能的聖盃--恆定表徵。

  舉個例子,我們是如何識別邊緣的呢?

  我們先來考察一小塊 3 3 的視網膜,分別標記爲 #1~#9 (如下圖所示)。當一條豎線出現時(#1, #4, #7 均被激活),電信號傳遞到第二層。第二層的每一個神經元,分別響應視網膜上一組細胞被激活的情況。比如:第二層最左邊的那片神經元,響應的是單個視網膜細胞被激活的情況。再比如:第二層左二那片神經元,響應的是任意兩個視網膜細胞被激活的情況。以此類推

 

soso_tc_slider_img

 

  邊緣識別:最下層是視網膜細胞;當某個視網膜細胞組合被激活後,會激活其上一層的相應神經元;而上一層神經元的某個組合被激活後,又會鏈式地激活更上一層的神經元如果我們把時間的因素考慮進去,假設信號並不會馬上消失,而是隨着時間衰減,那麼只要時間夠短,輸入 (#1, #4, #7)、(#2, #5, #8)、(#3, #6, #9) 這三組刺激,就會在第三層激活某個神經元,代表「發現一條豎線」。

  看,其實每一個神經元都是一個「單詞」(或是「概念」/「抽象」/「特徵」)。只不過低層神經元描述的「單詞」抽象程度更低。比如:第二層那個 #(1, 4, 7) 神經元代表的是「在視網膜的最左邊出現一條豎線」,而其上層那個則沒有「在視網膜的最左邊」這一約束。

  記憶的角色

  神經元可以在 5 毫秒內完成信息的收集-整合-輸出,相當於運算速度爲每秒 200 次。人類可以在半秒內(相當於 100 步)識別圖像、作出選擇   100 步,機器可做不到。在人類已知的算法裏面,也許只有「打表」(把答案事先存儲在記憶中,用時並不作計算,而只是提取)可以做到。所以,整個大腦皮層就是一個記憶系統,而非什麼計算機。

  深度學習做對了什麼?

  多層網絡,提供了逐層抽象的通道。如今,圖像識別系統正是這麼做的:底層識別邊緣,而後識別特定形狀,再高層識別某種特徵

  卷積,提供了獲得「恆定表徵」的手段。

  還有什麼我們不知道?

  當我們想要提取某段記憶時,往往只需要隻言片語就行了。也就是說,記憶似乎是以一種全息的形式存儲的。任何片段都包含了全部。

  還有,我們依然不知道大腦是怎麼在 100 步內完成決策的。我們也不知道爲什麼會有那麼多反饋連接?軸突 v.s. 樹突在功能上有什麼分別?

  現在讓我們回過頭來看作者的三個洞見,用黑話再講一遍就是:

 理解,是對「大腦如何形成記憶,並利用這些記憶作出預測」的一個內部度量。 
 預測,是某種自我調節機制的副產品。 
 大腦皮層在外表 & 結構上存在着驚人的同質性。也就是說,大腦皮層使用相同的計算方式來完成它的一切功能。人類展現出來的所有智能(視覺、聽覺、肢體運動  )都是基於一套統一的算法  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章