首頁 > AI資訊 > 最新資訊 > 人工神經網絡秒變脈沖神經網絡,新技術有望開啟邊緣AI計算新時代

人工神經網絡秒變脈沖神經網絡,新技術有望開啟邊緣AI計算新時代

新火種    2023-10-29

編輯:panda

能更好模仿生物神經系統運行機制的脈沖神經網絡在發展速度和應用范圍上都還遠遠落后于深度學習人工神經網絡(ANN),但脈沖神經網絡的低功耗特性有望使其在邊緣計算領域大放異彩。近日,奧地利的格拉茨技術大學理論計算機科學學院的兩位研究者提出了一種可將人工神經網絡轉換為脈沖神經網絡(SNN)的新方法,能夠在保證準確度的同時有效地將 ANN 模型轉換成 SNN 模型。該技術有望極大擴展人工智能的應用場景。

現代人工智能還難以在邊緣設備中廣泛應用,而脈沖神經網絡(Spiking neural network, SNN)有望突破造成這一困境的主要難題:基于深度學習的當前 SOTA 大型人工神經網絡(ANN)的能量消耗。

尤其是卷積神經網絡(CNN),其已經在圖像分類以及其它一些應用領域得到了廣泛使用。為了實現卓越的性能,這些 ANN 必須規模龐大,因為它們需要足夠多的參數才能從訓練所用的大型數據集中吸收足夠信息。舉個例子,ImageNet2012 數據集有 120 萬張圖像。如果使用標準硬件來實現這些大型 ANN,那么得到的實現結果本質上就具有很高的能耗。

脈沖神經元(Spiking neuron)已經成為開發用于 AI 的全新計算硬件的核心,其有望極大降低能量預算。部分原因是人腦的巨型 SNN(包含約 1000 億個神經元)的功耗僅為 20 W。脈沖神經元的輸出是一系列定型脈沖。因此,它們的輸出與 ANN 神經元的輸出非常不同,ANN 神經元的輸出是連續數值。大多數脈沖神經元模型都可視為神經形態硬件的實現,它們的設計靈感都來自大腦脈沖神經元的簡單模型。但是,這些簡單的神經元模型不同于生物神經元,并不具備通過不同的時間脈沖模式來編碼不同輸入的能力——只靠發射率是不行的(下圖 1 給出了一個示例)。

此外,大型 ANN 通常會使用越來越復雜精細的深度學習算法來在巨型數據集上進行訓練,由此得到的模型能在一些智能任務類別中接近甚至有時還能超過人類表現,但當前一代基于脈沖的神經形態硬件的表現卻落后了。對于當前脈沖神經網絡的這種情況,還是有希望追趕上大型 ANN 的,因為這些可以直接訓練以實現當前 ANN 的大部分性能。

但對于前饋網絡而言,如何僅使用少數脈沖來實現與 ANN 性能相近的 SNN,這個問題依然存在。能實現非常好的圖像分類準確度的前向 CNN 往往很深很大,而訓練對應深度和寬度的前向 SNN 卻無法取得類似的分類準確度。研究者認為,可能的原因包括在所得 SNN 的較高層面上的脈沖出現時間問題以及發射率精度問題。一種吸引人的做法是直接將一個表現優異、已訓練完成的 CNN 轉換成 SNN——使用同樣的連接和權重。最常用而且到目前為止也是表現最好的轉換方法是基于發射率編碼的思想,這種方法是通過脈沖神經元的發射率來仿真 ANN 單元的模擬(analog)輸出。該方法已經造就了到目前為止在圖像分類任務上表現最好的 SNN。但要通過發射率來傳輸模擬值,往往需要相當多的脈沖,而這又會拖累網絡的延遲和吞吐量。

此外,由于所得到的 SNN 往往會產生非常多脈沖,因此其相對于非脈沖硬件的能耗優勢也將蕩然無存。最后,基于發射率的 ANN 到 SNN 轉換方法無法用于那些在 ImageNet、EfficientNet 上取得了最高準確度的 ANN,因為這些方法使用了會假設正值和負值的激活函數:SiLU 函數。

針對這些難題,奧地利格拉茨技術大學理論計算機科學學院的兩位研究者提出了一種新型的 ANN 轉 SNN 方法。他們稱之為 FS 轉換,其中 FS 是 Few Spikes 的縮寫,即其僅需一個脈沖神經元發射少數幾個脈沖。這種方法與基于發射率的轉換方法完全不同,并且使用了帶有脈沖模式的時間編碼選項,其中脈沖的時間可以傳輸額外的信息。

論文:https://arxiv.org/abs/2002.00860

代碼:https://github.com/christophstoeckl/FS-neurons

事實證明,之前人們提出的大多數時間編碼形式都難以在神經形態硬件中高效地實現,因為這需要將脈沖之間精細的時間差傳遞到下游神經元。相較而言,FS 轉換的實現僅需使用 log N 個不同值的脈沖時間以及最多 log N 個用于傳輸 1 到 N 之間的整數的脈沖。在實踐中,所需的脈沖數量甚至還可以更少,因為并非所有 N 個值的出現幾率都是均等的。但是,FS 轉換需要一種修改版的脈沖神經元模型——FS 神經元,該神經元的內部動態針對使用少數脈沖仿真特定類型的 ANN 神經元進行過優化。

研究者使用 FS 轉換通過 CNN 得到了一些 SNN 并在 ImageNet2012 和 CIFAR10 這兩個圖像分類數據集上進行了測試驗證。他們表示:這種優化版脈沖神經元模型可以用于指引下一代神經形態硬件的研發。

如何使用脈沖很少的脈沖神經元仿真 ANN 神經元?

ANN 轉 SNN 的 FS 轉換需要將標準的脈沖神經元模型轉換成這里提出的 FS 神經元。下圖 2a 展示了 ANN 的一個通用型人工神經元的計算步驟,圖 2b 則是通過 K 個時間步仿真它的 FS 神經元。其內部動態由固定的參數 T(t)、h(t)、d(t) 定義,其中 t=1,...,K。這些參數經過優化,以通過脈沖的加權和

。

來仿真給定 ANN 神經元的激活函數 f(x)。z(t) 是指脈沖神經元產生的脈沖序列。更確切地說:如果該神經元在步驟 t 發射,則 z(t)=1;否則 z(t)=0。要在時間 t 發射出脈沖,神經元的膜電位 v(t) 必須超過其發射閾值的當前值 T(t)。

研究者假設膜電位 v(t) 不漏電,但在時間 t 的脈沖之后會被重置為 v(t)?h(t)。用公式表示的話,膜電位 v(t) 的初始值為 v(1)=x,其中 x 是門的輸入,然后基于以下公式在 K 個步驟中不斷演變:

對于門輸入 x,FS 神經元的脈沖輸出 z(t) 可以緊湊地定義為:

其中 Θ 表示 Heaviside 階躍函數。FS 神經元在這 K 個時間步驟的總輸出會被下一層的 FS 神經元收集。這個總輸出可寫為:

圖 2b 為其模型的示意圖。

圖 2:ANN 神經元到 FS 神經元的轉換。a)一個激活函數為 f(x) 的一般 ANN 神經元;b)用 K 個時間步驟仿真這個 ANN 神經元的 FS 神經元,其輸出序列表示為 z(t)。

為了仿真 ReLU 激活函數,可以選擇 FS 神經元的參數,使得它們可以為位于某個上限值之下所有輸入值 x 定義一個由粗到細的處理策略。為了仿真 EfficientNet 的 SiLU 函數,可以實現更好的 FS 轉換,即選擇參數的方式要使得:對于 EfficientNet 中作為門輸入 x 最常出現的 -2 到 2 范圍內的輸入,它們可以實現迭代式的,也因此更加精確的處理。下圖 3 展示了 FS 神經元在 SiLU 和 sigmoid 激活函數情況下所得到的動態。

圖 3:FS 神經元的內部動態。第一行是 FS 神經元對一個較低輸入值(x=-0.5)的響應,第二行則是其對一個較高輸入值(x=0.5)的響應。第一列展示了 SiLU FS 神經元的響應,第二列則是 sigmoid FS 神經元的響應。為便于說明,離散時間步驟 t 中 T(t) 和 v(t) 的相關值是平滑插值的。

所有使用同一激活函數仿真 ANN 神經元的 FS 神經元都可使用同樣的參數 T(t)、h(t)、d(t),而它們的輸出脈沖的權重中的因數 w 可以從訓練得到的 ANN 中相應突觸連接中簡單地提出來。

使用 FS 轉換方法時,網絡中神經元和連接的數量都不會增加。但一個 L 層前饋 ANN 的計算步驟數 L 會增大 K 倍。但 ANN 的計算能以一種管道流程化的方式仿真,而 SNN 會每 2K 個時間步處理一個新的網絡輸入(圖像)。在這種情況下,FS 神經元的參數會隨著 FS 神經元計算而周期性變化,周期長度為 K。這 K 個步驟之后會跟著 K 個 FS 神經元不活躍的時間步,而下一層的 FS 神經元會收集它們的脈沖輸入來仿真 ANN 的下一個計算步驟或計算層。請注意,由于所有使用同一激活函數仿真 ANN 神經元的 FS 神經元都可使用同樣的參數 T(t)、h(t)、d(t),因此它們在神經形態芯片上僅需少量額外內存。

FS 神經元的 TensorFlow 代碼和所選參數都已發布在 GitHub。

表 1:對兩個當前最佳的 CNN 使用 FS 轉換,基于 ImageNet 分類圖像的準確度和脈沖數量。通過 FS 轉換而得到的 SNN 幾乎實現了與對應 ANN 一樣的準確度,而且每個神經元通常最多使用 2 個脈沖。括號中的數據是 Top5 準確度。推理所需的脈沖數量數據是在 1000 張測試圖像上得到的平均值。

相關推薦
免責聲明
本文所包含的觀點僅代表作者個人看法,不代表新火種的觀點。在新火種上獲取的所有信息均不應被視為投資建議。新火種對本文可能提及或鏈接的任何項目不表示認可。 交易和投資涉及高風險,讀者在采取與本文內容相關的任何行動之前,請務必進行充分的盡職調查。最終的決策應該基于您自己的獨立判斷。新火種不對因依賴本文觀點而產生的任何金錢損失負任何責任。

熱門文章