《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種基于憶阻特性的監督神經網絡算法及電路設計
一種基于憶阻特性的監督神經網絡算法及電路設計
2019年電子技術應用第4期
湯知日,朱若華,常 勝
武漢大學 物理科學與技術學院,湖北 武漢430072
摘要: 針對如何將憶阻器融入人工神經網絡算法并進行硬件實現的問題,提出了一種在現場可編程邏輯門陣列(FPGA)平臺上實現的基于憶阻特性的監督神經網絡算法。該設計以憶阻器模塊作為神經網絡中的權值存儲模塊,構建誤差反饋機制的監督學習。將該憶阻神經網絡電路應用于圖像分類問題,并進行了資源占用和處理速度的優化。實驗結果表明其分類結果良好,在Cyclone II:EP2C70F896I8平臺上,整體網絡算法占用11 773個邏輯單元(LEs),訓練耗時0.33 ms,圖像的測試耗時10 μs。這一工作對憶阻器和神經網絡的結合提出了一個有益的參考。
中圖分類號: TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190018
中文引用格式: 湯知日,朱若華,常勝. 一種基于憶阻特性的監督神經網絡算法及電路設計[J].電子技術應用,2019,45(4):19-22,28.
英文引用格式: Tang Zhiri,Zhu Ruohua,Chang Sheng. A memristor-based supervised neural network algorithm and its circuit design[J]. Application of Electronic Technique,2019,45(4):19-22,28.
A memristor-based supervised neural network algorithm and its circuit design
Tang Zhiri,Zhu Ruohua,Chang Sheng
School of Physics and Technology,Wuhan University,Wuhan 430072,China
Abstract: This paper introduces a way to realize the supervised neural network algorithms based on memristive characteristics on Field Programmable Gate Array(FPGA) for the problem that how to take the memristors into artificial neural networks and hardware implement. This design uses memristors module as weight store module in neural network to build supervised learning with error feedback mechanism. The memristive neural networks are used in pattern recognition and their hardware resource and processing speed are optimized. Experiment results show that the performance of pattern recognition is quite good. Further, the hardware resource occupancies and training time are 11 773 logic elements(LEs) and 0.33 ms on Cyclone II:EP2C70F896I8, respectively, and the test time of images is 10 μs, which gives a useful reference for combination of memristors and neural networks.
Key words : memristor;supervised neural network;Field Programmable Gate Array;pattern recognition;resource occupancies

0 引言

    憶阻器[1](Memristor)最早于20世紀70年代由蔡少棠教授首先提出,作為除了電阻、電容和電感之外的第四類基本元器件,憶阻器表達了電荷量和磁通量之間的關系。2008年惠普實驗室利用TiO2為原材料首次制成了憶阻器實物[2]。由于憶阻器可以模擬人腦神經元學習規則[3](Spiking Timing-Dependent Plasticity,STDP),因此將憶阻器用作電子突觸應用于人工神經網絡之中逐漸成為憶阻器的研究熱點之一。

    受工藝的限制,憶阻器實物的參數波動較大[4],一種可行的對其研究的做法是通過技術手段對憶阻器進行建模[5],從而探索其應用前景;另一方面,對于如何很好地將憶阻器應用于人工神經網絡之中[6]也仍處在一個探索階段[7],目前尚無完備的理論或者實踐能夠將兩者很好地結合在一起。尋找一個新的思路和方法將憶阻器的特性在人工神經網絡中發揮出來就顯得尤為重要,對人工神經網絡和憶阻器兩個方向的發展都非常有價值。

    針對目前憶阻器和人工神經網絡結合不夠緊密的問題,本文采用現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)對憶阻器和人工神經網絡實現進行數字電路搭建。利用該方式實現的有監督的憶阻神經網絡具有魯棒性強[8]、集成度高[9]、并行度很高[10]等優點。目前FPGA的開發技術已經十分完善,這一整套的設計流程使得對于神經網絡的結構完善[11]十分方便,也貼近于電子系統的應用。本文根據憶阻器的存儲能力,在FPGA上將該網絡應用于圖像分類識別,得到了良好的實驗結果,為這類有監督的憶阻神經網絡的運用提供了一個參考。

1 憶阻器FPGA建模

    2008年HP實驗室的研究人員采用兩塊鉑(Pt)作為正負電極,再將二氧化鈦(TiO2)薄膜置于正負電極之間,對其中—層TiO2進行氧空位摻雜操作。摻雜氧空位后,這一層的TiO2由于部分氧原子的缺失,導致其導電性大大增強,另一層TiO2不進行摻雜操作,體現出類似絕緣體的低導電性。當在憶阻器兩端施加一個大于閾值的電流或電壓時,摻雜和未摻雜的兩層TiO2之間會產生電子和空穴的相互移動,進而讓摻雜的分界面發生一定的位移,致使其阻值發生變化。這就是經典的HP憶阻器。

    根據HP憶阻器推導得到一般的流控憶阻器[12]模型如下:

xhcl5-gs1-2.gif

其中M(t)為憶阻器的當前阻值。根據上式,利用Verilog代碼進行實現并在Quartus上進行仿真,設Roff=16 kΩ,Ron=100 Ω,D=10 nm,μv=10-14m2s-1V-1。憶阻器搭建成功的標志是當其兩端加上周期性三角函數電壓時,其伏安特性曲線為一個閉合的滯回曲線[2]。在輸入端加入U(t)=2sint,保持憶阻器參數不變,應用示波器來對憶阻器模型的伏安特性曲線進行測量,得到的結果如圖1所示。

xhcl5-t1.gif

    由圖1可知,通過上述方法所實現的流控憶阻器模型可以體現憶阻器特有的性能,為將其應用于神經網絡系統打下堅實的基礎。

2 監督憶阻神經網絡的設計和實現

2.1 整體網絡設計

    基本的網絡結構由輸入層、隱含層和輸出層三層組成,憶阻器在網絡中作為權值存儲模塊,其存儲的阻值作為權值模塊需要輸出的權值,如圖2所示。

xhcl5-t2.gif

    在硬件設計上,神經網絡算法通過模塊化的手段進行實現。網絡中的神經元結構和算法均由神經元模塊進行,神經元模塊通過與傳遞函數模塊進行運算,得到輸出誤差值,并且通過計算得到的誤差值來控制訓練模塊,誤差值同樣也會傳遞到權值更新模塊,更新之后的權值由憶阻器權值存儲模塊進行存儲和讀取。在該網絡的整體設計中,采用流水線方式[13]對整體進行優化,盡可能減少多個寄存器同時賦值或者同時運算等操作,以期網絡的處理頻率達到較高的水平。經過流水線設計的各模塊間連接次序如圖3所示。

xhcl5-t3.gif

    傳遞函數模塊通常采用雙曲正切函數,該函數在FPGA中可通過cordic算法[14]完成該設計。cordic算法是一種對三角函數或對數函數等非線性方程進行逼近的一種硬件算法,其利用循環迭代的方式對目標函數進行逼近。在硬件上設計cordic算法時,逼近位數設置的越高,計算精度也就越高,但是同時硬件資源也會消耗越多;如果位數較低,雖然硬件資源占用較少,但是相應的計算精度就會不夠,甚至會影響網絡識別精度。硬件上實際的設計必須根據實際需要來決定cordic算法的逼近位數,所以本設計位數設置為27位,可以保證該算法在精度較高的情況下來控制硬件資源的占用。

    誤差計算模塊需要預先設定教師信號,對上一次訓練的結果進行對比,在硬件中可以通過減法器計算得到權值更新量。該網絡通過訓練控制模塊對得到的權值更新量進行判斷,輸出訓練控制信號,決定下一步的操作是繼續當前樣本的訓練還是跳進下一幅樣本圖。在硬件電路上,訓練控制模塊由比較器構成。當網絡的結構較小時,可預先將教師信號儲存于寄存器中,直接帶入誤差計算模塊進行運算。

    整個網絡計算過程通過流水線設計提升了運行速度,而在內部計算中,包括最為復雜的傳遞函數模塊和憶阻器權值存儲模塊,均僅需要通過乘法器和減法器的搭配即可實現,對硬件的資源與速度較為友好。

2.2 神經元模塊設計

    神經元模塊是神經網絡硬件化中最重要的基本模塊。以3×3像素的二值圖像為例,考慮到輸入神經元與訓練樣本圖的每一個像素點對應,輸入層有10個神經元。其中第一個輸入值為偏置電壓,值設為-1,后面9個神經元分別對應9個點,當像素為黑色時,輸入值為1,當像素為白色時,輸入值為-1,如圖4所示。

xhcl5-t4.gif

    訓練方式為,當一幅樣本訓練完后,接著訓練第二幅樣本圖,一直到所有樣本都訓練完,即代表訓練完成。如果網絡沒有達到設定的要求,則跳回第一幅樣本從頭開始訓練,直到完成為止。

    以3×3圖像為例,隱層的神經元個數3,通過輸入的數值和權值經過乘累加計算得到Ii的結果,計算過程如下:

    xhcl5-gs3.gif

其中Wij為神經元之間連接對應的權值,j為輸入神經元的編號,i為隱層和輸出層神經元的編號。由于輸入層神經元個數為10,隱層神經元個數為3,因此權值的個數一共為30個。上述乘累加運算結果可以直接通過寄存器的乘累加得到。

2.3 憶阻權值模塊設計

    以3×3圖像為例,權值更新過程計算如下:

xhcl5-gs4-5.gif

其中ΔQij為通過憶阻器的電荷量在訓練中的改變量。由于初始權值為0,可以得到:

    xhcl5-gs6.gif

其中Qij為累計通過憶阻器的電荷量。以當一次訓練結束之后需要修正憶阻權值模塊的權值時,可以根據式(5)和式(6),修改通過憶阻器兩端的電量值即可。

2.4 訓練控制模塊設計

    以3×3圖像為例,當訓練集中的圖均輸出正確的分類結果時,代表網絡訓練完成,此時訓練停止。由于訓練集是依次輸入進行訓練,并且前一幅圖的輸出結果決定了下一個輸入值是下一幅圖還是返回第一幅圖,因此采用狀態機來對訓練控制模塊進行實現。有限狀態機初始狀態為狀態0,當第一幅訓練樣本圖像輸入時,判斷圖像的分類的結果是否正確,如果正確,有限狀態機跳至狀態1,不正確就跳至狀態0。當第二幅訓練樣本輸入時,判斷分類的結果是否正確,如果正確,則跳至狀態2,如果不正確,有限狀態機跳至狀態0,重新從第一個樣本圖開始訓練。以此類推,當所有的訓練樣本均分類正確時,有限狀態機會跳至最后一個狀態,此時訓練控制模塊控制憶阻神經網絡停止訓練,否則網絡會一直訓練下去。

3 實驗結果和分析

    本文以神經網絡訓練和測試中常用的3×3像素的二值圖像作為該神經網絡系統的訓練和測試數據集,樣本集包括30幅3×3的二值圖像,每10幅樣本圖為一組,總共分為3個類別,分別是z、v、n和其被部分損壞的圖像,如圖5所示。

xhcl5-t5.gif

    網絡的訓練以30幅圖為一個訓練周期,訓練的前10幅圖為字母z,中間10幅圖為字母v,最后10幅圖為字母n。理想情況下,輸入第一類,即字母z的圖像時,第一個輸出神經元的值應該比第二個和第三個輸出值要大。輸入第二類和第三類與之類似。測試使用的樣本與訓練一致,任意一幅圖輸入進該系統應該得出正確的分類結果,連續將30幅圖輸入也一樣可以得到每一幅圖各自正確的分類結果。

    根據上述理論設置好各類參數,各權值初始值均為0~1之間的任意值,訓練一共耗時30個周期之后停止了,狀態機的指針也停在了最后一個周期,此時可認為訓練已結束。將30幅圖再依次輸入該系統,得到的3個分類輸出如圖6所示。

xhcl5-t6.gif

    圖6中,rst為置位信號,clk為時鐘信號,state為狀態機跳轉信號,k1、k2和k3分別對應z,v和n三個分類。從圖中可以看到,30個周期中,前10個周期的分類結果顯示第一輸出神經元為高電平,即輸出為字母z,如圖中k1所示;中間10個周期的分類結果顯示第二輸出神經元為高電平,即輸出為字母v,如圖中k2所示;最后10個周期的分類結果顯示第三輸出神經元為高電平,即輸出為字母n,如圖中k3所示。由圖6可知,該網絡對3×3數據集的分類準確率為100%,驗證了該憶阻網絡的有效性和可靠性。

    利用Quartus II軟件對整個設計進行綜合,選用型號為Cyclone II:EP2C70F896I8的FPGA,資源占用和處理速度如表1所示。

xhcl5-b1.gif

    由表1可知,訓練總共需要30個時鐘周期。結合表1中的網絡整體處理速度可以得到整個訓練時長僅為t=30/(89.64×103)=0.33 ms,在測試時,從將一幅圖像輸入到硬件中到得到測試結果,僅需t=10 μs即可完成。與現有憶阻神經網絡的硬件算法相比,該算法具有準確率高以及處理速度快的優勢。

4 結論

    本文提出了一種基于憶阻特性的監督神經網絡算法,并將其在FPGA上進行了實現。該設計首先通過對憶阻器進行建模和功能仿真,進而將該憶阻器模塊用作神經網絡中的權值存儲模塊,最終搭建有監督的憶阻神經網絡。將該設計應用于圖像分類功能,得到了良好的實驗結果,體現出硬件電路高并行度和高處理速度的優勢。該設計提出了一種憶阻器和神經網絡的結合方法,也對監督憶阻神經網絡算法的電路系統實現給出了參考。

參考文獻

[1] 蔡坤鵬,王睿,周濟.第四種無源電子元件憶阻器的研究及應用進展[J].電子元件與材料,2010(4):78-82.

[2] 劉東青,程海峰,朱玄,等.憶阻器及其阻變機理研究進展[J].物理學報,2014,63(18):187301.

[3] 段美濤.基于STDP規則的憶阻神經網絡及應用[D].重慶:西南大學,2013.

[4] 賈林楠,黃安平,鄭曉虎,等.界面效應調制憶阻器研究進展[J].物理學報,2012,61(21):217306-217306.

[5] 胡柏林,王麗丹,黃藝文,等.憶阻器Simulink建模和圖形用戶界面設計[J].西南大學學報(自然科學版),2011,33(9):50-56.

[6] 榮輝,張濟世.人工神經網絡及其現狀與展望[J].電子技術應用,1995(10):4-5.

[7] 王樂毅.憶阻器研究進展及應用前景[J].電子元件與材料,2010(12):71-74.

[8] 陸燕,杜繼宏,梁循.人工神經網絡在控制中的應用[J].電子技術應用,1996(2):4-7.

[9] 徐智勇,唐根偉,姜新泉,等.硬件友好型合成指紋鑒別算法的研究[J].電子技術應用,2016,42(10):54-57.

[10] 白艷宇,申超群,楊新鋒.結合SIFT特征和神經網絡池的物體分類方法[J].電子技術應用,2017,43(7):130-134,139.

[11] 王蒙,常勝,王豪.一種自適應訓練的BP神經網絡FPGA設計[J].現代電子技術,2016,39(15):115-118.

[12] 洪慶輝,曾以成,李志軍.含磁控和荷控兩種憶阻器的混沌電路設計與仿真[J].物理學報,2013,62(23):230502-230502.

[13] 張科峰,李朝培,古安強.一種可重構流水線結構模數轉換器的設計[J].電子技術應用,2008(5):51-53,58.

[14] 李全,李曉歡,陳石平.基于CORDIC算法的高精度浮點超越函數的FPGA實現[J].電子技術應用,2009,35(5):166-170.



作者信息:

湯知日,朱若華,常  勝

(武漢大學 物理科學與技術學院,湖北 武漢430072)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 免费观看性欧美大片无片纯爱 | 97国产精品视频观看一 | 免费在线不卡视频 | 99爱视频| 手机看片日韩国产一区二区 | 亚洲第一页中文字幕 | 日日操视频 | 高清成人爽a毛片免费网站 高清国产精品久久久久 | 香港经典a毛片免费观看爽爽影院 | 欧美成人高清 | a级片免费观看视频 | 成人免费一区二区三区 | 综合网插 | 欧美激情亚洲精品日韩1区2区 | 永久免费视频 | 日韩日韩 | 欧美一级高清片欧美国产欧美 | 热99re久久精品2久久久 | 天天干天天干 | 国产精品综合久成人 | 久久精品国产欧美日韩99热 | 丝袜调教视频 | 最近免费中文字幕大全高清大全1 | 成年网站视频在线观看 | 欧美日韩天堂 | 窝窝人体色www | 亚洲欧美人成网站综合在线 | 热99re久久精品天堂vr | 日韩一区视频在线 | 日韩一本 | 国产欧美性综合视频性刺激 | 天堂精品 | 好吊色几万部永久免费视频 | 日韩精品www | 日韩免费在线视频 | 国产一级一片免费播放i | 在线观看黄色片 | 丁香五月缴情在线 | haose16在线永久免费 | 国产午夜视频在永久在线观看 | 日日草草 |