降低百倍時(shí)間步,精度媲美傳統神經(jīng)網(wǎng)絡(luò ):上交等機構提出ANN-SNN 轉換框架SpikeConverter
脈沖神經(jīng)網(wǎng)絡(luò )(Spiking Neural Network, SNN)被譽(yù)為第三代的神經(jīng)網(wǎng)絡(luò ),以其豐富的時(shí)空領(lǐng)域的神經(jīng)動(dòng)力學(xué)特性、多樣的編碼機制、事件驅動(dòng)的優(yōu)勢引起了學(xué)者的關(guān)注。由于生物合理性與任務(wù)需求間存在不同程度的取舍,對網(wǎng)絡(luò )使用的神經(jīng)元模型、編碼方式等各有差異,這造成了 SNN 的多樣化。與向量乘法為基礎的傳統人工神經(jīng)網(wǎng)絡(luò )(ANN)不同,SNN 通過(guò)模擬大腦的功能結構,以神經(jīng)元為計算、存儲單元,通過(guò)累積在膜電壓上由相鄰神經(jīng)元發(fā)出的脈沖信號,并在超過(guò)閾值電位時(shí)****脈沖的方式傳遞信息。由于其計算可以完全由加法完成,需要的計算量和功耗大幅減少[1]。此外,由于 SNN 中神經(jīng)元的執行、學(xué)習機制,使得 SNN 與一些新興器件天然結合在一起[2]。
論文鏈接:https://www.aaai.org/AAAI22Papers/AAAI-364.LiuF.pdf
脈沖神經(jīng)網(wǎng)絡(luò )的目標是在基于異步電路的實(shí)現,每個(gè)神經(jīng)元可以異步接收和****脈沖信號。然而這種大規模的異步電路目前還無(wú)法實(shí)現,脈沖神經(jīng)網(wǎng)絡(luò )中的所有脈沖信號需要對齊至時(shí)鐘信號。這樣做會(huì )帶來(lái)兩個(gè)問(wèn)題:其一,為了精確表達脈沖****的時(shí)間,需要將一次推理分割成大量的時(shí)間步(time step),使得脈沖序列變的十分冗長(cháng);其二,脈沖序列中的脈沖數量沒(méi)有變化,使得脈沖序列出現不規則的稀疏脈沖?,F有的同步脈沖神經(jīng)網(wǎng)絡(luò )芯片,例如 Loihi,在一定程度上利用了稀疏性。但是,時(shí)間步增加導致的推理時(shí)間延長(cháng)問(wèn)題依然存在。
現有的脈沖神經(jīng)網(wǎng)絡(luò )的訓練方法分為兩種方法:直接訓練和通過(guò)傳統神經(jīng)網(wǎng)絡(luò )轉換得來(lái)。
直接訓練的 SNN:可以進(jìn)一步劃分為有監督訓練和無(wú)監督訓練。有監督訓練的 SNN 是基于脈沖的反向傳播算法,然而神經(jīng)元函數不可微,導致傳統的反向傳播算法沒(méi)辦法直接應用在 SNN 上。無(wú)監督訓練的 SNN 是利用突觸可塑性規則的仿生學(xué)習算法。例如:脈沖時(shí)序依賴(lài)的突觸可塑性(Spike-Timing Dependent Plasticity, STDP)是最具代表性的無(wú)監督 SNN,根據神經(jīng)元激發(fā)的先后順序,調整神經(jīng)元之間連接的強弱。
基于轉換的 SNN:為了在已發(fā)展的深度學(xué)習成果上進(jìn)一步利用脈沖神經(jīng)網(wǎng)絡(luò )低能耗的特點(diǎn),從 ANN 的視角出發(fā),將連續的激活函數值通過(guò) SNN 中頻率編碼下的平均脈沖發(fā)放率進(jìn)行替代,并且使用神經(jīng)元函數替換 ANN 中的 ReLU 函數,再通過(guò)特定手段將其轉換為 SNN。從本質(zhì)上說(shuō),基于轉換的 SNN 其訓練仍然依賴(lài)于 ANN 中的反向傳播算法,因此它避免了對 SNN 進(jìn)行直接訓練的困難。就性能表現而言,基于轉換的 SNN 保持著(zhù)與 ANN 發(fā)展相匹配的進(jìn)程。
然而,現有的 SNN 在實(shí)現超大規模的網(wǎng)絡(luò )結構上,仍然面臨梯度消失、訓練資源開(kāi)銷(xiāo)大甚至算法收斂性的問(wèn)題,一般只能應用在淺層的 SNN 中,并且精度還距離 ANN 有一定的差距。
而現有的轉換方法應用在更深的網(wǎng)絡(luò )或更復雜的數據集時(shí),需要大量的時(shí)間步長(cháng)表示脈沖序列(例如:在 ImageNet 中,VGG 轉換而來(lái)的 SNN 需要的時(shí)間步數量高達 2048[3,4])。相比于進(jìn)行一次 ANN 的推理只需要執行一次前向傳遞過(guò)程;SNN 在每個(gè)時(shí)間步都需要執行一次前向傳遞。因此,時(shí)間步的數量過(guò)多會(huì )引入極大的推理延遲,導致了轉換后的 SNN 網(wǎng)絡(luò )難以勝任對實(shí)時(shí)性有要求的應用。
方法介紹
本文提出一種基于高效且準確的 ANN-SNN 轉換框架,不僅可以應用到傳統神經(jīng)網(wǎng)絡(luò )的最新發(fā)展,而且大幅度降低了時(shí)間步的數量。只需要 8-16 個(gè)時(shí)間步就可以達到和傳統神經(jīng)網(wǎng)絡(luò )幾乎一致的精度,節省了百倍的時(shí)間延遲。
轉換中的一致性關(guān)系
首先,我們在神經(jīng)元****脈沖之后采用了軟重置的策略,在當前的膜電位中減去閾值電位的值,從而保留了超出閾值的部分。在之前的大部分文章中,采用的是硬重置策略,當膜電壓超過(guò)閾值時(shí)****脈沖并將膜電壓直接重置為 0。這樣做的好處是盡可能多的保留了膜電壓中包含的信息,并且能夠在輸入的微小擾動(dòng)下保持相對一致的輸出結果。軟重置方法可以用公式表達為
其中 V[t]是 t 時(shí)刻的膜電壓,k 是每個(gè)時(shí)間步之間的膜電壓衰減系數。Xi 是第 i 個(gè)相鄰神經(jīng)元的脈沖序列,0 表示 t 時(shí)沒(méi)有脈沖傳輸。Y 是當前神經(jīng)元的輸出脈沖序列。將公式 (1) 在 t=1 到 T 累加,我們可以得到
在理想情況下,最后神經(jīng)元內沒(méi)有膜電壓存留,即 V[T]=0。此時(shí),公式 (2) 可以簡(jiǎn)化為
不難發(fā)現,公式 (3) 與傳統神經(jīng)網(wǎng)絡(luò )的 MAC 計算模式十分相似,而事實(shí)上之前最為常用的基于 ANN 轉換的 SNN,將 ANN 的激活值作為 SNN 中的神經(jīng)元****脈沖的頻率,正是公式 (3) 在 k=1 的特例。
然而,公式 (3) 在很多情況下并不成立。最明顯的一種情況,是膜電壓在最后并不一定會(huì )等于 0 或一個(gè)相對較小的數。事實(shí)上,由于神經(jīng)元之間的權重有負值,導致很多時(shí)候膜電壓最終是一個(gè)負數。SNN 的神經(jīng)元模型的機制決定了其只會(huì )對正的電壓做出反應而累積的負膜電位則會(huì )被保留,從而導致公式 (3) 的等號并不成立,信息無(wú)法準確表達,使得脈沖神經(jīng)網(wǎng)絡(luò )的精度低于傳統神經(jīng)網(wǎng)絡(luò )。例如當 k=1 以及閾值電位 = 1 的情況下,如果輸入總膜電位分別為 1,1,-1,-1,則會(huì )在前兩個(gè)時(shí)間步產(chǎn)生脈沖信號;而后兩個(gè) - 1 則被累積在膜電位中無(wú)法消耗。此時(shí)公式左邊 = 0 而右邊 = 2,公式并不成立。
神經(jīng)元計算中的時(shí)域分離
針對這一點(diǎn),文章采用了時(shí)域分離的方法,將膜電壓的累積過(guò)程和膜電壓釋放脈沖的過(guò)程在時(shí)域上分離開(kāi),避免膜電壓累積信息丟失的情況出現。為了實(shí)現時(shí)域分離的效果,即****脈沖在累積電壓之后,應使得較晚時(shí)間的膜電壓在沒(méi)有額外輸入的情況下要大于之前的膜電壓。這在之前的 leaky integrate-and-fire 模型中是無(wú)法做到的。文章提出了與傳統 LIF 相反的模型,iLIF,在每個(gè)時(shí)間步結束后增幅而不是減少模電壓,即在公式中的模電壓衰減系數 k 現在是一個(gè)大于 1 的數,被稱(chēng)作為電壓增幅系數。
然而,時(shí)域分離的方法使得完成一個(gè)神經(jīng)元計算的時(shí)間翻倍,文章通過(guò)流水線(xiàn)的方法,在前一層的脈沖輸出階段直接將信號傳輸至下一層作為輸入信號。在消除了時(shí)域分離帶來(lái)的額外運行時(shí)間的同時(shí),也減少了需要臨時(shí)存儲的內容。
以上示意圖展示了圖片推理的執行示意圖。核心是利用層間并行,實(shí)現不同圖片的兩個(gè)執行階段重疊,降低推理時(shí)延。
參數選擇方面,主要是電壓增幅系數的選擇。文章考慮了不同的時(shí)間步數量和增幅系數的情況下,平均的轉化誤差。實(shí)驗表明在不同的時(shí)間步選擇下,k=2 都是最優(yōu)選擇。
以上示意圖展示了在不同參數選擇下,轉化誤差的變化情況。K=2 時(shí),在各個(gè)時(shí)間步下,轉換誤差最小,可以膜電壓累積表示的信息最準確。
實(shí)驗結果
文章使用 CIFAR-10/100,以及 ImageNet 數據集進(jìn)行實(shí)驗。實(shí)驗結果表明文章提出的方法在僅需要 16 個(gè)時(shí)間步的情況下,可以達到和傳統神經(jīng)網(wǎng)絡(luò )幾乎一致的精度。極大節省空間存儲和計算代價(jià)的情況下取得了最佳的性能,具體實(shí)驗結果參見(jiàn)論文。部分結果如下。
未來(lái)方向
脈沖神經(jīng)網(wǎng)絡(luò )還有較大的挖掘空間,還有許多領(lǐng)域 SNN 未能成功應用,可以在視頻識別、機器人控制等方面繼續研究。
[1] Roy, K.; Jaiswal, A.; and Panda, P. 2019. Towards spike based machine intelligence with neuromorphic computing. Nature, 575(7784): 607–617.[2] Wo?niak, Stanis?aw, et al. "Deep learning incorporating biologically inspired neural dynamics and in-memory computing." Nature Machine Intelligence 2.6 (2020): 325-336.[3] Han, Bing, Gopalakrishnan Srinivasan, and Kaushik Roy. "Rmp-snn: Residual membrane potential neuron for enabling deeper high-accuracy and low-latency spiking neural network." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020.[4] Han, Bing, and Kaushik Roy. "Deep spiking neural network: Energy efficiency through time based coding." European Conference on Computer Vision. Springer, Cham, 2020.
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。