浙大&川大提出脈衝版ResNet:繼承ResNet優勢,實現當前最佳
來自專欄機器之心
選自arXiv,作者:Yangfan Hu等,機器之心編譯。
脈衝神經網路(SNN)具有生物學上的合理性,並且其計算潛能和傳統神經網路相同,主要障礙在於訓練難度。為解決這個問題,浙江大學和四川大學近日提出了脈衝版的深度殘差網路 Spiking ResNet。為解決模型轉換的問題,研究者提出了一種新機制,對連續值的激活函數進行標準化,以匹配脈衝神經網路中的脈衝激發頻率,並設法減少離散化帶來的誤差。在多個基準數據集上的實驗結果表明,該網路取得了脈衝神經網路的當前最佳性能。
引言
研究表明,脈衝神經網路 [21] 是一種彌合模型性能和計算開銷之間鴻溝的解決方案。從理論上講,脈衝神經網路可以像人工神經網路(ANN)一樣逼近任意的函數。與傳統的人工神經網路(ANN)不同,脈衝神經網路的神經元通過離散的事件(尖峰脈衝)而不是連續值的激活函數來相互通信。當事件到達時,這個系統會被非同步更新,從而減少在每個時間步上所需要的運算步數。最新的研究進展表明,脈衝神經網路可以通過像 TrueNorth [24],SpiNNaker[9],以及 Rolls [26] 這樣的神經形態的硬體來模擬,其能量消耗比當前的計算機硬體少幾個數量級。此外,由於其基於事件的特性,脈衝神經網路天生就適合處理從具有低冗餘、低延遲和高動態範圍的基於 AER(地址時間表達)的感測器那裡得到的輸入數據,例如:動態視覺感測器(DVS)[19] 和聽覺感測器(硅耳蝸)[20]。最近的一項研究 [28] 指出,脈衝立體神經網路的實現比基於經典絕對誤差和(SAD)演算法的微控制器的實現少消耗大約一個數量級的能量。
如今,脈衝神經網路所面臨的一大挑戰是如何找到一種有效的訓練演算法,克服脈衝的不連續性,並且獲得和人工神經網路(ANN)相當的性能。轉換方法,即通過訓練一個傳統的人工神經網路並建立一個轉換演算法,將權重映射到一個等價的脈衝神經網路中去,取得了迄今為止最好的性能。然而,對一個非常深的人工神經網路進行轉換的難題在這之前從未被解決過。
在本文中,我們研究了基於殘差神經網路 [11] 的深度脈衝神經網路的學習,這是一種非常前沿的卷積神經網路(CNN)架構,它在許多數據集上取得了非常好的性能,並且大大增加了網路的深度。在假設被轉化的殘差神經網路仍然具有它原本的優勢的前提條件下,我們將一個預訓練好的殘差神經網路轉換到它的脈衝版本。為了放縮連續值的激活函數使其適用於脈衝神經網路,我們開發了一種快捷正則化技術去標準化快捷連接並且在整個脈衝神經網路上保持了單元的最大脈衝激發頻率,換言之,每一層上的神經元能夠達到理論上最大的脈衝激發頻率(每個時間步都會激活脈衝)。我們還提出了一種分層的誤差補償方法,通過減少每一層的採樣誤差來提高近似程度。
構建脈衝殘差網路
起初,研究者們提出用殘差神經網路解決深度神經網路退化的問題。由於意識到一個通過增加恆等識別層構建的深度網路不會比原來的淺層網路性能差,He 等人 [11] 用堆疊起來的非線形層去接近 F(x) := H(x) ? x 的映射,其中 H(x) 是所需的潛在的映射。接著,原始的映射就變成了一個殘差映射:H(x) = F(x) + x。它們假設殘差映射更容易通過現有的優化方法來優化,並且通過實證證明了他們的假設。他們的實驗表明,殘差網路能夠在非常大的深度下獲得出色的性能。受到他們成果的啟發,我們假設殘差神經網路的脈衝版本繼承了殘差神經網路的優勢,並且通過脈衝殘差網路探索了學習非常深的脈衝神經網路的未知領域。
與其它的深度脈衝神經網路的對比
在表 1 中,我們總結了在 MNIST、CIFAR-10、CIFAR-100 數據集上得到的結果,並且與其它的深度脈衝神經網路的結果進行了比較。此處,我們定義深度時考慮了神經網路中所有可以學習權重的層,即卷基層和全連接層。在上述三個數據集上,我們的脈衝殘差網路取得了比其它的深度脈衝神經網路更好的性能。在 MNIST 數據集上,我們實現了對 ResNet-8 的無損轉換,並且得到了 99.59% 的準確率。我們沒有在 MNIST 上用更深的網路進行實驗,因為我們相信一個較淺的網路所做的工作已經足以學到這些手寫數字背後的隱藏映射。在 CIFAR-10 數據集上,深度為 44 的脈衝殘差網路取得了(脈衝神經網路中)最佳的性能 92.37%,它也是目前最深的前饋脈衝神經網路。原始的深度為 44 的殘差神經網路的準確率是 92.85%,由轉換導致的精度損失是 0.48%,這與其它的深度脈衝神經網路相比已經相當低了。在 CIFAR-100 數據集上,深度為 44 的脈衝殘差網路也取得了很好的性能,準確率達到了 68.56%,轉換過程導致準確率降低了 1.62%。
快捷正則化技術的實驗
為了評估快捷正則化的有效性,我們在 CIFAR-10 數據集上訓練了深度為 20、32、44、56、110 的殘差神經網路,並且將它們轉換為帶有/不帶有快捷正則化的脈衝殘差網路。表 2 給出了原始的殘差神經網路和相應的帶有/不帶有快捷正則化的脈衝殘差網路所取得的識別準確率。在所有的不同深度的脈衝神經網路中,帶有快捷正則化的網路都比不帶快捷正則化的網路性能更好。隨著深度從 20 增大到 32、44、56、110,他們相應的性能差距也從 2.34% 增大到 6.32%、7.42%、8.31%、8.59%。隨著網路的加深,不帶快捷正則化的脈衝神經網路比帶有快捷正則化的脈衝神經網路受到的性能損失也隨之增大。此外,帶有快捷正則化的脈衝神經網路的性能在深度為 20、32、44、56 時十分穩定。在深度為 20 時,轉換後的性能僅僅下降了 0.20%。
論文:Spiking Deep Residual Network
論文鏈接:https://arxiv.org/abs/1805.01352
摘要:近一段時間以來,脈衝神經網路因其生物學上的合理性受到了廣泛的關注。從理論上講,脈衝神經網路至少與傳統的人工神經網路(ANN)具有相同的計算能力,並且有潛力實現革命性的高效節能。然而,當前的狀況是,訓練一個非常深的 SNN 是一個巨大的挑戰。在本文中,我們提出了一個高效的方法去構建一個脈衝版的深度殘差網路(ResNet),它也代表了最先進的卷積神經網路(CNN)。我們將訓練好的殘差神經網路(ResNet)轉換成一個脈衝神經元組成的網路,並將該網路命名為「脈衝殘差網路(Spiking ResNet)」。為了解決這個轉換的問題,我們提出了一種快捷的正則化機制,適當地對連續值的激活函數進行放縮(標準化),用來匹配脈衝神經網路中的脈衝激發頻率。並且,我們還採用了分層的誤差補償方法來減少離散化帶來的誤差。我們在 MNIST、CIFAR-10 和 CIFAR-100 數據集上的實驗結果表明,我們提出的脈衝殘差網路取得了脈衝神經網路當前最佳性能。
推薦閱讀: