程 丹,王連明
(東北師范大學(xué)應(yīng)用電子技術(shù)研究所,吉林 長(zhǎng)春 130024)
基于NIOSⅡ多核技術(shù)的Hopfield神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法
程 丹,王連明
(東北師范大學(xué)應(yīng)用電子技術(shù)研究所,吉林 長(zhǎng)春 130024)
為了充分發(fā)揮人工神經(jīng)網(wǎng)絡(luò)所具有的并行計(jì)算、分布式存儲(chǔ)的優(yōu)點(diǎn),提出了將NIOSⅡ多核技術(shù)應(yīng)用于Hopfield神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)的方法.采用中斷方式和SDRAM實(shí)現(xiàn)多核之間的通信,并將所實(shí)現(xiàn)的硬件用于數(shù)字識(shí)別,驗(yàn)證了多核通信方法應(yīng)用于神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)的有效性和可行性.
SOPC;NIOSⅡ;多核通信;Hopfield神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)是由許多個(gè)神經(jīng)元組成的、并行分布式的多處理器結(jié)構(gòu),每個(gè)神經(jīng)元對(duì)應(yīng)一個(gè)處理器.現(xiàn)有的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)方法大都采用通用計(jì)算機(jī)單核處理器對(duì)人工神經(jīng)網(wǎng)絡(luò)算法進(jìn)行模擬,這種方法實(shí)質(zhì)上不能夠體現(xiàn)人工神經(jīng)網(wǎng)絡(luò)并行分布的網(wǎng)絡(luò)結(jié)構(gòu)和處理能力.
NIOSⅡ處理器是Altera公司推出的第二代用戶可配置的、基于RISC的通用32位軟核處理器,是特有的基于通用FPGA架構(gòu)的軟CPU內(nèi)核.NIOSⅡ系列32位RISC嵌入式處理器具有每秒執(zhí)行超過20億條指令的性能,在低成本FPGA中實(shí)現(xiàn)后成本只有35美分.由于處理器是軟核形式,具有很大的靈活性,可以在多種系統(tǒng)設(shè)置組合中進(jìn)行選擇,以滿足成本和功能要求[1-2].
一個(gè)FPGA系統(tǒng)中可以配置多個(gè)NIOSⅡ軟核,從而構(gòu)成NIOSⅡ多核系統(tǒng),文獻(xiàn)中用NIOSⅡ多核技術(shù)實(shí)現(xiàn)了前饋型人工神經(jīng)網(wǎng)絡(luò)——BP神經(jīng)網(wǎng)絡(luò)[3-8].本文采用NIOSⅡ多核技術(shù)來模擬人工神經(jīng)網(wǎng)絡(luò),每個(gè)NIOSⅡ軟核可以模擬人工神經(jīng)網(wǎng)絡(luò)中的一個(gè)或若干個(gè)神經(jīng)元.嘗試用NIOSⅡ多核技術(shù)實(shí)現(xiàn)反饋型人工神經(jīng)網(wǎng)絡(luò)——Hopfield神經(jīng)網(wǎng)絡(luò).使用這種方法可以充分發(fā)揮人工神經(jīng)網(wǎng)絡(luò)并行分布式的處理優(yōu)點(diǎn),同時(shí)由于采用軟件編程,可以使網(wǎng)絡(luò)結(jié)構(gòu)具有比較好的靈活性.
Hopfield神經(jīng)網(wǎng)絡(luò)是一種單層對(duì)稱全反饋循環(huán)網(wǎng)絡(luò),Hopfield神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)見圖1.
圖1 Hopfield神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
當(dāng)每個(gè)神經(jīng)元的輸出信號(hào)不僅反饋到其他所有神經(jīng)元的輸入,同時(shí)也反饋到自己的輸入時(shí),稱為有自反饋的Hopfield神經(jīng)網(wǎng)絡(luò).我們研究的就是有自反饋的Hopfield神經(jīng)網(wǎng)絡(luò).
根據(jù)運(yùn)行方式的不同,Hopfield神經(jīng)網(wǎng)絡(luò)主要有2種工作方式:(1)串行工作方式.在某一時(shí)刻只有一個(gè)神經(jīng)元改變狀態(tài),而其他神經(jīng)元的輸出不變.這一變化的神經(jīng)元可以按照隨機(jī)的方式或預(yù)定的順序來選擇.(2)并行工作方式.在某一時(shí)刻有N個(gè)神經(jīng)元改變狀態(tài),而其他的神經(jīng)元的輸出不變.變化的這一組神經(jīng)元可以按照隨機(jī)方式或某種規(guī)則來選擇.當(dāng)某一時(shí)刻所有神經(jīng)元都改變狀態(tài)時(shí),稱為全并行方式.
根據(jù)激活函數(shù)選取的不同,Hopfield神經(jīng)網(wǎng)絡(luò)可分為離散型Hopfield神經(jīng)網(wǎng)絡(luò)和連續(xù)型Hopfield神經(jīng)網(wǎng)絡(luò),分別記作DHNN (Discrete Hopfield Neural Network)和CHNN (Continues Hopfield Neural Network).本文所實(shí)現(xiàn)的是全并行工作方式的離散型Hopfield神經(jīng)網(wǎng)絡(luò).
離散型Hopfield神經(jīng)網(wǎng)絡(luò)是激活函數(shù)的二值函數(shù),即輸入、輸出為{0,1}的反饋網(wǎng)絡(luò).網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都有一個(gè)閾值,每個(gè)節(jié)點(diǎn)都可處于一種可能的狀態(tài){0,1},即當(dāng)該神經(jīng)元所受的刺激超過其閾值時(shí),神經(jīng)元處于一種狀態(tài)(如1),否則神經(jīng)元就處于另一狀態(tài)(如0).離散型Hopfield神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)方程見公式(1)和(2).
其中:ωij表示權(quán)值;θi表示閾值.
離散型Hopfield神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的設(shè)計(jì)方法有外積和法、偽逆法、正交化法等,其中正交化法的數(shù)學(xué)設(shè)計(jì)較為復(fù)雜,但與另兩種方法相比,具有較大的穩(wěn)定域.本文基于正交化法來計(jì)算離散型Hopfield神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值的.
正交化法計(jì)算公式推導(dǎo)如下:
(1)已知有q個(gè)需要存儲(chǔ)的穩(wěn)定平衡點(diǎn)T1,T2,…,Tq,T∈Rs,計(jì)算s×(q-1)階矩陣YRs×(q-1)有
(2)對(duì)Y進(jìn)行奇異值及酋矩陣分解,如存在2個(gè)正交矩陣U和V以及一個(gè)對(duì)角值為Y的奇異的對(duì)角矩陣A,滿足:
由此可見,網(wǎng)絡(luò)的權(quán)矩陣式是由W+和W-兩部分權(quán)矩陣相加而成的,每一部分權(quán)所采用的都是類似于外積和法得到的,只是用的不是原始要求記憶的樣本,而是分解后正交矩陣的分量.這兩部分權(quán)矩陣均滿足對(duì)稱條件,即有(12)式成立.
采用NIOS多核技術(shù)實(shí)現(xiàn)Hopfield神經(jīng)網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)見圖2.圖2中每個(gè)神經(jīng)元用一個(gè)NIOSⅡ軟核實(shí)現(xiàn),各個(gè)NIOSⅡ軟核分別具有PIO輸入端和PIO輸出端.每個(gè)核進(jìn)行一次迭代之后,將相應(yīng)的PIO輸出端設(shè)為1,各個(gè)核的PIO輸出端經(jīng)過與門之后再送回給每個(gè)核的PIO輸入端,當(dāng)所有核完成一次運(yùn)算后,會(huì)引發(fā)一個(gè)PIO輸入端的中斷,然后繼續(xù)進(jìn)行下一次的迭代運(yùn)算.SDRAM作為多核之間的數(shù)據(jù)交換單元.cpu4用來接收輸入數(shù)據(jù)和將輸出數(shù)據(jù)送出顯示.
圖2 實(shí)現(xiàn)Hopfield神經(jīng)網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)的硬件連線
為了將多核系統(tǒng)用于數(shù)字識(shí)別,首先將0~9標(biāo)準(zhǔn)數(shù)字的編號(hào)存入Hopfield神經(jīng)網(wǎng)絡(luò)作為初始穩(wěn)態(tài),然后用正交化法計(jì)算出Hopfield神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,并存儲(chǔ)到系統(tǒng)當(dāng)中.當(dāng)輸入一個(gè)被噪聲污染的數(shù)字的編碼后,經(jīng)過系統(tǒng)的訓(xùn)練,最終能收斂到初始穩(wěn)態(tài)中的一個(gè)數(shù)字,完成了識(shí)別過程.
依據(jù)圖2所示的結(jié)構(gòu),我們實(shí)現(xiàn)的是規(guī)模為64個(gè)神經(jīng)元的Hopfield神經(jīng)網(wǎng)絡(luò),共用了5個(gè)NIOSⅡ處理器核,cpu0,cpu1,cpu2和cpu3分別用來實(shí)現(xiàn)Hopfield神經(jīng)網(wǎng)絡(luò)的16個(gè)神經(jīng)元.
具體運(yùn)行步驟:各個(gè)核進(jìn)行一次迭代運(yùn)算后,都將迭代結(jié)果寫入分別對(duì)應(yīng)的SDRAM地址單元中,然后將其對(duì)應(yīng)的一位PIO輸出端置1.由于各個(gè)核的一位PIO輸出端相與之后送到所有核的一位PIO輸入端作為各個(gè)核的中斷觸發(fā)信號(hào)(本系統(tǒng)設(shè)定上升沿為中斷觸發(fā)信號(hào)),因此,當(dāng)所有核都向存儲(chǔ)器寫完運(yùn)算結(jié)果后,與門的輸出為1.當(dāng)各個(gè)核的中斷被觸發(fā)后,都開始讀數(shù)過程,由于各個(gè)核每次迭代都需要所有核上一次的迭代結(jié)果,因此,每個(gè)核除讀取自己所對(duì)應(yīng)的SDRAM地址單元中的數(shù)據(jù)外,還需要讀取其他核所對(duì)應(yīng)的SDRAM地址單元中的數(shù)據(jù).
各個(gè)核讀數(shù)結(jié)束后開始進(jìn)行下一次的迭代運(yùn)算,如此循環(huán)反復(fù),直到前后2次迭代運(yùn)算得到的數(shù)據(jù)相同時(shí),迭代運(yùn)算結(jié)束.最后迭代運(yùn)算結(jié)果送LED點(diǎn)陣顯示.
之所以沒有采用一個(gè)NIOSⅡ軟核實(shí)現(xiàn)一個(gè)神經(jīng)元,是因?yàn)榭紤]到離散型Hopfield每個(gè)核的運(yùn)算都很簡(jiǎn)單,用一個(gè)NIOSⅡ軟核實(shí)現(xiàn)多個(gè)神經(jīng)元的運(yùn)算可以節(jié)省時(shí)間,同時(shí)也可以節(jié)省FPGA的資源.
10個(gè)被噪聲污染的輸入數(shù)字和經(jīng)Hopfield神經(jīng)網(wǎng)絡(luò)識(shí)別后的數(shù)字的對(duì)比見圖3和4.
圖3 被噪聲污染的數(shù)字
圖4 Hopfield神經(jīng)網(wǎng)絡(luò)識(shí)別后的數(shù)字
經(jīng)驗(yàn)證,當(dāng)輸入被噪聲污染的0~9間的數(shù)字后,經(jīng)Hopfield神經(jīng)網(wǎng)絡(luò)計(jì)算后能較好的識(shí)別初始樣本0~9,實(shí)現(xiàn)了預(yù)期的功能.所用FPGA芯片為Altera CycloneⅡEP2C20F484C8,NIOSⅡ核選為經(jīng)濟(jì)型時(shí),用本系統(tǒng)完成一次數(shù)字識(shí)別所用時(shí)間約500ms,具體時(shí)間依據(jù)所輸入的被噪聲污染的數(shù)字編碼不同略有差異.
本文研究將NIOSⅡ多核技術(shù)應(yīng)用于Hopfield神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn),這種硬件實(shí)現(xiàn)方法充分體現(xiàn)了人工神經(jīng)網(wǎng)絡(luò)并行計(jì)算、分布式存儲(chǔ)的優(yōu)點(diǎn),為人工神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)提供了新的方法.通過將硬件實(shí)現(xiàn)的Hopfield神經(jīng)網(wǎng)絡(luò)應(yīng)用于數(shù)字識(shí)別,為人工神經(jīng)網(wǎng)絡(luò)的應(yīng)用提供了新的思路.
[1] 李蘭英.NIOSⅡ嵌入式軟核SOPC設(shè)計(jì)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006:35-49.
[2] 周立功.SOPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2006:30-56.
[3] 張文娟.基于NIOSⅡ多核技術(shù)的BP神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)方法研究[D].長(zhǎng)春:東北師范大學(xué)物理學(xué)院,2009:5-45.
[4] 王連明,黃瑩,鄧玉芬,等.基于RBF神經(jīng)網(wǎng)絡(luò)的非線性電子器件的建模方法研究[J].東北師大學(xué)報(bào):自然科學(xué)版,2008,40(3):46-50.
[5] 何東曉,周春光,劉淼,等.手寫數(shù)字識(shí)別中組合式神經(jīng)網(wǎng)絡(luò)的構(gòu)建方法[J].吉林大學(xué)學(xué)報(bào):理學(xué)版,2009,47(6):1211-1216.
[6] 劉延喜.Linex損失下的BP神經(jīng)網(wǎng)絡(luò)分類方法及在人臉識(shí)別中的應(yīng)用[J].吉林大學(xué)學(xué)報(bào):理學(xué)版,2010,48(3):411-413.
[7] 董琰,彭琦,李建志.基于FPGA的輻射定標(biāo)電源系統(tǒng)[J].東北師大學(xué)報(bào):自然科學(xué)版,2010,42(3):67-70.
[8] 陳廷勇,殷樹友,林和平.RBF人工神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)定義與解的唯一性證明[J].東北師大學(xué)報(bào):自然科學(xué)版,2009,41(3):30-35.
Method for hardware implementation of Hopfield neural network based on NIOSⅡ multi-core technology
CHENG Dan,WANG Lian-ming
(Institute of Applied Electronics,Northeast Normal University,Changchun 130024,China)
To take advantage of the parallel computing and distributed storage characteristics of Neural network,NIOS Ⅱ multi-core technology is used to implement the hardware of Hopfield neural network.The method uses interrupt and SDRAM to realize the communication between NIOS Ⅱmulti-cores.Then,the implemented Hopfield network is used for digital number identification.The effectiveness and feasibility of this method are proved.
SOPC;NIOSⅡ;multicore communications;Hopfield network
TP 183;TP 399
520·30
A
1000-1832(2011)03-0065-04
2010-08-28
國家自然科學(xué)基金資助項(xiàng)目(50478007).
程丹(1979—),女,碩士研究生;王連明(1972—),男,博士,教授,主要從事智能信息處理及嵌入式系統(tǒng)領(lǐng)域研究.
石紹慶)