淺談強人工智慧的瓶頸和可能的努力方向

早就想系統地寫一篇相關的文章,今天正好借題發揮下。

重要假定:假定題目中所說的「強人工智慧」即具備類似人類智慧的能力。

一、先來說說目前熱門的深度學習和強化學習的進展以及各自的瓶頸。

1、深度學習目前現狀:

先說進展:深度學習經歷了三起二落,目前處在第三次研究高潮(後期?前期?正高潮?沒人知道),本次興起與互聯網流行產生的大量標籤數據、硬體計算能力的提高有著密不可分的關係,但其應用的演算法技術基礎仍然是基於誤差的反向傳播,但相比之前的研究,越來越多人在超參數調優方面做出了傑出的貢獻,在網路模型的搭建上也開始進行一些突破性的嘗試,比如GAN;同時也有研究人員開始關注神經網路黑盒子里的隱藏層具體表示的特徵,並對其進行理論研究。這些都是非常有意義的工作,也取得了重大進展。像各種CNN網路,具備記憶功能的RNN在圖像處理、語音處理、自然語言處理等領域取得了不少的進步,有些已經形成工業級應用。

再說困局:這要看如何定義「深度學習」了。如果把「深度學習」定義為」使用單個具備深層隱藏層,基於誤差反向傳播的神經網路來進行學習」的話,這樣的深度學習永遠只有特徵檢測的能力,不會具備智能。如果把」深度學習「定義為」使用具備深層隱藏層,不同連接結構的神經網路來進行學習」的話,那麼這樣的「深度學習」則不再是狹義上的神經網路,而是基於神經網路的網路,這樣的深度學習是否具備智能學習能力我還是很期待的。

如何破局:當前沒有人能夠確切知道如何破局,但一個可能的方向是,組建基於「神經網路」的神經網路。說起來簡單,做起來難,如何訓練單個神經網路? 這個要繼續想人類如何學習知識來取經了,下文會再次提及這一點。

2、強化學習的現狀

先說進展:強化學習是一門很早就有的學科,在各個領域有不同的名字,其根本是借鑒了人類初級神經系統中的條件反射機制和高級神經系統的獎勵機制而誕生的。這門學科有一個重要的根基性假設,即:希望具有智能的個體總是在與環境打交道過程中試圖獲取最大化的累積獎勵。」 強化學習之所以最近幾年被重視,其原因大家都懂得。同時其與深度學習結合帶來的深度強化學習又是熱點中的熱點。

再說困局:從近期DeepMind公布宣布在星際爭霸2研究平台訓練智能個體進展不佳來看,其距離實現強人工智慧還是有比較遠的距離。個人覺得其主要原因在於它缺少了人類特有的對知識的吸收再分析以及在此基礎上的靈活決策能力。

如何破局:沒有人知道強化學習能走多遠。單靠(深度)強化學習是不夠的。可能的方向有,不基於獎勵,基於別的因素(比如:能量最省、和諧?只能瞎說了)的學習模式。同樣需要再次向人類的智慧取取經。

3、RNN和CNN

其實不應該把RNN和CNN單列出來講,他們是屬於DNN裡面的,但是把他們列出來說明這兩類網路極其重要,特別是RNN。大家可以看到單靠傳統的DNN網路幾乎沒有非常有意義的實際突破和應用(數據壓縮和還原?)。但基於RNN和CNN的還是有很多亮點的。我要從神經科學領域來解釋了。RNN受到了人類神經元具備記憶狀態功能的啟發,這可是一個不小的突破。可能有人知道一門學科叫「計算神經科學」,該領域的科研人員研究的就是如何去建立真正能模擬神經元功能的計算機模型,但是很不幸,與我們的DL大牛比起來,他們幾乎沒任何有意義的亮點和實際應用。究其原因,我個人認為,計算神經學家要找的神經元模型就是DL大牛們發明的LSTM結構中的一個神經元單元,只不過LSTM中的神經元單元是用各種門機制來模擬神經元脈衝衝動的,有興趣的人可以去可視化一個LSTM結構中的神經元狀態隨時間按步長的曲線,看看是不是像脈衝特徵(我沒有做過類似實驗,但是直覺告訴我是這樣)。再說說CNN。CNN的靈感來自於我從事的領域視覺系統的感受野。這種在空間上具備卷積功能使得CNN網路可以從變化多端的輸入中尋找不變的特徵。也是很牛的,但它仍然只是初步的特徵檢測。最近有人用CNN來代替RNN研究時序數據的分析,認為CNN可以做RNN做的事情,我覺得這樣的研究意義不大,為什麼? RNN理論上能持續接受無限時間步長的數據,可以持續接受數據,對應的就是CNN接受的輸入數據特徵數是動態而且不限上限的,你CNN行嗎?我能理解的CNN只能先把整體時序數據(從開始到結束)確定下來,再送入網路處理。還有人眼可不只是只看靜態圖片,而是看動態的視頻的。解決視頻檢測我個人看要依靠CNN+RNN,當前的計算能力是否能滿足大量數據的訓練任務,我不清楚。

二、再來從宏觀整體層面講講強人工智慧為什麼那麼難以及可能的方向。

1.目前大多數的深度學習網路沒能突破「特徵檢測」這個範疇

我個人覺得目前任何的深度學習網路(不包括強化學習)其實只是模擬了人類複雜神經系統中的感覺系統,離具備決策功能的大腦還差得遠。為什麼這麼說?幾乎所有的深度學習網路最後的目的都歸於一個分類器,用來進行簡單的決策。這偏離了深度學習的精髓。深度學習的精髓是什麼?我認為是特徵的層級表示和提取。最有用的信息其實不是最後的分類機器輸出結果,而是運行中間得到的特徵,輸出層也要從特徵的角度去看待,我們要用這些特徵把他們送入別的神經網路。我們應該化大力氣研究這些特徵,以及想辦法去用好這些特徵。為什麼我把強化學習排除在外,深度強化學習在使用DNN上,利用的就是它的網路的特徵(儘管是輸出層)。

2.知識的存儲和運用是個難點:知識可能是通過DNN中的權重表示的,而且該網路是可以訓練的,需要監督數據

其次知識的網路表示。知識是什麼,如何在腦中存儲和提取?目前沒有人知道。我個人的猜想是知識是以網路表示的。網路的輸入是別的網路的輸出,網路的輸出又形成了別的網路的輸入。知識表現成網路內層間連接的權重。這樣的網路不必很深,可能三-六層就夠了(人腦皮質就6層),可以有跨層鏈接)。每一個這樣的網路解決某一個小領域的知識表達推理過程。舉個例子來說吧,目前的機器閱讀理解大多數是這樣來工作的:希望通過一個整體的網路來解決問題,上下文和問題作為網路的輸入,輸出是某個詞是對應的答案的幾率。不可厚非這樣的網路已經能回答不少問題,但是還是達不到工業級的水準。有待於繼續研究。我覺得還得從人的學習經歷找靈感。我們來看看每一個人在嬰幼兒期如何學習知識、理解並回答問題的。首先嬰兒在一開始不會說話,他只會聽。他要做的第一件事情就是把聽到的複述出來,這就相當於去設計一個雙層的RNN來完成一個自編碼器功能,一個負責聽,一個負責複述,用輸出等於輸入來進行自編碼。當一個嬰兒開始能把聽到的大多數詞、話複述出來的時候,他就不滿足複述,會和大人互動。有時候大人問一個問題,他給出回答,一開始可能大多數是錯誤的。那我們大人要給他糾正。這就相當於把之前訓練好的兩個RNN拆開來(但鎖定他們的權重),在他們中間插入一個神經網路專門用來訓練問答,這個問答過程中,嬰兒可以不懂問答的含義。關鍵在於這個新插入的DNN網路經過監督訓練完成了從問題(文本序列)到回答(文本序列)的正確轉換。到這個時候就訓練好了兩個網路了。那麼如何體現知識和推理呢?我們把第一個負責接收信息的RNN的輸出提取出來,這個輸出有什麼意義?它是一個特徵,什麼特徵?一個詞、一句話、甚至幾句話的特徵表示。我們把這個特徵再送入一個網路,這個網路的輸出用來表示我接受表示這句話的輸入特徵的幾率。可以設定:網路輸出為1,表示我強烈認同剛才聽到的話所表示的世界知識;輸出為-1表示強烈反對;輸出為0可以表示不具備相關的判別能力,然後我們給出「世界知識」作為監督來訓練這個小網路,也可以使用強化學習方法。訓練好了之後,我們暫時不用該網路隱藏層到輸出層的權重和輸出結果,我們只去用這個網路的隱藏層。隱藏層具備什麼意義?它仍然是特徵,從RNN的輸出到這個隱藏層的變換表示了我具備的知識,把這個特徵聯同第一個負責接受文本(或語音)序列的RNN輸出合併起來,作為我們訓練問答系統網路的輸入,鎖定訓練好的部分權重,開始利用知識進行問答的網路訓練。當然在這個網路中你還可以增加一些其他輸入數據:比如情感特徵、幽默程度特徵等(永遠記住特徵就是網路的隱藏層,是另一個網路通過自編碼或監督訓練得到的)來提供不一樣的回答。這樣的問答系統,我認為可以直接輸出問題的答案,而不去判斷某個詞是正確答案的幾率。我們從小學習知識也是這麼學的。如果哪位DL牛人搭建了這樣的網路並取得積極進展,我祝賀他,能給我署個名就最好了啊。下圖是個概念圖。

3.人類大腦仍然是個謎

最後,我再從物種差異及神經科學角度來講一下大腦皮質到底是用來幹什麼的。人類區別於其他動物具備智慧最主要的是具備了豐富的大腦(端腦)組織。人腦的結構中還有丘腦、腦幹、小腦、脊髓及外周神經纖維等。外周神經纖維負責從外界接受信號和輸出信號給效應器官(肌肉,負責運動,進而表現出說話,行走),脊髓完成基本的條件反射和把複雜信號向腦幹、丘腦、端腦傳達。當你手指碰到火的時候不經大腦思考就把手撤回來使用的僅僅就是脊髓水平的條件反射,信號都沒有經過腦幹。腦幹負責維持人的基本生命活動(心跳、呼吸等),位於後腦勺,因此打人千萬不要打後腦勺,摔倒儘可能避免後仰著地;小腦負責平衡(是否近期發現還有其他功能我不清楚)。我重點要說的是丘腦。丘腦基本是被大腦包裹著的,所有從脊髓、人面部的眼、而、鼻等感覺器官傳來的信息都要經過丘腦,可以說人沒有大腦,不會失去生命(大腦損傷死亡最主要的原因是失血),但是會發生認知和行為障礙。我這麼說是想強調任何動物的丘腦基本都是一樣的,不是產生智慧的地方。而大(端)腦才是。端腦如何產生智慧?個人猜想在大腦里存在一條特徵信息匯流排,類似於計算機的數據匯流排。每一個皮質柱單元相當於一個我剛才說的決策網路,信息會被並行的送入所有(經訓練後,會選擇性)的皮質柱,皮質柱內部的網路根據自身的特點決定是否響應以及如何響應。然後大量皮質柱整體的決策類似於個經驗概率選擇或者是另外一個專門的網路來負責,進而產生高級智慧活動。關於大腦部分純屬個人猜測,不準確程度較大,僅供參考。

三、總結下:

1、強人工智慧還很遠

2、要強調利用神經網路的隱藏層特徵而不是分類器輸出

3、要把研究重點放在搭建不同架構的網路模型及組合網路模型上,調參的事情在目前看來已經不那麼重要了

4、知識可能是以神經網路的形式存儲的。張量變換過程很可能就是基於知識的推理決策過程

5、不要一口氣吃一個大胖子,不要總想著無監督訓練。監督訓練是必要的;分布訓練小網路,鎖定訓練好的參數再在聯合別的網路繼續訓練。

6、不要給簡單的DNN太多的負擔,總希望一個網路從頭走到尾就能解決所有問題,不可能。DNN已經很厲害了,至少會利用誤差的反向傳播在較短時間內精確調整參數。人類的神經系統權重如何調整的還不清楚,有些需要很多年。不過我比較傾向於認為:對應CNN的那些卷積核的參數,在人類視覺系統中不是後天訓練得來的,是長期進化已經能從DNA直接獲取的了。

7、要繼續從神經科學取經,單純的數學角度可能可以解決問題,畢竟一切問題都是數學問題,但是數學的發展是要借鑒其他應用科學的;從神經科學取經可能會加快進度,人工神經網路的發展歷程也證明了這一點。

最後:由於對於神經網路知識並不完全精通,因此在理解和表述上可能會存在些問題,歡迎牛人指正。如果我的回答被認為是對某研究領域的人有所冒犯,實屬個人對事不對人的觀點。如果您從閱讀本文中能得到些靈感,那實屬我的幸運。如果你借鑒了本文靈感並發表了高水平的學術論文,那是我的萬分榮幸!


推薦閱讀:

tf.nn.nce_loss 來自一篇古老的文章
AI+互聯網金融--入職半年總結
為何讀不懂你的那個TA
CRF 小結

TAG:人工智慧 | 深度學習DeepLearning | 自然語言處理 |