Accurate and efficient time-domain classification with adaptive spiking recurrent neural networks


鄭重聲明:原文參見標題,如有侵權,請聯系作者,將會撤銷發布!

Nat. Mach. Intell., (2021): 905-913

 

Abstract

  受生物神經元詳細建模的啟發,脈沖神經網絡(SNN)被研究為具有生物學合理性和高性能的神經計算模型。脈沖神經元之間的稀疏二值通信可能會實現強大且節能的神經網絡。然而,與人工神經網絡相比,SNN的性能仍然有所欠缺。在此,我們展示了活動正則化替代梯度如何與可調自適應脈沖神經元的循環網絡相結合,為SNN在時域具有挑戰性的基准(例如語音和手勢識別)上產生最先進的技術。這也超過了標准經典循環神經網絡的性能,並接近了最好的現代人工神經網絡的性能。由於這些SNN表現出稀疏脈沖,我們表明,與具有相似性能的循環神經網絡相比,它們在理論上的計算效率要高出一到三個數量級。總之,這將SNN定位為人工智能硬件實現的有吸引力的解決方案。

 

  受大腦啟發的人工智能深度學習的成功自然將注意力重新集中到神經科學的靈感和抽象上1。一個這樣的例子是將生物神經元之間通信的稀疏、脈沖和基於事件的性質抽象為神經單元,這些神經單元在每次迭代或評估的時間步驟上傳達真實值,將生物脈沖神經元的發放率作為模擬值(圖1a)。脈沖神經元,作為更詳細的神經抽象,理論上比模擬神經單元更強大,因為它們允許單個脈沖的相對時間來攜帶重要信息。自然界中的一個真實示例是使用精確的脈沖時序對動物(如谷倉貓頭鷹)進行有效的聲音定位。通信的稀疏和二值性質同樣有可能以神經形態計算的形式大幅降低專用硬件的能耗。

  自從引入5-9以來,已經開發了許多在脈沖神經網絡(SNN)中學習的方法。所有這些方法都定義了如何將輸入信號轉換為脈沖序列,以及如何根據目標、學習規則或損失函數來解釋輸出脈沖序列。對於監督學習,計算損失函數相對於權重的梯度的方法必須處理神經元內部脈沖機制的不連續性。局部線性化近似,如SpikeProp5可以推廣到近似替代梯度10,甚至在特殊情況下精確計算11。特別是替代梯度的使用最近導致在選定基准上的性能迅速提高,縮小了與傳統深度學習方法在CIFAR10和(Fashion) MNIST等較小圖像識別任務上的性能差距,並展示了在時間任務上的改進性能,例如TIMIT語音識別12。盡管如此,SNN仍然難以證明其優於經典人工神經網絡(ANN)13,14的明顯優勢。

  在此,我們介紹了一種新的脈沖循環神經網絡(SRNN)方法15,網絡包括循環連接的脈沖神經元層(圖1b)。我們展示了如何將這些網絡訓練為在困難基准上達到高性能,從而在除一個基准之外的所有基准上都超過SNN的當前最先進水平,並接近或超過經典循環人工神經網絡中的最先進水平。SRNN的高性能是通過使用新的多高斯替代梯度和自適應脈沖神經元將時序反向傳播(BPTT)16應用於脈沖神經元來實現的,其中內部時間常數參數與網絡權重共同訓練。構建多高斯替代梯度以包括負斜率(類似於sigmoid類dSilu激活函數的梯度17,18);我們發現它始終優於其他現有的替代梯度。同樣,共同訓練自適應脈沖神經元的內部時間常數總是被證明是有益的。我們證明這些成分共同將性能提高到具有競爭力的水平,同時保持稀疏的平均網絡活動。

  我們展示了SRNN在具有固有時間維度的知名基准測試中的卓越性能,例如心電圖(electrocardiogram, ECG)波形分類、語音(Google Speech Commands, GSC; TIMIT)、雷達手勢識別(project Soli)和經典硬基准,例如序列MNIST及其置換變體。我們發現SRNN需要很少的通信,平均脈沖神經元每3到30個時間步驟發出一次脈沖,具體取決於任務。計算理論能量成本,然后我們表明廉價的累加(accumulate, AC)操作在SRNN中優於更昂貴的加乘(multiply-and-accumulate, MAC)操作。基於MAC與AC相對能量成本13,14,我們認為這些稀疏脈沖SRNN與RNN和ANN相比具有一到三個數量級的能量優勢,並且具有相當的准確性,具體取決於網絡和任務的復雜性。

圖1 | 脈沖神經網絡中處理和學習的圖示。a,頂部:經典人工神經單元計算輸入激活的加權和,然后使用非線性傳遞函數從該總和計算輸出激活。時間被建模為網絡圖的迭代重計算。底部:脈沖神經元接收到經過加權並添加到內部狀態(膜電位)的脈沖,該內部狀態(膜電位)根據微分方程隨着時間的推移而進一步發展。當膜電位超過閾值時,會發出脈沖信號並重置電位。b,SRNN的示例架構:輸入層投影到一層循環連接的脈沖神經元。循環層然后投影到讀出層。多個循環層可以前饋方式連接,此處顯示了兩個循環層。c,LIF和ALIF神經元的衰減閾值和膜電位可以建模為由自循環誘導的內部狀態。d,用於序列 t = 0...T 的BPTT的脈沖神經元計算圖的roll-out。e,不同替代梯度函數作為神經元膜電位和閾值的函數的圖示,其中多高斯參數化如下實驗所示(s = 6, h = 0.15)。

 

SRNNs. 我們在這里關注循環連接的脈沖神經元的多層網絡,如圖1b所示;變化包括接收雙向輸入的脈沖循環神經網絡(bi-SRNN; 擴展數據圖2a)。

  脈沖神經元來源於捕捉真實生物神經元行為的模型。盡管Hodgkin-Huxley模型等生物物理模型是准確的,但它們的計算成本也很高。現象學模型,例如LIF神經元模型以生物合理性水平換取可解釋性和降低計算成本:LIF以泄漏方式整合輸入電流,並在其膜電位從下方越過其閾值時發出脈沖,之后,膜電位被重置為重置膜電位;電流泄漏由衰減時間常數τm確定。

  作為一個極其簡單的脈沖神經元模型,LIF神經元缺乏真實神經元的許多復雜行為,包括表現出更長歷史依賴性的反應,例如脈沖發放率適應20。Bellec及其同事21展示了如何使用使用通用適應形式的脈沖神經元模型來提高其SNN的性能。在這個自適應LIF (ALIF)神經元中,LIF神經元模型增加了一個自適應閾值,該閾值在每個發放脈沖后增加,然后隨着時間常數τadp呈指數衰減。LIF和ALIF神經元都可以被認為是具有自循環的神經單元,如圖1c所示。

 

BPTT, surrogate-gradient and multi-Gaussian. 給定在特定時間 t 的神經活動上定義的損失函數L(t|θ),BPTT算法16通過使用鏈式法則計算偏導數以更新網絡參數 θ 來最小化損失。這里 θ 包括突觸權重和相應的神經時間常數。在循環連接的網絡中,過去的神經激活會影響當前的損失,並且通過展開網絡,這些過去的激活對當前損失的貢獻被考慮在內。網絡活動的展開,通過它計算梯度,如圖1d所示。

  脈沖神經元中脈沖機制的不連續性使得很難應用連接神經輸出和神經輸入之間反向傳播梯度的鏈式法則;在實踐中,用平滑梯度函數(替代梯度)替換不連續梯度已被證明是有效的10,12,22,並且具有允許在優化的深度學習框架(如PyTorch和Tensorflow)中將SNN映射到RNN的額外好處10。已經提出並評估了多個替代梯度函數,包括Gaussian、linear21和SLayer6函數;但是,這些函數的性能沒有顯著差異10

  我們在此將多高斯定義為一個新的替代梯度,包括多個高斯的加權和,其中超參數 h 和 s 的選擇使得多高斯包含負部分:

其中 ut 是脈沖神經元的膜電位,σ 是高斯的寬度,ϑ 是其內部閾值。多高斯替代梯度的靈感來自dSilu17激活函數,它被證明在准確性和學習速度方面都優於標准sigmoid激活函數,並且具有類似於多高斯的導數。多高斯梯度的負部分有效地規范了活動,因為它們懲罰了相對較大的輸入和較小的輸入18。因此,梯度函數有助於SNN在稀疏神經活動的情況下實現高精度。多高斯和各種其他替代梯度函數的形狀如圖1e所示。 

圖 2 | 復雜度計算。a,不同層的理論能量計算。計算復雜度計算遵循Hunger50。 給定用於評估單個神經LIF、ALIF或LSTM單元(左)的公式,計算單個循環連接層的復雜度,其中每個神經元接收 n 個具有平均脈沖概率的前饋輸入Frin和 m 個具有平均脈沖概率的循環輸入Frout;EAC和EMAC分別表示累加(AC)和MAC操作的能量成本。b,LIF、ALIF和LSTM內部操作示意圖。

 

Computational cost. 為了估計SNN的效率並將它們與ANN進行比較,我們計算了累加(AC)和MAC操作所需的計算次數23。我們對具有LIF或ALIF神經元的SRNN網絡執行此操作,並將其與復雜的循環ANN結構進行比較,例如長短期記憶(LSTM)網絡24(圖2;其他ANN參見擴展數據圖2b)。在人工神經網絡中,一個神經元對另一個神經元的貢獻需要每個時間步驟的MAC,將每個輸入激活乘以各自的權重,然后再將其添加到內部總和中。相比之下,對於脈沖神經元,傳輸的脈沖只需要在目標神經元處進行累加,從而增加電位的權重,而脈沖可能非常稀疏。此外,脈沖神經元的內部狀態需要在每個時間步驟更新,代價是幾個MAC,具體取決於脈沖神經元模型的復雜性14。由於計算MAC比計算AC在能量上要昂貴得多(例如,在45 nm互補金屬氧化物半導體上要貴31倍25),SNN的相對效率取決於連接數乘以活動稀疏度和脈沖神經元模型的復雜性。我們還注意到,在數字硬件上,乘法電路比加法電路需要更多的芯片面積26

圖 3 | 任務執行的詳細信息。a-c,為每個時間步驟標記的單個ECG信號通道的示例(a);SHD數據集中口語數字7的輸入脈沖序列(b);以及手勢數據的示例(c),其中頂行顯示手勢的時間演變,底行顯示相應的距離多普勒圖像。d,各種替代梯度對性能的影響。e,訓練時間常數超參數τm和τadp的效果。圖例表示訓練了哪些超參數,而ReLU表示非脈沖模擬SRNN。f,SRNN在各種任務上的每時間步驟脈沖概率。g,每個樣本的總平均脈沖操作(SOP)和每個樣本每步驟的SOP(每幀的時間步驟)。h,神經元類型對不同梯度的測試准確性和稀疏性的影響(針對Soli數據集顯示)。節點的大小表示網絡大小,而節點的顏色表示梯度類型。i,隱藏循環層的數量對具有各種梯度的測試准確性和稀疏性的影響(針對SHD數據集顯示)。

 

Results

Tasks. 循環神經網絡在需要內存的各種序列任務中提供最先進的性能27(通常在小型和緊湊的網絡中)並且能夠以在線方式運行。我們區分兩種序列任務:(1) 流式任務,其中許多輸入映射到許多指定的輸出(多對多);(2) 分類任務,其中輸入序列映射到單個輸出值(多對一)。序列分類任務也可以在線方式計算,其中為每個時間步驟確定分類。

  我們選擇了具有固有時間維度的基准任務,這些任務也可以使用大小適中的RNN進行計算,以適應SNN的動態和約束。對於這些任務,我們用各種梯度、超參數和脈沖神經元模型訓練了幾種不同的SRNN網絡架構,並將它們與經典和最先進的RNN架構進行了比較。使用對訓練數據的三重交叉驗證來選擇超參數。

  ECG28信號由六種不同的特征波形(P、PQ、QR、RS、ST和TP)組成,其形狀和持續時間可告知臨床醫生心血管系統的功能。該任務需要連續識別所有六個波形,我們使用來自QTDB數據集28的信號。ECG波標記是僅使用過去信息的在線和流式任務。序列和置換序列S/PS-MNIST數據集是長度為784的標准序列分類任務,源自經典的MNIST數字識別任務(通過一次呈現一個像素)。置換版本還首先置換每個數字類刪除空間信息。Spiking Heidelberg Digits (SHD)和Spiking Speech Command (SSC)數據集29是特定於SNN的序列分類基准,其中包含基於詳細耳朵模型轉換為脈沖序列的音頻數據。

  Soli數據集30手勢識別任務包括一組手勢,其中每個手勢都作為從固態毫米波雷達傳感器(Soli)收集的一系列雷達回波進行測量。我們通過序列處理幀將Soli任務視為在線流式傳輸和分類任務;因此,我們獲得了兩個度量,流的每幀精度和分類的全序列精度。

  GSC31和TIMIT數據集32都是經典的語音識別基准,對於TIMIT,我們計算幀錯誤率(FER)和位置,類似於參考文獻12,我們應用了一個雙向架構,這樣未來的信息也被用來對每一幀進行分類(如擴展數據圖2a中所示)。ECG、SHD和Soli數據集的樣本如圖3a-c所示。

  如表1所示,我們發現這些SRNN在除一項任務外的所有任務上都達到了SNN的最先進性能,超過了LSTM模型等傳統RNN,並且接近或超過了現代RNN的最先進水平。對於GSC,我們超越了SNN最先進的循環和在線處理,並接近參考文獻33的非流式結果。此外,我們看到SRNN在卷積神經網絡(CNN)和基於注意力的網絡等非循環架構上大大縮小了准確度差距(SHD, SSC, GSC);然而,這些網絡通常包含更多的神經元或參數,並且不能以在線或流式方式計算。

  我們在圖3d中繪制了使用不同替代梯度的各種任務的准確度:盡管我們看到以前開發的梯度(例如高斯、線性和SLayer)之間幾乎沒有差異,但我們發現多高斯函數始終優於這些梯度。為了更好地理解為什么多高斯是有益的,我們刪除了梯度的左負部分或右負部分進行比較。我們一致地發現,這兩個部分的性能和稀疏性都得到了改善(擴展數據表2,以及擴展數據圖3和4),這表明多高斯的負部分可以作為有效的正則化器。

  如圖3e中的消融研究所示,我們還發現,與使用的替代梯度無關,在ALIF神經元中訓練時間常數始終可以提高性能;不訓練τm或τadp——或者都不訓練——會降低性能。SRNN的大部分功能似乎來自其多層循環和自循環架構。當我們通過消除脈沖機制並傳達膜電位的整流線性單元(ReLU)值使脈沖神經元不產生脈沖時,對於幾乎所有任務,我們的性能都略高於脈沖SRNN。

  訓練好的SRNN通信很少:大多數網絡表現出小於0.1的稀疏性,並且只有ECG任務需要更多的脈沖,因為它被調整為使用最小的SRNN網絡(46個神經元)。神經活動的稀疏性(表示為每個神經元每個時間步驟的平均發放概率)繪制在圖3f中。一般來說,我們發現增加網絡大小可以提高准確性,同時降低平均稀疏度(圖3h, i),盡管網絡中使用的脈沖總數會增加。圖3g給出了性能最高的SRNN的每個樣本(SOP)和每個樣本每步(SOP每步)所需的總平均脈沖數。我們還評估了與層內循環連接相比,脈沖神經元的內部循環在多大程度上做出了貢獻:我們發現添加層內循環連接持續提高了准確性(參見補充信息中的擴展數據表2)。

  使用ALIF或LIF神經元繪制網絡的性能,我們發現ALIF神經元持續改善網絡中的性能和活動稀疏性(圖3h)。類似地,在SRNN架構中將單個大型循環層分成兩層循環連接層可以提高SHD任務的性能和稀疏性(圖3i),其他任務也有類似的改進。

  我們在Soli和SHD數據集上對 h 和 s 超參數進行了網格搜索,以確定使用交叉驗證的多高斯替代梯度的最佳參數值。我們發現有一系列值可以同時獲得具有競爭力的准確性和高稀疏性(圖4a, b中橙色虛線左上角的區域)。我們對其他任務使用了類似的超參數搜索,僅使用來自此處確定的高精度/低活動區域的選定值;訓練過程還學習了各個任務的時間常數。如圖4c所示,對於SHD任務,從時間常數的緊密分布開始,訓練網絡中的脈沖神經元收斂到使用各種時間常數——在其他任務中觀察到相同的效果(未展示)。

  一些任務的流式和在線性質允許網絡隨時做出決定。圖4d顯示了每個時間步驟的各種ECG波形的分類。當出現新波形時,在正確識別此類之前會有短暫的延遲。在圖4e-i中,顯示了S-MNIST、PS-MNIST、SHD、SSC和Soli數據集的平均在線分類性能。我們看到可以快速可靠地識別S-MNIST和PS-MNIST數字,而SSC聲音需要更多時間。SHD聲音識別更加不穩定,對數據的檢查表明這是由於聲音剪輯中不同時間放置的各種類造成的。圖4i將准確度繪制為Soli任務顯示的幀數的函數。在42幀中僅呈現25幀后,大多數手勢已經能夠可靠地識別,與參考文獻30相比具有優勢:SRNN允許更早做出更准確的決策。

  鑒於參考文獻14,25,34的累加(AC)和MAC相對能量成本和圖2a計算的計算復雜度,我們在表2中繪制了各種網絡的相對能量效率。我們看到,對於更復雜的任務,在同等性能​​水平下,理論上SRNN的能效至少是RNN的59倍,而對於大多數任務,非脈沖(ReLU) SRNN的表現最為有利。更經典的RNN結構(如LSTM)需要更多的參數和操作,效率通常低1000倍——我們還在擴展數據表1中計算了其他RNN結構的類似估計值。

圖 4 | 學習權衡和分類延遲。a,b,網格搜索 h (高度)和 s (尺度),用於Soli數據集上的多高斯替代梯度。虛線以高精度(>0.91) (a) 和高發放稀疏度(>0.09) (b) 划分的左上角區域。綠色虛線框表示選定的 h 和 s 值。c,脈沖神經元時間常數在訓練前后的演變。d,ECG流分類的一個例子:每個輸出標簽的預測概率是根據歸一化輸出神經元的膜電位(虛線,底部)計算的。頂部,顏色編碼的真實標簽。e-i,S-MNIST識別 (e)、PS-MNIST (f) 和SHD識別 (g) 任務、SSC數據集 (h) 和Soli數據集 (i) 的分類精度的時間演化。

注:使用推斷期間所需的MAC和AC的數量計算相對能量成本,其中Ratio是相對能量比,使用1 MAC = 31 AC計算(參考文獻25)。每個時間步驟的SRNN中的平均脈沖概率用 fr 表示。Soli數據集中的精度是每幀精度。對於GSC,ReLU SRNN沒有收斂。雙向LSTM網絡包含290個LSTM單元。b 對於TIMIT,相對精確的網絡的復雜性不可用。 

 

Discussion

  我們展示了多層循環網絡結構如何能夠為SNN在序列和時間任務上實現新的最先進的性能。這是通過使用具有學習時間動力學的自適應脈沖神經元來實現的,該神經元使用新的替代梯度多高斯梯度訓練BPTT,其中多高斯梯度始終優於其他替代梯度。這些結果接近或等於傳統RNN的准確度,其中非脈沖ReLU-SRNN始終略微優於脈沖版本,證明了SRNN網絡架構的有效性。當用計算操作表示時,它們展示了比傳統RNN高一到三個數量級的決定性理論能量優勢。對於需要更大網絡才能准確解決的更復雜的任務,這一優勢進一步增加。

  多高斯梯度的靈感來自為標准人工神經元dSilu開發的sigmoid式飽和激活函數,它具有類似形狀的梯度。與dSilu一樣,我們還發現梯度的負值部分有助於提高准確性,並且在SRNN中也有稀疏性。后者表明梯度的負部分充當有效的正則化器。

  SRNN和提出的RNN都沒有進行超出准確性和(對於SRNN)稀疏性的優化:沒有應用修剪和量化等優化。當我們將用於GSC任務的SRNN與基於注意力的CNN網絡TinySpeech23(效率優化語音識別的最新技術)進行比較時,我們發現在同等性能​​水平下,SRNN仍然減少了19.6倍的MAC需求,以及與TinySpeech不同的是,SRNN能夠在線流式運行(擴展數據表1)。

  我們專注於輸入維度相對有限的時間或序列問題。使用RNN,此類問題可以通過相對較小的神經網絡來解決,並有望在超低功耗EdgeAI解決方案中實現。這也是強調不需要或需要固定預處理和緩沖的流式處理或在線解決方案的原因:首先必須對時間流進行分段,然后對這些段進行分類的問題大大增加了此類解決方案的復雜性。我們表明,大多數分類決策可以及早做出接近最佳的准確度。

  這里討論的數據集都被選擇為適合SRNN進行流式處理和在線處理,而預處理非常有限;例如,計算log Mel過濾器。在初步工作中,使用傳統的卷積網絡層來提取有用的特征被證明有助於簡單的后續脈沖神經元層35。我們同樣發現(使用混合CNN-SRNN,我們在DVS128數據集上獲得了97.91%的准確率,在GSC數據集上獲得了96.5%的准確率,CNN-SRNN代碼可在https://github.com/byin-cwi/Efficient-spiking-networks/tree/main/DVS128),深度預處理顯著提高了諸如GSC和DVS128數據集36等任務的准確性,其中SRNN的分數超過了參考文獻33,35報告的分數。這表明,對於比這里的研究更大的問題,深度預處理在平衡對復雜性和能源需求的影響以及處理基於事件的流數據的能力時具有很大的前景。

  使用替代梯度,可以使用標准深度學習框架計算SRNN中的BPTT梯度,其中我們使用了PyTorch37。該代碼可在https://github.com/byin-cwi/Efficient-spiking-networks獲得。通過這種方法,可以使用最先進的優化器、正則化器和可視化工具來訓練復雜的架構和脈沖神經元模型。同時,這種方法在內存使用和訓練時間方面成本很高,因為計算圖在所有時間步驟上完全展開,排除了在線和片上學習。此外,框架中沒有利用豐富的空間和時間稀疏性。這也限制了可以應用這種方法的網絡的規模;對於相當大的網絡,需要專用硬件和/或稀疏優化框架38。BPTT的近似值(例如eProp12)或替代的循環學習方法(例如RTRL39)也可能有助於緩解這一限制。

  我們注意到,我們計算的SRNN的能量優勢是理論上的:盡管MAC的計算成本已被廣泛接受23,34,但該度量忽略了現實世界的真實性,例如是否存在足夠的本地內存、訪問內存的成本和將脈沖從一個神經元路由到另一個神經元的潛在成本。在許多EdgeAI應用中,傳統傳感器的能源成本也可能在能源公式中占主導地位。同時,我們提供的數字是未經優化的,因為除了針對稀疏性和准確性優化替代梯度外,我們沒有修剪網絡或應用其他標准優化和量化技術。這里的實質性改進應該相當簡單。SRNN中脈沖神經元模型的訓練參數可以進一步擴展到包括參數化短期可塑性和更復雜的脈沖神經元模型的方法。

  為任務調整時間常數參數的有效性也可能對神經科學產生影響:盡管真實脈沖神經元的有效時間常數是可變的和動態的,但在SRNN中訓練這些參數的好處表明,這些神經特性可能會受到生物學中的學習過程的影響。

 

Methods

  在SRNN中,LIF脈沖神經元被建模為:

其中是輸入信號,包括時間 t處的脈沖,由權重 w和注入電流Iinj,t加權;u 是神經元膜電位,它隨 τm 呈指數衰減,ur 是復位電位,ϑ 是閾值,Rm 是膜電阻(我們在突觸權重中吸收)。函數fs(ut, ϑ)將脈沖生成機制建模為 ϑ 的函數,當神經元脈沖時設置為1,否則為0(其中近似的替代梯度為)。復位電位 ur 的值設置為零。ALIF神經元類似地建模為:

其中 α, γ 是與時間動力學相關的參數(α = exp(-dt/τm)和ρ = exp(-dt/τadp)),ϑ 是包含固定最小閾值b0和自適應貢獻βηt的動態閾值;ρ 表示具有時間常數τadp的閾值的單時間步驟衰減。參數β是控制閾值自適應大小的常數;我們默認將自適應神經元的 β 設置為1.8。類似地,α 表示膜電位隨時間常數 τm 的單時間步驟衰減。

  SRNN使用BPTT、各種具有可塑性時間常數和各種替代梯度的脈沖神經元模型進行訓練。在可用的情況下使用標准驗證集來確定過擬合;對於SHD,我們保留了5%的訓練數據,對於(P)S-MNIST,我們保留了10%。除了SSC和SHD數據集之外,模擬輸入值被編碼為脈沖,或者使用電平交叉方案(ECG)生成的脈沖,或者通過將比例電流直接注入第一個脈沖層(S-MNIST, PS-MNIST, Soli, TIMIT, GSC)。我們使用兩種方法中的一種來解碼網絡的輸出:對於(P)S-MNIST任務,在整個時間窗口內進行脈沖計數,非脈沖LIF神經元(TIMIT, SHD, Soli和GSC)或脈沖ALIF神經元(ECG)。使用脈沖計數,分類是從輸出脈沖的總和解碼為,其中是輸出神經元 i 在時間 t 的脈沖。對於非脈沖LIF神經元和脈沖ALIF神經元的輸出,softmax分類是根據每個時間步驟的輸出神經元的膜電位uout,t計算得出的。對於ECG,我們使用脈沖ALIF神經元進行輸出,因為它們表現最好,我們認為這與以下事實有關:這是樣本內分類切換的唯一任務(脈沖然后有效地起到重置的作用)。我們使用標准的BPTT方法12來最小化使用Adam41優化器的每個任務的交叉熵或負對數似然損失,其中我們從頭到尾展開所有輸入時間步驟。在更新權重之后的所有時間步驟中計算並累積誤差梯度。脈沖神經元的BPTT與自循環電路一起逆行計算。如圖1d所示,給定一個輸入序列X = x0, x1, x2, ... , xT和一個初始狀態為{uh,0, uo,0, Sh,0, So,0}的神經元,我們得到每個時間步驟 t ∈ {0, T} 脈沖神經元狀態{uh,t, Sh,t, uo,t, So,t},其中Sh,t表示隱藏層中的神經元是否發放,So,t表示輸出神經元(如果發放脈沖),uh,t和uo,t表示隱藏和輸出神經元的膜電位。然后,我們為每個時間步驟或整個序列和相關損失獲得分類。在總共C類的分類任務中,在讀取整個序列后計算類的預測概率,然后計算網絡的損失為,其中yc是 c 類的目標概率。在流式任務(ECG, Soli)中,總損失計算為每個時間步驟的損失總和,。對於BPTT派生梯度,我們計算並且對於循環權重Wh2o,我們計算,其中每個項可以在每個時間步驟 t′ 計算為,其中Wh2h指隱藏層中神經元之間的權重,而Wh2o指隱藏神經元和輸出神經元之間的權重。不連續脈沖函數作為項進入梯度,這里我們使用可微的替代梯度10

  對於多高斯替代梯度,我們根據網格搜索找到有效參數值h = 0.15和s = 6.0,並將 σ 設置為0.5。標准替代梯度在參考文獻10之后定義,線性替代梯度為;SLayer6梯度為,高斯替代梯度為;對於所有梯度,α 為正。我們使用網格搜索優化了實驗中的所有替代梯度超參數;在實驗中,我們使用了αlinear = 1.0,αslayer = 5.0和σG = 0.5。

 

Network initialization. 與ANN相比,SRNN需要初始化權重和脈沖神經元的超參數(即神經元類型、時間常數、閾值、起始電位)。我們使用補充表1中給出的每層特定參數隨機初始化時間常數,遵循嚴格的正態分布(μ, σ)。對於所有神經元,膜電位的起始值用在范圍內均勻分布的隨機值初始化 [0,θ]。網絡的偏置權重初始化為零,所有前饋權重均使用Xavier-uniform初始化;循環連接的權重被初始化為正交矩陣。我們比較了具有常數、均勻和正態初始化器的網絡的時間常數,發現正態初始化器實現了最佳性能(擴展數據圖1)。

  對於各種任務,損失函數、序列長度、最大epoch數、學習率和衰減計划以及小批量大小在補充表1中指定。驗證表明SRNN不易過擬合,並且在最后一個epoch得出測試准確度。除非另有說明,否則網絡架構由密集連接到一個或多個完全循環連接的脈沖神經元層的輸入組成,這些脈沖神經元連接到輸出神經元層,如圖1b所示。對於ECG任務,QTDB數據集28由兩個ECG信號通道組成。我們在歸一化ECG信號的導數上應用電平交叉編碼42閾值的變體,以將原始連續值 x 轉換為脈沖序列:每個通道被轉換為兩個單獨的脈沖序列,分別代表值增加事件和值減少事件。我們使用的水平交叉編碼定義為:

其中 x 是被編碼的信號,S+、S-分別表示正和負脈沖序列的脈沖,我們使用L+ = 0.3和L- = 0.3。

  對於SHD,音頻記錄通過切割或用零完成對齊到1秒。正如Cramer及其同事29的工作一樣,為測試數據集保留了兩個說話者,並且來自其他說話者的5%的樣本也被添加到測試數據集中。因此,訓練數據集包含8,156個樣本,而測試數據集包含2,264個樣本。對於SSC數據集,語音命令也以250 Hz的采樣頻率均勻對齊到1 s,數據集隨機分為訓練、驗證和測試數據集,比例分別為72:8:20%。對於Soli數據集,40個距離多普勒圖像序列作為輸入逐幀輸入模型,並像Wang及其同事一樣分為訓練集和測試集30。原始的距離多普勒圖像有四個通道,但我們憑經驗發現使用一個通道就足夠了。對於Soli任務,SRNN的第一層,我們使用前饋脈沖密集層,然后是循環層。與Wang及其同事30一樣,針對任務的流式和分類版本,分別針對每幀准確度(Accs)和逐序列准確度(Accc)訓練了單獨的網絡。在S-MNIST任務中,網絡逐像素讀取圖像;對於PS-MNIST任務,使用大小為4且步長為1的滑動窗口將像素讀入網絡。對於這兩個任務,像素值作為注入電流直接輸入網絡,注入第一個隱藏層的神經元,作為具有自身權重的全連接層。我們使用GSC v.1(參考文獻31)。對於預處理,使用Librosa43從原始音頻信號中提取log Mel濾波器及其一階和二階導數。對於FFT,使用30 ms的窗口和10 ms的跳躍。仿真時間步長為10 ms。我們使用20 Hz和4 kHz之間的Mel標度計算40個Mel濾波器系數的對數。此外,對頻譜圖進行歸一化以確保每個頻率的信號在時間上的方差為1;然后我們選擇前三個導數作為三個不同的輸入通道。因此,SRNN的輸入是101幀的序列,其中每幀包含一個40 × 3矩陣。

  TIMIT數據庫在訓練和測試數據中分別包含3,696和192個樣本。我們使用Mel頻率倒譜系數(MFCC)編碼對原始音頻數據進行預處理,如Bellec及其同事12中所述;隨機選擇10%的訓練數據集作為驗證數據集,其余部分對網絡進行訓練。與雙向LSTM類似,我們使用雙向自適應SRNN來完成此任務(參見擴展數據圖2a);我們在網絡中使用兩個SRNN層,分別從前向和后向讀取序列。然后將這些層輸出的平均值輸入最后一層,即積分器,以生成類別預測。

 

Data availability

  本研究期間分析的數據是開源和公開的。ECG流數據集的數據集源自原始QTDB數據集(https://physionet.org/content/qtdb/1.0.0/)。脈沖數據集(SHD和SSC)屬於脈沖Heidelberg數據集,可在https://zenkelab.org/resources/spiking-heidelberg-datasets-shd/獲得。MNIST數據集可以從http://yann.lecun.com/exdb/mnist/下載。Soli數據集可以在https://polybox.ethz.ch/index.php/s/wG93iTUdvRU8EaT下載。TIMIT Acoustic-Phonetic Continuous Speech Corpus可通過https://doi.org/10.35111/17gk-bn40索取。更多信息可以在我們的存儲庫中找到(參見代碼可用性部分)。本文提供了源數據。

 

Code availability

  研究中使用的代碼可從GitHub存儲庫(https://github.com/byin-cwi/Efficient-spiking-networks)公開獲得。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM