本書主要關注如何構建高能效具有學習能力的脈沖型神經(jīng)元網(wǎng)絡硬件,并且提供建立具有學習能力的脈沖型神經(jīng)元網(wǎng)絡硬件協(xié)同設計、協(xié)同優(yōu)化方法。完整地描述從高級算法到底層硬件實現(xiàn)的細節(jié)。本書同樣涵蓋了脈沖型神經(jīng)元網(wǎng)絡中的許多基礎知識和關鍵點。
本書從對脈沖型神經(jīng)元網(wǎng)絡的概述開始,討論基于速率的人工神經(jīng)網(wǎng)絡的應用和訓練,介紹實現(xiàn)神經(jīng)網(wǎng)絡的多種方法,如通用處理器和專用硬件,數(shù)字加速器和模擬加速器。同時展示了一個為能適應神經(jīng)網(wǎng)絡動態(tài)編程而建立的高能效加速器,驗證脈沖神經(jīng)網(wǎng)絡的基礎概念和流行的學習算法,簡介脈沖神經(jīng)網(wǎng)絡硬件。后面的章節(jié)為讀者介紹三個實現(xiàn)前述章節(jié)學習算法的設計案例(兩個基于傳統(tǒng)CMOS工藝,一個基于新興的納米工藝)。本書的結尾對脈沖型神經(jīng)元網(wǎng)絡硬件進行總結與展望。
1.本書從脈沖神經(jīng)元網(wǎng)絡的概念和實現(xiàn)方法開始,通過構建能適應神經(jīng)網(wǎng)絡動態(tài)編程的高能效加速器,驗證脈沖神經(jīng)網(wǎng)絡硬件設計與流行的學習算法有機結合,展示顯著提高能效和計算效率的方法和實踐;
2.本書由美國密西根大學計算機科學系馬祖姆德教授團隊結合多年類腦智能研究理論和成果撰寫而成,由上海交通大學類腦智能研究中心劉佩林教授團隊翻譯,為類腦智能前沿研究和應用領域提供了詳實的學習和研究指南。
1987年,我在伊利諾伊大學攻讀博士學位時,有一個難得的機會去聽加州理工學院的John Hopfield教授給厄巴納香檳分校魯姆斯物理實驗室的學生講述他在神經(jīng)網(wǎng)絡上的開創(chuàng)性研究。他繪聲繪色地講述了如何設計和制作一個循環(huán)神經(jīng)網(wǎng)絡芯片來快速解決基準旅行商問題(TSP)。TSP是指:當TSP中的城市數(shù)量增加到一個非常大的數(shù)目時,沒有物理計算機能夠在漸近有界的多項式時間內解決這個問題,從這個意義上說,TSP是一個可證明的NP完全問題。
神經(jīng)網(wǎng)絡領域的一個重要里程碑是,發(fā)現(xiàn)了可以解決復雜組合問題的硬件算法,因為現(xiàn)有的感知器型前饋神經(jīng)網(wǎng)絡技術只能對有限的簡單模式進行分類。盡管如此,神經(jīng)計算的創(chuàng)始人康奈爾大學的Frank Rosenblatt教授在20世紀50年代末建造了一臺感知計算機,當時諸如IBM 650這樣的波數(shù)字計算機剛剛商業(yè)化。后續(xù)的神經(jīng)硬件設計進展受阻,主要是由于當時的技術(包括真空管、繼電器和無源元件如電阻、電容和電感等)不具備集成實現(xiàn)大型突觸網(wǎng)絡的能力。1985年,美國貝爾實驗室利用MOS技術制造出個固態(tài)電子晶體芯片,在概念上驗證了John Hopfield教授解決TSP的神經(jīng)網(wǎng)絡架構,從而為在硅片上解決非布爾型計算和類腦計算開辟了道路。
John Hopfield教授的開創(chuàng)性工作表明,如果組合算法中的目標函數(shù)可以用二次型表示,循環(huán)神經(jīng)網(wǎng)絡中的突觸連接可以相應地通過將大量神經(jīng)元的連接進行編程來降低目標函數(shù)的值(即局部小值)。Hopfield的神經(jīng)網(wǎng)絡由橫向連接的神經(jīng)元組成,這些神經(jīng)元可以被隨機初始化。隨后,該網(wǎng)絡可以迭代地減少網(wǎng)絡固有的Lyapunov能量函數(shù)值,使其達到局部小狀態(tài)。值得注意的是,Lyapunov函數(shù)在循環(huán)神經(jīng)網(wǎng)絡的動態(tài)作用下呈單調下降,神經(jīng)元不具有自反饋!
在Mazumder和Yih的著作中[1],我們證明了Hopfield網(wǎng)絡所獲得的解的質量可以通過選擇性地提供自反饋使神經(jīng)元遠離局部小值而得到顯著改善。這種方法類似于梯度下降搜索中的爬坡,通常會陷入局部小點。由于神經(jīng)元的自反饋會影響Hopfield神經(jīng)網(wǎng)絡的穩(wěn)定性,所以在網(wǎng)絡收斂到局部小狀態(tài)之前,我們沒有對神經(jīng)元施加任何自反饋。然后,通過爬坡機制提高網(wǎng)絡的能量,將網(wǎng)絡從局部小值中拉出。我們在上述文章中表明,通過使用這項創(chuàng)新技術,芯片修復提高約25%,改善了VLSI存儲器的良率。
Hopfield教授使用四個獨立二次函數(shù)的組合來表示TSP的目標函數(shù)。目標函數(shù)的部分確保若旅行商恰好一次穿越城市則能量函數(shù);第二部分確保旅行商訪問行程中的所有城市;第三部分確保不同時訪問兩個城市;第四部分確定連接TSP中所有城市的短路徑。因為神經(jīng)元之間通過連接的突觸有大量的同步交互作用,這些突觸被精確地調整以滿足上述二次函數(shù)的約束,所以簡單的循環(huán)神經(jīng)網(wǎng)絡可以迅速生成質量非常好的解。然而神經(jīng)網(wǎng)絡由于其簡單的連接結構,與經(jīng)過良好測試的軟件處理(例如模擬退火、動態(tài)規(guī)劃和分支定界算法)不同,它通常無法找到解決方案。
在聽了Hopfield教授的精彩演講之后,我對他這種創(chuàng)新的感觸頗深。一方面,我很高興地從他的演講中了解到,通過使用具有非常小的硬件開銷的簡單神經(jīng)形態(tài)CMOS電路,可以快速地解決計算上困難的算法問題。另一方面,我認為Hopfield教授為了證明神經(jīng)網(wǎng)絡解決組合優(yōu)化問題的能力而選擇的TSP應用程序并不合適,因為精心設計的軟件算法,可以獲得神經(jīng)網(wǎng)絡幾乎無法得到的解決方案。我開始考慮開發(fā)可自愈的超大規(guī)模集成電路(VLSI)芯片,利用受神經(jīng)網(wǎng)絡啟發(fā)的自修復算法的力量來自動重組有缺陷的VLSI芯片。低開銷和通過神經(jīng)元之間的并行交互同時解決問題的能力是兩點顯著的特性,可以用來巧妙地通過內置的神經(jīng)網(wǎng)絡電路來自動修復VLSI芯片。
不久之后,我作為助理教授來到密歇根大學,與我的一個博士生\[2\]一起工作,起初,我們設計了一款具有異步狀態(tài)更新的CMOS模擬神經(jīng)網(wǎng)絡電路,因晶元內部工藝變化等因素導致這個芯片魯棒性不夠好。為了提高自修復電路工作的可靠性,我和一名理科碩士\[3\]設計了一個同步狀態(tài)更新的數(shù)字神經(jīng)網(wǎng)絡電路。這些神經(jīng)網(wǎng)絡電路通過在二分圖中尋找節(jié)點覆蓋、邊覆蓋或節(jié)點對匹配來確定修復問題,從而能夠用于修復VLSI芯片。在我們的圖的形式體系中,二分圖中的一組頂點表示故障電路元件,另一組頂點表示備用電路元件。為了將故障VLSI芯片改造成無故障的可操作芯片,在通過嵌入式內置自檢電路識別出故障元件之后,再通過可編程開關元件自動調用備用電路元件。
重要的是,與TSP一樣,二維數(shù)組修復可以證明是一個NP完全問題,因為修復算法尋找的多余的行、列數(shù),它們可以被分配以繞過故障組件(比如記憶細胞、字線和位線驅動),以及位于存儲器陣列內部的讀出放大器隊列。因此,由計數(shù)器和其他塊組成的簡單數(shù)字電路無法解決這種棘手的自修復問題。值得注意的是,由于無法部署VLSI芯片的輸入和輸出引腳來查詢深度內嵌的嵌入式陣列中的故障模式,因此無法使用外部數(shù)字計算機來確定如何修復嵌入式陣列。
在1989年和1992年,我獲得了美國國家科學基金會的兩項資助,將神經(jīng)形態(tài)自愈設計風格擴展到更廣泛的嵌入式VLSI模塊,如內存陣列\(zhòng)[4\]、處理器陣列\(zhòng)[5\]、可編程邏輯陣列\(zhòng)[6\]等。但是,這種通過內置的自檢和自修復提高VLSI芯片產(chǎn)量的方法比VLSI芯片應用的時代早了一點,因為在20世紀90年代初期,的微處理器僅包含數(shù)十萬個晶體管。因此,在開發(fā)了基于神經(jīng)網(wǎng)絡的自愈VLSI芯片設計方法以用于各種類型的嵌入式電路模塊之后,我停止了對CMOS神經(jīng)網(wǎng)絡的研究。我對神經(jīng)網(wǎng)絡應用于其他類型的工程問題并不是特別感興趣,因為我想繼續(xù)專注于解決VLSI研究中出現(xiàn)的問題。
另外,在20世紀80年代末,CMOS技術的預言者越來越擔心,即將到來的紅磚墻效應預示著CMOS縮小時代的結束。因此,為了促進幾種可能推動VLSI技術前沿的新興技術,美國國防部高級研究計劃局(DARPA)在1990年左右啟動了超電子:超密集、超快速計算元件研究計劃。與此同時,日本的國際貿(mào)易工業(yè)部(MITI)推出了量子功能器件(QFD)項目。這兩個研究項目早期的成功與大量的創(chuàng)新non-CMOS技術推動了美國國家納米技術項目(NNI)的創(chuàng)建,這是一個美國政府研究和開發(fā)(R&D)計劃,包括20個部門和獨立機構,將帶來納米技術的革命,從而影響整個行業(yè)和社會。
在1995年到2010年期間,我的課題組初專注于基于量子物理的器件和量子隧穿器件的電路建模,然后我們廣泛研究了基于一維(雙障礙共振隧穿器件)、二維(自組裝納米線)和三維(量子點陣列)受限量子設備的細胞神經(jīng)網(wǎng)絡(CNN)圖像和視頻處理電路。隨后,我們使用電阻突觸裝置(通常稱為憶阻器)和CMOS神經(jīng)元開發(fā)了基于學習的神經(jīng)網(wǎng)絡電路。通過在二維處理元件(PE)集成的計算節(jié)點中混合量子隧穿和記憶器件,我們還開發(fā)了模擬電壓可編程納米計算體系結構。我們對納米神經(jīng)形態(tài)電路的研究發(fā)表在我們的新書Neuromorphic Circuits for Nanoscale Devices中,由英國River出版社在2019年出版。
在用各種新興納米電子和自旋電子器件開發(fā)了十多年的神經(jīng)形態(tài)電路之后,我決定開始研究基于學習的數(shù)字VLSI神經(jīng)形態(tài)芯片,在亞閾值和超閾值兩種操作模式中使用納米CMOS技術。我的學生和這本書的合著者Nan Zheng博士,完成了有關數(shù)字神經(jīng)網(wǎng)絡的體系結構和算法的博士學位論文。我們從機器學習和生物學習的角度出發(fā),設計和制造了基于TSMC 65nm CMOS技術的高效節(jié)能VLSI芯片。
我們從機器學習的角度捕獲了演員評論家類型的強化學習(RL)\[7\]和一個采用離線策略更新的時間差(TD)學習示例,稱為VLSI芯片上的Q學習\[8\]。此外,我們還捕捉到生物無監(jiān)督學習應用中常用的基于脈沖相關的突觸可塑性。我們還制定了硬件友好的基于脈沖時間依賴可塑性(STDP)學習規(guī)則\[9\],在修改后的MNIST數(shù)據(jù)庫基準上,單隱藏層和雙隱藏層神經(jīng)網(wǎng)絡的分類正確率分別為97.2%和97.8%。硬件友好的學習規(guī)則支持高效節(jié)能的硬件設計\[10\]以及對與芯片制造\[11\]相關的過程電壓溫度(PVT)變化的魯棒實現(xiàn)。通過仿真RL軟件程序的核心自適應動態(tài)規(guī)劃(ADP),證明了用于演員評論家網(wǎng)絡的硬件加速器VLSI芯片可解決一些控制理論基準問題。此外,與在通用處理器上運行的傳統(tǒng)軟件強化學習相比,在175MHz下運行的VLSI芯片加速器在計算時間上縮短了兩個數(shù)量級,同時只消耗了25mW[12]。
圖1中的芯片布局圖包含了大量使用CMOS技術的數(shù)字神經(jīng)網(wǎng)絡芯片的樣本,這是我的研究小組在過去35年中設計的。圖1的左欄是1991年設計的一個自愈芯片,通過在一個二分圖上運行節(jié)點覆蓋算法來自動修復有缺陷的VLSI內存陣列,二分圖代表有缺陷的組件集和可用的備用電路元件。2013年設計的STDP芯片,用于控制虛擬昆蟲從初始起點到預定目的地的運動,避免了在一組任意形狀的阻塞空間中導航時的碰撞。前一段描述的深度學習芯片是2016年設計的。
圖1的右欄為2016年設計的RL芯片。其中還包括兩個超低功耗(ULP)CMOS芯片,利用亞閾值技術,用于可穿戴的醫(yī)療保健應用。在其中一個應用中,利用神經(jīng)網(wǎng)絡的Kohonen的自組織映射(SOM)對心電圖(ECG)波形進行分類,設計了一種帶有無線收發(fā)器的人體傳感網(wǎng)絡,利用可植入的多極傳感器對模擬神經(jīng)元信號進行感知,并通過內置的喚醒收發(fā)器向醫(yī)生提供數(shù)字化數(shù)據(jù),幫助醫(yī)生對精神分裂癥、慢性抑郁癥、阿爾茨海默病等腦相關疾病中神經(jīng)元和突觸層面上對藥物的療效進行監(jiān)測。
初,當我們決定以CMOS類腦計算的神經(jīng)形態(tài)芯片的形式出版一本強調我們工作的專著時,我們想要匯總在前言中引用的論文的各種結果,從而構成這本書的內容。但是,在準備手稿的過程中,我們修改了初較狹隘的目標,因為在常規(guī)課程中采用本書來向大學生和研究生講授具有學習能力的一代神經(jīng)網(wǎng)絡將是有局限性的。
圖 1
后來我們決定寫一本全面的關于具有各種學習能力的神經(jīng)網(wǎng)絡高能效硬件設計的書,討論正在進行的神經(jīng)硬件的擴展研究。這顯然是一項艱巨的任務,需要仔細研究數(shù)百個參考文獻的存檔來源,描述能夠學習執(zhí)行各種任務的硬件神經(jīng)網(wǎng)絡的協(xié)同設計和協(xié)同優(yōu)化方法。我們試圖提供一個全面的視角,從高級算法到低級硬件實現(xiàn)細節(jié),涵蓋神經(jīng)網(wǎng)絡的許多基礎和要素(如深度學習),以及神經(jīng)網(wǎng)絡的硬件實現(xiàn)。簡而言之,本書目前的版本有以下幾個顯著特點:
●包括神經(jīng)形態(tài)算法硬件加速器的多層次全面評述。
●涵蓋架構與算法的協(xié)同設計,并采用新興器件來極大地提升計算效率。
●關注算法與硬件的協(xié)同設計,這是在神經(jīng)形態(tài)計算中應用新興器件(如傳統(tǒng)憶阻器和擴散型憶阻器)的關鍵。
后,由于完成這本書有嚴格的時間限制,所以本書目前的版本沒有像教科書那樣以教學的方式描述教學材料,在每一章的結尾也沒有習題。在收集了來自學生、教師、實踐工程師和其他讀者的寶貴反饋后,這些目標有望在下一版中實現(xiàn)。如果你能提供正面和負面的指導性反饋,我將非常感激,這將使我能夠準備本書的第2版。我的聯(lián)系方式如下:
Pinaki Mazumder
地址:4765 BBB Building Division of Computer Science and Engineering Department of Electrical Engineering and Computer Science University of Michigan, Ann Arbor,MI 48109-2122
電話:734-763-2107
郵箱:mazum@eecs.umich.edu,pinakimazum@gmail.com
網(wǎng)址:http://www.eecs.umich.edu/~mazum
參考文獻
鄭楠
(Nan Zheng)
2011年本科畢業(yè)于上海交通大學信息工程專業(yè),2014年和2018年分別獲得美國密歇根大學電氣工程碩士和博士學位。他目前是NVIDIA高級深度學習架構師,研究興趣側重于機器學習應用的低能耗硬件架構、算法和電路技術。
皮納基·馬祖姆德
(Pinaki Mazumder)
美國密歇根大學電氣工程與計算機科學系教授,他的研究興趣包括對于量子MOS、自旋電子學、欺騙等離子體、共振隧穿器件等新興技術的CMOS超大規(guī)模集成電路設計、半導體存儲系統(tǒng)、CAD工具和電路設計。
譯者簡介:
劉佩林
上海交通大學電子信息與電氣工程學院教授,博士生導師。研究領域包括音頻、視頻、3D信號處理與智能分析,面向機器人的環(huán)境感知、人機交互、定位與導航,以及類腦計算與低功耗電路設計等。2017年起任上海交通大學類腦智能應用技術研究中心主任。
應忍冬
上海交通大學電子信息與電氣工程學院副教授,碩士生導師。研究領域包括嵌入式系統(tǒng)、數(shù)字信號處理及VLSI實現(xiàn)架構、人工智能領域的機器思維原理和實現(xiàn)。
薛建偉
上海交通大學電子信息與電氣工程學院博士研究生。研究領域包括類腦智能、片上多核系統(tǒng)等。
譯者序
前言
致謝
第1章 概述1
1.1 神經(jīng)網(wǎng)絡的歷史1
1.2 軟件中的神經(jīng)網(wǎng)絡2
1.2.1 人工神經(jīng)網(wǎng)絡2
1.2.2 脈沖神經(jīng)網(wǎng)絡2
1.3 神經(jīng)形態(tài)硬件的需求3
1.4 本書的目標和大綱4
參考文獻6
第2章 人工神經(jīng)網(wǎng)絡的基礎與學習9
2.1 人工神經(jīng)網(wǎng)絡的工作原理9
2.1.1 推理9
2.1.2 學習10
2.2 基于神經(jīng)網(wǎng)絡的機器學習13
2.2.1 監(jiān)督學習13
2.2.2 強化學習15
2.2.3 無監(jiān)督學習17
2.2.4 案例研究:基于動作的啟發(fā)式動態(tài)規(guī)劃18
2.3 網(wǎng)絡拓撲24
2.3.1 全連接神經(jīng)網(wǎng)絡24
2.3.2 卷積神經(jīng)網(wǎng)絡25
2.3.3 循環(huán)神經(jīng)網(wǎng)絡27
2.4 數(shù)據(jù)集和基準29
2.5 深度學習31
2.5.1 前深度學習時代31
2.5.2 深度學習的崛起31
2.5.3 深度學習技術32
2.5.4 深度神經(jīng)網(wǎng)絡示例38
參考文獻40
第3章 硬件中的人工神經(jīng)網(wǎng)絡47
3.1 概述47
3.2 通用處理器48
3.3 數(shù)字加速器48
3.3.1 數(shù)字ASIC實現(xiàn)方法48
3.3.2 FPGA加速器61
3.4 模擬/混合信號加速器62
3.4.1 傳統(tǒng)集成技術中的神經(jīng)網(wǎng)絡62
3.4.2 基于新興非易失性存儲器的神經(jīng)網(wǎng)絡68
3.4.3 光學加速器71
3.5 案例研究:一種節(jié)能的自適應動態(tài)規(guī)劃加速器的程序設計72
3.5.1 硬件架構73
3.5.2 設計示例78
參考文獻82
第4章 脈沖神經(jīng)網(wǎng)絡的工作原理與學習92
4.1 脈沖神經(jīng)網(wǎng)絡92
4.1.1 常見的脈沖神經(jīng)元模型92
4.1.2 信息編碼94
4.1.3 脈沖神經(jīng)元與非脈沖神經(jīng)元的比較95
4.2 淺層SNN的學習96
4.2.1 ReSuMe96
4.2.2 Tempotron97
4.2.3 脈沖時間相關可塑性98
4.2.4 雙層神經(jīng)網(wǎng)絡中通過調制權重依賴的STDP進行學習的方法101
4.3 深度SNN學習113
4.3.1 SpikeProp113
4.3.2 淺層網(wǎng)絡棧113
4.3.3 ANN的轉換115
4.3.4 深度SNN反向傳播的研究進展116
4.3.5 在多層神經(jīng)網(wǎng)絡中通過調制權重依賴的STDP進行學習的方法116
參考文獻128
第5章 脈沖神經(jīng)網(wǎng)絡的硬件實現(xiàn)133
5.1 對專用硬件的需求133
5.1.1 地址事件表示133
5.1.2 事件驅動計算134
5.1.3 漸進精度推理134
5.1.4 實現(xiàn)權重依賴的STDP學習規(guī)則的硬件注意事項138
5.2 數(shù)字脈沖神經(jīng)網(wǎng)絡142
5.2.1 大規(guī)模脈沖神經(jīng)網(wǎng)絡專用集成電路142
5.2.2 中小型數(shù)字脈沖神經(jīng)網(wǎng)絡147
5.2.3 脈沖神經(jīng)網(wǎng)絡中的硬件友好型強化學習149
5.2.4 多層脈沖神經(jīng)網(wǎng)絡中的硬件友好型監(jiān)督學習153
5.3 模擬/混合信號脈沖神經(jīng)網(wǎng)絡161
5.3.1 基本構建塊161
5.3.2 大規(guī)模模擬/混合信號CMOS脈沖神經(jīng)網(wǎng)絡163
5.3.3 其他模擬/混合信號CMOS脈沖神經(jīng)網(wǎng)絡專用集成電路166
5.3.4 基于新興納米技術的脈沖神經(jīng)網(wǎng)絡166
5.3.5 案例研究:脈沖神經(jīng)網(wǎng)絡中基于憶阻器交叉開關的學習169
參考文獻183
第6章 總結190
6.1 展望190
6.1.1 腦啟發(fā)式計算190
6.1.2 新興的納米技術191
6.1.3 神經(jīng)形態(tài)系統(tǒng)的可靠計算192
6.1.4 人工神經(jīng)網(wǎng)絡和脈沖神經(jīng)網(wǎng)絡的融合193
6.2 結論194
參考文獻194
附錄197
術語表205