人工智能的未來--神經科學啓發的類腦計算綜述

隨着近幾年深度學習的迅速發展,人工智能成爲了無論學術界還是互聯網領域的一個重要的研究熱點。然而,人類在認識世界和改造世界的過程中從自然界和生物特徵汲取了大量的靈感和經驗。追根溯源,人工智能的發展離不開腦科學的研究。歷史上,神經科學和人工智能兩個領域一直存在交叉,對生物腦更好的理解,將對智能機器的建造上起到及其重要的作用。

腦科學是一門實踐性很強的交叉學科,包含了神經科學,醫學,數學,計算科學等多門學科。腦科學的目的是認識腦,保護腦和模擬腦,其中模擬腦是人工智能的重要靈感來源和終極目標。具體來說,模擬腦需要在神經生物學(Neurobiology)和計算神經學(Computational Neuroscience)基礎上實現。神經生物學側重研究神經元和突觸等腦組織的生物學機理;計算神經學主要通過生物學機理對神經元以及神經突觸等結構進行數學建模,並在模擬環境仿真以求其特徵與生物腦相近。

人工智能是模擬腦的一項主要應用,現在深度學習這種生物學簡化的模型有它的優點,具有很好的數學解釋性,可以在現有的計算機架構(馮諾依曼)上實現,但是同樣有瓶頸,例如:計算代價高,不利於硬件實現等。儘管近年來深度學習和大數據的出現使得這種模型在一些任務上超越人類,但是對於人腦可以處理的複雜問題卻無能爲力,同時需要大量的計算資源和數據資源作爲支撐。

相反人類大腦是一個極度優化的系統,它的工作耗能僅爲25瓦特,神經元的數量卻在10的11次方的數量級上,並且這其中的突觸也達到了每個神經元有10000個。這樣龐大的網絡卻有如此低的能耗,這是使得人類大腦在複雜問題的處理有絕對優勢。

因此,人們希望能模仿人腦的工作方式來處理信息,構建神經網絡模型,成爲了模擬腦的關鍵。類腦計算這一個研究方向逐漸受到各個國家的重視,例如在歐盟在2013年將“人腦計劃”納入其未來旗艦技術項目,2013年4月2日,美國總統奧巴馬宣佈啓動了名爲“通過推動創新型神經技術開展大腦研究(Brain Research through Advancing Innovative Neurotechnologies)”計劃,簡稱爲腦科學研究計劃(BRAIN)[1],以及中國在2017年提出的“一體兩翼”的腦科學與類腦科學研究,可以看到腦科學研究尤其是類腦計算將是繼深度學習之後的又一大人工智能的突破點。目前許多國家專門成立的腦科學研究中心,例如哥倫比亞大學的基礎腦科學研究中心,新加坡的a*star實驗室,清華大學類腦計算研究中心等。

 

1. 類腦計算與神經網絡的發展過程

早期的類腦計算(Brian-like Computing)也可以狹義的稱爲神經計算(Neural Computation),將神經元和突觸模型作爲基礎,把這些模型用在許多現實中的識別任務,從而發揮模擬人腦功能,例如字體識別,人臉識別等等。這就不得不提到人工智能的基礎理論——機器學習。機器學習是一門基於統計學習和優化理論發展而來的數據科學,在大數據和深度學習之前,人們主要把這些理論用來做數據挖掘(數據量相對較小),其中不乏一些十分優秀的算法,如邏輯迴歸,支持向量機(SVM),主成分分析(PCA),生成樹,提升方法等。這些方法可以基於訓練數據的統計特徵通過優化方法得到模型參數,從而對測試數據做出預測或分類。

結合機器學習和神經元模型,最早的神經元網絡是由美國計算機科學家羅森布拉特(F.Roseblatt)於1957年提出的感知機(perceptron),也被稱爲第一代神經網絡。單層感知器是一個具有一層神經元、採用閾值激活函數的前向網絡。通過對網絡權值的訓練,可以使感知器對一組輸人矢量的響應達到元素爲0或1的目標輸出,從而實現對輸人矢量分類的目的。感知機具有很強的數學基礎,可以理解爲多項式迴歸的變種形式,因爲激活函數不可導,所以使用梯度法進行優化,最後得出一組權值參數。

感知機只能有單層,只能完成線性的分類和迴歸任務。後來發展出了多層感知機(Multi-layer Perceptron,MLP)並且激活函數使用可微分的sigmod函數代替。但是MLP在提出之初無法訓練,因此後來又誕生了著名的反向傳播(Back-propergation)算法。MLP可以稱爲第二代神經網絡,也是現在深度學習基礎的理論模型。

感知機和MLP的數學模型很多書都有詳細介紹,這裏不再贅述,具體可以參考《神經計算原理》(英文原版: Principles of Neurocomputing for Science & Engineering)和《機器學習導論》(英文原版:Introduction to Machine Learning)。

前兩代神經網絡都是在以數據科學爲背景發展而來,將神經元的輸入和輸出抽象成向量和矩陣,神經元的功能主要是做矩陣的相乘運算。但是,實際上生物神經元對信息的處理不是由模擬數字組成矩陣,而是以脈衝形式出現的生物電信號,所以前兩代神經網絡僅保留了神經網絡結構,而極大簡化了網絡中的神經元模型。

類腦計算的研究基礎主要是以脈衝神經元模型爲基礎的神經網絡。脈衝神經網絡(Spiking Neural Network,SNN)由W.Maass在1997年首次提出,其底層用脈衝函數模仿生物點信號作爲神經元之間的信息傳遞方式,可以算做第三代神經網絡[2]

SNN的優點是具有更多的生物解釋性,一方面可以作爲計算神經學對生物腦現象模擬的基礎工具;另一方面,由於其信息用脈衝傳遞的特點,SNN結構更容易在硬件上實現,如FPGA等片上系統(on-chip system)。但是,脈衝函數不可導,因此SNN不能直接應用梯度法進行訓練,對SNN的學習算法一直是近年來主要的研究問題。

 

2. SNN的模型、結構以及在機器學習中的應用

SNN主要結構有前饋(Feedforward)循環鏈接(Recurrent)兩種。前饋比較常見,從結構上說與傳統的前饋神經網絡相似,不同的是單個的神經元模型以及整個網絡的數據處理方式。

SNN的神經元模型總體上來說是一類以微分方程構成的模型,帶有時間屬性。可以理解爲傳統的神經元只是當前時刻的輸入與權重的加權和,SNN的神經元則是在一定寬度的時間窗內的輸入與權重的加權和。其中最常見的神經元模型是L&F(Leak and Fire)模型,也可以把這種神經元看做爲一個店帶有電容的電路,按照電路原理來定義可以有如下形式:

圖1. I&F神經元的模擬電路[3]

具體模型公式爲:

\[\begin{align} & {{\tau }_{m}}\frac{du}{dt}=-u(t)+RI(t) \\ & {{t}^{(f)}}:u({{g}^{(f)}})=\upsilon \\ & \underset{t\to {{t}^{(f)}};t>{{t}^{(f)}}}{\mathop{lim}}\,u(t)={{u}_{r}} \\ \end{align}\]

其中 u 表示膜電位, I 表示輸入突觸電流,每當膜電位達到一個閾值 \nu ,便會產生一個脈衝,並將膜電位恢復到復位電位 u_r ,同時在一段時間內會產生一個不應期(refractory),在此期間,模電位保持在 u_r ,不對輸入的突觸電流做出響應。

L&F是一階微分方程的形式,因此是一種線性響應模型,但是由於脈衝閾值以及不應期等機制的存在,使得L&F同樣變成了一種對輸入的非線性映射。

利用L&F構成網絡就涉及到如何在神經元之間傳遞脈衝信號,這就是突觸電流的響應模型。常用的電流模型是一種基於指數衰減的模型(與膜電位的模型很相似),改進的模型可以是兩個衰減模型的疊加,來模擬平滑的脈衝信號(代替階躍函數表示的脈衝):

\[I(t)=\sum\limits_{t}{C*(exp(-\frac{t}{{{\tau }_{1}}})-exp(-\frac{t}{{{\tau }_{2}}}))}*\delta (t-t_{i}^{(f)})\]

其中 \tau_1 和\tau_2是時間常數, \[\delta (t-t_{i}^{(f)})\] 是表示一個脈衝的單位階躍函數。

由於SNN存在大量的微分方程計算並依賴於計算機仿真,SNN中的數值基本是通過數值方法計算的微分方程的狀態。因此,具體的仿真過程中,與傳統神經網絡的最大區別在於時間步的概念,與硬件中的時鐘十分相似。所以突觸模型中還可以帶有一個熟悉就是延遲(delay),可以和權重一樣被訓練成爲表達輸入特徵的一個重要參數。目前SNN的學習算法很多基於脈衝的間隔的精確時間而不是一段時間的脈衝的數量來調整網絡參數,如根據hebbian規則演變而來的STDP(Spike time dependance plasicity)。

\[\Delta w=\left\{ \begin{matrix} {{A}_{+}}\exp (-\Delta t/{{\tau }_{+}}) & if\Delta t\ge 0 \\ {{A}_{-}}\exp (-\Delta t/{{\tau }_{-}}) & if\Delta t\le 0 \\ \end{matrix} \right.\]

圖2. STDP的生物學特性[4]

另一種結構是帶有循環鏈接,主要的代表模型是液體狀態機(liquid state machine, LSM)。模型結構屬於水庫計算[5](Reservoir Computing)的一種,是一種結構更復雜,用來處理高維時序問題的RNN(Recurrent Neural Network)結構[6, 7]。LSM的提出主要是通過循環鏈接表示了對時序問題的記憶能力,通過對輸入的高維映射,可以用線性模型進行分類和迴歸。LSM的結構主要分爲3層:1)輸入層:主要負責將輸入的模擬數值編碼成脈衝序列(Spike Trains)並按照 一定比例輸入到水庫層中。2)水庫層:根據生物腦中的神經元類型比例,包含80%的興奮神經元和20%的抑制神經元,鏈接是隨機的循環鏈接。3)輸出層:讀取每個水庫層中神經元的狀態,並用邏輯迴歸等進線性分類。

從機器學習的角度出發,SNN的應用主要分爲分類和迴歸兩種任務,這兩種任務主要涉及到數據的組織和處理。因此,數據進入SNN之前需要先進行編碼成爲脈衝序列,經典的編碼方式有頻率(Rate),二進制(Binary),排序(Rank)等[4, 8]。

 

3. 類腦計算與人工智能的研究趨勢

目前類腦計算的主要研究趨勢分爲三個方面:首先是基礎的生物腦中的神經元,突觸及記憶,注意等機制的建模;第二,基於生物機制建模的神經網絡學習算法以及在模式識別等機器學習任務中的應用;最後,基於生物激勵的算法和神經網絡的硬件系統研究。

目前對於腦的認知機制的研究還存在很多空白,生物腦的運轉機制的神祕面紗沒有被徹底解開,只有少部分現象被發現[9]。腦建模是在認知腦的基礎上進行的,目前的類腦計算算法還有很大的研究價值,目前發現的生物學機制只有少部分使用了計算神經學的方式進行模擬,被用在類腦計算中的機制則更加有限。另外,計算機仿真工具和數學的理論分析仍然不夠完善,類腦計算沒有形成統一的理論框架,面對大數據時代還沒辦法取代深度學習等成熟算法和工具的地位。在軟件仿真方面,一些小規模的仿真工具相繼出現,在研究類腦計算機理方面做出了一定貢獻[10, 11]。由於近年來深度學習發展,同樣有很多工作結合了深度學習相關概念進行了研究和探索[12, 13]。

能耗高一直是傳統神經網絡領域的一個難以解決的問題,目前只能通過雲技術對小型便攜設備和需要單獨處理任務的設備提供快速響應的人工智能服務。而類腦計算具有更好的硬件親和力,不需要複雜的硬件進行矩陣運算,只需在接收到脈衝時處理脈衝信號,計算效率得到很大的提高,目前已經有一些片上系統的原型出現,初步提供了SNN構建的人工智能框架[14, 15]。

總之,類腦計算還有很多工作需要完成,大量的有趣的、未知的和有挑戰的問題需要解決,但這也是類腦研究的魅力所在。

原文鏈接:https://zhuanlan.zhihu.com/p/35416350

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