国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

精細(xì)神經(jīng)網(wǎng)絡(luò)仿真方法研究進(jìn)展

2023-02-21 03:25張祎晨黃鐵軍
中國圖象圖形學(xué)報 2023年2期
關(guān)鍵詞:方程組尺度神經(jīng)元

張祎晨,黃鐵軍,2*

1.北京大學(xué)計算機學(xué)院,北京 100871; 2.北京大學(xué)人工智能研究院,北京 100871

0 引 言

理解大腦神經(jīng)元的信息處理機制和計算原理是腦科學(xué)領(lǐng)域最重要的問題之一。大腦不同腦區(qū)的神經(jīng)元具有很高的復(fù)雜性。不同于現(xiàn)有人工神經(jīng)網(wǎng)絡(luò)中的點神經(jīng)元模型,生物大腦中單個神經(jīng)元具有非常復(fù)雜的結(jié)構(gòu),這種復(fù)雜結(jié)構(gòu)稱為樹突。大量研究工作表明樹突在信息處理中表現(xiàn)出很強的非線性(Stuart和Sakmann,1994;Schiller等,1997;Larkum等,1999;Schiller等,2000)。這種非線性特性對大腦神經(jīng)元實現(xiàn)不同的信息處理功能有著重要作用(Payeur等,2019;Gidon等,2020;Poirazi和Papoutsi,2020)。由于實驗條件的限制,人們對于樹突的計算機理及其在神經(jīng)環(huán)路信息處理中的作用與機制了解仍然十分有限。建模仿真可以在實驗限制之外幫助人們理解大腦的計算機理。

精細(xì)神經(jīng)元模型(Rall,1962;Segev和Rall,1988)對真實神經(jīng)元樹突的信息處理過程進(jìn)行模擬,可對真實大腦神經(jīng)元的生物物理反應(yīng)過程進(jìn)行仿真,在實驗條件限制之外對樹突信息處理過程進(jìn)行探索,是幫助人們理解樹突計算機理的重要方式。

精細(xì)神經(jīng)網(wǎng)絡(luò)仿真幫助理解神經(jīng)環(huán)路功能背后的實現(xiàn)機理。當(dāng)仿真規(guī)模從單個神經(jīng)元擴大到網(wǎng)絡(luò)時,神經(jīng)環(huán)路和大規(guī)模神經(jīng)網(wǎng)絡(luò)模型可以實現(xiàn)從離子通道到網(wǎng)絡(luò)動力學(xué)的多尺度仿真(Markram等,2015;Migliore等,2015;Billeh等,2020;Hjorth等,2020)。由于現(xiàn)有實驗條件無法實現(xiàn)從離子通道到網(wǎng)絡(luò)尺度的同時測量,因此大規(guī)模精細(xì)神經(jīng)網(wǎng)絡(luò)仿真可以幫助科學(xué)家擺脫實驗條件的限制,對神經(jīng)環(huán)路的信息處理過程以及功能進(jìn)行理論分析,對于理解神經(jīng)環(huán)路功能背后的機理具有重要作用(Einevoll等,2019)。

除了可以幫助科學(xué)家理解神經(jīng)元樹突的計算機理以及大腦神經(jīng)環(huán)路功能背后的機制,精細(xì)神經(jīng)元以及精細(xì)神經(jīng)網(wǎng)絡(luò)模型可能啟發(fā)新型類腦智能算法(黃鐵軍 等,2016;曾毅 等,2016)。

精細(xì)神經(jīng)元所具有的強大計算能力使其在處理人工智能相關(guān)任務(wù)時表現(xiàn)出強大的可能性。由于樹突在神經(jīng)元信息處理中的非線性特性,單個精細(xì)神經(jīng)元模型的響應(yīng)需要多層人工神經(jīng)網(wǎng)絡(luò)才能擬合,表明單個精細(xì)神經(jīng)元的計算能力與多層人工神經(jīng)網(wǎng)絡(luò)相當(dāng)(Poirazi和Mel,2001;H?usser和Mel,2003;Poirazi等,2003;Beniaguev等,2021)。因此,一些復(fù)雜任務(wù)只需要單個精細(xì)神經(jīng)元就可以完成,例如求解異或問題(Gidon等,2020)、信號的時空濾波等(Payeur等,2019)。

精細(xì)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程仿真為精細(xì)神經(jīng)元模型提供了學(xué)習(xí)算法,為構(gòu)建基于精細(xì)神經(jīng)元的類腦智能算法提供了基礎(chǔ)?;诰?xì)神經(jīng)元的學(xué)習(xí)算法使得精細(xì)神經(jīng)元模型可以通過不斷學(xué)習(xí)逐漸“學(xué)會”完成復(fù)雜任務(wù)(Moldwin和Segev,2020;Bicknell和H?usser,2021;Moldwin等,2021;Payeur等,2021),而不需要人為對模型相關(guān)參數(shù)進(jìn)行調(diào)試。此外,精細(xì)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程仿真可以幫助科學(xué)家理解大腦學(xué)習(xí)機制(Urbanczik和Senn,2014;Bono和Clopath,2017;Sacramento等,2018;Lillicrap等,2020)。對大腦學(xué)習(xí)機制的深入理解可能啟發(fā)更強的人工智能算法(Hassabis等,2017;Chavlis和Poirazi,2021)。

綜上,結(jié)合精細(xì)神經(jīng)元強大的計算能力以及精細(xì)神經(jīng)元上的學(xué)習(xí)方法,精細(xì)神經(jīng)網(wǎng)絡(luò)在構(gòu)建新型類腦智能模型、啟發(fā)新型人工智能算法方面展現(xiàn)出強大的可能性。

精細(xì)神經(jīng)元仿真對腦科學(xué)和人工智能領(lǐng)域的研究均有重要作用。由于精細(xì)神經(jīng)元模型包含復(fù)雜的生理特性,其模型方程不存在解析解,只能通過仿真的方式得到模型在給定刺激下的響應(yīng)。然而,精細(xì)神經(jīng)元仿真需要進(jìn)行大量計算,巨大的計算量給相關(guān)研究工作帶來了很大的挑戰(zhàn)。

精細(xì)神經(jīng)元建模的理論基礎(chǔ)主要包括Hodgkin和Huxley于1952年提出的 HH 模型(Hodgkin和Huxley,1952)以及Rall于1959年提出的電纜理論(cable theory)(Rall,1959)。HH模型通過一組常微分方程建模神經(jīng)元各位點離子通道產(chǎn)生的電流;電纜理論使用偏微分方程建模不同位點間響應(yīng)的相互影響 (圖1)。

圖1 精細(xì)神經(jīng)元模型(Kumbhar等, 2019)

綜合HH模型與電纜理論,精細(xì)神經(jīng)元模型可用偏微分方程描述為

(1)

式中,cm表示神經(jīng)元細(xì)胞膜的電容值,v(t,x) 表示神經(jīng)元各個位置以及各個時刻的電壓值,ion(v(t,x)) 表示離子通道產(chǎn)生的電流,通常為HH模型及其變種。通過建模各位點的電流響應(yīng),精細(xì)神經(jīng)元模型可對樹突的信息處理過程進(jìn)行建模。使用數(shù)值方法求解上述方程的過程稱為仿真。在實際中通常將單個神經(jīng)元劃分為成百上千個計算單元,這給仿真帶來了巨大的計算量。

如何對精細(xì)神經(jīng)元以及精細(xì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行高效仿真是一個經(jīng)典的研究問題。本文對精細(xì)仿真方法相關(guān)研究工作進(jìn)行總結(jié)與梳理,從以下4個方面總結(jié)了相關(guān)方法(圖2):1)主流仿真平臺與核心仿真算法;2)網(wǎng)絡(luò)尺度并行仿真算法;3)神經(jīng)元尺度并行仿真算法;4)基于GPU(graphics processing unit)的并行仿真算法。通過對現(xiàn)有方法進(jìn)行分析,本文進(jìn)一步對精細(xì)神經(jīng)元仿真方法的未來研究方向進(jìn)行展望。

圖2 本文組織架構(gòu)

1 精細(xì)仿真平臺與核心仿真方法

精細(xì)神經(jīng)元仿真的本質(zhì)是使用數(shù)值方法對精細(xì)神經(jīng)元模型對應(yīng)的偏微分方程進(jìn)行求解。精細(xì)神經(jīng)元仿真平臺對仿真過程的實現(xiàn)進(jìn)行封裝,使用戶可以不必了解仿真過程,專注于模型的構(gòu)建。精細(xì)神經(jīng)元仿真平臺是精細(xì)神經(jīng)元仿真、建模的基礎(chǔ)。本節(jié)將對精細(xì)神經(jīng)元仿真平臺和平臺中使用的數(shù)值仿真方法進(jìn)行介紹。

1.1 精細(xì)仿真平臺

GENESIS(Bower和Beeman,1998)是早期發(fā)布的經(jīng)典仿真平臺,支持精細(xì)神經(jīng)元的建模仿真。NEURON(Hines和Carnevale,1997)是國際上最主流的通用神經(jīng)計算仿真平臺,在最大的神經(jīng)元模型數(shù)據(jù)庫 ModelDB(McDougal等,2017)中 80% 的模型均使用NEURON 實現(xiàn)(Tikidji-Hamburyan等,2017)(圖3)。由于 NEURON 與 GENESIS 的開發(fā)時間較早,只能支持 CPU 硬件平臺的仿真,且對于存儲以及計算的優(yōu)化相對較差,因此在進(jìn)行大規(guī)模精細(xì)神經(jīng)網(wǎng)絡(luò)仿真時需要的存儲及計算資源較多且仿真效率較低。

圖3 各仿真平臺使用情況(Tikidji-Hamburyan等,2017)

GPU逐漸應(yīng)用于精細(xì)神經(jīng)仿真中。GPU 由于其強大的計算能力廣泛應(yīng)用于科學(xué)計算、深度學(xué)習(xí)等領(lǐng)域(NVIDIA,2021)。為滿足大規(guī)模網(wǎng)絡(luò)仿真時的存儲和計算效率要求,越來越多的平臺使用 GPU 對精細(xì)神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真(Akar等,2019;Kumbhar等,2019;Ben-Shalom等,2022)。CoreNEURON(Kumbhar等,2019) 對 NEURON 的引擎進(jìn)行了存儲和計算效率上的優(yōu)化,降低仿真所需內(nèi)存并提高了仿真效率。此外,CoreNEURON支持使用GPU進(jìn)行仿真,并針對仿真計算過程進(jìn)一步優(yōu)化,利用GPU強大的計算能力大幅提高了仿真效率。Arbor(Akar等,2019)同樣是一款支持GPU的精細(xì)神經(jīng)元仿真平臺,通過針對多核CPU 以及 GPU 的優(yōu)化提高仿真效率。NeuroGPU(Ben-Shalom等,2022)相比 CoreNEURON 和 Arbor 使用更細(xì)粒度的并行算法對仿真進(jìn)行加速,效率更高,但仿真準(zhǔn)確性有所下降。

1.2 核心仿真方法

1.2.1 精細(xì)仿真整體過程

當(dāng)前仿真平臺均使用隱式有限差分法對偏微分方程式(1)進(jìn)行求解。雖然實現(xiàn)上有所不同,其核心方法以及整體流程一致。隱式方法對方程中的位置電壓使用未來時刻的電壓值替代。對式(1)中的微分項使用差分項替換,可得

(2)

式中,Δt表示離散所使用的時間步長,Δx表示空間步長,j表示空間離散化后計算單元的編號。式(2)等號左側(cè)差分項用于逼近v關(guān)于時間t的偏導(dǎo),等號右側(cè)差分項用于逼近v關(guān)于空間x的偏導(dǎo)。為求解各時刻的電壓值,需要得到v(t+Δt) 與v(t)的遞推關(guān)系。然而,式(2)無法直接得到遞推關(guān)系,因此需要對式(2)進(jìn)行一系列變換。經(jīng)過一系列推導(dǎo)后,可以得到線性方程組,即

MΔv=r

(3)

式中,M表示由神經(jīng)元動力學(xué)(包括離子通道電流、突觸電流)以及不同計算單元之間電流的相互影響產(chǎn)生的系數(shù)矩陣,由于電流只在相鄰計算節(jié)點之間流動,因此M為稀疏的偽三對角線矩陣(圖4),只在相鄰計算單元對應(yīng)位置的值不為0;Δv表示所有計算單元的電壓增量組成的向量;r為方程組右值向量,由神經(jīng)元動力學(xué)產(chǎn)生的電流所組成。求解線性方程組式(2),即可得到所有計算單元的電壓增量,由此可以得到下一時刻各計算單元的電壓值v(t+Δt) =v(t)+Δv。

由上述數(shù)值方法可知,精細(xì)神經(jīng)元的仿真過程步驟如下(圖4):

圖4 精細(xì)神經(jīng)元模型與仿真流程

1)給定神經(jīng)元模型各計算單元的電壓初值;

2)根據(jù)當(dāng)前各計算單元的電壓計算初始離子通道電流、各位點的軸向電流等值,并由這些值構(gòu)造線性方程組式(3);

3)通過求解線性方程組式(3),得到所有計算單元的電壓增量;

4)根據(jù)電壓增量更新所有電壓值得到下一時刻的電壓。

以上步驟2)—4)迭代進(jìn)行,最終可以得到模型所有計算單元在各時刻的電壓值,即式(1)的數(shù)值解。整體仿真過程中,求解線性方程組的計算復(fù)雜度為O(n3),n表示每個神經(jīng)元所包含的計算單元數(shù)目,為整個仿真過程的瓶頸。

1.2.2 Hines算法

為解決精細(xì)神經(jīng)元仿真中求解方程組計算量過大的問題,Hines(1984)提出一種高效求解算法,稱為Hines算法。Hines算法利用方程組的系數(shù)矩陣為偽三對角線稀疏矩陣這一特性,使用特殊的高斯消元法對方程組進(jìn)行求解,將求解方程組的計算復(fù)雜度從O(n3)降低為O(2n),如算法1所示。由于計算復(fù)雜度低且仿真精度高,Hines算法成為主流仿真平臺的核心算法。

算法1 Hines算法 (Valero-Lara等,2017)

1) void solveHines(double *u, double *l, double *d, double *rhs, int *p, intcellSize)

//u: 上對角線元素,l: 下對角線元素,d:對角線元素,*表示指針,rhs: 方程組右值,p:父節(jié)點,cellSize:元素數(shù)目

2) inti;

3) doublefactor;

4) // 三角化過程

5) fori=cellSize-1→ 0 do

6)factor=u[i]/d[i];

7)d[p[i]] -=factor*l[i]; // 消元

8)rhs[p[i]] -=factor*rhs[i]; // 消元

9) end for;

10)rhs[0] /=d[0];

11) // 回代過程

12) fori= 1 →cellSize-1 do

13)rhs[i] -=l[i] *rhs[p[i]];

14)rhs[i]/=d[i];

15) end for。

1.3 小結(jié)

現(xiàn)有仿真平臺均使用隱式有限差分法對精細(xì)神經(jīng)元進(jìn)行仿真。Hines算法因其計算效率與仿真精度成為現(xiàn)有平臺的核心仿真算法。盡管Hines算法在求解線性方程組中有很高的計算效率,但當(dāng)建模較為精細(xì)時,計算復(fù)雜度依然很大。尤其在進(jìn)行大規(guī)模網(wǎng)絡(luò)仿真時,由于網(wǎng)絡(luò)包含大量計算單元,使用Hines算法進(jìn)行仿真耗時過長。同時由于模型較為復(fù)雜,現(xiàn)有神經(jīng)形態(tài)硬件無法支持精細(xì)神經(jīng)元模型的仿真。為解決仿真效率這一問題,相關(guān)工作嘗試使用并行的方式對精細(xì)神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真。

2 網(wǎng)絡(luò)尺度并行仿真方法

網(wǎng)絡(luò)尺度并行主要用于精細(xì)神經(jīng)網(wǎng)絡(luò)仿真。由于各神經(jīng)元求解線性方程組的計算互不影響,因此不同神經(jīng)元的計算可以并行執(zhí)行。網(wǎng)絡(luò)尺度并行方法的主要思想是通過對網(wǎng)絡(luò)進(jìn)行劃分,使每一物理計算核負(fù)責(zé)一組若干神經(jīng)元模型的計算(圖5),從而充分利用硬件計算資源提升網(wǎng)絡(luò)仿真效率。

圖5 CPU上的網(wǎng)絡(luò)尺度并行方法

PGENESIS是經(jīng)典仿真平臺GENESIS的并行版本,通過網(wǎng)絡(luò)尺度并行的方式使得GENESIS平臺可以利用并行的方式進(jìn)行大規(guī)模網(wǎng)絡(luò)仿真(Goddard和Hood,1998)。

主流仿真平臺NEURON同樣支持網(wǎng)絡(luò)尺度并行(Migliore等,2006;Lytton等,2008)。進(jìn)行大規(guī)模網(wǎng)絡(luò)仿真時,整個網(wǎng)絡(luò)劃分到不同的硬件處理單元,通過多進(jìn)程的方式進(jìn)行并行。仿真中,各進(jìn)程對網(wǎng)絡(luò)中的各神經(jīng)元進(jìn)行計算,并對神經(jīng)元產(chǎn)生的脈沖發(fā)放信號進(jìn)行通信,不同進(jìn)程上神經(jīng)元產(chǎn)生的脈沖發(fā)放信號通過消息傳遞接口(message passing interface,MPI)傳輸(圖6)。Hines等人(2011)進(jìn)一步對比了MPI通信的不同實現(xiàn)方式對仿真性能的影響。借助NEURON上的網(wǎng)絡(luò)尺度并行方法,Lytton等人(2016)探究了使用不同數(shù)目的計算節(jié)點對不同類型、不同規(guī)模的網(wǎng)絡(luò)進(jìn)行仿真時的運行效率。實驗結(jié)果表明網(wǎng)絡(luò)尺度并行方法有很好的可擴展性,可以充分利用已有計算資源對大規(guī)模網(wǎng)絡(luò)進(jìn)行仿真。

圖6 NEURON中網(wǎng)絡(luò)尺度并行算法(Migliore等,2006)

為進(jìn)一步提升NEURON在大規(guī)模仿真時的計算效率,Kumbhar等人(2016)對NEURON的計算過程進(jìn)行優(yōu)化。不同于NEURON使用MPI的進(jìn)程級并行,Kumbhar等人(2016)使用更輕量的線程級并行,效率更高。實驗表明,使用線程級并行可將仿真效率提升約12%。此外,Kumbhar等人(2016)對NEURON中的數(shù)據(jù)存儲方式進(jìn)行優(yōu)化,對計算時的數(shù)據(jù)進(jìn)行向量化存儲(圖7),提升存儲帶寬,進(jìn)一步提升仿真計算效率。

圖7 優(yōu)化數(shù)據(jù)存儲(Kumbhar等,2016)

由于線程級并行有著較高的仿真效率,Valero-Lara等人(2019)進(jìn)一步提出同時使用多線程與多進(jìn)程的網(wǎng)絡(luò)尺度并行方法,使用MPI+OpenMP的實現(xiàn)方式對大規(guī)模網(wǎng)絡(luò)進(jìn)行仿真。為進(jìn)一步提升仿真效率,Valero-Lara等人(2019)對如何同時進(jìn)行計算與通信進(jìn)行了探索。

網(wǎng)絡(luò)尺度并行方法對不同神經(jīng)元的計算進(jìn)行并行,對大規(guī)模網(wǎng)絡(luò)的仿真有顯著的效率提升。網(wǎng)絡(luò)尺度并行方法通過充分利用多核CPU、計算集群的算力,提高仿真中方程組求解以及整個仿真過程的效率。經(jīng)典仿真平臺NEURON與GENESIS已集成相關(guān)網(wǎng)絡(luò)尺度并行方法,支持使用計算集群或超級計算機進(jìn)行大規(guī)模網(wǎng)絡(luò)的仿真。

然而,對于每個神經(jīng)元自身的方程組求解,網(wǎng)絡(luò)尺度并行方法依舊使用Hines算法串行進(jìn)行,導(dǎo)致當(dāng)網(wǎng)絡(luò)中單神經(jīng)元模型較為復(fù)雜時(例如包含上千計算單元的CA1模型(Migliore等,2004)、purkinje模型(Masoli等,2015),包含幾萬計算單元的樹突棘尺度模型等),單個神經(jīng)元對應(yīng)方程組的求解需要大量計算,耗時過長,網(wǎng)絡(luò)尺度并行無法取得令人滿意的性能提升。為進(jìn)一步提升仿真效率,相關(guān)工作提出神經(jīng)元尺度的并行仿真方法。

3 神經(jīng)元尺度并行仿真方法

神經(jīng)元尺度并行方法對每個神經(jīng)元內(nèi)的求解線性方程組計算進(jìn)行并行。相比于網(wǎng)絡(luò)尺度的并行方法,神經(jīng)元尺度并行粒度更細(xì),并且可與網(wǎng)絡(luò)尺度并行同時使用,以進(jìn)一步提升仿真性能。然而,神經(jīng)元內(nèi)部的方程組求解存在大量依賴關(guān)系,如何對其進(jìn)行并行是一個需要研究的問題。為了使神經(jīng)元內(nèi)部計算可以并行,現(xiàn)有方法主要使用以下兩種策略:1)神經(jīng)元劃分并行,將神經(jīng)元劃分為若干子塊,對不同子塊中不存在依賴關(guān)系的部分進(jìn)行并行;2)基于關(guān)鍵值近似的并行,對關(guān)鍵計算節(jié)點的值進(jìn)行近似增大并行度,從而進(jìn)一步提升計算效率。

3.1 神經(jīng)元劃分并行方法

神經(jīng)元不同分支上的節(jié)點計算互相獨立是神經(jīng)元尺度并行的主要依據(jù)。由 Hines算法的實現(xiàn)過程可知,神經(jīng)元模型中相連的計算節(jié)點之間存在計算的依賴關(guān)系,而不同分支上的節(jié)點計算相互獨立,存在可并行性。

將神經(jīng)元劃分為若干子塊是一種簡單有效的并行方式。Hines等人于2008年提出了名為 neuron splitting(Hines等,2008a)和multi-split(Hines等,2008b)的方法,將神經(jīng)元劃分為若干部分進(jìn)行計算。其中,neuron splitting(Hines等,2008a)提出在計算時可將神經(jīng)元模型劃分為兩部分進(jìn)行并行,只需要額外付出少量的數(shù)據(jù)傳輸代價,就可以在不影響計算精度的情況下提高計算效率。multi-split(Hines等,2008b)對模型進(jìn)行進(jìn)一步劃分,給出了將神經(jīng)元模型劃分為多個子塊后的并行計算方式(圖8)。相比neuron splitting將模型劃分為兩部分,multi-split 有更大的并行度,但同時也需要付出更多額外的計算和數(shù)據(jù)傳輸代價。NEURON 平臺已經(jīng)集成了 multi-split 方法供用戶直接使用。然而,multi-split 方法需要用戶人為對神經(jīng)元進(jìn)行劃分,因此劃分策略對效率有很大影響。

圖8 multi-split方法(Hines等,2008b)

Eichner等人(2009)提出的基于多核CPU的仿真方法同樣使用了multi-split對神經(jīng)元的計算進(jìn)行并行。為進(jìn)一步提升并行度,該方法對神經(jīng)元各計算節(jié)點進(jìn)行重新編號,改變方程組求解時的依賴關(guān)系,使得可并行子塊數(shù)目增多,以此提高計算效率。

然而,由于求解線性方程組的計算中各神經(jīng)元計算節(jié)點之間的依賴關(guān)系,劃分子塊的方式雖然可以在一定程度上并行,但子塊連接處的節(jié)點需要在與其相連的子塊均完成計算后才能進(jìn)行計算,導(dǎo)致部分子塊需要等待其他子塊完成計算后才能進(jìn)行計算,并行度低,影響計算效率。

3.2 基于關(guān)鍵節(jié)點近似的并行方法

為提高可并行度,部分方法對關(guān)鍵節(jié)點的值進(jìn)行近似,消除部分節(jié)點之間的依賴關(guān)系。例如,Mascagni(1991)對神經(jīng)元兩分支連接處的關(guān)鍵節(jié)點值進(jìn)行假設(shè),將原本無法并行的部分進(jìn)行并行,完成分支的計算后再根據(jù)各分支的計算結(jié)果對原本假設(shè)的關(guān)鍵節(jié)點值進(jìn)行求解,得到最終計算結(jié)果。然而,該方法需要首先使用假設(shè)值求解方程組,然后進(jìn)行假設(shè)值節(jié)點的計算,相比傳統(tǒng)的直接求解方程組需要進(jìn)行額外計算。

Rempe和Chopp(2006)首先通過顯式方法對各分支連接處節(jié)點的值進(jìn)行近似,有了連接處節(jié)點的值后,對各分支的計算進(jìn)行并行,再根據(jù)計算結(jié)果對預(yù)測值進(jìn)行修正(圖9)。這種方式可以大幅提高并行度,然而,神經(jīng)元中包含大量連接節(jié)點,對所有連接節(jié)點均進(jìn)行近似會引入較大誤差。Kozloski和Wagner(2011)將Rempe和Chopp(2006)方法與Hines算法相結(jié)合,只對部分連接處節(jié)點使用顯式方法進(jìn)行近似,以提升仿真精度。

圖9 不同類型求解方法示意(Kozloski和Wagner,2011)

雖然這種對關(guān)鍵計算節(jié)點進(jìn)行近似的方法可以增大神經(jīng)元的并行度,但近似會帶來結(jié)果的不準(zhǔn)確,且部分方法需要引入額外的計算量,影響計算效率。

3.3 小結(jié)

神經(jīng)元尺度并行方法對神經(jīng)元內(nèi)部計算進(jìn)一步進(jìn)行并行,理論上比網(wǎng)絡(luò)尺度并行有更高的計算效率。然而,當(dāng)前神經(jīng)元尺度的并行方法存在精度以及計算效率方面的問題?,F(xiàn)有神經(jīng)元劃分的方法著重解決劃分之后如何計算的問題,對于劃分策略沒有進(jìn)行過多研究,導(dǎo)致用戶在實際使用時往往需要人為進(jìn)行劃分,計算效率較低?;陉P(guān)鍵節(jié)點近似的并行方法由于近似值導(dǎo)致結(jié)果不夠精確,此外,這類方法為增大并行度,往往需要引入額外的計算,影響計算效率。

4 基于GPU的并行仿真方法

GPU因為其強大的算力在高性能計算中得到廣泛使用(NVIDIA,2021),同樣得以用于精細(xì)神經(jīng)元并行方法上,大幅提升了精細(xì)神經(jīng)網(wǎng)絡(luò)的仿真效率?;贕PU的并行仿真方法大體也可分為網(wǎng)絡(luò)尺度并行和神經(jīng)元尺度并行兩類。網(wǎng)絡(luò)尺度并行對不同神經(jīng)元的計算進(jìn)行并行;神經(jīng)元尺度并行進(jìn)一步對各神經(jīng)元內(nèi)部的計算進(jìn)行并行。

4.1 基于GPU的網(wǎng)絡(luò)尺度并行方法

網(wǎng)絡(luò)尺度并行是 GPU 上使用的主流方法。由于網(wǎng)絡(luò)尺度并行相對容易保證計算精度,相關(guān)研究工作提出基于GPU的網(wǎng)絡(luò)尺度并行方法。GPU 上的網(wǎng)絡(luò)尺度并行方法核心思想與 CPU 上的并行方法類似,均利用神經(jīng)元之間計算互相獨立的特點對每個神經(jīng)元的計算進(jìn)行并行。不同點在于由于 GPU 擁有大量的物理計算單元,因此通常情況下每個線程負(fù)責(zé)一個神經(jīng)元的計算(圖10)。

圖10 基于GPU的網(wǎng)絡(luò)尺度并行方法

針對 GPU 的硬件特性對方法實現(xiàn)進(jìn)行優(yōu)化可以充分利用 GPU 的硬件資源,進(jìn)一步提升計算效率。Kumbhar等人(2016)在對NEURON計算過程進(jìn)行優(yōu)化的基礎(chǔ)上進(jìn)一步實現(xiàn)了GPU上的網(wǎng)絡(luò)尺度并行仿真,并針對GPU進(jìn)行優(yōu)化,提升計算效率。Valero-Lara等人(2017)提出了 Hines算法的并行方法 cuHinesBatch,并比較了不同數(shù)據(jù)存儲方式對該算法在GPU上計算效率的影響(圖11),相比于經(jīng)典串行 Hines算法,其計算效率提高超過一個量級。

圖11 不同數(shù)據(jù)排列方式對比(Valero-Lara等,2017)

4.2 基于GPU的神經(jīng)元尺度并行方法

與CPU上的神經(jīng)元尺度并行方法類似,相關(guān)工作提出基于GPU的神經(jīng)元尺度并行方法,對神經(jīng)元內(nèi)部的計算進(jìn)一步并行,利用GPU強大的并行計算能力進(jìn)一步提升仿真效率。

Ben-Shalom等人(2013)于2013年提出使用 GPU 對神經(jīng)元內(nèi)部的方程組求解進(jìn)行加速,他們使用Stone方法(Stone,1973)對求解過程進(jìn)行并行化,并在 GPU 上進(jìn)行實現(xiàn)(圖12)。然而,由于Stone方法的使用,Ben-Shalom等人(2013)的方法雖然提高了整體計算過程的并行度,但是在仿真中引入了額外的計算,將原本 8n的計算量提升到了 20nlog2n。這種額外的計算影響計算效率,且在仿真時容易產(chǎn)生計算誤差。實驗表明,Ben-Shalom等人(2013)方法的計算結(jié)果相比Hines算法有一定誤差?;诖朔椒ǎ珺en-Shalom等人(2022)進(jìn)一步開發(fā)了支持神經(jīng)元尺度并行的 GPU 仿真平臺 NeuronGPU(Ben-Shalom等,2022)。同樣地,NeuronGPU在仿真時也存在誤差。

圖12 Ben-Shalom等人(2013)的GPU并行方法

Tsuyuki等人(2016)使用 NVIDIA 提供的稀疏矩陣加速庫 cuSPARSE,在GPU上實現(xiàn)共軛梯度算法對方程組進(jìn)行求解。由于共軛梯度算法是一種迭代算法,使用其進(jìn)行求解需要重復(fù)多次矩陣—向量相乘的計算,相比Hines算法直接求解方程組引入了額外的計算量且影響精度。Vooturi等人(2017)通過對方程組系數(shù)矩陣進(jìn)行分解提高并行度,并利用 GPU 對計算進(jìn)行加速,同樣由于引入了額外計算,影響計算效率。Huber(2018)利用 GPU大量的計算單元對神經(jīng)元的每一分支分配一個線程進(jìn)行計算。然而由于神經(jīng)元包含的分支數(shù)量可以達(dá)到幾百,因此對網(wǎng)絡(luò)進(jìn)行仿真時,過多的線程數(shù)目導(dǎo)致的線程空等以及調(diào)度會帶來額外開銷,影響效率,且隨著網(wǎng)絡(luò)規(guī)模增大效率下降明顯。

4.3 小結(jié)

基于GPU的并行仿真方法利用GPU強大的計算能力可以大幅提升精細(xì)神經(jīng)網(wǎng)絡(luò)仿真效率。網(wǎng)絡(luò)尺度并行方法是GPU上使用的主流方法,在提升效率的同時可以保證仿真精度?;贕PU的神經(jīng)元尺度方法有更高的并行度,然而,現(xiàn)有該類方法存在仿真精度及引入額外計算的問題。

5 結(jié) 語

表1總結(jié)了現(xiàn)有主要仿真方法的核心思想以及存在的不足。雖然從1990年開始陸續(xù)有相關(guān)工作提出相關(guān)方法對精細(xì)神經(jīng)元仿真計算進(jìn)行加速,且近些年相關(guān)工作逐漸增多,但目前依舊沒有一個精度高且效率高的仿真方法支持大規(guī)模復(fù)雜精細(xì)神經(jīng)網(wǎng)絡(luò)的高效仿真。

表1 不同仿真方法的特點與不足

網(wǎng)絡(luò)尺度并行利用了不同神經(jīng)元的計算互相獨立的特性,將各神經(jīng)元的計算進(jìn)行并行,在提高效率的同時容易保證精度。網(wǎng)絡(luò)尺度并行是精細(xì)神經(jīng)網(wǎng)絡(luò)并行仿真的基礎(chǔ),使得精細(xì)神經(jīng)網(wǎng)絡(luò)仿真可以在計算集群以及超級計算機上進(jìn)行,使得大規(guī)模精細(xì)神經(jīng)網(wǎng)絡(luò)仿真成為可能。

神經(jīng)元尺度并行方法對各神經(jīng)元內(nèi)部求解方程組的計算進(jìn)行并行,并行粒度更細(xì)。使用更細(xì)粒度并行可以充分利用計算集群或超級計算機上的計算資源,解決網(wǎng)絡(luò)尺度并行方法中神經(jīng)元內(nèi)部串行計算導(dǎo)致的計算效率問題。一個精確且高效的神經(jīng)元尺度并行方法可以很大程度提升仿真效率,然而,當(dāng)前神經(jīng)元尺度的并行方法很少關(guān)注并行策略的問題,導(dǎo)致現(xiàn)有方法對神經(jīng)元內(nèi)部進(jìn)行并行時無法取得很好的負(fù)載均衡,影響計算效率。此外,現(xiàn)有方法為提高并行度所引入的近似和額外計算導(dǎo)致計算結(jié)果不夠精確,同時影響計算效率。

近年來,越來越多的工作使用GPU進(jìn)行精細(xì)神經(jīng)網(wǎng)絡(luò)的仿真。GPU強大的并行計算能力大幅提升了仿真效率。GPU上的并行仿真方法整體思路與CPU方法類似,也可分為網(wǎng)絡(luò)尺度并行和神經(jīng)元尺度并行兩大類。由于基于GPU的神經(jīng)元尺度并行方法同樣存在計算精度問題,因此網(wǎng)絡(luò)尺度并行是GPU上主流的方法。

綜上所述,現(xiàn)有基于CPU的并行算法無法很好地解決效率與精度的問題。GPU 的使用使得仿真效率大幅提升,然而當(dāng)前基于GPU的方法以網(wǎng)絡(luò)尺度并行為主,當(dāng)單神經(jīng)元模型較為復(fù)雜時效率較低。綜合各類方法的特點與不足,本文認(rèn)為基于GPU的神經(jīng)元尺度并行方法是未來精細(xì)神經(jīng)網(wǎng)絡(luò)仿真的發(fā)展趨勢。神經(jīng)元尺度并行方法可以充分利用GPU強大的并行計算能力,一種基于GPU的高效且沒有計算誤差的神經(jīng)元尺度并行方法可以有效解決當(dāng)前仿真中面臨的仿真效率問題。

本文回顧了精細(xì)神經(jīng)網(wǎng)絡(luò)仿真方法,從現(xiàn)有仿真平臺及核心仿真方法出發(fā),分別介紹了網(wǎng)絡(luò)尺度并行仿真方法、神經(jīng)元尺度并行仿真方法以及基于GPU的并行仿真方法。介紹了各類方法的核心思想與存在的不足,并對各類并行方法中一些具有代表性的工作進(jìn)行了較為詳細(xì)的介紹。隨后對現(xiàn)有方法進(jìn)行總結(jié),概括了現(xiàn)有方法的主要貢獻(xiàn),并對現(xiàn)有方法存在的不足進(jìn)行總結(jié):現(xiàn)有方法在大規(guī)模網(wǎng)絡(luò)仿真或模型較為復(fù)雜的情況下依然存在效率或仿真精度方面的問題。最后根據(jù)現(xiàn)有方法的特點及存在的不足,對未來研究趨勢進(jìn)行了展望,認(rèn)為基于GPU的神經(jīng)元尺度并行方法可以進(jìn)一步提升大規(guī)模精細(xì)神經(jīng)網(wǎng)絡(luò)的仿真效率。

猜你喜歡
方程組尺度神經(jīng)元
深入學(xué)習(xí)“二元一次方程組”
財產(chǎn)的五大尺度和五重應(yīng)對
《二元一次方程組》鞏固練習(xí)
一類次臨界Bose-Einstein凝聚型方程組的漸近收斂行為和相位分離
躍動的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
“挖”出來的二元一次方程組
宇宙的尺度
基于二次型單神經(jīng)元PID的MPPT控制
ERK1/2介導(dǎo)姜黃素抑制STS誘導(dǎo)神經(jīng)元毒性損傷的作用
毫米波導(dǎo)引頭預(yù)定回路改進(jìn)單神經(jīng)元控制
洛川县| 石屏县| 永平县| 洛隆县| 云南省| 清远市| 长泰县| 鄯善县| 尼玛县| 石楼县| 宁海县| 六枝特区| 玉山县| 赫章县| 满城县| 东辽县| 乌兰浩特市| 六枝特区| 哈巴河县| 乌海市| 介休市| 南通市| 西乌珠穆沁旗| 蕲春县| 繁昌县| 内丘县| 桑植县| 海城市| 咸阳市| 莱西市| 北票市| 张掖市| 璧山县| 石狮市| 涿州市| 漳州市| 会东县| 哈巴河县| 泰和县| 龙陵县| 乐山市|