黃鐵軍 余肇飛 劉怡俊
1(北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)系 北京 100871)2(廣東工業(yè)大學(xué)信息工程學(xué)院 廣州 510006)
眾所周知,現(xiàn)代計(jì)算機(jī)產(chǎn)生的數(shù)學(xué)基礎(chǔ)是數(shù)理邏輯,物理基礎(chǔ)是開(kāi)關(guān)電路.數(shù)理邏輯的研究對(duì)象是證明和計(jì)算這2個(gè)直觀概念符號(hào)化后的形式系統(tǒng).1936年阿蘭·麥席森·圖靈(Alan Mathison Turing,1912—1954)為了研究不可計(jì)算數(shù)而提出了圖靈機(jī)模型,這一看似簡(jiǎn)單的思想實(shí)驗(yàn)抓住了數(shù)理邏輯和抽象符號(hào)處理的本質(zhì),劃定了計(jì)算的理論邊界:計(jì)算是機(jī)械式執(zhí)行長(zhǎng)度有限的算法的過(guò)程,這種計(jì)算都可以由圖靈機(jī)完成;所有算法都可以編碼成為一個(gè)整數(shù),因此是可數(shù)的;盡管如此,并不存在枚舉出所有算法的算法.
但是,現(xiàn)在很多人把計(jì)算這個(gè)概念隨意泛化為任意的信息處理過(guò)程,這是不合適的.圖靈機(jī)的狀態(tài)和操作對(duì)象都是離散的,在圖靈可計(jì)算意義下,1和0.1111…(無(wú)窮循環(huán)小數(shù))是2個(gè)不同的數(shù),產(chǎn)生這2個(gè)可計(jì)算數(shù)的圖靈機(jī)也是不同的,圖靈機(jī)并不能發(fā)現(xiàn)在極限意義下兩者相等.極限是人類大腦的創(chuàng)造,在這個(gè)意義上,人腦是超越圖靈機(jī)的.
1938年克勞德·艾爾伍德·香農(nóng)提出開(kāi)關(guān)電路模型,在數(shù)理邏輯和電路實(shí)現(xiàn)之間架起了橋梁.1946年首臺(tái)計(jì)算機(jī)ENIAC研制成功,實(shí)際上是一個(gè)近1.8萬(wàn)個(gè)電子管作為開(kāi)關(guān)的大型開(kāi)關(guān)電路系統(tǒng).之前的1945年,參與了ENIAC項(xiàng)目的馮·諾依曼(John von Neumann,1903—1957)提出存儲(chǔ)和計(jì)算分離的EDVAC結(jié)構(gòu),這篇報(bào)告分15章,長(zhǎng)達(dá)百頁(yè),但是后來(lái)成為經(jīng)典的“馮·諾依曼體系結(jié)構(gòu)”只是其中的前3章,篇幅不到全文十分之一,之后報(bào)告重點(diǎn)就轉(zhuǎn)到了神經(jīng)系統(tǒng).第15章沒(méi)寫完,馮·諾依曼后來(lái)也沒(méi)繼續(xù)寫下去,而是轉(zhuǎn)向研究怎樣用不可靠元件設(shè)計(jì)可靠的自動(dòng)機(jī),以及建造自己能再生產(chǎn)的自動(dòng)機(jī).
馮·諾依曼體系結(jié)構(gòu)被經(jīng)典計(jì)算機(jī)沿用至今,雖然有各種優(yōu)化,但無(wú)根本性變化.在摩爾定律作用下,馮·諾依曼體系結(jié)構(gòu)計(jì)算機(jī)的性能呈指數(shù)增長(zhǎng),一直作為包括人工智能在內(nèi)的各種信息應(yīng)用的基礎(chǔ)平臺(tái).2004年至2005年前后,丹納德尺度縮微定律(在半導(dǎo)體的尺寸不斷縮小的同時(shí)其功耗密度大致保持不變)失效,普遍認(rèn)為摩爾定律在持續(xù)50年后將于2020年左右走到盡頭,迫使人們重新思考計(jì)算機(jī)的體系結(jié)構(gòu)問(wèn)題.
1956年,人工智能的概念正式登上歷史舞臺(tái).60多年來(lái),人工智能經(jīng)歷了3次浪潮,基本思想可大致劃分為三大流派:符號(hào)主義、連接主義和行為主義,從不同側(cè)面抓住了智能的部分特征.連接主義也稱神經(jīng)網(wǎng)絡(luò)學(xué)派,其基本思想是:既然人腦智能是由神經(jīng)網(wǎng)絡(luò)產(chǎn)生的,那就通過(guò)人工方式構(gòu)造神經(jīng)網(wǎng)絡(luò),進(jìn)而產(chǎn)生智能.
神經(jīng)網(wǎng)絡(luò)思想的提出早于計(jì)算機(jī)的發(fā)明,1943年麥卡洛克和皮茨把神經(jīng)元想象成“全或無(wú)”的邏輯開(kāi)關(guān),他們提出的神經(jīng)元模型至今還是人工神經(jīng)網(wǎng)絡(luò)使用的基本單元.80多年來(lái),人們提出了各種各樣的人工神經(jīng)網(wǎng)絡(luò),但是實(shí)現(xiàn)神經(jīng)元和神經(jīng)突觸功能的物理器件一直未能發(fā)展起來(lái).相比之下,馮·諾依曼體系結(jié)構(gòu)計(jì)算機(jī)憑借集成電路摩爾定律的支持,性能呈指數(shù)增長(zhǎng),因此,缺少物理實(shí)現(xiàn)載體的人工神經(jīng)網(wǎng)絡(luò)逐步“寄生”在計(jì)算機(jī)上運(yùn)行.但必須指出的是,人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和馮·諾依曼體系結(jié)構(gòu)毫無(wú)可比性,從體系結(jié)構(gòu)角度看,馮·諾依曼體系結(jié)構(gòu)不是實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)運(yùn)行的合理方案.
2006以來(lái),多層神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)相結(jié)合的深度學(xué)習(xí)在圖像和語(yǔ)音識(shí)別等領(lǐng)域取得突破性進(jìn)展,大規(guī)模深度神經(jīng)網(wǎng)絡(luò)和大數(shù)據(jù)訓(xùn)練對(duì)計(jì)算能力提出了更高需求,經(jīng)典計(jì)算機(jī)運(yùn)行神經(jīng)網(wǎng)絡(luò)能耗居高不下,按照神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)新的機(jī)器結(jié)構(gòu),已是大勢(shì)所趨和必然選擇.
經(jīng)典的人工神經(jīng)網(wǎng)絡(luò)(artificial neural network, ANN)借鑒了生物神經(jīng)網(wǎng)絡(luò)的基本特征,但過(guò)度簡(jiǎn)化.1)人工神經(jīng)網(wǎng)絡(luò)采用的神經(jīng)元模型還是1943年提出的簡(jiǎn)化模型,與生物神經(jīng)元的標(biāo)準(zhǔn)數(shù)學(xué)模型霍奇金-赫胥黎微分方程相距甚遠(yuǎn),不是簡(jiǎn)單的數(shù)值計(jì)算;2)人類大腦是由數(shù)百種不同類型的上千億的神經(jīng)細(xì)胞所構(gòu)成的極為復(fù)雜的生物組織,每個(gè)神經(jīng)元通過(guò)數(shù)千甚至上萬(wàn)個(gè)神經(jīng)突觸和其他神經(jīng)元相連接,即使采用簡(jiǎn)化的神經(jīng)元模型,用目前最強(qiáng)大的計(jì)算機(jī)來(lái)模擬人腦,也還有2個(gè)數(shù)量級(jí)的差異;3)生物神經(jīng)網(wǎng)絡(luò)是一種復(fù)雜的脈沖神經(jīng)網(wǎng)絡(luò)(spiking neural network, SNN),采用動(dòng)作電位表達(dá)和傳遞信息,按照非線性動(dòng)力學(xué)機(jī)制處理信息,目前的深度學(xué)習(xí)等人工神經(jīng)網(wǎng)絡(luò)的時(shí)序特性還很初級(jí).
僅就神經(jīng)元模型而言,采用數(shù)字計(jì)算方法仿真生物神經(jīng)元,計(jì)算復(fù)雜度比人工神經(jīng)元模型要高多個(gè)數(shù)量級(jí).即使采用簡(jiǎn)化的脈沖神經(jīng)網(wǎng)絡(luò)模型——泄漏積分發(fā)放(leaky integrate-and-fire, LIF)模型來(lái)實(shí)時(shí)仿真人類大腦,也約需要100臺(tái)太湖之光超級(jí)計(jì)算機(jī).
更嚴(yán)重的是,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和馮·諾依曼體系結(jié)構(gòu)大相徑庭,這對(duì)性能的影響更為致命.2010年左右提出的評(píng)價(jià)超級(jí)計(jì)算機(jī)的新指標(biāo)——在大型隨機(jī)圖上每秒穿越的邊數(shù)(traversed edges per second, TEPS),能夠兼顧計(jì)算性能和通訊性能.如果將2個(gè)大腦神經(jīng)元之間的一次脈沖傳遞類比為在圖上穿越一個(gè)邊,采用TEPS指標(biāo),人腦比當(dāng)今最快的超級(jí)計(jì)算機(jī)也要快一個(gè)數(shù)量級(jí).
與生物神經(jīng)網(wǎng)絡(luò)相比,人工神經(jīng)網(wǎng)絡(luò)過(guò)度簡(jiǎn)化,要實(shí)現(xiàn)更強(qiáng)的智能,需要更復(fù)雜、更精細(xì)的神經(jīng)網(wǎng)絡(luò),最直接的藍(lán)本就是生物神經(jīng)網(wǎng)絡(luò).當(dāng)前在計(jì)算機(jī)上采用軟件方式仿真實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)只是權(quán)宜之計(jì),網(wǎng)絡(luò)規(guī)模難以擴(kuò)大,更直接的方案是直接按照神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)全新的體系結(jié)構(gòu).
理解意識(shí)現(xiàn)象和功能背后的發(fā)生機(jī)理(簡(jiǎn)稱“理解智能”)是人類的終極性問(wèn)題,制造類似人腦的具有自我意識(shí)的智能機(jī)器(簡(jiǎn)稱“制造智能”)是工程技術(shù)領(lǐng)域重大挑戰(zhàn).一種常見(jiàn)看法是制造智能的前提是理解智能,這實(shí)際上把問(wèn)題的解決建立在解決另一個(gè)更難問(wèn)題的基礎(chǔ)上,犯了本末倒置的錯(cuò)誤.
要實(shí)現(xiàn)更強(qiáng)的機(jī)器智能乃至通用人工智能,首先要分清大腦的結(jié)構(gòu)(主要是皮層神經(jīng)網(wǎng)絡(luò))和大腦的功能(智能、意識(shí))這2個(gè)層次.盡管目標(biāo)是實(shí)現(xiàn)智能功能,但理解智能機(jī)器困難,更現(xiàn)實(shí)的做法是回到結(jié)構(gòu)層次,嘗試先制造出具有同樣結(jié)構(gòu)的機(jī)器,通過(guò)訓(xùn)練產(chǎn)生預(yù)期功能.自古以來(lái)人類的很多工程實(shí)踐都是采用這種技術(shù)路線,以深度學(xué)習(xí)為例,其網(wǎng)絡(luò)結(jié)構(gòu)清晰、效果好,但機(jī)理不清楚,可解釋性理論是下一步需要突破的問(wèn)題,而不是設(shè)計(jì)深度神經(jīng)網(wǎng)絡(luò)的前提.
從人類大腦出發(fā)研究更強(qiáng)的機(jī)器智能乃至通用人工智能,我們認(rèn)為更可行的技術(shù)路線是先結(jié)構(gòu)仿腦,再功能類腦,最后才是理解大腦.因此,本文的“類腦”,主要是指結(jié)構(gòu)類腦,即仿真、模擬和借鑒大腦神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和基元(神經(jīng)元、神經(jīng)突觸)信息處理過(guò)程,中心任務(wù)是制造類腦機(jī)(brain-like machine),或稱神經(jīng)機(jī)(neuromachine)[1-2].制造出這樣的智能機(jī)器,理解機(jī)器智能的機(jī)理,將能加速對(duì)人類大腦智能奧秘的揭開(kāi).
類腦機(jī)是仿照生物神經(jīng)網(wǎng)絡(luò)、采用神經(jīng)形態(tài)器件構(gòu)造的、以時(shí)空信息處理為特征的智能機(jī)器.與生物神經(jīng)系統(tǒng)一樣,類腦機(jī)是一種脈沖神經(jīng)網(wǎng)絡(luò),采用光電微納器件模擬生物神經(jīng)元和神經(jīng)突觸的信息處理功能,在仿真精度達(dá)到一定范圍后,有望具備生物大腦類似的信息處理功能和系統(tǒng)行為.簡(jiǎn)言之,類腦機(jī)不是等待理解智能的機(jī)理后再進(jìn)行模擬,而是繞過(guò)這個(gè)更為困難的科學(xué)問(wèn)題,通過(guò)結(jié)構(gòu)仿真等工程技術(shù)手段間接達(dá)到功能模擬的目的.
生物是類腦機(jī)的原型,生物智能活動(dòng)主要是接收來(lái)自環(huán)境的多種刺激、實(shí)時(shí)處理并及時(shí)響應(yīng),這也是類腦機(jī)的主要功能和存在目的.
類腦機(jī)的體系結(jié)構(gòu)源自生物大腦,這就需要獲得生物大腦基本單元(各類神經(jīng)元和神經(jīng)突觸等)的功能及其連接關(guān)系(網(wǎng)絡(luò)結(jié)構(gòu)).人腦擁有數(shù)百種、上千億個(gè)神經(jīng)元(即1011數(shù)量級(jí)),每個(gè)神經(jīng)元通過(guò)數(shù)千乃至上萬(wàn)神經(jīng)突觸和其他神經(jīng)元相連接(連接數(shù)量達(dá)到1014數(shù)量級(jí)).盡管如此,人腦神經(jīng)系統(tǒng)仍然是一個(gè)復(fù)雜度有限的物理結(jié)構(gòu),采用神經(jīng)科學(xué)實(shí)驗(yàn)手段,從分子生物學(xué)和細(xì)胞生物學(xué)層次解析大腦神經(jīng)元和突觸的物理化學(xué)特性,理解神經(jīng)元和突觸的信號(hào)加工和信息處理特性,并無(wú)突破不了的技術(shù)障礙.
神經(jīng)系統(tǒng)解析貫穿了神經(jīng)科學(xué)百年歷史.1906年,諾貝爾生理學(xué)或醫(yī)學(xué)獎(jiǎng)授予“在神經(jīng)系統(tǒng)結(jié)構(gòu)研究上的工作”的卡米洛·高爾基(Camilo Golgi,1843—1926)和圣地亞哥·拉蒙·卡哈爾(Santiago Ramon y Cajal,1852—1934),他們提出神經(jīng)元染色法并繪制了大量精美的生物神經(jīng)網(wǎng)絡(luò)圖譜,沿用至今.1939年劍橋大學(xué)阿蘭·霍奇金和博士后安德魯·赫胥黎開(kāi)始研究神經(jīng)元信號(hào)加工過(guò)程,自制工具測(cè)量到神經(jīng)元的靜息電位和動(dòng)作電位.二戰(zhàn)爆發(fā),他們投筆從戎,1946年重新拿起膜片鉗,精細(xì)測(cè)量神經(jīng)元傳遞電信號(hào)(或稱神經(jīng)脈沖,更準(zhǔn)確地稱為動(dòng)作電位)的動(dòng)態(tài)過(guò)程,并給出了精確描述這一動(dòng)力學(xué)過(guò)程的微分方程,稱為霍奇金-赫胥黎方程(Hodgkin-Huxley方程,簡(jiǎn)稱HH方程)[3].HH模型對(duì)不同類型的神經(jīng)元具有通用性,1963年獲得諾貝爾獎(jiǎng).
加拿大生理心理學(xué)家唐納德·赫布1949年提出赫布法則(Hebb’s Law):同時(shí)激發(fā)的神經(jīng)元之間的突觸連接會(huì)增強(qiáng)[4],至今這都是人工神經(jīng)網(wǎng)絡(luò)模型廣泛采用的基本原則.1952年,中國(guó)現(xiàn)代神經(jīng)科學(xué)奠基人張香桐(1907—2007)發(fā)現(xiàn)樹(shù)突具有電興奮性,樹(shù)突上的突觸可能對(duì)神經(jīng)元的興奮精細(xì)調(diào)節(jié)起重要作用,1992年國(guó)際神經(jīng)網(wǎng)絡(luò)學(xué)會(huì)授予張香桐終身成就獎(jiǎng),評(píng)價(jià)他“…為樹(shù)突電流在神經(jīng)整合中起重要作用這一概念提供了直接證據(jù)……為我們將來(lái)發(fā)展使用微分方程和連續(xù)時(shí)間變數(shù)的神經(jīng)網(wǎng)絡(luò)、而不再使用數(shù)字脈沖邏輯的電子計(jì)算機(jī)奠定了基礎(chǔ)”.1998年,Tsodyks和Markram等人提出了神經(jīng)突觸計(jì)算模型[5].同年,畢國(guó)強(qiáng)和蒲慕明提出了神經(jīng)突觸脈沖時(shí)間依賴的可塑性(spike-timing dependent plasticity, STDP)機(jī)制[6-7]:反復(fù)出現(xiàn)的突觸前脈沖有助于緊隨其后產(chǎn)生的突觸后動(dòng)作電位并將導(dǎo)致長(zhǎng)期增強(qiáng),相反的時(shí)間關(guān)系將導(dǎo)致長(zhǎng)期抑制.2000年,宋森等人給出了STDP的數(shù)學(xué)模型[8-9].
2008年,美國(guó)工程院把“大腦反向工程”列為本世紀(jì)14個(gè)重大工程問(wèn)題之一.2013年以來(lái),歐洲“人類大腦計(jì)劃”以及美、日、韓和我國(guó)的“腦計(jì)劃”相繼登場(chǎng),都把大腦結(jié)構(gòu)圖譜繪制作為重要內(nèi)容.2014年,“單細(xì)胞分辨的全腦顯微光學(xué)切片斷層成像”獲得國(guó)家自然科學(xué)二等獎(jiǎng),并被歐洲人類大腦計(jì)劃用作鼠腦仿真的基礎(chǔ)數(shù)據(jù).2016年3月,美國(guó)情報(bào)高級(jí)研究計(jì)劃署(IARPA)啟動(dòng)大腦皮層網(wǎng)絡(luò)機(jī)器智能(MICrONS)計(jì)劃,對(duì)1 mm3的大腦皮層進(jìn)行反向工程,并運(yùn)用這些發(fā)現(xiàn)改善機(jī)器學(xué)習(xí)和人工智能算法.2016年4月,全球腦計(jì)劃研討會(huì)(the Global Brain Workshop 2016)提出需要應(yīng)對(duì)三大挑戰(zhàn),第一個(gè)挑戰(zhàn)就是繪制大腦結(jié)構(gòu)圖譜[10]:“在10年內(nèi),我們希望能夠完成包括但不限于以下動(dòng)物大腦的解析:果蠅、斑馬魚(yú)、鼠、狨猴,并將開(kāi)發(fā)出大型腦圖譜繪制分析工具.”2016年9月8日,日本東海大學(xué)宣布繪制出包括十多萬(wàn)神經(jīng)元的果蠅大腦神經(jīng)網(wǎng)絡(luò)三維模型,2019年1月,《Science》封面文章報(bào)道只用了3天時(shí)間就對(duì)果蠅完整大腦進(jìn)行了納米級(jí)成像[11].
2018年,我國(guó)在北京懷柔開(kāi)始建設(shè)“多模態(tài)跨尺度生物醫(yī)學(xué)成像”國(guó)家重大科技基礎(chǔ)設(shè)施,將具備從埃米到米、從微秒到小時(shí)跨越10個(gè)空間與時(shí)間尺度的解析能力,分步驟實(shí)現(xiàn)多種模式動(dòng)物大腦的高精度動(dòng)態(tài)解析.各方面的進(jìn)展表明,人腦神經(jīng)網(wǎng)絡(luò)精細(xì)圖譜有望在20年內(nèi)完成.
類腦機(jī)不是一個(gè)新想法.早在計(jì)算機(jī)發(fā)明之前的1943年,圖靈和香農(nóng)就曾圍繞想象中的“電腦”進(jìn)行過(guò)爭(zhēng)論,香農(nóng)提議把“文化的東西”灌輸給電腦,而圖靈高聲反駁:“不,我對(duì)建造一顆強(qiáng)大的大腦不感興趣,我想要的不過(guò)是一顆尋常的大腦,跟美國(guó)電報(bào)電話公司董事長(zhǎng)的腦袋瓜差不多即可[12].”1950年,圖靈在開(kāi)辟人工智能方向的論文《計(jì)算機(jī)與智能》中明確表示:“真正的智能機(jī)器必須具有學(xué)習(xí)能力,制造這種機(jī)器的方法:先制造一個(gè)模擬童年大腦的機(jī)器,再教育訓(xùn)練[13].”馮·諾依曼也曾認(rèn)真思考過(guò)大腦,根據(jù)他未完成的西列曼演講整理而成的《計(jì)算機(jī)與人腦》一書(shū)1958年出版[14],上半部分為計(jì)算機(jī),下半部分為人腦,討論神經(jīng)元、神經(jīng)脈沖、神經(jīng)網(wǎng)絡(luò)以及人腦的信息處理機(jī)制.
實(shí)踐意義上的類腦機(jī)研制可以追溯到20世紀(jì)80年代.美國(guó)生物學(xué)家杰拉爾德·艾德曼(Gerald Maurice Edelman,1929—2014)1981年提出了統(tǒng)稱為“綜合神經(jīng)建模(synthetic neural modeling)”的理論,即逼近真實(shí)解剖和生理數(shù)據(jù)的神經(jīng)系統(tǒng)大規(guī)模仿真[15],并研制了一系列名為“Darwin”的“仿腦機(jī)”(brain-based-devices, BBD)[16-17],通過(guò)從多種仿真神經(jīng)回路中進(jìn)行選擇而實(shí)現(xiàn)學(xué)習(xí).起初是軟件,1992年開(kāi)始采用硬件,以2005—2007年研制的達(dá)爾文10號(hào)和11號(hào)為例,仿真約50個(gè)腦區(qū)、10萬(wàn)神經(jīng)元和140萬(wàn)突觸連接,通過(guò)模擬嚙齒類動(dòng)物走迷宮的過(guò)程,理解大腦空間記憶的形成過(guò)程.基于BBD的足球機(jī)器人于2004—2006年參加RoboCup機(jī)器人足球公開(kāi)賽,曾5局全勝卡內(nèi)基梅隆大學(xué)基于經(jīng)典人工智能的系統(tǒng).
現(xiàn)代微電子學(xué)和大規(guī)模集成電路先驅(qū)、加州理工學(xué)院教授卡弗·米德(Carver Andress Mead,1934—)也是在20世紀(jì)80年代把興趣轉(zhuǎn)向了生物神經(jīng)系統(tǒng)的,與艾德曼關(guān)注神經(jīng)元群體和神經(jīng)環(huán)路不同,米德的關(guān)注點(diǎn)在神經(jīng)元的硬件實(shí)現(xiàn),開(kāi)創(chuàng)了“神經(jīng)形態(tài)工程(Neuromorphic Engineering)”這個(gè)方向[18-19],提出采用亞閾值模擬電路來(lái)仿真脈沖神經(jīng)網(wǎng)絡(luò),并提出了“神經(jīng)形態(tài)處理器(Neuromorphic Processors)”的概念.1989年5月,米德在電路與系統(tǒng)研討會(huì)(International Symposium on Circuits and Systems, ISCAS)會(huì)議期間組織了“模擬集成神經(jīng)系統(tǒng)(Analog Integrated Neural Systems)”研討會(huì)[20],主要參會(huì)人員至今仍然活躍在這一領(lǐng)域.
米德1989年招收的博士生博阿漢(Kwabena Boahen)2005年加入斯坦福大學(xué),成立了“硅腦”(Brains in Silicon)實(shí)驗(yàn)室,2009年研制出了神經(jīng)形態(tài)電路板Neurogrid,每塊板16顆Neurocore芯片.每顆芯片內(nèi)集成了65 536個(gè)神經(jīng)元,每個(gè)神經(jīng)元用340個(gè)亞閾值工作狀態(tài)的晶體管模擬,這樣一塊Neurogrid板就支持100萬(wàn)個(gè)神經(jīng)元和60億個(gè)突觸聯(lián)結(jié),能耗只有5 W.每個(gè)Neurocore芯片都包括一個(gè)路由器,能夠在其本地芯片、父芯片及其2個(gè)子芯片之間傳送脈沖數(shù)據(jù)包.路由器支持多播樹(shù)路由組織,其中脈沖數(shù)據(jù)被點(diǎn)對(duì)點(diǎn)傳送到位于樹(shù)中所有預(yù)期目的地之上的節(jié)點(diǎn),然后到達(dá)所有目的地,需要時(shí)可以復(fù)制.據(jù)稱Neurogrid在神經(jīng)系統(tǒng)模擬方面可媲美能耗1 MW的超級(jí)計(jì)算機(jī)[21].
Neurogrid團(tuán)隊(duì)2017年開(kāi)發(fā)了新一代神經(jīng)形態(tài)芯片BrainStorm,這一項(xiàng)目2013年啟動(dòng),由美國(guó)海軍研究辦公室資助,最后的成果將成為嵌入式應(yīng)用和集群服務(wù)器上的計(jì)算芯片,可以運(yùn)行全腦模型.目前還沒(méi)有相關(guān)論文解釋該項(xiàng)目的細(xì)節(jié),但博阿漢指出Brainstorm與其他已有神經(jīng)形態(tài)芯片設(shè)計(jì)存在著很大不同:“目前有很多神經(jīng)形態(tài)設(shè)備使用的是超級(jí)計(jì)算機(jī)所使用的路由機(jī)制,就像網(wǎng)格一樣.問(wèn)題在于,在網(wǎng)格架構(gòu)中你只能進(jìn)行點(diǎn)對(duì)點(diǎn)信號(hào)傳遞.如果你想一次發(fā)出多個(gè)信號(hào),系統(tǒng)就會(huì)鎖死.”博阿漢說(shuō)Brainstorm是首個(gè)實(shí)現(xiàn)從高層次描述合成的脈沖神經(jīng)網(wǎng)絡(luò)的芯片,能解決多維非線性微分方程描述的問(wèn)題,或者說(shuō)是基于當(dāng)前狀態(tài)與輸入隨時(shí)間變化而變化的那類問(wèn)題.
2005年,瑞士洛桑聯(lián)邦理工學(xué)院(EPFL)亨利·馬克拉姆(Henry Markram,1962—)牽頭“藍(lán)色大腦計(jì)劃”,在IBM藍(lán)色基因超級(jí)計(jì)算機(jī)上仿真大腦皮層[22].2007年IBM Almaden研究中心認(rèn)知計(jì)算研究組在美國(guó)國(guó)防高級(jí)研究計(jì)劃局(DARPA)支持下開(kāi)展神經(jīng)形態(tài)自適應(yīng)可塑性可擴(kuò)展電子系統(tǒng)(systems of neuromorphic adaptive plastic scalable electronics, SyNAPSE)研究,開(kāi)發(fā)了大腦模擬軟件——皮層模擬器(cortical simulator),2009年在藍(lán)色基因超級(jí)計(jì)算機(jī)上實(shí)現(xiàn)了8.61 T個(gè)神經(jīng)突觸的貓腦模擬[23],所采用的神經(jīng)元模型是簡(jiǎn)化的LIF,即使如此,根據(jù)計(jì)算能力測(cè)算,實(shí)時(shí)模擬人類大腦也需要100臺(tái)太湖之光超級(jí)計(jì)算機(jī).同樣在2009年,馬克拉姆團(tuán)隊(duì)在藍(lán)色基因超級(jí)計(jì)算機(jī)上構(gòu)造出出生2周大鼠的新皮質(zhì)柱精細(xì)模型,包括1萬(wàn)個(gè)神經(jīng)元和數(shù)千萬(wàn)個(gè)突觸連接,實(shí)現(xiàn)了生物神經(jīng)網(wǎng)絡(luò)才擁有的伽馬振蕩現(xiàn)象.在此基礎(chǔ)上,由馬克拉姆領(lǐng)銜的歐洲“人類大腦計(jì)劃”于2013年1月獲得歐盟批準(zhǔn),提出整合從單分子探測(cè)到大腦整體結(jié)構(gòu)解析,實(shí)現(xiàn)全腦仿真模擬[24].
IBM主導(dǎo)的SyNAPSE項(xiàng)目在超級(jí)計(jì)算機(jī)上進(jìn)行大腦皮層仿真基礎(chǔ)上,為了突破規(guī)模瓶頸,也開(kāi)發(fā)了神經(jīng)形態(tài)芯片TrueNorth芯片[25],2014年Science將之列為年度十大科學(xué)進(jìn)展.
2016年4月,采用TrueNorth,美國(guó)勞倫斯·利弗莫爾國(guó)家實(shí)驗(yàn)室和IBM公司公布了一款智能超級(jí)計(jì)算機(jī),實(shí)驗(yàn)室數(shù)據(jù)科學(xué)副主任吉姆·布雷斯表示:“仿神經(jīng)運(yùn)算為我們創(chuàng)造了令人激動(dòng)的新機(jī)會(huì),這正是我們國(guó)家安全任務(wù)的核心——高性能運(yùn)算和模擬技術(shù)的未來(lái)發(fā)展方向.仿神經(jīng)計(jì)算機(jī)的潛在能力,以及它可以實(shí)現(xiàn)的機(jī)器智能,將改變我們研究科學(xué)的方式.”
為了實(shí)現(xiàn)全腦仿真的目標(biāo),歐洲人類大腦計(jì)劃支持了2臺(tái)大型神經(jīng)形態(tài)計(jì)算系統(tǒng)的研制:英國(guó)曼徹斯特大學(xué)的SpiNNaker系統(tǒng)和德國(guó)海德堡大學(xué)的BrainScaleS,2016年3月2臺(tái)階段樣機(jī)正式上線運(yùn)行.
SpiNNaker[26-27]源于2005年開(kāi)始的EPSRC項(xiàng)目,負(fù)責(zé)人是ARM處理器發(fā)明人史蒂夫·佛伯(Steve Furber,1953—).SpiNNaker系統(tǒng)采用定制ARM處理器作為基本單元,分為5代,最初的102機(jī)使用了約102個(gè)ARM核,計(jì)劃2020年完成的106機(jī)則集成了約106個(gè)ARM核.SpiNNaker研究的中心任務(wù)就是探索新的體系結(jié)構(gòu),采用包交換來(lái)模擬神經(jīng)元之間的異步稀疏脈沖交換,可以在物理連接大大少于大腦的情況下實(shí)現(xiàn)相同性能的信息交換,具體細(xì)節(jié)將在第3節(jié)詳細(xì)介紹.
BrainScaleS由德國(guó)海德堡大學(xué)卡爾海因茨·邁耶(Karlheinz Meier,1955—2018)教授負(fù)責(zé)[28-29],前身是2005—2010年的FACTES項(xiàng)目,特點(diǎn)是從微觀層面研究神經(jīng)元的信號(hào)處理特性及模擬電路實(shí)現(xiàn),在介觀層面研究突觸可塑性及數(shù)字電路實(shí)現(xiàn),在8英寸晶園上實(shí)現(xiàn)了20萬(wàn)神經(jīng)元和5千萬(wàn)突觸,晶圓內(nèi)總線速度達(dá)每秒1 T脈沖,晶圓間分布式通信速度每秒10 G脈沖.在人類大腦計(jì)劃支持下,2016年完成了20塊晶圓、400萬(wàn)神經(jīng)元和10億突觸的神經(jīng)形態(tài)計(jì)算系統(tǒng)[30],速度比生物系統(tǒng)快1萬(wàn)倍.2022年(也就是人類大腦計(jì)劃結(jié)束前)預(yù)計(jì)構(gòu)造出一個(gè)500塊到5 000塊晶圓組成的大型系統(tǒng),即使是500塊方案,也能同時(shí)仿真5億神經(jīng)元,由于其速度比生物神經(jīng)元高萬(wàn)倍,因此將具備實(shí)時(shí)仿真人類大腦的能力.
我國(guó)類腦研究起步較晚,但近年來(lái)十分活躍,北京大學(xué)、清華大學(xué)、中國(guó)科學(xué)院自動(dòng)化研究所、浙江大學(xué)、四川大學(xué)等單位成立了多個(gè)類腦計(jì)算或類腦智能方面的研究中心.
2015年9月1日,北京市科學(xué)技術(shù)委員會(huì)正式發(fā)布“北京腦科學(xué)研究”專項(xiàng)規(guī)劃,從“腦認(rèn)知與腦醫(yī)學(xué)”和“腦認(rèn)知與類腦計(jì)算”2個(gè)方面進(jìn)行布局[31].“腦認(rèn)知與類腦計(jì)算”沿著“結(jié)構(gòu)仿真、器件逼近和功能超越”這條技術(shù)路線,布局了3個(gè)層次、9個(gè)方面的科研任務(wù):建設(shè)四大基礎(chǔ)性公共平臺(tái)(大腦解析仿真平臺(tái)、認(rèn)知功能模擬平臺(tái)、神經(jīng)形態(tài)器件平臺(tái)和類腦計(jì)算機(jī)系統(tǒng)平臺(tái)),開(kāi)發(fā)2款類腦計(jì)算處理器芯片(類腦處理器和機(jī)器學(xué)習(xí)處理器),研制類腦計(jì)算機(jī)軟硬件系統(tǒng),在視聽(tīng)感知、自主學(xué)習(xí)、自然會(huì)話三大類腦智能方向取得突破并實(shí)現(xiàn)規(guī)模應(yīng)用.經(jīng)過(guò)3年多的持續(xù)支持,北京已經(jīng)在類腦計(jì)算方面形成了較為系統(tǒng)的技術(shù)積累,清華大學(xué)研制的天機(jī)系列芯片和北京大學(xué)研制的超速全時(shí)視網(wǎng)膜芯片是其中的代表性成果.
清華大學(xué)團(tuán)隊(duì)提出了類腦混合計(jì)算范式架構(gòu),開(kāi)發(fā)了“天機(jī)”系列類腦芯片.2015年11月研制出首款跨模態(tài)異構(gòu)融合神經(jīng)形態(tài)類腦計(jì)算芯片,可進(jìn)行大規(guī)模神經(jīng)元網(wǎng)絡(luò)的模擬,具有超高速、實(shí)時(shí)、低功耗等特點(diǎn),相關(guān)結(jié)果于2016年12月發(fā)表在《Science》智能機(jī)器人特刊.2017年10月研制成功天機(jī)2代神經(jīng)形態(tài)芯片,采用28納米半導(dǎo)體技術(shù),集成了千萬(wàn)突觸和約4萬(wàn)個(gè)神經(jīng)元,同時(shí)支持脈沖神經(jīng)網(wǎng)絡(luò)算法和人工神經(jīng)網(wǎng)絡(luò)算法,與IBM TrueNorth相比,在芯片密度、速度和帶寬都有大幅度提升.2018年利用脈沖神經(jīng)網(wǎng)絡(luò)的時(shí)空特性,實(shí)現(xiàn)了在時(shí)空域的SNN誤差反向傳播算法,解決了函數(shù)逼近的方法處理脈沖發(fā)放時(shí)刻不可導(dǎo)問(wèn)題,建立了SNN全連接及卷積神經(jīng)網(wǎng)絡(luò)新算法.
北京大學(xué)在北京“腦認(rèn)知與類腦計(jì)算”支持下,圍繞視覺(jué)系統(tǒng)解析仿真開(kāi)展研究,研制出類腦機(jī)的“眼睛”.2015—2016年對(duì)靈長(zhǎng)類視網(wǎng)膜進(jìn)行了高精度解析仿真,實(shí)現(xiàn)了視網(wǎng)膜中央凹神經(jīng)細(xì)胞和神經(jīng)環(huán)路精細(xì)建模,提出了模擬視網(wǎng)膜機(jī)理的仿生視頻脈沖編碼模型.2017—2018年初,研制成功脈沖陣列式超速全時(shí)仿視網(wǎng)膜芯片.生物視覺(jué)信息處理機(jī)制雖然優(yōu)越,但受限于生理限制,“主頻”很慢,靈長(zhǎng)類視網(wǎng)膜每秒發(fā)放的神經(jīng)脈沖數(shù)平均不超過(guò)數(shù)十個(gè).仿視網(wǎng)膜芯片脈沖發(fā)放頻率達(dá)到40 000 Hz,“超速”人眼千倍,能夠“看清”高速旋轉(zhuǎn)葉片的文字.“全時(shí)”是指從芯片采集的神經(jīng)脈沖序列中重構(gòu)出任意時(shí)刻的畫面,這是真正機(jī)器視覺(jué)的基礎(chǔ),有望重塑包括表示、編碼、檢測(cè)、跟蹤、識(shí)別在內(nèi)的整個(gè)視覺(jué)信息處理體系.
浙江大學(xué)及杭州電子科技大學(xué)聯(lián)合研究團(tuán)隊(duì)主要面向低功耗嵌入式應(yīng)用領(lǐng)域,于2015年研發(fā)了一款基于CMOS數(shù)字邏輯的脈沖神經(jīng)網(wǎng)絡(luò)芯片“達(dá)爾文”,支持基于LIF神經(jīng)元模型的脈沖神經(jīng)網(wǎng)絡(luò)建模.2016 IEEE CIS計(jì)算智能相關(guān)的暑期學(xué)校將達(dá)爾文芯片作為一個(gè)案例供所有參加人員編程實(shí)踐與應(yīng)用開(kāi)發(fā).
2017年國(guó)家自然基金委信息科學(xué)部研究確定了“人工智能(F06)”代碼,專門設(shè)置了“認(rèn)知與神經(jīng)科學(xué)啟發(fā)的人工智能(F0607)”方向,其中與類腦直接相關(guān)的支持方向包括:視聽(tīng)覺(jué)感知模型、神經(jīng)信息編碼與解碼、神經(jīng)系統(tǒng)建模與分析、神經(jīng)形態(tài)工程、類腦芯片、類腦計(jì)算.從2018年起,我國(guó)類腦領(lǐng)域的基礎(chǔ)研究已經(jīng)全面展開(kāi).
SpiNNaker是脈沖神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)(The spiking neural network architecture)的縮寫,是英國(guó)曼徹斯特大學(xué)Steve Furber教授帶領(lǐng)的先進(jìn)處理器技術(shù)團(tuán)隊(duì)(APT)研發(fā)的類腦計(jì)算系統(tǒng),研究始于2005年,目的是借鑒大腦神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)研究新的計(jì)算體系結(jié)構(gòu).
SpiNNaker是一個(gè)大型脈沖神經(jīng)網(wǎng)絡(luò),采用獨(dú)特的全局異步局部同步(GALS)互連網(wǎng)絡(luò)結(jié)構(gòu),最新系統(tǒng)將不同時(shí)域的一百萬(wàn)ARM微處理器核心和1 200個(gè)互連計(jì)算主板高效集成為1臺(tái)高度并行的超級(jí)計(jì)算機(jī),每秒執(zhí)行200萬(wàn)億次定點(diǎn)運(yùn)算操作,支持實(shí)時(shí)事件驅(qū)動(dòng)的編程模式,適用于生物神經(jīng)網(wǎng)絡(luò)的實(shí)時(shí)模擬.
SpiNNaker系統(tǒng)由ARM微處理器核心、多核CPU芯片、計(jì)算主板、機(jī)架、機(jī)柜和整機(jī)等6個(gè)不同的層次構(gòu)成,如圖1所示.2018年11月上線的最新系統(tǒng)采用的微處理器核心是200 MHz的32-bit ARM968微處理器,擁有32 KB指令存儲(chǔ)器和64 KB數(shù)據(jù)存儲(chǔ)器,不帶浮點(diǎn)運(yùn)算單元.每顆多核CPU芯片包含18顆ARM968和一個(gè)中央片上網(wǎng)絡(luò)路由器,用異步片上網(wǎng)絡(luò)連接.48顆SpiNNaker多核CPU芯片構(gòu)成一塊計(jì)算主板.24塊主板組成一個(gè)機(jī)架.5個(gè)機(jī)架構(gòu)成一個(gè)機(jī)柜.10個(gè)機(jī)柜組成整個(gè)SpiNNaker系統(tǒng).因此,SpiNNaker系統(tǒng)包含的ARM CPU數(shù)量為18×48×24×5×10=1 036 800個(gè).一個(gè)200 MHz的ARM CPU可以生物實(shí)時(shí)模擬1 000~10 000個(gè)IF(integrate-and-fire)級(jí)別的簡(jiǎn)單神經(jīng)元模型,整個(gè)SpiNNaker系統(tǒng)理論上可以生物實(shí)時(shí)模擬10~100億個(gè)這樣的神經(jīng)元.
Fig. 1 Hierarchical structure of SpiNNaker圖1 SpiNNaker系統(tǒng)的層次結(jié)構(gòu)
Fig. 2 Network topology of the SpiNNaker system[32]圖2 SpiNNaker系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[32]
SpiNNaker多核CPU芯片包含一個(gè)6端口的通信路由器與其他芯片連接.整個(gè)系統(tǒng)形成一個(gè)六邊形平面網(wǎng)格(hexagon 2D mesh)的拓?fù)浣Y(jié)構(gòu),如圖2(a)所示,平面網(wǎng)格結(jié)構(gòu)的左右和上下方向的邊緣接口相連,最終構(gòu)成一個(gè)輪胎形態(tài)的環(huán)狀結(jié)構(gòu),如圖2(b)所示(其中CMP為chip multiple processors的縮寫,表示多核處理器芯片).
人腦中的每個(gè)神經(jīng)元通過(guò)神經(jīng)突觸與成千上萬(wàn)其他神經(jīng)元相連接,每個(gè)神經(jīng)脈沖要傳遞給成千上萬(wàn)個(gè)神經(jīng)元,這種高扇出(fan-out)的多播(multicast)傳輸方式對(duì)傳統(tǒng)超級(jí)計(jì)算機(jī)來(lái)說(shuō)是個(gè)巨大挑戰(zhàn).傳統(tǒng)超算支持點(diǎn)對(duì)點(diǎn)的大數(shù)據(jù)塊傳輸非常高效,但實(shí)現(xiàn)海量短小神經(jīng)脈沖數(shù)據(jù)包的多播傳輸效率很低.
SpiNNaker系統(tǒng)研發(fā)了一種適用于大規(guī)模脈沖神經(jīng)網(wǎng)絡(luò)模擬的高效“源地址多播傳輸”機(jī)制.SpiNNaker支持相鄰神經(jīng)元數(shù)據(jù)包(nearest neighbor package)傳輸、點(diǎn)對(duì)點(diǎn)數(shù)據(jù)包(point-to-point package)傳輸、固定路徑(fixed route package)傳輸、神經(jīng)脈沖數(shù)據(jù)包(the neural event package)傳輸?shù)?種不同的數(shù)據(jù)包傳輸方式.前3種數(shù)據(jù)包用于初始化、狀態(tài)檢測(cè)、控制信息和參數(shù)傳遞等.
Fig. 4 Propagation mechanism of source-addressed multicasting圖4 源地址廣播的實(shí)現(xiàn)機(jī)制
神經(jīng)脈沖數(shù)據(jù)包傳輸是SpiNNaker中最重要的傳輸方式,其數(shù)據(jù)包的格式如圖3所示.神經(jīng)脈沖數(shù)據(jù)包為40 b或72 b,包括32 b數(shù)據(jù)載荷和8 b控制字,還可以額外攜帶一個(gè)32 b的數(shù)據(jù)載荷.通常意義上的神經(jīng)脈沖數(shù)據(jù)包不需要攜帶數(shù)據(jù),一個(gè)數(shù)據(jù)包的到來(lái)代表著一個(gè)神經(jīng)脈沖到來(lái)的事件.在SpiNNaker系統(tǒng)中,負(fù)載是發(fā)送該神經(jīng)脈沖的神經(jīng)元的32 b源地址(可能遵循一定的規(guī)則,如16 b代表CPU編碼,16 b代表在該CPU中模擬的神經(jīng)元地址).然而,這個(gè)結(jié)構(gòu)中并沒(méi)有說(shuō)明目的地址,數(shù)據(jù)包如何被精確地傳遞到成千上萬(wàn)個(gè)目的地呢?SpiNNaker提出了“源地址多播傳輸”機(jī)制——數(shù)據(jù)包經(jīng)過(guò)的路由器根據(jù)32 b源地址查找路由表,將該數(shù)據(jù)包復(fù)制到不同的輸出口,一級(jí)級(jí)傳遞下去.
Fig. 3 Neural spike package layout[32]圖3 神經(jīng)脈沖數(shù)據(jù)包結(jié)構(gòu)[32]
如圖4所示,每顆多核CPU芯片的路由器有東(E)、西(W)、東南(SE)、西南(SW)、東北(NE)和西北(NW)6個(gè)傳輸方向,簡(jiǎn)稱a,b,c,d,e,f,還有一個(gè)“l(fā)ocal”方向表示該芯片本地18顆CPU的傳輸方向.路由器中有一個(gè)路由表.路由表在實(shí)現(xiàn)上是一個(gè)CAM芯片,存儲(chǔ)許多行(如1 024行)的路由信息,支持所有行源地址的并行比較.每行有左右2列,左邊代表一個(gè)發(fā)送數(shù)據(jù)包的源地址,右邊代表傳輸?shù)姆较颍啥辔粯?gòu)成,表示多個(gè)方向.
路由器接收到一個(gè)數(shù)據(jù)包后,根據(jù)包的源地址并行查找路由表.如果查到,路由器就按照路由表的方向指示向一個(gè)或多個(gè)方向傳輸該數(shù)據(jù)包;如果沒(méi)有查到,路由器將包按照來(lái)的方向直接傳遞(a→d,b→e,c→f,d→a,e→b,f→c).如圖4所示,假如節(jié)點(diǎn)4傳遞一個(gè)數(shù)據(jù)包到節(jié)點(diǎn)7,源地址為4;節(jié)點(diǎn)7路由表中沒(méi)有4,按照直線傳給10;節(jié)點(diǎn)10路由表中顯示源地址為4的數(shù)據(jù)包按照d方向傳遞給9;節(jié)點(diǎn)9路由表再按照d,c方向傳遞給節(jié)點(diǎn)8和節(jié)點(diǎn)12(這時(shí)數(shù)據(jù)包被復(fù)制了),以此類推.路由表的信息在脈沖神經(jīng)網(wǎng)絡(luò)運(yùn)行之前由sPyNNaker軟件系統(tǒng)(3.3節(jié)介紹)統(tǒng)一初始化.
采用源地址多播傳輸機(jī)制進(jìn)行海量神經(jīng)脈沖的高扇出分發(fā)傳遞,使得數(shù)據(jù)包無(wú)需指明眾多的目的地址就能夠大規(guī)模地按照指定方向進(jìn)行多播并行傳輸,有利于保證數(shù)據(jù)包格式的規(guī)范性,大大縮短了數(shù)據(jù)包的長(zhǎng)度,提高了傳輸?shù)乃俣?
Fig. 5 Software system architecture of SpiNNaker[32]圖5 SpiNNaker的軟件系統(tǒng)結(jié)構(gòu)[32]
SpiNNaker的軟件系統(tǒng)稱為sPyNNaker,可以將PyNN語(yǔ)言描述的脈沖神經(jīng)網(wǎng)絡(luò)解析并在SpiNNaker系統(tǒng)中仿真運(yùn)行.PyNN語(yǔ)言是一種基于Python的跨平臺(tái)脈沖神經(jīng)網(wǎng)絡(luò)描述高級(jí)語(yǔ)言,支持主流的脈沖神經(jīng)網(wǎng)絡(luò)軟件仿真平臺(tái),包括NEST,NEURON和Brian,因此SpiNNaker和BrainScaleS都支持它,以兼任支持各種脈沖神經(jīng)網(wǎng)絡(luò)模型.
sPyNNaker軟件系統(tǒng)架構(gòu)如圖5所示,各部分組成和功能均有顯示.
1) Front End Interface:PyNN.PyNN的前端接口模塊,用戶可以在客戶端利用PyNN接口編寫脈沖神經(jīng)網(wǎng)絡(luò)模型.
2) Mapping:Placement, Partitioning, Routing, Data Gnenration.將PyNN描述的脈沖神經(jīng)網(wǎng)絡(luò)根據(jù)用戶分配的硬件資源分解并映射到相應(yīng)的CPU、內(nèi)存和路由表中,生成配置信息.
3) Python Interface to SpiNNaker Hardware.負(fù)責(zé)客戶端與SpiNNaker硬件系統(tǒng)的接口,包括將配置信息通過(guò)互聯(lián)網(wǎng)下載到SpiNNaker計(jì)算機(jī)、傳輸模擬控制命令、將SpiNNaker的模擬結(jié)果傳回到前端等功能.
4) Visualization. SpiNNaker的虛擬可視化界面.
5) SARK(SpiNNaker application runtime kernel).底層的硬件管理,主要控制DMA、網(wǎng)絡(luò)接口和通信控制器等.
6) Event-Driven SpiN1API.支持事件驅(qū)動(dòng)的操作系統(tǒng),主要負(fù)責(zé)維護(hù)CPU內(nèi)核中的任務(wù)安排進(jìn)程、任務(wù)調(diào)度進(jìn)程和快速事件響應(yīng)等3個(gè)主要進(jìn)程,支持實(shí)時(shí)事件模擬.
7) User Application Code.與神經(jīng)網(wǎng)絡(luò)生成和模擬相關(guān)的應(yīng)用開(kāi)發(fā)庫(kù)文件,支持不同神經(jīng)元模型、延時(shí)模型和脈沖源等.
sPyNNaker采用時(shí)間驅(qū)動(dòng)(time-driven)和事件驅(qū)動(dòng)(event-driven)兩種混合驅(qū)動(dòng)方式來(lái)模擬脈沖神經(jīng)網(wǎng)絡(luò),時(shí)間驅(qū)動(dòng)模擬神經(jīng)元的變化,事件驅(qū)動(dòng)模擬突觸的變化,如圖6所示.CPU用時(shí)間輪詢的方式模擬生物時(shí)間,例如ΔTCPU時(shí)間模擬1 ms的生物時(shí)間,在ΔT時(shí)間內(nèi),CPU輪詢?cè)揅PU中模擬的所有神經(jīng)元,更新它們的狀態(tài).CPU同時(shí)還需要響應(yīng)來(lái)自于本CPU中神經(jīng)元或者外部神經(jīng)元發(fā)送的神經(jīng)脈沖到達(dá)的事件,支持以組播的方式更新相連接的突觸,并更新神經(jīng)元的狀態(tài).各神經(jīng)元狀態(tài)變化后可能產(chǎn)生新的神經(jīng)脈沖,觸發(fā)事件驅(qū)動(dòng).
Fig. 6 Time-driven and event-driven simulation mode[32]圖6 時(shí)間驅(qū)動(dòng)和事件驅(qū)動(dòng)的模擬方式[32]
綜上,通過(guò)sPyNNaker軟件系統(tǒng),用戶可以遠(yuǎn)程使用SpiNNaker虛擬機(jī),開(kāi)發(fā)和操作接口與目前主流的脈沖神經(jīng)網(wǎng)絡(luò)仿真平臺(tái)類似.
類腦機(jī)和大腦都是脈沖神經(jīng)網(wǎng)絡(luò).本節(jié)先介紹采用脈沖神經(jīng)網(wǎng)絡(luò)構(gòu)造任意圖靈機(jī)的一種方法,它證明了脈沖神經(jīng)網(wǎng)絡(luò)的信息處理能力不低于圖靈機(jī);然后介紹脈沖神經(jīng)網(wǎng)絡(luò)如何超越人工神經(jīng)網(wǎng)絡(luò);最后介紹噪聲可以提高脈沖神經(jīng)網(wǎng)絡(luò)的性能,使得脈沖神經(jīng)網(wǎng)絡(luò)具有實(shí)現(xiàn)馬爾可夫鏈蒙特卡洛(Markov chain Monte Carlo, MCMC)采樣與求解約束滿足NP-hard問(wèn)題的能力.
脈沖神經(jīng)網(wǎng)絡(luò)也被稱為第三代人工神經(jīng)網(wǎng)絡(luò)[33],與前兩代人工神經(jīng)網(wǎng)絡(luò)McCulloch-Pitts-Neuron[34],Perceptron[35]不同,脈沖神經(jīng)網(wǎng)絡(luò)認(rèn)為神經(jīng)元脈沖發(fā)放以及脈沖之間的時(shí)間間隔也是一種重要的特性,更貼近于人腦中的真實(shí)神經(jīng)元[36-37].
一個(gè)典型的生物神經(jīng)元的結(jié)構(gòu)如圖7所示,主要包括樹(shù)突、胞體和軸突3個(gè)部分.樹(shù)突收集其他神經(jīng)元傳來(lái)的信息并通過(guò)電流的形式將其傳給胞體,胞體相當(dāng)于一個(gè)中央處理器,樹(shù)突傳來(lái)的電流引起胞體膜電位變化,當(dāng)膜電位超過(guò)一定閾值時(shí),神經(jīng)元將發(fā)放一個(gè)脈沖信號(hào)(稱為動(dòng)作電位)并通過(guò)軸突傳給其他神經(jīng)元.動(dòng)作電位是一個(gè)幅值大約100 mV、持續(xù)時(shí)間1~2 ms的電脈沖[39].
Fig. 7 A spiking neuron and integrate-and-fire model[38]圖7 脈沖神經(jīng)元示意圖與積分發(fā)放模型[38]
計(jì)算神經(jīng)科學(xué)家根據(jù)生物神經(jīng)元的特性建立了諸多脈沖神經(jīng)元模型,主要包括積分發(fā)放(integrate-and-fire)模型[40-41]、Hodgkin-Huxley模型[3,42-44]、Izhikevich模型[45-46]和脈沖響應(yīng)(spike response)模型[47-48].這些模型以不同的精度描述了生物神經(jīng)元產(chǎn)生動(dòng)作電位的動(dòng)態(tài)過(guò)程.
常用的積分發(fā)放模型最簡(jiǎn)單如圖7所示,它將神經(jīng)元的膜表示為一個(gè)電容器C,當(dāng)神經(jīng)元接受輸入電流時(shí),神經(jīng)元的膜電位u(t)可以表示為
(1)
其中,R,I(t),urest分別表示神經(jīng)元的電阻、輸入電流和靜息電位.當(dāng)時(shí)刻t神經(jīng)元的膜電位u(t)超過(guò)一個(gè)閾值θ時(shí),神經(jīng)元將發(fā)放一個(gè)脈沖且膜電位復(fù)位到ur<θ,即:
(2)
前神經(jīng)元的軸突與后神經(jīng)元的樹(shù)突相互接觸之處叫做突觸,它影響著神經(jīng)元之間的交換信息[6-9].當(dāng)突觸前神經(jīng)元發(fā)放一個(gè)脈沖時(shí),將通過(guò)突觸在后突觸神經(jīng)元的樹(shù)突上產(chǎn)生一個(gè)電勢(shì)變化,也叫做突觸后電位(postsynaptic potential, PSP).突觸后電位的取值可正可負(fù),其中正的電位叫做興奮性突觸后電位(excitatory postsynaptic potential, EPSP),負(fù)的電位稱為抑制性突觸后電位(inhibitory post-synaptic potential, IPSP).
單個(gè)神經(jīng)元的計(jì)算能力有限,當(dāng)一群神經(jīng)聚集在一起構(gòu)成脈沖神經(jīng)網(wǎng)絡(luò)時(shí)可以實(shí)現(xiàn)復(fù)雜的計(jì)算.一個(gè)脈沖神經(jīng)網(wǎng)絡(luò)可以被定義為一個(gè)圖G=(V,E),其中節(jié)點(diǎn)V表示神經(jīng)元的集合,邊E?V×V表示突觸的集合.不同脈沖神經(jīng)網(wǎng)絡(luò)可以用不同的圖結(jié)構(gòu)表示.
本節(jié)證明利用脈沖神經(jīng)網(wǎng)絡(luò)發(fā)放脈沖之間的相位差就可以實(shí)現(xiàn)圖靈機(jī).
圖靈機(jī)的基本思想就是用機(jī)器來(lái)模擬人們用紙筆進(jìn)行數(shù)學(xué)計(jì)算的過(guò)程[49],它包括一條無(wú)限長(zhǎng)的紙帶(多條紙帶為推廣情況)、一個(gè)讀寫頭、一個(gè)狀態(tài)寄存器和一套控制程序指令.其中,紙帶上包含一個(gè)個(gè)連續(xù)的存儲(chǔ)格子,每個(gè)格子存儲(chǔ)一個(gè)數(shù)字或者符號(hào);讀寫頭可以在紙帶上移動(dòng),并可以讀取紙帶上的內(nèi)容或者寫入新的內(nèi)容;狀態(tài)寄存器用于存儲(chǔ)機(jī)器當(dāng)前所處的狀態(tài)且機(jī)器狀態(tài)數(shù)量有限;控制程序指令可以根據(jù)機(jī)器當(dāng)前所處狀態(tài)以及當(dāng)前讀寫頭所指格子上的數(shù)字或符號(hào)來(lái)確定讀寫頭的移動(dòng)方向(左移一格或者右移一格).理論證明,圖靈機(jī)可以模擬人類所能進(jìn)行的任何計(jì)算過(guò)程[50-51].
Maass[52]證明了對(duì)于任意給定的d∈N,都存在一個(gè)有限規(guī)模的脈沖神經(jīng)網(wǎng)絡(luò)NTM(d),它可以實(shí)時(shí)模擬任意的包含d條無(wú)限長(zhǎng)紙帶的圖靈機(jī).主要證明包括3個(gè)步驟:
1) 構(gòu)建幾種局部脈沖神經(jīng)網(wǎng)絡(luò),分別實(shí)現(xiàn)延時(shí)器、信號(hào)抑制器、振蕩器、起搏器、同步器、脈沖相位大小比較器、布爾閾值電路以及相位乘法運(yùn)算(相位乘以一個(gè)固定常數(shù)).
2) 證明有限規(guī)模的脈沖神經(jīng)網(wǎng)絡(luò)可以實(shí)現(xiàn)堆棧的功能,從而可以緩存數(shù)據(jù).具體來(lái)說(shuō),堆棧中一串二值序列〈b1,b2,…,bl〉∈{0,1}*可以表示為振蕩器OS的相位差:
(3)
其中,φS表示振蕩器OS與具有相同周期的一個(gè)起搏器的相位差;參數(shù)c用于控制相位差的大小,保證相位差小于振蕩器的震蕩周期,在此基礎(chǔ)上證明入棧(push)和出棧(pop)指令可以由式(1)中定義的基本網(wǎng)絡(luò)實(shí)現(xiàn).
3) 根據(jù)文獻(xiàn)[53],任意的包含d條無(wú)限長(zhǎng)的紙帶的圖靈機(jī)可以類似地包含2d個(gè)堆棧的類似的圖靈機(jī)實(shí)現(xiàn),其中每條紙帶讀寫頭所指處的左右2個(gè)部分分別用一個(gè)堆棧來(lái)表示,因此圖靈機(jī)的計(jì)算可以轉(zhuǎn)化為入棧和出棧的操作;再結(jié)合文獻(xiàn)[54],可以進(jìn)一步證明任意圖靈機(jī)的計(jì)算過(guò)程可以通過(guò)有限個(gè)布爾閾值電路來(lái)模擬,而脈沖神經(jīng)網(wǎng)絡(luò)又可以實(shí)現(xiàn)布爾閾值電路,因此脈沖神經(jīng)網(wǎng)絡(luò)可以模擬圖靈機(jī)的計(jì)算過(guò)程.
Maass[52]指出脈沖神經(jīng)網(wǎng)絡(luò)的能力優(yōu)于圖靈機(jī),主要原因有2點(diǎn):1)相比于圖靈機(jī),脈沖神經(jīng)網(wǎng)絡(luò)的輸入輸出可以為任意的實(shí)數(shù);2)圖靈機(jī)的基本操作只能作用于有限的位數(shù),而脈沖神經(jīng)網(wǎng)絡(luò)的序列存儲(chǔ)于相位φS中,因此基本操作可以直接改變整個(gè)序列.
4.1節(jié)中介紹的積分發(fā)放等脈沖神經(jīng)元模型都是確定性模型,事實(shí)上單個(gè)神經(jīng)元的離子通道門控[55]、神經(jīng)遞質(zhì)的突觸釋放[56]、皮層細(xì)胞反應(yīng)變異性[57]和人腦的認(rèn)知活動(dòng)[58]都具有隨機(jī)性.Maass[59]指出噪聲可以作為脈沖神經(jīng)網(wǎng)絡(luò)計(jì)算和學(xué)習(xí)的資源,可以提高脈沖神經(jīng)網(wǎng)絡(luò)的計(jì)算性能,下面分別介紹相關(guān)工作.
Gerstner等人[48]認(rèn)為噪聲存在于神經(jīng)元發(fā)放的閾值上,這樣神經(jīng)元的膜電位取任何值時(shí)神經(jīng)元都可以發(fā)放,膜電位越大時(shí)發(fā)放概率越高,這樣的模型也叫做隨機(jī)脈沖響應(yīng)模型.在此基礎(chǔ)上Buesing等人[60]將神經(jīng)元的發(fā)放過(guò)程理解為一個(gè)采樣過(guò)程,他們證明了一個(gè)包含K個(gè)相互連接神經(jīng)元z1,z2,…,zK的脈沖神經(jīng)網(wǎng)絡(luò)可以表示一個(gè)概率分布p(x1,x2,…,xK),進(jìn)一步若神經(jīng)元的發(fā)放概率與隨機(jī)變量x1,x2,…,xK的后驗(yàn)概率滿足條件(神經(jīng)適應(yīng)條件):
(4)
則神經(jīng)元的發(fā)放活動(dòng)等價(jià)于MCMC采樣.其中,p(zi(t)=1)表示神經(jīng)元zi在時(shí)刻t發(fā)放一個(gè)脈沖的概率;xi表示除了xi之外的其他隨機(jī)變量;τ表示神經(jīng)元發(fā)放之后的抑制期的時(shí)長(zhǎng).基于此結(jié)論,Buesing等人[60]證明了脈沖神經(jīng)網(wǎng)絡(luò)可以實(shí)現(xiàn)邊緣概率推理,他們證明了如果概率分布服從玻爾茲曼分布,則神經(jīng)適應(yīng)條件可以由脈沖神經(jīng)網(wǎng)絡(luò)中神經(jīng)元的連接自然實(shí)現(xiàn).當(dāng)網(wǎng)絡(luò)的動(dòng)態(tài)性收斂時(shí),脈沖神經(jīng)元可以看作是在對(duì)平穩(wěn)分布(目標(biāo)分布)進(jìn)行采樣,統(tǒng)計(jì)一段時(shí)間內(nèi)神經(jīng)元發(fā)放時(shí)間占總時(shí)間的比例即為邊緣概率.Pecevski等人[61]指出文獻(xiàn)[60]的研究只適用于二值隨機(jī)變量,提出了3種方法將以上結(jié)果推廣到一般圖模型:1)證明通過(guò)增加輔助變量可以將任意分布轉(zhuǎn)化為玻爾茲曼分布;2)利用馬爾可夫毯來(lái)擴(kuò)展神經(jīng)適應(yīng)條件;3)利用因式分解來(lái)擴(kuò)展神經(jīng)適應(yīng)條件.Probst等人[62]將這3種方法推廣到積分發(fā)放神經(jīng)元模型,證明了基于電導(dǎo)的積分發(fā)放神經(jīng)元可以實(shí)現(xiàn)MCMC采樣與邊緣推理.Habenschuss等人[63]研究了脈沖神經(jīng)網(wǎng)絡(luò)采樣推理的收斂速度,并證明脈沖神經(jīng)網(wǎng)絡(luò)所表示的概率分布將以指數(shù)速度收斂到平穩(wěn)分布.
噪聲還可以存在于神經(jīng)元的突觸上,Kappel等人[64-65]發(fā)現(xiàn)如果在突觸上疊加符合維納過(guò)程的隨機(jī)噪聲,突觸參數(shù)的動(dòng)態(tài)性可以實(shí)現(xiàn)Langvein采樣.據(jù)此他們提出了突觸采樣學(xué)習(xí)框架,并證明了整個(gè)網(wǎng)絡(luò)參數(shù)所表示的分布將收斂于一個(gè)平穩(wěn)分布,該框架不僅可以實(shí)現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),而且解釋了脈沖神經(jīng)網(wǎng)絡(luò)持續(xù)重新布線的原因.Yu等人[66]提出哈密頓突觸采樣學(xué)習(xí)框架,揭示了實(shí)現(xiàn)突觸可塑性的重要分子CaMKII加速脈沖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的計(jì)算機(jī)理.Kappel等人[67]進(jìn)一步將突觸采樣框架應(yīng)用到獎(jiǎng)勵(lì)學(xué)習(xí)問(wèn)題中,解釋了多巴胺、STDP和噪聲時(shí)人腦強(qiáng)化學(xué)習(xí)的基礎(chǔ).
此外Jonke等人[68]證明了包含噪聲的脈沖神經(jīng)網(wǎng)絡(luò)具有求解NP-hard約束滿足問(wèn)題的能力.其主要思想是基于機(jī),一方面Hopfield等人[69]和Aarts等人[70]已證明玻爾茲曼機(jī)可以求解NP-hard約束滿足問(wèn)題;另一方面包含噪聲的脈沖神經(jīng)網(wǎng)絡(luò)可以模擬任意的玻爾茲曼機(jī),因此可以用脈沖神經(jīng)網(wǎng)絡(luò)求解NP-hard約束滿足問(wèn)題.Jonke等人[68]還發(fā)現(xiàn)了相比于人工神經(jīng)網(wǎng)絡(luò),脈沖神經(jīng)網(wǎng)絡(luò)在求解約束滿足問(wèn)題時(shí)具有更快的求解速度.
經(jīng)典計(jì)算機(jī)的理論基礎(chǔ)是圖靈1936年奠定的,圖靈機(jī)的理論邊界那個(gè)時(shí)刻就已經(jīng)明確.馮·諾依曼體系結(jié)構(gòu)是圖靈機(jī)的一種物理實(shí)現(xiàn)模型,采用這種體系結(jié)構(gòu)的經(jīng)典計(jì)算機(jī)能力的理論邊界當(dāng)然受限于圖靈機(jī)模型.
神經(jīng)網(wǎng)絡(luò)是人工智能三大流派之一,從智能實(shí)現(xiàn)載體層次“自底向上”地開(kāi)展研究,現(xiàn)在看來(lái)是構(gòu)筑機(jī)器智能物理基礎(chǔ)的最主要的可行路線.大規(guī)模神經(jīng)網(wǎng)絡(luò)的復(fù)雜結(jié)構(gòu)和異步通信機(jī)制迥異于馮·諾依曼體系結(jié)構(gòu),在經(jīng)典計(jì)算機(jī)上進(jìn)行神經(jīng)信息處理的功耗也越來(lái)越難以承受,發(fā)展面向神經(jīng)網(wǎng)絡(luò)的體系結(jié)構(gòu),對(duì)人工智能還是一般意義上的信息處理都是必由之路.
目前廣泛應(yīng)用的人工神經(jīng)網(wǎng)絡(luò)與生物神經(jīng)網(wǎng)絡(luò)相比,還過(guò)于簡(jiǎn)化.模擬動(dòng)物大腦和人腦的精細(xì)解析有望在20年內(nèi)逐步完成,這將成為未來(lái)神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)的基本藍(lán)圖,基于這一藍(lán)圖研制的類腦機(jī),將成為實(shí)現(xiàn)更強(qiáng)人工智能乃至通用人工智能的物理平臺(tái).
類腦機(jī)的思想在計(jì)算機(jī)發(fā)明之前就提出了,研究開(kāi)發(fā)實(shí)踐也已經(jīng)進(jìn)行了30多年,多臺(tái)類腦系統(tǒng)已經(jīng)上線運(yùn)行,其中SpiNNaker專注于類腦系統(tǒng)的體系結(jié)構(gòu)研究,提出了一種行之有效的類腦方案.
以SpiNNaker為代表的類腦機(jī)采用傳統(tǒng)計(jì)算硬件和軟件實(shí)現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò),因此沒(méi)超出經(jīng)典圖靈機(jī)的范疇.隨著神經(jīng)形態(tài)器件的發(fā)展,未來(lái)20年,有望研制出逼近乃至超越生物腦的類腦機(jī),硬件神經(jīng)元和神經(jīng)突觸將具有真正的隨機(jī)性,硬件的神經(jīng)環(huán)路也將像生物神經(jīng)網(wǎng)絡(luò)一樣具備豐富的非線性動(dòng)力學(xué)行為,是否能夠突破可計(jì)算性的理論邊界、超越圖靈機(jī)?這是一個(gè)尚待解決的重大理論問(wèn)題,類腦機(jī)的研究開(kāi)發(fā)和實(shí)現(xiàn)應(yīng)該有助于這個(gè)問(wèn)題的解決.