博客專欄

EEPW首頁 > 博客 > 降低百倍時間步,精度媲美傳統(tǒng)神經(jīng)網(wǎng)絡:上交等機構提出ANN-SNN 轉換框架SpikeConverter

降低百倍時間步,精度媲美傳統(tǒng)神經(jīng)網(wǎng)絡:上交等機構提出ANN-SNN 轉換框架SpikeConverter

發(fā)布人:機器之心 時間:2022-04-09 來源:工程師 發(fā)布文章
脈沖神經(jīng)網(wǎng)絡(Spiking Neural Network, SNN)被譽為第三代的神經(jīng)網(wǎng)絡,以其豐富的時空領域的神經(jīng)動力學特性、多樣的編碼機制、事件驅動的優(yōu)勢引起了學者的關注。由于生物合理性與任務需求間存在不同程度的取舍,對網(wǎng)絡使用的神經(jīng)元模型、編碼方式等各有差異,這造成了 SNN 的多樣化。與向量乘法為基礎的傳統(tǒng)人工神經(jīng)網(wǎng)絡(ANN)不同,SNN 通過模擬大腦的功能結構,以神經(jīng)元為計算、存儲單元,通過累積在膜電壓上由相鄰神經(jīng)元發(fā)出的脈沖信號,并在超過閾值電位時****脈沖的方式傳遞信息。由于其計算可以完全由加法完成,需要的計算量和功耗大幅減少[1]。此外,由于 SNN 中神經(jīng)元的執(zhí)行、學習機制,使得 SNN 與一些新興器件天然結合在一起[2]。


圖片


論文鏈接:https://www.aaai.org/AAAI22Papers/AAAI-364.LiuF.pdf
脈沖神經(jīng)網(wǎng)絡的目標是在基于異步電路的實現(xiàn),每個神經(jīng)元可以異步接收和****脈沖信號。然而這種大規(guī)模的異步電路目前還無法實現(xiàn),脈沖神經(jīng)網(wǎng)絡中的所有脈沖信號需要對齊至時鐘信號。這樣做會帶來兩個問題:其一,為了精確表達脈沖****的時間,需要將一次推理分割成大量的時間步(time step),使得脈沖序列變的十分冗長;其二,脈沖序列中的脈沖數(shù)量沒有變化,使得脈沖序列出現(xiàn)不規(guī)則的稀疏脈沖。現(xiàn)有的同步脈沖神經(jīng)網(wǎng)絡芯片,例如 Loihi,在一定程度上利用了稀疏性。但是,時間步增加導致的推理時間延長問題依然存在。

圖片


現(xiàn)有的脈沖神經(jīng)網(wǎng)絡的訓練方法分為兩種方法:直接訓練和通過傳統(tǒng)神經(jīng)網(wǎng)絡轉換得來。
直接訓練的 SNN:可以進一步劃分為有監(jiān)督訓練和無監(jiān)督訓練。有監(jiān)督訓練的 SNN 是基于脈沖的反向傳播算法,然而神經(jīng)元函數(shù)不可微,導致傳統(tǒng)的反向傳播算法沒辦法直接應用在 SNN 上。無監(jiān)督訓練的 SNN 是利用突觸可塑性規(guī)則的仿生學習算法。例如:脈沖時序依賴的突觸可塑性(Spike-Timing Dependent Plasticity, STDP)是最具代表性的無監(jiān)督 SNN,根據(jù)神經(jīng)元激發(fā)的先后順序,調整神經(jīng)元之間連接的強弱。
基于轉換的 SNN:為了在已發(fā)展的深度學習成果上進一步利用脈沖神經(jīng)網(wǎng)絡低能耗的特點,從 ANN 的視角出發(fā),將連續(xù)的激活函數(shù)值通過 SNN 中頻率編碼下的平均脈沖發(fā)放率進行替代,并且使用神經(jīng)元函數(shù)替換 ANN 中的 ReLU 函數(shù),再通過特定手段將其轉換為 SNN。從本質上說,基于轉換的 SNN 其訓練仍然依賴于 ANN 中的反向傳播算法,因此它避免了對 SNN 進行直接訓練的困難。就性能表現(xiàn)而言,基于轉換的 SNN 保持著與 ANN 發(fā)展相匹配的進程。
然而,現(xiàn)有的 SNN 在實現(xiàn)超大規(guī)模的網(wǎng)絡結構上,仍然面臨梯度消失、訓練資源開銷大甚至算法收斂性的問題,一般只能應用在淺層的 SNN 中,并且精度還距離 ANN 有一定的差距。
而現(xiàn)有的轉換方法應用在更深的網(wǎng)絡或更復雜的數(shù)據(jù)集時,需要大量的時間步長表示脈沖序列(例如:在 ImageNet 中,VGG 轉換而來的 SNN 需要的時間步數(shù)量高達 2048[3,4])。相比于進行一次 ANN 的推理只需要執(zhí)行一次前向傳遞過程;SNN 在每個時間步都需要執(zhí)行一次前向傳遞。因此,時間步的數(shù)量過多會引入極大的推理延遲,導致了轉換后的 SNN 網(wǎng)絡難以勝任對實時性有要求的應用。
方法介紹
本文提出一種基于高效且準確的 ANN-SNN 轉換框架,不僅可以應用到傳統(tǒng)神經(jīng)網(wǎng)絡的最新發(fā)展,而且大幅度降低了時間步的數(shù)量。只需要 8-16 個時間步就可以達到和傳統(tǒng)神經(jīng)網(wǎng)絡幾乎一致的精度,節(jié)省了百倍的時間延遲。
轉換中的一致性關系
首先,我們在神經(jīng)元****脈沖之后采用了軟重置的策略,在當前的膜電位中減去閾值電位的值,從而保留了超出閾值的部分。在之前的大部分文章中,采用的是硬重置策略,當膜電壓超過閾值時****脈沖并將膜電壓直接重置為 0。這樣做的好處是盡可能多的保留了膜電壓中包含的信息,并且能夠在輸入的微小擾動下保持相對一致的輸出結果。軟重置方法可以用公式表達為

圖片


其中 V[t]是 t 時刻的膜電壓,k 是每個時間步之間的膜電壓衰減系數(shù)。Xi 是第 i 個相鄰神經(jīng)元的脈沖序列,0 表示 t 時沒有脈沖傳輸。Y 是當前神經(jīng)元的輸出脈沖序列。將公式 (1) 在 t=1 到 T 累加,我們可以得到

圖片


在理想情況下,最后神經(jīng)元內沒有膜電壓存留,即 V[T]=0。此時,公式 (2) 可以簡化為

圖片


不難發(fā)現(xiàn),公式 (3) 與傳統(tǒng)神經(jīng)網(wǎng)絡的 MAC 計算模式圖片十分相似,而事實上之前最為常用的基于 ANN 轉換的 SNN,將 ANN 的激活值作為 SNN 中的神經(jīng)元****脈沖的頻率,正是公式 (3) 在 k=1 的特例。
然而,公式 (3) 在很多情況下并不成立。最明顯的一種情況,是膜電壓在最后并不一定會等于 0 或一個相對較小的數(shù)。事實上,由于神經(jīng)元之間的權重有負值,導致很多時候膜電壓最終是一個負數(shù)。SNN 的神經(jīng)元模型的機制決定了其只會對正的電壓做出反應而累積的負膜電位則會被保留,從而導致公式 (3) 的等號并不成立,信息無法準確表達,使得脈沖神經(jīng)網(wǎng)絡的精度低于傳統(tǒng)神經(jīng)網(wǎng)絡。例如當 k=1 以及閾值電位 = 1 的情況下,如果輸入總膜電位分別為 1,1,-1,-1,則會在前兩個時間步產(chǎn)生脈沖信號;而后兩個 - 1 則被累積在膜電位中無法消耗。此時公式左邊 = 0 而右邊 = 2,公式并不成立。
神經(jīng)元計算中的時域分離
針對這一點,文章采用了時域分離的方法,將膜電壓的累積過程和膜電壓釋放脈沖的過程在時域上分離開,避免膜電壓累積信息丟失的情況出現(xiàn)。為了實現(xiàn)時域分離的效果,即****脈沖在累積電壓之后,應使得較晚時間的膜電壓在沒有額外輸入的情況下要大于之前的膜電壓。這在之前的 leaky integrate-and-fire 模型中是無法做到的。文章提出了與傳統(tǒng) LIF 相反的模型,iLIF,在每個時間步結束后增幅而不是減少模電壓,即在公式中的模電壓衰減系數(shù) k 現(xiàn)在是一個大于 1 的數(shù),被稱作為電壓增幅系數(shù)。
然而,時域分離的方法使得完成一個神經(jīng)元計算的時間翻倍,文章通過流水線的方法,在前一層的脈沖輸出階段直接將信號傳輸至下一層作為輸入信號。在消除了時域分離帶來的額外運行時間的同時,也減少了需要臨時存儲的內容。

圖片


以上示意圖展示了圖片推理的執(zhí)行示意圖。核心是利用層間并行,實現(xiàn)不同圖片的兩個執(zhí)行階段重疊,降低推理時延。
參數(shù)選擇方面,主要是電壓增幅系數(shù)的選擇。文章考慮了不同的時間步數(shù)量和增幅系數(shù)的情況下,平均的轉化誤差。實驗表明在不同的時間步選擇下,k=2 都是最優(yōu)選擇。

圖片


以上示意圖展示了在不同參數(shù)選擇下,轉化誤差的變化情況。K=2 時,在各個時間步下,轉換誤差最小,可以膜電壓累積表示的信息最準確。
實驗結果
文章使用 CIFAR-10/100,以及 ImageNet 數(shù)據(jù)集進行實驗。實驗結果表明文章提出的方法在僅需要 16 個時間步的情況下,可以達到和傳統(tǒng)神經(jīng)網(wǎng)絡幾乎一致的精度。極大節(jié)省空間存儲和計算代價的情況下取得了最佳的性能,具體實驗結果參見論文。部分結果如下。

圖片


未來方向
脈沖神經(jīng)網(wǎng)絡還有較大的挖掘空間,還有許多領域 SNN 未能成功應用,可以在視頻識別、機器人控制等方面繼續(xù)研究。
[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)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區(qū)

關閉