鄭重聲明:原文參見標題,如有侵權,請聯系作者,將會撤銷發布!
Abstract
ANN是通向AI的一種流行方法,它已經通過成熟的模型,各種基准,開源數據集和強大的計算平台獲得了非凡的成功。SNN是一類有前途的模型,可以模擬大腦的神經元動態,已受到腦啟發計算的廣泛關注,並已廣泛部署在神經形態設備上。但是,很長一段時間以來,關於SNN在實際應用中的價值的爭論和懷疑不斷。除了從脈沖驅動處理中獲得的低功率屬性外,SNN的性能通常比ANN差,特別是在應用精度方面。最近,研究人員試圖通過借鑒ANN的學習方法(例如反向傳播)來解決此問題,以訓練高精度SNN模型。隨着該領域的快速發展,隨着網絡規模的不斷擴大,SNN的結果不斷取得驚人的發展,其發展路徑似乎與深度學習相似。盡管這些方法賦予SNN逼近ANN精度的能力,但由於使用面向ANN的工作量和簡化的評估指標,SNN的天然優勢和優於ANN的方面可能會丟失。
在本文中,我們將視覺識別任務作為案例研究,以回答“什么樣的工作量最適合SNN,如何評估SNN才有意義”的問題。我們使用不同類型的數據集(面向ANN和面向SNN),不同的處理模型,信號轉換方法和學習算法,設計了一系列對比測試。我們提出了有關應用程序精度以及內存和計算成本的綜合指標,以評估這些模型,並進行廣泛的實驗。我們證明了這樣一個事實,即在面向ANN的工作量上,SNN無法擊敗其ANN對應體。而在面向SNN的工作量上,SNN可以充分發揮更好的性能。我們進一步證明,SNN在應用程序精度和執行成本之間存在折衷,這將受到仿真時間窗口和發放閾值的影響。基於這些豐富的分析,我們為每種情況推薦最合適的模型。據我們所知,這是第一項使用系統比較明確揭示“直接將工作量從ANN遷移到SNN是不明智的”的工作(盡管許多工作都在這樣做),並且進行全面評估確實很重要。最后,我們強調迫切需要為SNN建立具有更多任務,數據集和指標的基准框架。
1. Introduction
ANN(LeCun, Bengio, & Hinton, 2015)能夠通過深度層次結構從大量輸入數據中學習高級功能。這種強大的表征在無數的AI應用程序中帶來了驚人的成功。例如,研究人員報告了基於MLP或基於CNN的圖像識別(He, Zhang, Ren, & Sun, 2016),語音識別(Abdel-Hamid et al., 2014),語言處理(Hu, Lu, Li, & Chen, 2014;Young, Hazarika, Poria, & Cambria, 2018),物體檢測(Redmon & Farhadi, 2017),太陽輻射估計(Jahani & Mohammadi, 2018),醫療診斷(Esteva et al., 2017),游戲(Silver et al., 2016)等,基於RNN的語音識別(Lam et al., 2019),語言處理(Ghaeini et al., 2018),狀態控制(Graves et al., 2016)等,有時還包括CNN和RNN的組合(Caglayan & Burak Can, 2018;Zhang, Bai, & Zhu, 2019;Zoph, Vasudevan, Shlens, & Le, 2018)。除了各種模型和學習算法之外,大數據資源(例如用於圖像識別的ImageNet數據集(Deng et al., 2009))和高性能計算平台(例如GPU)進一步促進了ANN的發展。上述成功激發了對ANN特定加速器的眾多研究(Chen et al., 2014;Chen, Krishna, Emer, & Sze, 2017;Jouppi et al., 2017;Yin et al., 2017)。
SNN(Ghosh-Dastidar & Adeli, 2009;Maass, 1997)緊密地模擬了生物神經回路的行為。它們以連續的時空動態和事件驅動的發放活動(0-無事件或1-脈沖事件)進行操作。由於采用了異步發放機制,SNN在基於事件的場景中顯示出了優勢,例如光流估計(Haessig, Cassidy, Alvarez, Benosman, & Orchard, 2017),脈沖模式識別(Wu et al., 2019)和SLAM(Vidal, Rebecq, Horstschaefer, & Scaramuzza, 2018)。此外,他們還有望解決一些有趣的問題,例如概率推斷(Maass, 2014),啟發式解決NP難題(Jonke, Habenschuss, & Maass, 2016)或快速解決優化問題(Davies et al., 2018),稀疏表示(Shi, Liu, Wang, Li, & Gu, 2017)和機器人技術(Hwu, Isbell, Oros, & Krichmar, 2017)。此外,SNN已廣泛部署在神經形態設備中,用於腦啟發計算(Davies et al., 2018;Furber, Galluppi, Temple, & Plana, 2014;Merolla et al., 2014;Shi et al., 2015)。鑒於關於SNN作為AI和神經形態計算領域中的一種計算工具的實用價值,長期以來一直存在爭論(Davies et al., 2018),特別是與ANN相比。在過去的幾年里,這些懷疑減慢了神經形態計算的發展,而深度學習的迅速發展使這種形態被趕上了台。研究人員試圖通過諸如訓練算法設計之類的手段來增強SNN,從根本上緩解這一問題。
與成熟而有效的訓練算法(例如用於ANN的誤差反向傳播(BP))不同,SNN研究中最困難的問題之一是復雜的動態和不可分的脈沖活動導致的訓練難度。即使我們使用簡單的LIF(Gerstner, Kistler, Naud, & Paninski, 2014)神經元模型,該案例仍然具有挑戰性。為了提高SNN應用的精度,可以通過添加橫向抑制和自適應閾值(Diehl & Cook, 2015)或獎勵機制(Mozafari, Ganjtabesh, Nonzari-Dalini, Thorpe, & Masquelier, 2018)來改進常規的脈沖時序依賴可塑性(STDP)無監督學習規則。其他一些工作則對經過適應的ANN進行了訓練,並將其轉換為SNN(Cao, Chen, & Khosla, 2015;Diehl et al., 2015;Hu, Tang, Wang, & Pan, 2018;Hunsberger & Eliasmith, 2016;Rueckauer, Lungu, Hu, Pfeiffer, & Liu, 2017;Sengupta, Ye, Wang, Liu, & Roy, 2019)。ANN中的適應通常包括移除偏差,使用ReLU激活函數(或其變體),將最大池化更改為平均池化等,以增強與SNN模型的兼容性。從ANN到SNN的轉換通常會引起權重/激活歸一化,閾值調整,采樣誤差補償等,以保持精度。最近,借用了ANN中的監督BP學習來直接訓練准確的SNN(Jin, Li, & Zhang, 2018;Lee, Delbruck, & Pfeiffer, 2016;Pengjie Gu & Tang, 2019;Shrestha & Orchard, 2018;Wu, Deng, Li, Zhu, & Shi, 2018;Wu et al., 2019)。梯度可以在執行BP時通過匯聚時間維度上的脈沖而僅沿空間方向傳播,或者可以通過直接計算每個時間步驟的膜電位與脈沖活動的導數而沿時空維度傳播。BP和STDP學習的組合也存在,例如在每次訓練迭代中在BP更新之后應用STDP更新(Tavanaei & Maida, 2017),或者在STDP預訓練之后應用BP微調(Lee, Panda, Srinivasan, & Roy, 2018)。簡而言之,通過上述努力,SNN在視覺識別任務中逐漸接近ANN級別的應用程序精度。
由於缺乏針對SNN的專門基准測試工作量,因此大量工作直接將測試工作量從ANN領域遷移以驗證SNN模型(Cao et al., 2015;Diehl & Cook, 2015;Diehl et al., 2015; Hu et al., 2018;Hunsberger & Eliasmith, 2016;Jin et al., 2018;Lee et al., 2016, 2018;Mozafari et al., 2018;Rueckauer et al., 2017;Sengupta et al., 2019;Tavanaei & Maida, 2017;Wu et al., 2018)。例如,將用於ANN驗證的圖像數據集簡單地轉換為脈沖版本,以進行SNN訓練和測試。這似乎是合理的,因為在運行SNN時,輸入數據被編碼為脈沖。而ANN的原始數據集只是靜態圖像,即使轉換為脈沖模式,也無法充分利用SNN的時空優勢。此外,應用程序精度仍然是主要的評估指標,但是眾所周知,就絕對識別精度而言,我們的大腦通常比當前的AI機器性能更差。這表明我們需要更全面,更公平的指標來評估腦啟發的SNN。簡而言之,由於工作量和評估指標不當,當前的SNN無法勝過ANN。因此,有兩個懸而未決的問題,即“什么樣的工作量最適合SNN,如何評估SNN才有意義”。
在本文中,我們嘗試回答上述問題,並將視覺識別任務作為案例研究。在Hunsberger and Eliasmith(2016)將預訓練的具有軟LIF神經元和帶噪活動的ANN轉換為SNN的過程中,定義並比較了SNN和ANN的效率。在SNN算法領域中,這是為數不多的考慮精度以外的度量指標並研究精度與效率之間的權衡的工作之一。通過更系統的建模方法和實驗分析,我們將此路徑擴展到了更深入的反思。具體而言,通過使用不同領域的數據集,不同的處理模型,信號轉換方法和學習算法設計一系列對比測試,我們比較了ANN和SNN(具有rate編碼)的性能。我們提出了有關應用程序精度,內存成本和計算成本的綜合指標,以評估這些模型並進行廣泛的分析。我們證明了這樣一個事實:就精度而言,在面向ANN的工作量上,SNN不能在相同的網絡規模上擊敗ANN,但具有進行有效處理的潛力。在面向SNN的工作量上,SNN可以充分發揮更好的性能。我們進一步證明,仿真時間窗口和發放閾值的變化將在應用程序精度和執行成本之間產生折衷。基於這些分析,我們建議最適合每種情況的模型。這項工作的主要貢獻概括如下:
- 通過考慮應用程序精度和執行成本之間的權衡,我們提出了急需的SNN和ANN綜合評估指標。我們使用各種基准數據集,處理模型,信號轉換和學習算法進行廣泛的實驗和分析。我們還展示了各種比較方法和可視化手段。
- 根據以上結果,我們建議針對每種工作量的最優模型,該模型提供了有見地的建模指導。
- 我們指出,盡管許多工作正在這樣做,但將工作量從ANN直接遷移到SNN是不合適的,至少是不明智的。我們進一步強調,對於SNN領域而言,迫切需要創建更多面向SNN的數據集並建立具有更廣泛任務的基准框架。這將闡明SNN研究的未來機會。
2. Preliminaries
在本節中,我們將提供用於視覺識別的ANN和SNN的初步知識,包括神經元模型,網絡拓撲和基准數據集。
神經元是基本的計算單元,它們通過大量的突觸連接形成神經網絡。如果將神經網絡視為圖,則每個神經元和突觸可分別視為節點和邊緣。如上所述,有兩類神經網絡:ANN和SNN,將在下面進行詳細說明。
2.1. Artificial neural networks
圖1(a)描繪了典型的人工神經元模型。計算過程受以下因素支配:
其中x,y,w和b分別是輸入激活,輸出激活,突觸權重和偏差,而 j 是輸入神經元的索引。ϕ(·)是非線性激活函數,例如 ϕ(x) = ReLU(x) = max(x, 0)。ANN中的神經元使用高精度和連續值編碼的激活相互通信,並且僅在空間域(即逐層)中傳播信息。從上面的等式可以看出,輸入和權重的MAC(multiply-and-accumulate)運算是ANN中的主要操作。
2.2. Spiking neural networks
圖1(b)顯示了典型的脈沖神經元,與ANN神經元相比,它具有相似的結構但行為不同。 相比之下,脈沖神經元通過以二值事件編碼的脈沖序列進行通信,而不是通過ANN中的連續激活進行通信。樹突對輸入脈沖進行積分,然后胞體進行非線性變換以產生輸出脈沖序列。這種行為通常由流行的LIF模型(Gerstner et al, 2014)建模,描述為:
其中(t)表示時間步驟,τ是時間常數,u和s分別是膜電位和輸出脈沖。ur1和ur2分別是靜息電位和復位電位。wj是來自第 j 個輸入神經元的突觸權重,是第 j 個輸入神經元的第k個脈沖在積分時間窗口Tw(總共
的脈沖序列)內發放的時間,並且K(·)為描述時間衰減效應的核函數。uth是確定是否發放脈沖的發放閾值。除了LIF模型外,SNN中還存在其他神經元模型,例如Hodgkin and Huxley(1952)或Izhikevich(2003)的模型。但是,由於較高的復雜性,它們並未在實際的SNN模型中廣泛使用。
與ANN不同,SNN以脈沖模式表示信息,每個脈沖神經元都經歷豐富的動態行為。具體而言,除了信息在空間域中的傳播之外,當前狀態還受到時間域中過去的歷史的緊密影響。因此,與ANN相比,SNN通常具有更多的時間通用性,但精度較低,主要是通過空間傳播和連續激活來實現的。由於只有在膜電位超過閾值時才會發放脈沖,因此整個脈沖信號通常都很稀疏,並且可以通過事件驅動計算(僅當脈沖輸入到達時才啟用)。此外,由於脈沖是二值的,即0或1,因此如果積分時間窗口Tw等於1,則可以移除輸入和權重之間的昂貴乘積(請參閱第3.5節)。由於上述原因,與具有密集計算的ANN相比,SNN通常可以實現更低的功耗。
2.3. Typical network topologies
用於構建神經網絡的基本層拓撲是全連接(FC)層,循環層和卷積(Conv)層(以及池化層)。相應的網絡分別命名為多層感知器(MLP),RNN和CNN。MLP和RNN僅包括堆疊的FC層,每層有/沒有循環連接,分別如圖2(a)和(b)所示。對於圖2(c)所示的CNN,它們直接針對2D特征的處理,而不是針對MLP和RNN中的1D特征。卷積(Conv)層中的每個神經元僅接收來自上一層中所有特征圖(FM)上的局部感受野(RF)的輸入。每個神經元的基本計算與公式(1)或(2)相同。另外,CNN還通過輸出每個RF的最大值(即最大池化)或平均值(即平均池化),使用池化層分別降低每個FM的大小,並使用FC層進行最終分類。
2.4. Benchmark datasets
圖3說明了我們用於視覺識別的兩種不同類型的基准數據集。上面兩行是從MNIST(LeCun, Bottou, Bengio, & Haffner, 1998)和CIFAR10(Krizhevsky & Hinton, 2009)數據集中采樣的。由於它們是基於幀的靜態圖像,並且在ANN中得到廣泛使用,因此我們將其稱為面向ANN的數據集。下面兩行分別從N-MNIST(Orchard, Jayawant, Cohen, & Thakor, 2015)和DVS-CIFAR10(Li, Liu, Ji, Li, & Shi, 2017)中采樣。數據格式是脈沖事件,它是通過使用動態視覺傳感器(DVS)掃描每個圖像從上述靜態數據集中轉換而來的(Lichtsteiner, Posch, & Delbruck, 2008)。除了與面向ANN的數據集相似的空間信息外,它還包含更多的動態時間信息,並且脈沖事件與SNN中的信號格式自然兼容,因此我們將其稱為面向SNN的數據集。
對於面向ANN的數據集,MNIST由包含60000個帶標簽的手寫數字訓練集和其他10000個帶標簽的數字測試集組成。每個數字樣本是一個28×28的灰度圖像。CIFAR10包含一個訓練集,其中包含50000個帶標簽的訓練圖像以及周圍環境中的自然物體和人造物體,以及其他10000個測試圖像。每個樣本都是32×32×3的RGB圖像。
3. Benchmarking methodology
在本節中,我們首先介紹ANN和SNN域之間的信號轉換。然后,我們設計了六個基准模型以及用於對比測試的訓練算法,並提出了三個評估指標用於后續模型評估和比較。
3.1. Data signal conversion
通常,ANN接收基於幀的實值圖像,而SNN接收事件驅動的脈沖信號。因此,有時有必要將相同的數據資源轉換為其他形式以用於其他域中的處理。在這里,我們以視覺識別任務為例,主要介紹以下四種信號轉換方法。
Image to spike pattern. 由於像素強度的實值信號不適用於基於脈沖的SNN,因此在面向ANN的數據集上測試SNN模型時,需要轉換為脈沖序列。流行的策略之一是概率抽樣。在每個時間步驟,它都會將原始像素強度(通常歸一化為[0, 1])采樣為二值,其中為1(發放脈沖)的概率等於強度值。采樣遵循特定的概率分布,例如伯努利分布或泊松分布。例如,圖4(a)中的i1神經元對應於左上角歸一化強度為0.8的像素,它產生遵循伯努利分布B(0.8, T)的二值脈沖序列。這里T是給定的采樣時間窗口。
在短時間窗口的情況下,上述逐元素采樣通常會遭受精度損失(請參見第4.2節)。為了解決這個問題,現代工作(Esser et al., 2016)添加了一個編碼層以全局生成脈沖信號,如圖4(b)所示。該層中的每個神經元都接收多個像素的強度值作為輸入(即,樹突以正常的輸入權重MAC操作在ANN模式下工作),而產生脈沖作為輸出(即,具有LIF動態的Soma模式在SNN模式下工作)。盡管編碼層是ANN-SNN混合層,而不是像網絡中隨后的層一樣的完整SNN層,但其權重是可訓練的,因為本文中我們對SNN的訓練方法也對BP神經網絡兼容(請參閱第3.4節)。由於神經元的數量可以靈活地自定義並且參數是可訓練的,因此它可以適應總體優化問題,從而具有更高的准確性。
Spike pattern to image. 同樣,要在面向SNN的數據集上測試ANN模型,我們需要將脈沖模式轉換為基於幀的圖像。存在兩種可能的輸出格式:(i)具有0/1像素的二值圖像;(ii)具有實值像素的強度圖像。將脈沖模式轉換為二值圖像的直觀策略是首先沿時間維度從所有神經元位置擴展脈沖序列。然后,如圖4(c)所示,擴展后的2D脈沖模式(位置索引 v.s. 時間)可以直接作為二值圖像查看(每個脈沖事件都表示像素強度為1,否則像素強度為0)。原始記錄時間長度T通常較長,可能會導致圖像尺寸過大。因此,需要沿時間方向(例如,每1ms)定期匯聚或采樣沿時間方向的脈沖事件。在這里,匯聚意味着如果在窗口中具有脈沖,則脈沖事件結果為1,否則為0。即使這樣,將2D位置(圖4(c)的左側)展開為1D位置矢量( 圖4(c)中右側的Y軸)也會產生較大的圖像尺寸。
為了轉換為強度圖像,需要脈沖事件的時間累積(計算脈沖數目)。圖4(d)描繪了100ms內脈沖序列的累積過程。累積的脈沖數目將被歸一化為具有適當強度值的像素。由於DVS的相對運動和固有噪聲,生成的圖像通常模糊不清,其邊緣特征模糊不清。僅在以下強烈假設下才能進行此轉換:每個脈沖位置都不應隨着 t 的變化而移開其起始位置,否則將嚴重損害所得圖像的質量。
3.2. ANN-oriented workloads
這里的“面向ANN的工作量”意味着目標是識別基於幀的數據集(例如MNIST和CIFAR10)中的圖像,該圖像已在ANN領域中廣泛使用。為了處理這種類型的工作量,我們引入了三種基准模型。如圖5(a)所示,最直接的解決方案是帶有“ANN訓練和ANN推斷”的自然ANN。它使用強度圖像在ANN模式(等式(1))中完全訓練網絡,然后在同一域中進行推斷。訓練遵循了ANN領域中使用最廣泛的BP算法。
此外,SNN領域中的許多工作也使用這些數據集來測試SNN的性能(Diehl et al., 2015;Hu et al., 2018;Lee et al., 2016;Sengupta et al., 2019;Wu et al., 2018, 2019)。由於在這些情況下,網絡工作在SNN模式下,因此需要將輸入數據從基於幀的圖像轉換為脈沖事件,如圖4(a)或(b)所示。信號轉換后,我們進一步提供了兩個建模分支。如圖5(b)所示,其中首先使用BP算法在原始圖像數據集上訓練ANN,然后以相同的結構但不同的神經元模型,將經過預訓練的ANN與其SNN對應物相適應。轉換SNN在推斷階段接收帶有脈沖事件的數據集變體。另一個是如圖5(c)所示的強制SNN,其中直接從零開始在轉換后的脈沖數據集上訓練SNN模型,並在同一域中對其進行測試。如第1節所述,新興的BP啟發式訓練SNN的監督算法通常比無監督算法具有更高的准確性。實際上,他們使用不同的學習方法。例如,在Shrestha and Orchard(2018)的誤差反向傳播框架下,突觸權重和軸突延遲都是可訓練的變量,Wu et al.(2018)和Wu et al.(2019)使用時空反向傳播(STBP)方法直接導出每個位置和時間的梯度,而在Pengjie Gu and Tang(2019)中進一步提出了基於時間的損失函數來解決時空責任分配問題。考慮到Pytorch中的開源代碼,我們選擇STBP來直接訓練SNN。總之,為清晰起見,面向ANN的工作量的三個基准模型表示為模型1/2/3。請注意,在本文中,我們在SNN域中使用了rate編碼方案,這是因為先前的工作表明它具有更高的精度。
3.3. SNN-oriented workloads
這里的“面向SNN的工作量”意味着目標是識別無幀脈沖數據集中的圖像(例如N-MNIST和DVS-CIFAR10),該圖像在SNN領域得到了廣泛使用。像上述面向ANN的工作量一樣,這里我們還介紹了三種基准模型。前兩個工作在ANN模式下(參見圖6(a)),其中輸入數據被轉換為圖像。使用常規BP算法為ANN訓練模型,並在ANN領域中進行測試。從脈沖事件到圖像的數據轉換有兩種方法:(i)通過直接接收展開的脈沖模式的二值圖像;(ii)通過壓縮沿時間維度的脈沖模式的強度圖像,分別如圖4(c)和(d)所示。圖6給出了在自然SNN模式下工作的另一個基准模型。該網絡使用原始的脈沖數據集直接進行了訓練和測試,並且如模型3所述,學習算法仍然受BP啟發。同樣,面向SNN的工作量的三個基准模型表示為模型4/5/6。
3.4. Training algorithms
在上一節中,我們針對六個基准模型提到了兩種訓練算法:(i)ANN的BP;(ii)BP啟發式SNN。BP算法被廣泛應用於神經網絡的訓練中。這可以簡單地描述為:
其中 i 和 j 分別是前一層n和當前層(n + 1)中的神經元索引,是層(n +1)中第 j 個神經元的激活導數,L是優化的損失函數。通常,我們可以簡單地使用均方誤差(MSE)作為要最小化的成本,即令
。在這里,Y和Ylabel分別是實際輸出和真實標簽。
如前所述,由於卓越的精度和開源代碼,我們選擇STBP(Wu et al, 2018, 2019)來訓練我們的SNN。它基於等式(2)中原始LIF模型的迭代版本。具體來說,它產生下式:
其中dt是仿真時間步驟的長度,o表示神經元脈沖輸出,t和n分別是時間步驟和層索引。反映了膜電位的衰減作用。f(·)是一個階躍函數,當x≥0時滿足f(x) = 1,否則f(x) = 0。這種迭代LIF格式合並了原始神經元模型中的所有行為,包括積分,發放和重置 。請注意,為簡單起見,這里我們在原始LIF模型中設置
和K(·) ≡ 1。在給定迭代LIF模型的情況下,梯度會沿時間和空間維度傳播,因此可以如下得出參數更新:
為了解決不可微問題,Wu et al.(2018)引入了一個輔助函數來計算時近似階躍函數f(·)的導數。這滿足下式:
其中參數a確定梯度寬度。當x > 0時,sign(x) = 1;當x = 0時,sign(x) = 0。損失函數L衡量在給定的時間窗口T內,真實值與最后一層N的平均發放率之間的差異。同樣,可以將其定義為類似於ANN中的MSE格式,即。
3.5. Evaluation metrics
眾所周知,就絕對識別精度而言,基於SNN的大腦通常無法擊敗當前的基於ANN的AI系統,而真正的大腦在其他指標(例如操作效率)上性能更好。鑒於在最近的工作中,識別精度仍然是判斷哪種模型(ANN或SNN)更好的主流指標,尤其是在算法研究中。這是不夠公平的,因為ANN和SNN具有非常不同的特征。例如,ANN中的數據精度遠高於SNN,這使得在相同網絡規模下ANN更容易獲得更好的識別精度。所有這些表明模型評估需要更全面的指標。除了常見的精度比較之外,我們在這里進一步介紹存儲和計算成本作為補充評估指標。請注意,這僅僅是一個開始,將來還會有更多有見地的指標(請參閱第5.2節中的討論)。
Recognition accuracy. 在這里,我們使用top-1精度。 在ANN中,此精度表示正確識別的樣本的百分比。如果標簽類別與激活值最大的模型預測的類別相同,則對當前樣本的識別正確。在SNN中,我們首先計算給定時間窗口T內輸出神經元的發放率(脈沖數目)以進行rate編碼,然后根據發放率值確定預測的類別。結果精度計算與ANN相同。廣泛接受的解碼方法可以被定義如下:
其中表示第t個時間步驟的最后一層N中第 i 個神經元的脈沖輸出。
注釋:在介紹內存和計算成本之前,我們需要澄清,在本文中,我們僅在推斷階段考慮成本。一方面,在等式(5)下用時空梯度傳播路徑訓練SNN比推斷階段復雜。復雜性將削弱這項工作的可讀性,因為由於各種信號轉換,建模方法,工作量和評估指標,它已經很復雜。另一方面,大多數支持SNN的神經形態設備僅執行推斷階段。因此,最好將重點放在可以在當前硬件平台中快速應用的推斷階段。
Memory cost. 通常,在嵌入式設備上部署模型時,內存占用量非常重要。在ANN中,存儲成本包括權重存儲和激活存儲。激活函數的開銷被忽略,但是如果使用查找表實現,則應將其計算在內。在SNN中,存儲成本包括權重存儲,膜電位存儲和脈沖存儲。其他參數(例如,發放閾值uth和時間常數τ)可以忽略不計,因為它們可以由同一層或整個網絡中的所有神經元共享。脈沖內存開銷僅在脈沖發放時發生。總之,可以通過以下方式計算內存成本:
其中Mw,Ma,Mp和Ms分別表示權重,激活,膜電位和脈沖的存儲成本。與由網絡結構確定的Mw,Ma和Mp的靜態值相比,Ms由某個時間步驟的脈沖事件的最大數量動態決定。在此為清楚起見,除1比特脈沖數據外,所有數據均假定以32比特存儲。請注意,在具有數據量化的模型(Banner, Hubara, Hoffer, & Soudry, 2018;Deng, Jiao, Pei, Wu, & Li, 2018)或在專用設備上(Davies et al., 2018;Jouppi et al., 2017;Merolla et al., 2014),可以減小位寬以節省存儲成本。對於一些通過矩陣/張量分解(Novikov, Podoprikhin, Osokin, & Vetrov, 2015)或稀疏化(Li, Kadav, Durdanovic, Samet, & Graf, 2016;Liu et al., 2018)技術來壓縮模型而言,也可以減少存儲成本。但是,這些超出了本文的范圍。
Compute cost. 計算開銷對於運行時延和能耗至關重要。在ANN中,計算成本主要由等式(1)中的MAC操作決定,這被廣泛用於ANN加速器中(Chen et al., 2014, 2017)。在SNN中,主要的計算開銷是等式(2)中的脈沖驅動輸入積分。應當強調與ANN的兩個區別:(i)如果Tw = 1並且K(·) ≡ 1實際上滿足簡單性,則由於二值脈沖輸入可以移除高成本的乘法,因此樹突積分沒有乘法運算,即(如果sj' = 1);(ii)集成是事件驅動的,這意味着如果沒有收到脈沖,則不會進行任何計算。計算成本可以通過下式計算:
其中Cmul和Cadd分別是乘法和加法的計算成本。
胞體中的計算開銷(例如ANN中的激活函數以及SNN中的膜電位更新和發放活動)被忽略,這是神經網絡設備中的常見方式(Akopyan et al., 2015;Jouppi et al., 2017)。請注意,在SNN中,Cadd在整個rate編碼周期(例如T)內考慮了所有加法運算,這與脈沖事件的總數成比例。類似於存儲成本評估,數據量化可以將復雜的高精度MAC替換為有效的低精度MAC,並且壓縮技術(例如分解和稀疏化)可以額外減少操作量。鑒於此,它們並不是建立全面評估框架的出發點。
4. Experimental results
4.1. Experimental setup
在我們的實驗中,我們全面評估了幾種ANN和SNN模型在不同類型的基准工作量(面向ANN和面向SNN)上的視覺識別性能。首先,為了簡單起見,我們將討論更多關於MLP和(純)CNN的結果,並僅在最后提供面向SNN的工作量的其他模型(例如RNN和時序CNN)的結果。在面向ANN的工作量上,我們評估MNIST和CIFAR10數據集上模型1/2/3的性能。由於MLP無法處理較大規模的CIFAR10,我們僅在此數據集上顯示CNN結果。在面向SNN的工作量上,我們在上述數據集的神經形態版本(即N-MNIST和DVS-CIFAR10)上評估了模型4/5/6的性能。請注意,為什么我們主要比較自己實現的模型1-6的結果,是因為我們可以輕松地控制許多因素(例如,網絡結構和大小,訓練技術,學習超參數等)以保證公平性。否則,由於該領域的建模多樣性,很難與其他人進行公平的比較。
圖7給出了整個實驗流程圖,表1給出了主要的網絡結構。此外,表2和3分別提供了面向ANN和SNN的工作量的參數配置。由於這些工作量通常具有用於輸入轉換的不同編碼格式,因此為了清楚起見,我們僅顯示隱含層的參數配置。在所有卷積層中,我們將填充值設置為1。由於模型4的輸入量較大,因此我們在此處將步長值設置為2,在其他模型中將步長值設置為1。在所有SNN模型(模型2/3/6)中,池化層中的每個單元都是一個獨立的神經元,這保證了池化層的輸出仍為脈沖格式。此池化配置與以前的工作不同(Wu et al., 2018, 2019)。在模型3/6中,我們使用等式(4)中描述的完整LIF神經元模型,而在模型2中,我們使用的是IF神經元模型(沒有LIF中的泄漏項),這是先前轉換SNN的一種流行選擇(Diehl et al., 2015;Sengupta et al., 2019)。
我們在Pytorch框架中實現所有模型。在MNIST和N-MNIST數據集上,我們采用具有默認參數設置(α = 0.0001,β1 = 0.9,β2 = 0.999,ϵ = 10-8)的Adam(自適應矩估計(Kingma&Ba, 2014))優化器;而在CIFAR10和DVS-CIFAR10數據集上,我們使用SGD(隨機梯度下降)優化器,其初始學習率r = 0.1,動量為0.9,其中每35個訓練周期,r就衰減10倍。
4.2. Accuracy analysis
表4列出了針對面向ANN的工作量的不同模型的精度結果。在MNIST上,直接的自然ANN(模型1)可以實現最優精度,即MLP的98.60%和CNN的99.31%,因為它們與基於幀的數據集自然兼容。基於預訓練的ANN(模型2)轉換SNN的精度評分是可比的,但比自然ANN的精度評分稍差。由BP啟發的算法在轉換后的脈沖數據集上訓練的強制SNN(模型3)達到最差的精度。 請注意,盡管我們還觀察到強制SNN有時可能會超過轉換SNN(例如在CNN結構上),但它從未比自然ANN更好。
MNIST上不同模型之間的微小差異可能是由於它是一項簡單的任務。為此,我們將繼續在更大的數據集(即CIFAR10)上進行測試。在這種情況下,精度差異變得更加明顯,其遵循的是“自然ANN(模型1)⇒ 轉換SNN(模型2)⇒ 強制SNN(模型3)”從最優到最差(即78.16% ⇒ 76.81% ⇒ 63.19%)。即使通過使用額外的編碼層(圖4(b))將強制SNN的精度提高到74.23%,它仍然無法擊敗自然ANN。
從表4中,您可以找到證據表明,轉換SNN和強制SNN無法勝過自然ANN。現在,我們嘗試揭示造成此精度差距的根本原因。圖8(a)展示了將原始圖像轉換為脈沖信號以進行隨后的SNN處理時的信息損失(在模型2和模型3中)。這里我們以圖4(a)中的概率抽樣為例。我們首先計算在仿真時間窗口T內每個像素的概率采樣所產生的脈沖總數,然后將其歸一化為圖像后可視化脈沖數目。隨着T的增加,圖像變得更清晰,這表明信號轉換中的精度損失較小。但是,T太大會導致較長的仿真時間。在我們的實驗中,我們將T設置為15,但是,信號轉換的精度損失仍然存在。圖8(b)描繪了原始像素值和歸一化脈沖數目之間的平均絕對誤差(MAE),以及由於不確定采樣導致的MAE方差。最后,我們研究了T如何影響訓練收斂,這由不同T配置下的訓練曲線表明。通常,更長的T會產生更快的收斂速度和更好的最終精度,這主要是由於輸入信號轉換期間的精度損失較小。總之,從圖像到脈沖的信號轉換會導致信息損失,並使SNN模型失去在面向ANN的工作量上勝過自然ANN的機會。此外,仿真時間窗口的長度T顯著影響模型的收斂性。
接下來,讓我們分析為什么與自然ANN相比,轉換SNN也會失去精度。轉換SNN基於預訓練的ANN模型。為了與轉換后的最終IF模型兼容,預訓練的ANN通常會添加一些約束,稱為約束ANN。限制條件包括移除偏差,僅允許ReLU激活函數,將最大池化更改為平均池化等(Diehl et al. (2015)以及Hunsberger and Eliasmith (2016))。這些約束通常導致精度損失,如圖9(a)所示。然后,從預訓練的ANN到轉換SNN的轉換將在上述信號轉換和新出現的參數自適應(例如權重/激活歸一化和閾值調整)期間遭受進一步的精度損失。在CIFAR10上,模型轉換的精度損失明顯大於小型MNIST。仿真時間窗口T的影響如圖9(b)所示,其中較小的T會產生較大的精度損失。因此,轉換SNN通常需要更長的T才能恢復精度。總之,由於受約束的預訓練和有損模型轉換,轉換SNN無法勝過自然ANN。越來越多的最新工作使用轉換SNN在面向ANN的數據集上對SNN性能進行基准測試(Diehl et al., 2015;Hu et al., 2018;Sengupta et al., 2019)。盡管這種方式表明SNN在這些面向ANN的工作量上仍然可以很好地工作,但這也使SNN失去了成為贏家的機會。
表5列出了針對面向SNN的工作量的不同模型的精度結果。在這些網絡和數據集上,自然SNN(模型6)始終可以達到最優精度(N-MNIST上的MLP為98.61%,N-MNIST上的CNN為99.42%,DVS-CIFAR10上的CNN為60.30%),由於與無幀脈沖事件具有自然兼容性。在強制ANN中,基於圖像強度的ANN(模型5)通常比基於二值圖像的ANN(模型4)性能更好,除了在N-MNIST的CNN上偶爾出現的情況。原因與面向ANN的工作量相似,因為N-MNIST的相對簡單性縮小了不同模型之間的精度差距。表5中所有模型的相應訓練曲線如圖10所示。總的來說,在這些面向SNN的工作量上,自然SNN的收斂能力比其他轉換到在ANN領域上處理的模型更好。
我們嘗試以全面的方式解釋精度結果。圖11將在面向SNN的工作量上送入三個模型(模型4/5/6)的不同輸入可視化。對於前兩個模型,分別根據圖4(c)或(d)中的信號轉換方法將脈沖事件轉換為二值圖像或強度圖像。由於模型4直接將每個脈沖模式(0/1)接收為二值圖像,因此這些特征不直觀且過於稀疏,如圖11(a)所示。不同地,模型5沿時間維度累積每個像素的脈沖,然后將脈沖數目歸一化為強度值。如圖11(b)所示,可以在很大程度上保持物體輪廓,但是,詳細的尖銳特征變得模糊。與上述兩個基於幀的模型相比,模型6自然會收到脈沖事件。在圖11(c)的奇數列中可以看到每個時間步驟的原始脈沖模式(實際上,它仍必須匯聚每3ms的脈沖事件以縮小整個仿真時間長度)。調用等式(4),如果我們為簡單起見忽略了發放后的電位復位,則SNN中的膜電位實際上會以時間衰減因子累計所有先前的輸入。為了模擬最終送入到膜電位上的等效輸入,我們繪制了每個時間步驟的先前脈沖模式的衰減累積,並在圖11(c)的偶數列中顯示了它們。可以看出,自然SNN(模型6)能夠很好地保留脈沖事件中包含的細節特征,這是解釋為什么它可以在面向SNN的工作量上表現更好的原因之一。
除了可視化輸入信號外,我們還可視化了激活(在ANN中)和發放率(在SNN中),以比較這三個模型的識別能力。圖12提供了由非線性降維算法,t分布隨機鄰居嵌入(t-SNE)生成的2D嵌入結果(Matten&Hinton, 2008)。它可以將高維嵌入投影到低維嵌入,以進行數據可視化。由於t-SNE對困惑度(ppl)值的敏感性,我們根據Matten and Hinton(2008)建議的范圍在每個數據集上采用兩個ppl值(ppl = 5,ppl = 50)。通過這種方式,我們將最后一個隱含層的256維激活或發放率投影到二維。顏色相同的點具有相同的標簽,顏色不同的點屬於不同的類別。因此,相同顏色的更多集中點和不同顏色的更多發散點反映了模型更好的分類性能。盡管不同的ppl設置確實會導致模式變化,但是隨着ppl值的變化,三個模型之間的相對聚類效果仍然保持一致。在N-MNIST上,三個模型都能夠將來自不同類別的數據投影到不同的點簇中。與模型4和模型5相比,模型6可以更緊湊地吸引每個類中的點,並進一步推動類,這表明模型6性能最優。在DVS-CIFAR10上,所有模型都存在較大的聚類重疊。這意味着無法獲得與簡單的N-MNIST任務類似的精度評分。顯然,從模型4到模型6的聚類效果逐漸增強。結合N-MNIST和DVS-CIFAR10上的結果,可以確認模型6在面向SNN的工作量上的優越性,這與表5中的結果一致。請注意,表4和5中已經展示了模型的分類性能,而t-SNE模擬只是可視化的一種輔助方式,可以更好地理解(不是本文的重點)。這就是為什么我們僅在面向SNN的數據集上顯示模型4/5/6的表5的t-SNE結果,而不重復模型1/2/3的表4的相同實驗的原因。
4.3. Cost analysis
在本小節中,我們計算表4和表5中所有模型的存儲和成本。成本計算根據等式(8)–(9)進行。結果示於表6,其中成本值是推斷期間所有測試樣品的平均結果。
Memory cost analysis. 對於所有ANN模型,存儲成本主要包括權重存儲和激活存儲。為了簡單起見,這里我們省略了一些可能的中間變量(例如部分和),因為它們與硬件架構設計(例如數據流映射)有關。我們還忽略了偏差的存儲成本,因為它僅占總內存的一小部分,尤其是在CNN中。在面向ANN的工作量上,SNN的存儲成本與ANN相當。具體來說,SNN中的膜電位與激活中的膜電位相同,但是SNN的額外脈沖仍會消耗內存。幸運的是,脈沖是二值格式,即只有一位,其存儲成本可以忽略不計。對於面向SNN的工作量,除了模型4(強制二值ANN)之外,可以得出類似的結論。模型4的輸入大小比模型5/6的輸入大小大得多(請參見圖4),這大大增加了特征圖的大小和內存/計算成本。請注意,如果考慮偏差存儲,則ANN的存儲成本將增加,尤其是在MLP網絡的情況下。
Compute cost analysis. 與由具有最大內存成本的時間步驟確定的內存成本不同,計算成本考慮了整個仿真時間窗口(T)中所有時間步驟的總操作。觀察到兩個主要結論:(1)所有SNN都可以免除昂貴的乘法運算(在上述Tw = 1的條件下),這對降低功耗和能耗非常有幫助;(2)SNN中的加法運算的數目可能超過ANN或至少在相同的水平,因為SNN需要處理持續時間,即T,以在rate編碼方案下完成實際任務。第一個結論不包括帶編碼層的模型3,其第一層在ANN-SNN混合模式下工作,從而導致額外的乘法運算和更多的加法運算。第二個結論與常識相反,即SNN的發放活動非常稀疏,即應該是低成本的,這有點違反直覺。正確的是,每個時間步驟的脈沖事件都很稀疏,這導致基於SNN的設備具有低功耗特性。但是,此處的計算成本是由所有時間步驟中的總活動確定的,它更接近於能耗而不是功耗。
在面向ANN的工作量上,由於提到了rate編碼的時間窗口,因此SNN的加法運算量要高於ANN。具體來說,我們發現強制SNN的模型3比轉換SNN的模型2消耗更少的加法。這是因為模型2需要更長的時間窗口(最多66.7倍,請參見表2)來恢復模型轉換后的精度損失。在面向SNN的工作量上,強制二值ANN的模型4會消耗較大的計算成本,這是因為前面提到了較大的特征大小。自然SNN的模型6免除了昂貴的乘法;此外,它比強制強度ANN的模型5的額外消耗更少,與模型1/2/3的情況相比,它的觀察結果相反。這表明神經形態數據集的脈沖序列(例如N-MNIST和DVS-CIFAR10)比轉換后的面向ANN的數據集(例如MNIST和CIFAR10)要稀疏得多。因此,神經形態數據集上的SNN模型可以抑制由rate編碼窗口引起的額外成本。
通過以上分析,我們知道SNN中的發放活動將極大地影響精度和計算成本。因此,我們以DVS-CIFAR10數據集上的模型6為例,進一步進行如圖13所示的敏感性分析。我們忽略了內存成本,因為它僅取決於某個時間步驟的脈沖事件的最大數量,而不是整個時間窗口內的總脈沖。考慮兩個因素,即T和uth。我們可以得到兩個觀察結果:(1)顯然,較大的T通常可以帶來較高的精度,但會導致更多的計算成本;(2)適當大的uth可以同時提高精度和計算成本。太小的uth將產生更多的脈沖,這不僅會增加計算成本,而且由於模式可分辨性較低,還會降低模型精度。盡管太大的uth可以使脈沖明顯稀疏,但會損害網絡的表達能力,從而降低精度。
4.4. Additional comparison
除了SNN之外,神經網絡家族中的RNN和時序CNN都還能夠處理時間信息。因此,這里我們提供了N-MNIST和DVS-CIFAR10數據集上RNN,時序CNN和SNN的額外比較,如表7-8所示。我們在這兩個數據集上實現非脈沖版本的普通RNN,LSTM和時序CNN模型,以及脈沖版本的SNN。我們還參考其他報告的結果。我們詳細介紹了所有網絡結構,以幫助您理解。
首先,我們的SNN結果比以前報道的參考文獻要先進,這得益於我們選擇的高級訓練算法和信號轉換方法。與最近的工作相比(Wu et al., 2019),精度的降低幅度較小是因為我們使用的網絡較小,並且未采用神經元歸一化和基於投票的分類技術。我們想強調的是,這項工作的重點是提供一種全面的基准測試方法,而不是擊敗以前的工作,因此我們放棄了可能的優化技術。我們的LSTM結果與先前的工作一致(Liu et al., 2018),這也反映了我們實施的可靠性。
其次,關於SNN和RNN(LSTM)/時序CNN模型之間的比較,似乎自然的SNN模型(模型6)具有更大的潛力來表現更好。盡管我們的自然SNN的效果比N-MNIST上的時序CNN稍差,但我們應該注意,由於3D卷積,后者的權重參數要大得多。我們盡力解釋SNN在神經形態工作量方面的優勢:(1)歷史信息的時間整合可以自然地更好地保持稀疏數據的詳細特征(見圖11);(2)每個神經元的泄漏和閾值發放機制可以協同幫助去除多余信息,從而保持有用的功能(Evangelos et al., 2015;Gutig, 2016)。
5. Conclusion and discussion
5.1. Brief summary
在這項工作中,我們設計了全面的實驗,以回答“什么樣的工作量最適合SNN,如何評估SNN才有意義”的問題。具體來說,我們使用不同的基准數據集(面向ANN和面向SNN),處理模型(ANN和SNN),信號轉換方法(圖像⇔脈沖)以及學習算法(直接和間接的監督訓練)進行廣泛的工作量分析。考慮到應用程序精度與內存/計算成本之間的折衷,提出了綜合評估指標。
通過各種比較,可視化和敏感性研究,我們給出了以下建模見解:
- 在簡單的面向ANN的工作量(例如MNIST)上,模型3(強制SNN)是更好的選擇,它具有可接受的精度和較低的計算成本(無需昂貴的乘法運算,而加法運算稍多)。
- 處理更復雜的面向ANN的工作量(例如CIFAR10),模型1(自然ANN)優先保持模型的精度。盡管它需要乘法運算,但加法運算最少。
- 在面向SNN的工作量上,模型6(自然SNN)是具有較高精度和較低計算成本的最優選擇。
一方面,由於在ANN預訓練和SNN轉換過程中的有損信號轉換以及參數自適應方面存在額外的限制,因此與原始ANN相比,轉換SNN一方面會降低精度。另一方面,與強制SNN相比,由於恢復精度的時間窗口更長,效率也會下降。在SNN建模中,面向SNN的數據集的稀疏活動顯著降低了計算成本,並且適當增大發放閾值可以提高精度和計算成本。此外,我們在以下討論中首次指出,盡管有許多工作在進行,但直接遷移ANN工作量以評估SNN是不明智的,並且SNN的基准測試框架涵蓋了更廣泛的任務,數據集和指標是緊迫需要的。
5.2. Future opportunities
Coding schemes and learning algorithms. SNN的應用精度和執行成本主要取決於編碼方案和學習算法。在rate編碼之外研究新的編碼方案是一個有吸引力的話題,它可以在不影響表達能力(即保持精度)的情況下縮小時間窗口(即,加快響應速度並降低計算成本)。我們還需要強大的學習算法來進一步探索這些編碼方案的潛力。此外,修改簡單的MSE損失函數也是進一步改進網絡分類性能的一種有前途的方法。所有這些方向都有助於以更少的計算成本來訓練SNN或將當前模型擴展到更大的規模,例如關於ImageNet級別的任務(Deng et al., 2009)。
Datasets, benchmarks, metrics, and applications. 在這項工作中,我們強調指出,使用面向ANN的基准數據集來直接測試SNN是不明智的。此外,我們提出一個有趣的問題是,當前面向SNN的數據集是否足夠神經形態,即它們是否可以幫助充分探究SNN的特征。在Iyer, Chua, and Li(2018)中,作者聲稱即使在神經形態數據集(例如N-MNIST)上,SNN也無法勝過ANN,並且當前神經形態數據集中的時間信息並不重要。我們發現他們的比較有點不公平,因為他們使用的ANN的網絡規模大於SNN基准。但是他們仍然為神經形態社區提出一個有趣的問題:什么是良好的神經形態數據集以及如何建立它?盡管存在用於神經形態數據集的不同類型的生成方法(Li et al., 2017;Mueggler, Rebecq, Gallego, Delbruck, & Scaramuzza, 2017;Orchard et al., 2015;Serrano-Gotarredona & Linares-Barranco, 2015),使用類似DVS的設備將靜態圖像數據集掃描到脈沖版本仍然是當前的普遍做法。但是,這可能不是利用SNN的時空處理能力的最優方法。
其次,大多數現有基准都是基於視覺任務,尤其是圖像識別。它們不足以展示SNN在處理時間或不確定信息方面的能力。我們需要為SNN提供更多的基准測試任務,以推動研究創新。除了視覺識別應用程序外,還可以處理具有固有時間屬性的聽覺和語言信息,或者找到不需要高精度求解方法的優化問題的快速解決方案,例如,它們非常適合SNN。再舉一個例子,大容量視頻中的對象檢測(Binas, Neil, Liu, & Delbruck, 2017;Zhu, Yuan, Chaney, & Daniilidis, 2018)有望從SNN的事件驅動范式向低成本發展中受益匪淺 。此外,還需要超出建議的識別精度和存儲/計算成本的更多評估指標。例如,如何評估時間關聯能力,存儲能力,容錯能力和設備上的實際運行效率都是很有趣的。
此外,識別圖像只是大腦可以執行的眾多任務中的一項。應該進行廣泛的努力來探索SNN的更多函數潛力。一個有希望的方向是從更全局的角度研究網絡動態。SNN中的每個神經元都是具有發放活動的動態模型,該模型與ANN有所區別,后者可以在時域中帶來豐富的響應行為。例如,一個SNN可以存儲以亞穩態編碼的多個場景,並可以在不同刺激下輸出相應的響應軌跡。即使是一個刺激,改變輸入脈沖的順序也會產生完全不同的響應。因此,如何通過外界刺激精確地控制反應軌跡對於記憶行為的探索尤為重要。總體而言,SNN具有巨大的行為空間,值得在將來進行深入分析。在本文中,我們僅提供一些要點進行討論。預計將進行更多調查,需要整個社區的努力。