Spatio-Temporal Backpropagation for Training High-performance Spiking Neural Networks


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

FRONTIERS IN NEUROSCIENCE, (2018)

 

Abstract

  與人工神經網絡(ANN)相比,脈沖神經網絡(SNN)有望探索類腦行為,因為脈沖可以編碼更多時空信息。盡管現有的包括ANN預訓練或基於反向傳播(BP)的直接訓練方案使SNN的監督訓練成為可能,但這些方法僅利用網絡的空間域信息導致性能瓶頸,並且需要許多復雜的訓練技術。另一個基本問題是脈沖活動自然是不可微的,這給訓練SNN帶來了很大的困難。為此,我們構建了一個對梯度下降訓練更友好的迭代LIF模型。通過在訓練階段同時考慮逐層空間域(SD)和時序相關時間域(TD),以及脈沖活動的近似導數,我們提出了時空反向傳播(STBP)的訓練框架,不使用任何復雜技能。我們設計了相應的全連接和卷積架構,並在靜態MNIST和自定義對象檢測數據集以及動態N-MNIST上評估我們的框架。結果表明,與脈沖網絡上現有的最先進算法相比,我們的方法實現了最優精度。這項工作為探索具有豐富時空動態的未來類腦計算范式的高性能SNN提供了新的視角。

 

I. INTRODUCTION

  深度神經網絡(DNN)在不同領域取得了出色的表現[1]-[5],而大腦似乎使用了另一種網絡架構,脈沖神經網絡,來實現各種復雜的認知功能[6]-[8]。與現有的DNN相比,SNN主要有兩個優勢:1)流經SNN的脈沖模式從根本上編碼了更多的時空信息,而大多數DNN缺乏時序動態,尤其是廣泛使用的前饋DNN;2)SNN的事件驅動范式可以使其對硬件更加友好,並被許多神經形態平台采用[9]-[14]。

  然而,由於脈沖活動的非常復雜的動態和不可微的性質,它在訓練SNN方面仍然具有挑戰性。綜上所述,SNN的訓練方法有以下三種:1)無監督學習;2)間接監督學習;3)直接監督學習。第一個起源於權重改變的生物突觸可塑性,例如脈沖時序依賴可塑性(STDP)[15]-[17]。因為它只考慮局部神經元活動,很難達到高性能。第二個首先訓練一個ANN,然后將其轉換為具有相同網絡結構的SNN版本,其中SNN神經元的發放率充當ANN神經元的模擬活動[18]-[21]。這不是探索SNN學習性質的生物可行方式。獲得高性能訓練的最有前途的方法是最近基於梯度下降理論和誤差反向傳播的直接監督學習。然而,這種方法只考慮了逐層空間域,而忽略了時域中的動態[22][23]。因此,需要許多復雜的訓練技能來提高性能[19][23][24],例如固定數量比例重置、橫向抑制、誤差歸一化、權重/閾值正則化等。因此,非常需要一個關於SNN的更通用的動態模型和學習框架。

  在本文中,我們為SNN提出了一個直接監督學習框架,它在訓練階段結合了SD和TD。首先,我們構建了一個具有SNN動力學的迭代LIF模型,但它對梯度下降訓練很友好。然后我們在誤差反向傳播過程中同時考慮空間方向和時間方向,即時空反向傳播(STBP),這顯著提高了網絡精度。此外,我們引入了一個近似導數來解決脈沖活動的不可微分問題。我們通過在靜態MNIST和自定義對象檢測數據集以及動態N-MNIST上使用全連接和卷積架構來測試我們的SNN框架。由於我們提出的方法可以充分利用捕捉SNN性質的STD信息,因此可以避免現有方案通常需要的許多復雜的訓練技能。實驗結果表明,與現有的最先進算法相比,我們提出的方法可以在靜態或動態數據集上實現最佳精度。系統地分析了TD動態的影響和不同的微分逼近方法。這項工作將為探索具有豐富STD動態的未來類腦計算范式的高性能SNN開辟道路。

 

II. METHOD AND MATERIAL

A. Iterative Leaky Integrate-and-Fire Model in Spiking Neural Networks

  與現有的深度神經網絡相比,脈沖神經網絡從根本上編碼了更多的時空信息,原因有兩個:i)SNN也可以具有像DNN一樣的深層架構,以及ii)每個神經元都有自己的神經元動態特性。前一種賦予SNN豐富的空間域信息,而后一種賦予SNN編碼時域信息的能力。然而,目前還沒有統一的框架允許通過考慮時空動態來有效訓練SNN,就像在DNN中實現反向傳播(BP)一樣。這對SNN在各種應用中的廣泛使用提出了挑戰。在這項工作中,我們將提出一個基於迭代LIF模型的框架,使我們能夠應用時空反向傳播來訓練脈沖神經網絡。

  眾所周知,LIF是描述SNN中神經元動態的最廣泛應用的模型,它可以簡單地由下式表示:

其中u(t)是時間 t 的神經元膜電位,τ是時間常數,I(t)表示由前神經元活動或外部注射和突觸權重決定的突觸前輸入。當膜電位u超過給定的閾值Vth時,神經元會觸發脈沖並將其電位重置為ureset。如圖1所示,SNN的前向數據流像DNN一樣在逐層SD中傳播,每個神經元節點的自反饋注入在TD中生成非易失性集成。通過這種方式,整個SNN以復雜的STD動態運行,並將時空信息編碼為脈沖模式。現有的訓練算法要么通過反向傳播只考慮有監督的SD,要么通過基於時序的可塑性考慮無監督的TD,這會導致性能瓶頸。因此,如何構建一個充分利用STD的學習框架是構成這項工作的主要動機的高性能SNN的根本要求。

  然而,在(1)中獲得LIF模型的解析解直接使得基於反向傳播訓練SNN變得不方便/模糊。這是因為整個網絡將在SD和TD中呈現復雜的動態。為了解決這個問題,下面的事件驅動迭代更新規則:

可以很好地用於基於最后一個脈沖時刻ti-1和突觸前輸入I(t)來近似估計(1)中的神經元電位u(t)。膜電位呈指數衰減,直到神經元接收到突觸前輸入,一旦神經元發出脈沖信號,就會開始新的更新回合。也就是說,神經元狀態由I(t)的空間累積和u(ti-1)的泄漏時間記憶共同決定。

  正如我們所知,用於訓練DNN的誤差反向傳播的效率極大地受益於梯度下降的迭代表示,它產生了SD反向傳播中逐層誤差傳播的鏈式法則。這促使我們提出基於迭代LIF的SNN,其中迭代發生在SD和TD中,如下所示:

其中:

上式中,上標 t 表示時間 t 時刻,n和l(n)分別表示第n層和第n層神經元個數。wij為突觸前層第 j 個神經元到突觸后層第 i 個神經元的突觸權重,oj ∈ {0, 1}是第 j 個神經元的神經元輸出,其中oj = 1表示脈沖活動,oj = 0表示沒有發生。xi是第 i 個神經元的突觸前輸入的簡化表示,類似於原始LIF模型中的I。ui是第 i 個神經元的神經元膜電位,bi是與閾值Vth相關的偏差參數。
  實際上,公式(4)-(5)也受到LSTM模型[25]-[27]的啟發,通過使用遺忘門f(.)來控制TD記憶和使用輸出門g(.)來發放脈沖。遺忘門f(.)控制TD中潛在記憶的泄漏程度,輸出門g(.)在被激活時會產生脈沖活動。具體來說,對於一個小的正時間常數,f(.)可以近似為:

由於τe-1/τ ≈ 0。這樣,原始LIF模型可以轉化為迭代版本,其中SD和TD中的遞歸關系都得到了清晰的描述,這對STD中的后續梯度下降訓練很友好。

 

B. Spatio-Temporal Backpropagation Training

  為了呈現STBP訓練方法,我們定義了以下損失函數L,其中在給定時間窗口T下所有樣本的均方誤差要最小化:

其中ys和os分別表示第s個訓練樣本的標簽向量和最后一層N的神經元輸出向量。

  通過將等式(3)-(9)組合在一起,可以看出L是W和b的函數。因此,基於梯度下降的STBP算法需要獲得L對W和b的導數。假設我們已經在時間 t 的每一層n處獲得了的導數,這是獲得最終的的必要步驟。圖2描述了單神經元級別(圖2.a)和網絡級別(圖2.b)的SD和TD中的誤差傳播(取決於推導)。在單神經元層面,傳播被分解為SD的垂直路徑和TD的水平路徑。SD中誤差傳播的數據流類似於DNN的典型BP,即每個神經元累積來自上層的加權誤差信號並迭代更新不同層的參數;而TD中的數據流共享相同的神經元狀態,這使得直接獲得解析解變得相當復雜。為了解決這個問題,我們使用所提出的迭代LIF模型在SD和TD方向上展開狀態空間,從而可以區分不同時間步長的TD中的狀態,從而實現迭代傳播的鏈式規則。類似的想法可以在[28]中用於訓練RNN的BPTT算法中找到。

  現在,我們基於以下四種情況討論如何獲得完整的梯度下降。 首先,我們表示:

  基於這四種情況,誤差傳播過程(取決於上述導數)如圖2所示。在單神經元層面(圖2.a),傳播分解為SD的垂直路徑和TD的水平路徑。在網絡層面(圖2.b),SD中誤差傳播的數據流類似於DNN的典型BP,即每個神經元累積來自上層的加權誤差信號並迭代更新不同層的參數;在TD中,神經元狀態在時序方向上迭代展開,從而實現鏈式規則傳播。最后,我們得到關於W和b的導數如下:

其中可以從等式(11)-(21)中獲得。根據STBP給定W和b,我們可以使用梯度下降優化算法來有效訓練SNN以實現高性能。

 

C. Derivative Approximation of the Non-differentiable Spike Activity

  在前面的部分中,我們已經介紹了如何基於STBP獲取梯度信息,但是每個脈沖時間點的不可微分問題還有待解決。實際上,公式(11)-(22)的STBP訓練需要輸出門g(u)的導數。理論上,g(u)是δ(u)的不可微狄拉克函數,這極大地挑戰了SNN的有效學習[23]。g(u)除了在零處的無窮大值外,其他任何地方都具有零值,這會導致梯度消失或爆炸問題,從而禁用誤差傳播。現有方法之一將脈沖時間電位的不連續點視為噪聲,並聲稱它有利於模型的魯棒性[23][29],但它沒有直接解決脈沖活動的不可微性問題。為此,我們引入了四條曲線來近似圖3.b中由h1、h2、h3和h4表示的脈沖活動的導數:

其中ai(i = 1, 2, 3, 4)確定曲線形狀和陡峭程度。實際上,h1, h2, h3和h4分別是矩形函數、多項式函數、sigmoid函數和高斯累積分布函數的導數。為了與狄拉克函數δ(u)一致,我們引入系數ai來保證每個函數的積分為1。顯然,可以證明上述所有候選都滿足:

  因此,STBP的公式(11)-(22)中的可以近似為:

在第III-C節中,我們將分析不同曲線和不同ai值對SNN性能的影響。

 

III. RESULTS

A. Parameter Initialization

  參數的初始化,如權重、閾值和其他參數,對於穩定整個網絡的發放活動至關重要。我們應該同時確保突觸前刺激的及時反應,但避免過多的脈沖降低神經元選擇性。眾所周知,預脈沖和權重的乘法累加操作和閾值比較是前向傳播中計算的兩個關鍵步驟。這表明權重和閾值之間的相對大小決定了參數初始化的有效性。在本文中,為了簡化起見,我們將每個神經元中的閾值固定為常數,並且僅調整權重以控制活動平衡。首先,我們初始化從標准均勻分布中采樣的所有權重參數:

然后,我們將這些參數歸一化為:

其他參數組列於表I中。此外,在我們工作中的所有模擬中,不再需要[19][23]中的任何復雜技能,例如固定數量比例重置、誤差歸一化、權重/閾值正則化等。

 

 

B. Dataset Experiments

  我們在各種數據集上測試我們的SNN模型和STBP訓練方法,包括靜態MNIST和自定義對象檢測數據集,以及動態N-MNIST數據集。第一層的輸入應該是一個脈沖序列(spike train),這需要我們將靜態數據集中的樣本轉換成脈沖事件。為此,本文采用了從原始像素強度到發放率的Bernoulli采樣。

  1) Spatio-temporal fully connected neural network: Static Dataset. 手寫數字的MNIST數據集[30](圖4.b)和用於對象檢測的自定義數據集[14](圖4.a)被選中來測試我們的方法。MNIST由帶有60000個標記的手寫數字的訓練集和由0-9的郵政編碼生成的其他10000個標記數字的測試集組成。每個數字樣本是一個28 × 28的灰度圖像。目標檢測數據集是我們實驗室為行人檢測創建的​​二類圖像數據集。它包括1509個訓練樣本和631個測試樣本的28 x 28灰度圖像。通過檢測是否有行人,一個圖像樣本被標記為0或1,如圖4.a所示。圖 4.c中上下兩個子圖分別是從對象檢測數據集和MNIST上的樣本示例的5 x 5像素的中心塊轉換而來的25個輸入神經元的脈沖模式。圖4.d舉例說明了在STBP訓練前后15ms內輸出層的脈沖模式對數字9的刺激。開始時,輸出層中的神經元隨機發放,而訓練后第10個神經元編碼數字9最密集地發放,表明實現了正確的推理。

  表II將我們的方法與其他幾個在MNIST上使用類似MLP架構的高級結果進行了比較。盡管我們不使用任何復雜的技能,但所提出的STBP訓練方法也優於所有報告的結果。我們可以達到98.89%的測試准確率,這是表現最好的。表III將我們的模型與對象檢測數據集上的典型MLP進行了比較。對比模型是典型的人工神經網絡(ANN)之一,即不是SNN,下面我們使用"非脈沖網絡"來區分它們。可以看出,我們的模型比非脈沖MLP實現了更好的性能。請注意,來自對象檢測數據集的輸入脈沖序列的整體發放率高於來自MNIST數據集的輸入脈沖序列,因此我們在模擬實驗中將其閾值增加到2.0。

  Dynamic Dataset. 與靜態數據集相比,動態數據集,如N-MNIST[32],包含更豐富的時間特征,因此更適合開發SNN的潛在能力。我們以N-MNIST數據庫為例來評估我們的STBP方法在動態數據集上的能力。N-MNIST通過使用動態視覺傳感器(DVS)[33]將上述靜態MNIST數據集轉換為其動態版本的脈沖序列。對於MNIST的每個原始樣本,工作[32]控制DVS依次向等腰三角形的三個邊方向移動(圖5.b),並收集每個像素的強度變化觸發的生成脈沖序列。圖5.a記錄了數字0的跳視結果。每個子圖記錄了10ms內的脈沖序列,每100ms代表一個跳視周期。由於每個像素強度有兩種可能的變化方向(更亮或更暗),DVS可以捕獲相應的兩種脈沖事件,分別用開事件和關事件表示(圖5.c)。由於N-MNIST允許在掃視過程中圖像的相對位移,它產生34 x 34像素范圍。從圖5.c的時空表征中,我們可以看到開事件和關事件是如此不同,我們使用兩個通道來區分它。因此,網絡結構為34x34x2-400-400-10。

  表IV將我們的STBP方法與N-MNIST數據集上的一些最新結果進行了比較。上面的5個結果基於ANN,下面的4個結果(包括我們的方法)使用SNN。人工神經網絡方法通常采用基於幀的方法,在時間間隔(50ms ~ 300ms)內收集脈沖事件形成一幀圖像,並使用傳統的圖像分類算法來訓練網絡。由於轉換后的圖像通常是模糊的,基於幀的預處理對模型性能有害,並放棄了硬件友好的事件驅動范式。從表IV可以看出,ANN的模型普遍比SNN的模型差。相比之下,SNN可以自然地處理事件流模式,並且通過更好地利用事件流的時空特征,與所有報告的ANN和SNN方法相比,我們提出的STBP方法實現了98.78%的最佳准確率。我們方法的最大優點是我們沒有使用任何復雜的訓練技巧,這有利於未來的硬件實現。

  2) Spatio-temporal convolution neural network: 將我們的框架擴展到卷積神經網絡結構可以讓網絡更深入,並賦予網絡更強大的SD信息。這里我們使用我們的框架來建立時空卷積神經網絡。與我們的時空全連接網絡相比,主要區別在於輸入圖像的處理,我們使用卷積代替加權求和。具體來說,在卷積層中,每個卷積神經元接收卷積后的輸入並根據LIF模型更新其狀態。在池化層,由於SNN的二值編碼不適合標准最大池化,我們使用平均池化代替。

  我們的脈沖CNN模型也在MNIST數據集和對象檢測數據集上進行了測試。在MNIST中,我們的網絡包含一個卷積層,核大小為5 x 5和兩個平均池化層交替,然后是一個隱含層。和傳統的CNN一樣,我們使用彈性失真[36]來預處理數據集。表V記錄了MNIST數據集上最先進的性能脈沖卷積神經網絡。我們提出的脈沖CNN模型獲得了98.42%的准確率,這優於其他報告的具有稍輕結構的脈沖網絡。此外,我們在自定義對象檢測數據庫上配置相同的網絡結構來評估所提出的模型性能。訓練200個epoch后報告測試准確率。表VI表明我們的脈沖CNN模型可以實現與非脈沖CNN可比的性能。

 

C. Performance Analysis

  1) The Impact of Derivative Approximation Curves: 在第II-B節中,我們引入了不同的曲線來近似脈沖活動的理想導數。本文試圖分析不同近似曲線對測試精度的影響。在MNIST數據集上進行了實驗,網絡結構為784-400-10。在訓練200個epoch后報告測試精度。首先,我們比較了不同曲線形狀對模型性能的影響。在我們的模擬中,我們使用圖3.b中所示的h1、h2、h3和h4。圖6.a說明了不同形狀近似的結果。我們觀察到,不同的非線性曲線,如h1、h2、h3和h4,對性能的影響很小。

  此外,我們以矩形近似為例,探討了寬度對實驗結果的影響。我們設定a1=0.1, 1.0, 2.5, 5.0, 7.5, 10和相應的結果繪制在圖6.b中。不同的顏色表示不同的a1值。a1值過大或過小都會導致性能下降,在我們的模擬中,a1=2.5達到了最高的測試精度,這意味着矩形的寬度和陡度會影響模型性能。結合圖6.a和圖6.b,它表明,近似脈沖活動推導的關鍵點是捕捉非線性性質,而具體形狀並不那么關鍵。

  2) The Impact of Temporal Domain: 這項工作的一個主要貢獻是將時域引入現有的基於空域的BP訓練方法中,充分利用了SNN的時空動態特性,實現了高性能的訓練。現在我們定量分析TD項目的影響。實驗配置與前一節(784-400-10)我們還報告了經過200個epoch訓練后的測試結果。此處,SD中的現有BP稱為SDBP。

  表VII記錄了模擬結果。SDBP的測試精度低於STBP在不同數據集上的測試精度,這表明時間信息有利於模型性能的提高。具體而言,與STBP相比,SDBP在目標跟蹤數據集上的准確度損失為1.21%,比MNIST上的損失大5倍。結果還表明,SDBP的性能不夠穩定。除了數據集本身的干擾外,這種變化的原因可能是SNN訓練的不穩定性。實際上,SNN的訓練在很大程度上依賴於參數的初始化,這對於SNN應用來說也是一個巨大的挑戰。在許多已有的研究工作中,研究人員通常利用一些特殊的技能或機制來提高訓練性能,如橫向抑制、正則化、歸一化等。相比之下,使用我們的STBP訓練方法,可以在相同的網絡上獲得更高的性能。具體來說,在MNIST和目標檢測數據集上,STBP的測試准確率分別達到98.48%和98.32%。請注意,STBP可以在不使用任何復雜訓練技能的情況下實現高精度。這種穩定性和魯棒性表明,TD中的動態基本上包含了SNN計算的巨大潛力,這項工作確實提供了一種新思路。

 

IV. CONCLUSION

  在這項工作中,通過利用網絡中的時空信息,建立了一個統一的框架,允許監督訓練脈沖神經網絡,就像在深度神經網絡(DNN)中實現反向傳播一樣。我們的主要貢獻總結如下:

  • 我們提出了一個基於迭代LIF模型的框架,使我們能夠在SNN上實現時空反向傳播。與以往主要關注其空間域特征的方法不同,我們的框架進一步結合和利用了SNN在空間域和時間域的特征;
  • 我們設計了STBP訓練算法,並在MLP和CNN架構上實現了它。STBP已在靜態和動態數據集上得到驗證。結果表明,我們的模型在具有脈沖MLP和CNN的相對小規模網絡上優於最先進的SNN,在動態NMNIST數據集上優於具有相同網絡大小的DNN。我們的算法的一個吸引人的優點是,它不需要現有方案通常需要的額外訓練技術,並且更容易在大規模網絡中實現。結果還表明,利用時空復雜性解決問題可以更好地發揮SNN的潛力;

  • 我們引入了一個近似導數來解決脈沖活動的不可微問題。控制實驗表明,逼近曲線的陡峭度和寬度會影響模型的性能,而逼近的關鍵是捕捉非線性性質,而具體形狀並不那么關鍵。

  因為大腦結合了時空域的復雜性來處理輸入信息,我們還想說,在SNN上實現STBP比在DNN上應用BP更具生物可行性。STBP不依賴於太多的訓練技巧,這使得它對硬件更加友好,對於具有在線學習能力的神經形態芯片的設計非常有用。關於未來的研究課題,我們認為有兩個問題是非常必要和重要的。一個是應用我們的框架來解決更多的時序特性問題,如動態數據處理、視頻流識別和語音識別。二是如何加速基於GPU/CPU或神經形態芯片的大規模SNN的監督訓練。前者旨在進一步利用SNN豐富的時空特性來處理動態問題,后者可能極大地促進大規模SNN在現實生活場景中的應用。


免責聲明!

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



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