為了滿足人工智慧(AI)和機器學習各方面日益成長的需求,近年來有大量的研究均著重於大腦啟發運算,以突破運算性能和記憶體需求爆發等挑戰。

這一類的研究如今開始開花結果。最近就有一家神經形態運算(neuromorphic computing)晶片開發商BrainChip宣佈將在今年9月發表其晶片架構細節。

今年初,CEA-Leti首席科學家Barbara de Salvo解釋,半導體產業可以從生物學中獲得啟示,以解決在目前的傳統運算架構下難以企及的性能與功率要求。她描述了大腦突觸的特徵——在單一架構中包含記憶體和運算,能夠構成大腦啟發的非馮諾依曼(non-von Neumann)電腦架構基礎。神經形態運算的最新趨勢之一就是將神經元的值編碼為脈衝(pulse)或棘波(spike)。

然後是歐洲一項稱為「人類大腦計劃」(European Human Brain Project)的神經形態運算計劃,長期以來致力於建構兩個大規模且獨特的神經形態機器,以及打造下一代神經形態晶片原型。該計劃最近發表了成果論文,首次全面模擬基於SpiNNaker硬體的80,000個神經元和3億個突觸的皮層微電路模型,以展現其於運算神經科學應用的可行性。

Markus Diesmann
Markus Diesmann

該論文的共同作者——德國於利希研究中心(Jülich Research Centre)運算和系統神經科學系主任Markus Diesmann說:「大腦的能量消耗與今天的超級電腦之間存在巨大差距。神經形態(大腦啟發)運算讓我們能夠研究使用電子元件能達到多麼接近大腦能量效率的程度。」

他補充說:「目前還不清楚哪一種電腦架構最適於有效地研究全腦網路。歐洲的人類大腦計劃和於利希研究中心進行了深入的研究,找出最佳策略以克服這個高度複雜的問題。今天的超級電腦需要幾分鐘的時間才能模擬現實的一秒鐘時間,因此,針對學習這一類在現實中需要數小時和數天的過程,目前仍難以企及。」

微電路模型的模擬是在一個由6個SpiNN-5 SpiNNaker板組成的機器上進行,一共使用了217個晶片和1,934個ARM9核心。每塊板由48個晶片組成,每個晶片中有18個核心,總共有288個晶片和5,174個核心可用。其中,每個晶片上使用兩個核心進行加載、檢索結果和模擬控制。而在剩餘的核心中,僅使用了1,934個核心,因為這是模擬網路中神經元數量所需的全部核心數,每個神經元核心包括80個神經元。

另一位共同作者——英國曼徹斯特大學(University of Manchester)電腦工程教授Steve Furber說:「這是第一次在SpiNNaker或任何神經形態平台上詳細地模擬皮質。這項模擬研究只使用了6塊板子——但佔掉了整個機器的1%。這項研究的結果將用於改善軟體,使其得以減少到僅使用1塊板子。」

全新神經形態SoC即將問世

BrainChip希望以其商用化的棘波神經網路晶片或神經形態系統單晶片(SoC),率先進入這一市場。該公司於澳洲證券交易所(Australian Securities Exchange)上市,但大部份員工(30名)都位於加州橘鎮和法國圖盧茲。

該公司於2016年9月收購了位於圖盧茲的Spikenet——這是一家專精於軟體棘波神經網路(SNN)的供應商,SNN可即時學習任何視覺模式,但不必經過密集訓練,而且也只需使用極少的影像樣本。其方式是以執行於x86平台的軟體模擬SNN,而BrainChip一開始只是為了將神經元放入晶片中。

Spikenet的客戶來自安全和遊戲領域(許多客戶在拉斯維加斯擁有眾多賭場),因此,這於BrainChip能夠取得營收以及互補的產品——從整合其棘波神經元自適應處理器中受益。

人工神經網路可以分為兩個領域——卷積神經網路(CNN,或稱為深度學習),以及棘波神經網路(SNN),也稱為神經形態運算(由於其模擬神經元功能)。CNN的基本功能是數學函數。

Bob Beachler
Bob Beachler

BrainChip行銷和業務開發資深副總裁Bob Beachler在接受《EE Times》採訪時表示:「在CNN中進行的是線性代數矩陣乘法,而深度神經網路只是一堆過濾器試圖擷取可以放在一起的顯著特徵,以協助機器或系統辨識某些物件——如視覺、財務或網路安全資料等。」。

Beachler補充說:「在棘波神經網路中,我們的基礎功能並不是進行矩陣乘法,而是一種真實的神經元,讓我們能將其建模為一連串的突觸,其間的連接可能被抑制或強化。神經元本身則是一種整合功能,基本上用於計算棘波的數量——這些棘波透過突觸傳送資料。在SNN中的訓練方式與在CNN中設置權重相反,如果不是加強就是抑制突觸。這是它訓練的方式之一。另一種方式則是在神經元本身設置閾值,但它是可加以修改的函數。」

Beachler補充道,「它訓練了一種前饋控制途徑,因此可說是無人監督的訓練,而不是坐待記憶預先標籤好的資料集。他們直接看到也聽到了現實世界,而且是無人監督的模式辨識。」

Neural Networks compared 棘波神經網路與卷積神經網路

在x86上得到證實

據Beachler表示,BrainChip以軟體模擬模式證實其技術能在x86上執行,使用FPGA加速其棘波神經網絡,同時,現在正開發其Akida NSoC。該公司預計在今年9月發佈其晶片架構。

然而,為了利用其SNN推動市場進展,BrainChip已在本月推出其Akida開發環境——這是一個用於創建、訓練和測試SNN的機器學習架構,為採用該公司Akida NSoC的邊緣和企業產品提供系統開發的支援。

該開發環境包括其執行引擎、資料到棘波峰轉換器,以及預先創建的SNN模型。該架構利用Python腳本語言及其相關工具和庫,包括Jupyter、NumPy和Matplotlib。

Akida Execution Engine

Akida執行引擎包含Akida神經元、突觸和多種支持訓練方法的軟體模擬。透過Python腳本中的API調用存取,用戶可以指定其神經網路拓撲、訓練方法和資料集以供執行。

該執行引擎以Akida神經元的結構為基礎,可支援多種訓練方法,包括無監督訓練以及帶有標籤最終層的無監督訓練。

棘波神經網路可在棘波模式上發生作用。開發環境本身接受由動態視覺感測(DVS)創建的棘波資料。然而,還有許多其他類型的資料可以與SNN搭配使用。嵌入於Akida執行引擎中的是資料到棘波轉換器,可將諸如影像資訊(畫素)等常見的資料格式轉換為SNN所需的棘波。開發環境最初將配備畫素到棘波轉換器,然後是用於網路安全、財務資訊和物聯網資料等存在大數據需求的轉換器。用戶還可以創建自己的專有資料,以便在開發環境中使用棘波轉換器。

開發環境包括預先創建的SNN模型。目前,可用的模型包括以DVS格式現的MNIST多層感知建置、針對CIFAR-10資料集最佳化的七層網路,以及針對ImageNet資料集最佳化的22層網路。這些模型可以成為用戶修改或創建自定義SNN模型的基礎。

Beachler表示,BrainChip主要針對嵌入式視覺領域,此領域正積極應用機器學習,例如物件分類。「“我們從許多不同的市場都看到了這一點:先進駕駛輔助系統(ADAS)和自動駕駛汽車、無人機、機器視覺等。」該公司還瞄準了網路安全和金融技術,因為Akida能夠在無人監督的訓練模式和大規模資料分析中找到模式。

那麼,BrainChip將在9月發佈這款神經形態SoC的哪些技術細節呢?Beachler說:「我們將採用純數位製程、標準CMOS以及我們最終決定的任何特徵尺寸,無論是28nm還是14nm。我們並未進行任何深奧複雜的事情、相變記憶體、憶阻器之類的東西。我們堅信採用純數位邏輯製程。

編譯:Susan Hong

(參考原文:Neuromorphic Computing Gets a Lift,by Nitin Dahad)