李聲揚 莫春梅
關鍵詞: 脈沖神經網絡; 類腦芯片; 神經形態(tài)計算; 膜電位; 事件驅動
0 引言
脈沖神經網絡模擬了哺乳動物大腦的關鍵信息處理機制和通信方法,它基于類似神經細胞動作電位的脈沖編碼,從時間和空間兩方面處理數據,被譽為第三代人工神經網絡[1]。脈沖神經網絡有著強類腦屬性、生物屬性、低計算復雜度、容錯等能力[2]。得益于脈沖神經網絡強大的能力,研究者開始研究使用物理平臺實現脈沖神經網絡以解決現實中的實際問題,如人工視覺系統、圖片識別。脈沖神經網絡硬件系統旨在高效使用電路實現脈沖神經網絡,以類腦處理方法解決現實中的實際問題[2]。一般來說,脈沖神經網絡硬件系統主要由神經計算單元、互聯表、通信網絡、權重存儲器、膜電位存儲器五大部分組成。神經計算單元接收其他計算單元產生的脈沖事件、更新膜電位、產生脈沖事件并發(fā)送給其他計算單元,完成神經元關鍵信息處理?;ヂ摫肀举|是一塊存儲器,存放著每一個神經元的突觸前和突觸后神經元地址,決定了脈沖神經網絡的互聯拓撲結構。通信網絡根據互聯表信息將脈沖事件等信息從源計算單元傳輸至目標計算單元,由于硬件系統往往容納了大量的計算單元,通信量較大,一般采用片上網絡技術實現大規(guī)模神經元互聯通信。權重存儲器存放著所有神經元間的連接強度。膜電位存儲器存放著神經元的膜電位信息,當神經計算單元收到脈沖信號時,將根據該信號源地址從權重存儲器中提取出對應權重并結合上一時間步的膜電位值更新膜電位。這五大部分協調工作,完成對生物神經網絡的模擬與仿真。在先前的研究中,大量的工作已經對脈沖神經網絡硬件系統整體硬件架構、局部模塊微電路等硬件方面進行優(yōu)化(生物真實性、面積消耗、功率消耗、工作頻率、實現復雜度、吞吐量、延時等)[3-5],有的也結合算法層面、軟件層面進行協調優(yōu)化[6]。例如,針對神經計算單元的高硬件資源消耗和高計算復雜度問題,研究者通過隨機計算技術用簡單的門電路和LFSR隨機數產生器替代復雜的算術運算邏輯[3]。針對通信網絡,研究者使用高并行的片上網絡技術去支持海里神經元間的數據傳輸,使用流量預測機制、脈沖擁塞策略去防止通信鏈路阻塞,最終減少脈沖事件傳輸延時,使用無緩沖路由器技術優(yōu)化傳統通信路由器的緩存器數量,進而減少通信網絡的硬件開銷[5]。在大多數脈沖神經網絡硬件系統中,每一個脈沖神經元都部署了一個獨立的膜電位存儲單元,膜電位存儲器消耗隨神經元數量的增加而增加,尤其是對于擁有海量神經元的大規(guī)模神經硬件系統,消耗了大量的膜電位存儲器。受上述研究工作和計算機主存與Cache之間經典映射方式的啟發(fā),文章針對膜電位存儲器高開銷問題,提出了存儲復用機制,以減少膜電位存儲器開銷,最終減少脈沖神經網絡硬件系統的硬件成本。
2 脈沖神經網絡
脈沖神經網絡由大量錯綜復雜互聯在一起的脈沖神經元組成,詳細地模擬了生物神經網絡的動態(tài)行為[2]。脈沖神經元是脈沖神經網絡最基本的單元,常見的模型包括Hodgkin-Huxley(H-H)、Izhikevich(Izh)、Spike Response Mode(SRM)、Leaky Integrate-and-Fire(LIF)等[7]。這些模型通過不同計算復雜度的數學方程對生物神經元動態(tài)行為進行不同程度的模仿與近似。其中,H-H模型能夠模擬神經元的關鍵行為,且可以非常精確地模擬多種活動細節(jié),如細胞膜的鈉鉀離子通道活動情況。但是其涉及復雜、大量的計算以及眾多的參數,大多數硬件系統基于硬件實現復雜度和成本考慮,沒有采用這一模型。相較于其他模型,LIF模型不僅能夠對生物神經元關鍵行為進行抽象且具有低的計算復雜度,在生物真實性和計算復雜度兩方面取得了平衡[7]。當前大多數硬件系統采用了該模型,通過低硬件實現復雜度完成神經網絡計算。LIF可由以下公式描述:
U 表示神經元膜電位;當收到第i 個神經元產生的脈沖(動作電位)時,該神經元膜電位增加Wi,若未收到輸入脈沖,膜電位將以τ 系數指數衰減。當膜電位超過開火閾值Uthes時,該神經元將產生一個脈沖并發(fā)送給所有突觸后神經元,且膜電位快速置靜息電位Ureset,在后續(xù)一段時間內膜電位維持該值,這一時期稱為不應期。例如,如圖1(a) 所示,假設某一神經元有三個突觸前神經元1、2、3,對應權重分別為W1、W2、W3, 突觸前神經元1分別在第2和5時間步,神經元2在第1、4、5時間步產生脈沖,神經元3在第2和5時間步產生脈沖。該神經元的膜電位動態(tài)變化規(guī)律如果1(b) 所示,膜電位隨著有無脈沖輸入、連接強度、τ 系數等情況變化而變化。大量如此屬性的神經元互聯在一起形成了脈沖神經網絡,有著強大的類腦屬性。
3 膜電位存儲器復用機制
如圖2所示,在大多數脈沖神經網絡硬件系統中,每一個脈沖神經元都需要一個獨立的膜電位存儲單元,用于計算神經元在下一時間步是否產生脈沖,膜電位存儲器消耗隨神經元數量的增加而增加。由于硬件系統往往容納了大量的神經元以支持大規(guī)模神經網絡仿真和復雜的工程任務,因此傳統的膜電位存儲機制導致了較大的硬件開銷。研究表明:相較于硬件電路的超高運行頻率,單個脈沖神經元的典型動作電位產生速率非常低[4],每秒約15個[8]。此外,當脈沖神經元產生脈沖后,在一段時間內處于不應期,這期間神經元處于停機狀態(tài),其膜電位為靜息電位[9]。這一電位值往往是預先給定的,因此單獨存儲此時的膜電位信息是沒有意義的,在這種情況下,當多個神經元都處于不應期時,將導致多個存儲單元存儲著相同的值,膜電位存儲器被浪費;實際中,可以使用一個專用的存儲器預先存儲該值。另一方面,在計算機領域中,主存與Cache之間存在著經典直接映射、組相聯映射與全相聯映射方式[10]。
受到上述研究的啟發(fā),文章針對大規(guī)模脈沖神經網絡硬件系統高膜電位存儲器消耗問題,提出了神經元膜電位存儲器復用機制,包括多對一復用、多對多復用以及全連接復用。在該機制中,處于不應期的神經元將不占用存儲器,膜電位存儲單元數量少于神經元數量以減少硬件資源消耗。該機制存在一種特殊情況:當所有膜電位存儲器都被占用,而其他神經元需要使用存儲器時,即給定膜電位存儲單元數量低于處于不應期外的神經元數量時,這將導致存儲器沖突。此時,將取消膜電位存儲器中的最大膜電位值對應神經元的存儲占用,以分配給有需求的神經元。若這一最大膜電位值接近開火閾值,將強制使其對應神經元產生脈沖,否則,強制使其處于不應期。由于脈沖神經網絡具有強容錯性[2],這一策略將解決上述存儲沖突問題。
為了詳細描述文章所提出的存儲器復用機制,假設系統需要實現K個神經元且給定éK/Mù個膜電位存儲單元,M為正整數,限定éK/Mù當該存儲單元空閑時,M 個神經元中的任意一個可以使用該存儲器。當該存儲單元被占用且其他神經元需要使用該存儲單元時,將按照上述沖突策略處理。在該機制下,每個神經元的膜電位信息僅有一個存儲空間可供選擇,其發(fā)生存儲沖突概率較大。然而,這一機制可采用低成本的M 輸入1輸出選擇器硬件電路實現。多對多復用機制如圖3(b) 所示,其工作原理與多對一復用機制類似,將K 個神經元以每組Q×M 數量(Q>1) 打包為若干組,即神經元1到Q×M、Q×M+1到2(Q×M) 、...、K- (Q×M)+1到K。給定的éK/Mù個膜電位存儲單元以每組Q 數量均分為若干組(與神經元組數相等),即存儲單元1到Q、Q+1到2Q、...、éK/Mù-Q+1到éK/Mù。每一神經元組都部署了Q個專門的膜電位存儲單元,供組內所有神經元復用,即每一個神經元有Q 個膜電位存儲空間可供選擇。相較于多對一復用機制的一個可選對象,其發(fā)生存儲器沖突的概率小。但這一機制需要使用Q×M 輸入Q 輸出交叉開關電路開關才能實現,其復雜度相較于多對一機制大。全連接復用機制如圖3(c) 所示,主要工作原理和前兩策略相似,本質上相當于Q×M=K(K 個神經元為一組,éK/Mù個存儲空間為一組)的多對多機制特例。每一個神經元都有éK/Mù個存儲空間可供選擇。相較于前兩個機制,其發(fā)生存儲沖突的概率最小,但硬件實現最復雜,因為交叉開關的輸入和輸出通道數最大。
總的來說,如表1所示,相較于傳統脈沖神經元與膜電位存儲單元一一對應策略,文章提出的三個膜電位存儲器復用機制都能減少膜電位存儲器的消耗,其存儲沖突概率隨其硬件實現復雜度增大而減少。多對一策略硬件實現復雜度最低,但存儲沖突概率最大;全連接機制雖實現復雜度最大,但沖突概率最??;多對多策略在這兩者之間取得了平衡?,F實中,可根據實際應用場景、脈沖發(fā)放速率與硬件資源預算等選擇合適的M、Q 值和存儲機制。
4 結論
文章針對脈沖神經網絡硬件系統高膜電位存儲開銷問題,提出了三個存儲復用機制:多對一、多對多及全連接。它們以不同的硬件實現復雜度和存儲沖突概率實現膜電位存儲單元的減少,進而降低了整個硬件系統的成本。實際中,可以根據不同應用場景選擇某一專門存儲機制,也可使硬件系統動態(tài)支持這三個機制以應對復雜場景。未來的工作將基于液體狀態(tài)機或前饋脈沖神經網絡等模型,整合神經計算單元、權重存儲器、片上網絡技術與文章提出的膜電位存儲器復用機制,使用FPGA(現場可編程門陣列)設備實現一個完整的脈沖神經網絡硬件系統。