Spiking-YOLO: Spiking Neural Network for Energy-Efficient Object Detection


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

AAAI, pp.11270-11277, (2020)

 

Abstract

  在過去的十年中,深度神經網絡(DNN)在各種應用中都表現出了卓越的性能。隨着我們試圖解決更高級的問題,對計算和電力資源的需求不斷增加已成為必然。 脈沖神經網絡(SNN)作為第三代神經網絡,由於其事件驅動和低功耗的特性而引起了廣泛的興趣。然而,SNN難以訓練,主要是由於它們復雜的神經元動力學和不可微分的脈沖操作。此外,它們的應用僅限於相對簡單的任務,例如圖像分類。在這項研究中,我們研究了SNN在更具挑戰性的回歸問題(即目標檢測)中的性能下降。通過我們的深入分析,我們介紹了兩種新穎的方法:通道歸一化和具有不平衡閾值的符號神經元,這兩種方法都為深度SNN提供了快速准確的信息傳輸。因此,我們提出了第一個基於脈沖的目標檢測模型,稱為Spiking-YOLO。我們的實驗表明,Spiking-YOLO在非平凡數據集、PASCAL VOC和MS COCO上取得了與Tiny YOLO相當(高達98%)的顯著結果。此外,神經形態芯片上的Spiking-YOLO消耗的能量大約比Tiny YOLO少280倍,收斂速度比以前的SNN轉換方法快2.3到4倍。

 

Introduction

  最近深度神經網絡(DNN)成功背后的主要原因之一可歸因於高性能計算系統的發展和用於模型訓練的大量數據的可用性。然而,解決實際應用中更有趣和更高級的問題需要更復雜的模型和訓練數據,這會導致計算開銷和功耗顯著增加。為了克服這些挑戰,許多研究人員嘗試使用剪枝(Guo, Yao, and Chen 2016; He, Zhang and Sun 2017)、壓縮(Han, Mao, and Dally 2016; Kim et al. 2015)和量化(Gong et al. 2014; Park et al. 2018)來設計計算和節能的DNN,其中一些已經顯示出有希望的結果。盡管做出了這些努力,但隨着更深且更復雜的神經網絡實現更高的准確性,對計算和電力資源的需求將會增加(Tan and Le 2019)。

  脈沖神經網絡(SNN)是第三代神經網絡,通過使用脈沖神經元作為計算單元來模擬信息在人腦中的編碼和處理方式(Maass 1997)。與傳統的神經網絡不同,SNN通過由一系列脈沖(離散)組成的脈沖序列的精確計時(時間)而不是實際值(連續)來傳輸信息。也就是說,SNN在信息傳輸中像在生物神經系統中一樣利用時間方面(Mainen and Sejnowski 1995),從而提供了稀疏但強大的計算能力(Mostafa et al. 2017; Bellec et al. 2018)。此外,脈沖神經元在接收到脈沖時將輸入整合到膜電位中,並在膜電位達到某個閾值時產生(發放)脈沖,這使得事件驅動計算成為可能。由於脈沖事件和事件驅動計算的稀疏特性,SNN提供了卓越的功率效率,並且是神經形態架構中的首選神經網絡(Merolla et al., 2014; Poon and Zhou 2011)。

  盡管SNN具有出色的潛力,但它們僅限於相對簡單的任務(例如,圖像分類)和小型數據集(例如,MNIST和CIFAR),而且結構相當淺(Lee, Delbruck, and Pfeiffer 2016; Wu et al. 2019)。應用范圍有限的主要原因之一是由於脈沖神經元的復雜動力學和不可微操作而缺乏可擴展的訓練算法。DNN到SNN的轉換方法作為一種替代方法,近年來得到了廣泛的研究(Cao, Chen, and Khosla 2015; Diehl et al. 2015; Sengupta et al. 2019)。這些方法基於將預先訓練的參數(例如,權重和偏差)從DNN導入到SNN的想法。DNN到SNN的轉換方法在深度SNN中取得了與原始DNN(例如VGG和ResNet)相當的結果;然而,MNIST和CIFAR數據集的結果具有競爭力,而ImageNet數據集的結果與DNN的准確性相比並不令人滿意。

  在這項研究中,我們使用DNN到SNN的轉換方法研究了深度SNN中更高級的機器學習問題,即目標檢測。目標檢測被認為更具挑戰性,因為它涉及識別多個重疊目標和計算邊界框的精確坐標。因此,它需要較高的數值精度來預測神經網絡的輸出值(即回歸問題),而不是像在圖像分類中那樣選擇概率最高的一類(即argmax函數)。根據我們的深入分析,在深度SNN中應用目標檢測時會出現幾個問題:a)傳統歸一化方法的效率低下,b)在SNN域中缺乏有效的leaky-ReLU實現方法。

  為了克服這些問題,我們引入了兩種新方法; 通道歸一化和閾值不平衡的有符號神經元。因此,我們提出了一種基於脈沖的目標檢測模型,稱為Spiking-YOLO。作為SNN中目標檢測的第一步,我們實現了基於Tiny YOLO的Spiking-YOLO (Redmon et al. 2016)。據我們所知,這是第一個用於目標檢測的深度SNN,它在非平凡數據集、PASCAL VOC和MS COCO上取得了與DNN相當的結果。我們的貢獻可以總結如下:

  • 深度SNN中的第一個目標檢測模型 我們首次展示了Spiking-YOLO,這是一種能夠在深度SNN中實現節能目標檢測的模型。Spiking-YOLO在非平凡數據集上取得了與原始DNN相當的結果,即98%。
  • 通道歸一化 我們為深度SNN開發了一種細粒度的歸一化方法。所提出的方法能夠在多個神經元中實現更高但適當的發放率,從而在深度SNN中實現快速准確的信息傳輸。
  • 具有不平衡閾值的有符號神經元 我們提出了一種在SNN域中准確高效的leaky-ReLU實現方法。所提出的方法可以很容易地在具有最小開銷的神經形態芯片中實現。

 

Related work

DNN-to-SNN conversion

  與DNN不同,SNN使用由一系列脈沖組成的脈沖序列在神經元之間傳遞信息。LIF神經元將輸入 z 累積到膜電位Vmem中:

其中是一個脈沖,並且是第 l 層的第 j 個神經元的輸入,其膜電壓為Vth能夠被描述為:

其中 w 和 b 分別是權重和偏差。 當積分值Vmem超過閾值電壓Vth時產生脈沖Θ,如:

其中U(x)是單位階躍函數。由於事件驅動的性質,SNN提供了節能操作(Pfeiffer and Pfeil 2018)。然而,它們很難訓練,這是在各種應用中部署SNN時的主要障礙之一(Wu et al. 2019)。

  SNN的訓練方法包括具有脈沖時序依賴可塑性(STDP)的無監督學習(Diehl 和 Cook 2015) 以及具有梯度下降和誤差反向傳播的監督學習 (Lee, Delbruck, and Pfeiffer 2016)。 盡管 STDP 在生物學上更合理,但學習性能明顯低於監督學習。 最近的工作提出了一種監督學習算法,其函數近似於 SNN 的不可微分部分(IF)(Jin, Zhang, and Li 2018; Lee, Delbruck, and Pfeiffer 2016),以提高學習性能。盡管做出了這些努力,但之前的大多數工作都僅限於淺層SNN上的圖像分類任務和MNIST數據集。

  作為一種替代方法,最近提出了將DNN轉換為SNN。(Cao, Chen, and Khosla 2015)提出了一種忽略偏差和最大池化的DNN到SNN的轉換方法。在隨后的工作中,(Diehl et al. 2015)提出了基於數據的歸一化來提高深度SNN的性能。(Rueckauer et al. 2017)提出了一種批歸一化和脈沖最大池化的實現方法。(Sengupta et al. 2019)將轉換方法擴展到VGG和殘差架構。盡管如此,以前的大多數工作都僅限於圖像分類任務(Park et al. 2019)。

 

Object detection

  目標檢測通過繪制邊界框來定位圖像或視頻中的單個或多個目標,然后識別它們的類別。因此,目標檢測模型不僅包括對目標進行分類的分類器,還包括預測邊界框的精確坐標(x 軸和 y 軸)和大小(寬度和高度)的回歸器。因為預測邊界框的精確坐標至關重要,所以目標檢測被認為是比圖像分類更具挑戰性的任務,其中使用argmax函數簡單地選擇具有最高概率的一類。

  基於區域的CNN (R-CNN) (Girshick et al. 2014)被認為是目標檢測領域最重要的進步之一。為了提高檢測性能和速度,已經提出了R-CNN的各種擴展版本,即fast R-CNN (Girshick 2015)、faster R-CNN (Ren et al. 2015)和Mask R-CNN (He et al. 2017)。然而,由於多階段檢測方案,基於R-CNN的網絡推理速度較慢,因此不適合實時目標檢測。

  作為一種替代方法,已經提出了單階段檢測方法,其中提取邊界框信息,並將目標分類在一個統一的網絡中。在單階段檢測模型中,"Single-shot multi-box detection" (SSD) (Liu et al. 2016)和"You only look once" (YOLO) (Redmon and Farhadi 2018)實現了最先進的性能。特別是,YOLO具有出色的推理速度(FPS),而不會顯著損失准確度,這是實時目標檢測的關鍵因素。因此我們選擇Tiny YOLO作為我們的目標檢測模型。

 

Methods

  在目標檢測中,識別多個目標並在它們周圍繪制邊界框(即回歸問題)提出了很大的挑戰:預測網絡的輸出值需要很高的數值精度。當使用傳統的DNN-to-SNN轉換方法將目標檢測應用於深度SNN時,它會遭受嚴重的性能下降並且無法檢測到任何目標。我們的深入分析強調了這種性能下降的可能解釋:a)在許多神經元中極低的發放率和 b)在SNN中缺乏一種有效的leaky-ReLU實現方法。為了克服這些並發症,我們提出了兩種新方法:通道歸一化和閾值不平衡的有符號神經元。

 

Channel-wise data-based normalization

Conventional normalization methods 在典型的SNN中,確保神經元根據輸入的大小生成脈沖序列並在不丟失任何信息的情況下傳輸這些脈沖序列是至關重要的。然而,在給定固定數量的時間步驟的情況下,神經元中的激活不足或過度激活可能會導致信息丟失。例如,如果閾值電壓Vth非常大或輸入很小,則膜電位Vmem將需要很長時間才能達到Vth,從而導致低發放率(即激活不足)。相反,如果Vth極小或輸入很大,則Vmem很可能會超過Vth,並且無論輸入值如何,神經元都會產生脈沖(即過度激活)。值得注意的是,發放率可以定義為N/T ,其中 N 是給定時間步驟 T 中的脈沖總數。最大發放率將是100%,因為每個時間步驟都可以生成一個脈沖。

  為了防止神經元激活不足或過度激活,需要仔細選擇權重和閾值電壓,以實現神經元的充分和平衡激活(Diehl et al. 2015)。已經提出了各種基於數據的歸一化方法(Diehl et al. 2015)。逐層歸一化(Diehl et al. 2015)(縮寫為layer-norm)是最著名的歸一化方法之一;layer-norm使用相應層的最大激活對特定層中的權重進行歸一化,該激活是通過在DNN中運行訓練數據集計算得出的。這是基於訓練和測試數據集的分布相似的假設。此外,請注意,使用最大激活對權重進行歸一化與對輸出激活進行歸一化具有相同的效果。layer-norm可以計算為:

其中 w, λ 和 b 分別是權重、從訓練數據集計算的最大激活值和第 l 層中的偏差。作為layer-norm的擴展版本,(Rueckauer et al. 2017)引入了一種使用最大激活的99.9%對激活進行歸一化的方法;這增加了對異常值的魯棒性並確保神經元有足夠的發放。然而,我們的實驗表明,當使用傳統的歸一化方法在深度SNN中應用目標檢測時,模型的性能會顯著下降。

Analysis of layer-norm limitation 圖1表示從layer-norm獲得的每個通道中的歸一化最大激活值。Tiny YOLO由八個卷積層組成;x軸表示通道索引,y軸表示歸一化的最大激活值。藍線和紅線分別表示每層中歸一化激活的平均值和最小值。如圖1所示,對於特定的卷積層,每個通道上的歸一化激活的偏差相對較大。例如,在Conv1層中,某些通道(例如,通道6、7和14)的歸一化最大激活值接近1,而對於其他通道(例如,通道1、2、3、13和16)則接近0。其他卷積層也是如此。顯然,layer-norm在歸一化之前具有相對較小激活值的眾多通道中產生異常小的歸一化激活(即激活不足)。

  這些極小的歸一化激活在圖像分類中未被檢測到,但在解決深度SNN中的回歸問題時可能會出現極大的問題。例如,要傳輸0.7,需要7個脈沖和10個時間步驟。應用相同的邏輯,傳輸0.007將需要7個脈沖和1000個時間步驟,而不會丟失任何信息。因此,要發送極小(例如,0.007)或精確(例如,0.9007 對 0.9000)的值而不會造成任何損失,需要大量的時間步驟。時間步驟的數量被認為是正在傳輸的信息的分辨率。因此,極小的歸一化激活會產生低發放率,當時間步驟數少於所需數量時,這會導致信息丟失。

Proposed normalization method 我們提出了一種更細粒度的歸一化方法,被稱為通道歸一化(縮寫為channel-norm),以實現在深度SNN中快速高效的信息傳輸。我們的方法以通道方式而不是傳統的分層方式通過最大可能激活(第99.9個百分位數)對權重進行歸一化。所提出的channel-norm可以被表示為:

 

 

其中 i 和 j 是通道的索引。層 l 中的權重 w 通過每個通道中的最大激活進行歸一化(與歸一化輸出激活相同的效果)。如前所述,最大激活是根據訓練數據集計算的。在接下來的層中,歸一化的激活必須乘以以獲得歸一化之前的原始激活。詳細方法在算法1和圖2中描述。

  以通道方式對激活進行歸一化消除了極小的激活(即激活不足),這些激活在歸一化之前具有較小的激活值。換句話說,神經元被歸一化以獲得更高但適當的發放率,從而在短時間內實現准確的信息傳輸。

 

Analysis of the improved firing rate 在圖3中,x 軸和 y 軸分別表示發放率和在對數尺度上產生特定發放率的神經元數量。對於channel-norm,許多神經元產生高達80%的發放率。然而,在layer-norm中,大多數神經元產生的發放率在0%到3.5%之間。這清楚地表明,channel-norm消除了極小的激活,並且更多的神經元正在產生更高但適當的發放率。此外,圖4顯示了卷積層1中每個通道的發放率。顯然,channel-norm在大多數通道中產生了更高的發放率。特別是在通道2中,channel-norm產生的發放率是layer-norm的20倍。此外,圖5顯示了來自20個采樣神經元的脈沖活動的光柵圖。可以看出,當應用channel-norm時,許多神經元的發放更加規律。

  我們的詳細分析驗證了細粒度channel-norm可以更好地使激活正常化,防止激活不足導致低發放率。換句話說,極小的激活被適當地歸一化,使得神經元可以在短時間內准確地傳遞信息。在圖像分類等簡單應用中,這些小的激活可能並不重要,對網絡的最終輸出影響不大;但是,它們在回歸問題中至關重要,並且會顯著影響模型的准確性。因此,channel-norm是解決深度SNN中更高級機器學習問題的可行解決方案。

 

Signed neuron featuring imbalanced threshold

Limitation of leaky-ReLU implementation in SNNs ReLU,最常用的激活函數之一,只保留正輸入值,丟棄所有負值;當x ≥ 0時,f(x) = x,否則f(x) = 0。與ReLU不同,leaky-ReLU包含帶有泄漏項的負值,斜率為α,通常設置為0.01;當x ≥ 0時,f(x) = x,否則f(x) = αx (Xu et al. 2015)。

  之前的大多數DNN到SNN的轉換方法都集中在將IF神經元轉換為ReLU,而完全忽略了激活函數負區域的泄漏項。請注意,在Tiny YOLO 中,負激活占51%以上。為了擴展綁定到SNN中負區域的激活函數,(Rueckauer et al. 2017)添加了第二個Vth項(-1)。他們的方法成功地將BinaryNet (Hubara et al. 2016)轉換為SNN,其中BinaryNet激活在CIFAR-10上被限制為+1或-1。

  目前,各種DNN都使用leaky-ReLU作為激活函數,但尚未提出在SNN域中實現leaky-ReLU 的准確有效的方法。Leaky-ReLU可以通過簡單地將負激活乘以斜率α以及第二個Vth項(-1)在SNN中實現。然而,這在生物學上是不合理的(脈沖是一個離散信號),並且在用於神經形態芯片時可能是一個巨大的挑戰。例如,斜率α的浮點乘法需要額外的硬件。

The notion of imbalanced threshold 我們在此介紹了一個具有不平衡閾值的有符號神經元(以下簡稱IBT),它不僅可以解釋正激活和負激活,還可以准確有效地補償leaky-ReLU負區域中的泄漏項。所提出的方法還通過為負區域引入不同的閾值電壓Vth,neg來保留脈沖的離散特性。第二閾值電壓Vth,neg等於Vth除以斜率的負數-α,並且Vth,pos與之前一樣等於Vth。這將在leaky-ReLU的負區域復制泄漏項(斜率α)。具有IBT的有符號神經元的潛在動力學由下式表示:

 

 

如圖6所示,如果斜率α = 0.1,則負責正激活的閾值電壓Vth,pos為1V,負激活的閾值電壓Vth,neg為-10V;因此,Vmem必須集成十次以上才能為leaky-ReLU中的負激活產生一個脈沖。

  值得注意的是,帶符號的神經元還可以實現興奮性和抑制性神經元,這在生物學上更合理(Dehghani et al. 2016; Wilson and Cowan 1972)。使用帶IBT的有符號神經元,leaky-ReLU可以在SNN中准確實現,並且可以以最小的開銷直接映射到當前的神經形態架構。此外,所提出的方法將為在廣泛的應用中將各種DNN模型轉換為SNN創造更多機會。

 

 

Evaluation

Experimental setup

  作為深度SNN中目標檢測的第一步,我們使用了實時目標檢測模型Tiny YOLO,它是YOLO的一個更簡單但高效的版本。我們根據(Rueckauer et al. 2017)在SNN中實現了最大池化和批歸一化。Tiny YOLO在非平凡數據集PASCAL VOC和MS COCO上進行了測試。我們的模擬基於TensorFlow Eager,我們在NVIDIA Tesla V100 GPU上進行了所有實驗。

 

Experimental results

 

Conclusion

 


免責聲明!

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



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