Whetstone-訓練深度神經網路為脈衝神經網路

目前人工神經網路(artificial neural network, ANN)已經成為機械學習主流的應用,訓練ANN的演算法也相對成熟,但是運算ANN所消耗大量的計算資源和功率也是應用上的瓶頸。相較之下,根據生物大腦運作模式啟發設計的仿神經電路及其所實現的脈衝神經網路(spiking neural network, SNN)有功耗低的優點,適合應用在移動式設備上。但訓練SNN相對困難,因此要如何將訓練好的ANN在SNN及硬體平台上實現成為一大課題。Sandia National Laboratories發展出了軟體工具Whetstone,可以訓練ANN的同時也產生訓練好的SNN。

一般來說ANN由多層神經元構成,每層神經元接受上層神經元的輸入以及輸出訊息給下游神經元。神經元接受上游輸入的加總得到此神經元的勢能(energy),勢能再通過啟用功能(activation function)的運算成為輸出傳遞到下游神經元。訓練ANN常用的反向傳播(backpropagation)演算法即根據神經網路輸出層及隱藏層的響應誤差來更新突觸上的權重,因此依賴輸入輸出神經元訊號的精確數值。不同於ANN,在SNN之間傳輸的訊息是全有或全無的脈衝(spiking),也因此以反向傳播訓練SNN通常要將脈衝數轉換成脈衝頻率,實現上較為困難。此項研究發展出的Whetstone利用深度學習方法,將ANN的activation function銳利化成為binary threshold,讓訓練好的ANN參數也適用於SNN。

Whetstone工具目前能在Keras上實現訓練SNN,但目前Whetstone只適用於標準的深度網路,還沒有能完全利用SNN稀疏連結的特性,但已經能夠拓展SNN的許多應用。


撰稿人:高暐哲


原始論文:Severa, William, et al. "Training deep neural networks for binary communication with the Whetstone method." Nature Machine Intelligence 1.2 (2019): 86.

留言