郭飛 劉凈凈
摘要:為了滿足神經網絡實現(xiàn)的實時性要求,介紹了一種基于FPGA的神經網絡可重構實現(xiàn)方法。首先在軟件中利用改進的BP神經網絡算法得到最優(yōu)權值,然后在改進了激勵函數(shù)逼近方法的基礎上,用FPGA實現(xiàn)了羊絨近紅外光譜模型的辨識。通過仿真實驗得知,該方法有較好的辨識精度和速度,是一種有效的硬件羊絨近紅外光譜建模方法,為羊絨、羊毛鑒別的嵌入式實現(xiàn)奠定了基礎。
關鍵詞:神經網絡; FPGA;可重構;羊絨;近紅外光譜
中圖分類號:TP183文獻標識碼:A文章編號:1009-3044(2012)09-2092-04
Research of Neural Network in Cashmere Near Infrared Spectroscopy Identification Based on FPGA
GUO Fei1,LIU Jing-jing2
(1. School of Information Engineering, Beijing Institute of Fashion Technology, Beijing 100029, China; 2. Library, Beijing Institute of Fashion Technology, Beijing 100029, China)
Abstract:In order to realize real-time requirement, an implementing method of reconfigurable Neural Network based on FPGA was introduced. First the optimal weights ware gotten by using improved BP Neural Network algorithm in software, and then on the base of improved approaching method of excitation function the identification of cashmere Near Infrared Spectroscopy model was realized by using FPGA. The simulation experiments demonstrate that the method has better identification accuracy and speed, and it is an effective method of cashmere Near Infrared Spectroscopy modeling based on hardware, and it will laid the foundation for embedded realization of cashmere and wool identification.
Key words:neural network; FPGA; reconfigurable; cashmere; near infrared spectroscopy
人工神經網絡(Artificial Neural Network, ANN)以其良好的非線性映射能力被越來越多地應用到了復雜系統(tǒng)的建模和控制中[1-3]。以軟件形式實現(xiàn)的神經網絡,無法滿足實時性要求高的領域,所以神經網絡的硬件實現(xiàn)方法成為新的熱點方向。
數(shù)字神經網絡的硬件實現(xiàn)方法一般有數(shù)字信號處理(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)三種。其中DSP是串行實現(xiàn),ASIC不可重構?;贔PGA的可重構計算很好的適應了神經神經網絡并行、模塊化、動態(tài)適應性強的特點,是硬件實現(xiàn)神經網絡的首選[4-6]。FPGA實現(xiàn)具有大量神經元的神經網絡仍然很具挑戰(zhàn)性。主要有三個難點:一、神經網絡激勵函數(shù)的表示方法;二、權值精度的數(shù)據(jù)表示方法;三、大量乘法器造成的資源浪費。這三點決定了FPGA的執(zhí)行速度、精度和資源利用率。
該文以羊絨近紅外光譜的辨識為應用背景,提出了一種面向工程應用的BP神經網絡硬件實現(xiàn)方法。根據(jù)該文數(shù)據(jù)特點,首先優(yōu)化BP神經網絡算法,并對神經網絡進行訓練,獲得最優(yōu)權值;其次采用改進的混合激活函數(shù)表示方法,結合較好的數(shù)據(jù)表示精度基于FPGA實現(xiàn)BP神經網絡的羊絨近紅外光譜數(shù)據(jù)模型,在保證精度的同時提高了資源利用率。
1 BP神經網絡及其優(yōu)化算法描述
BP神經網絡(Back-Propagation Neural Network,BP)是一種單向傳播的多層前饋神經網絡,采用非線性可微分函數(shù)進行權值訓練。BP神經網絡具有三層及以上結構,包括輸入層、1層或多層隱含層、輸出層[7-8]。典型的三層BP神經網絡結構如圖1所示。
圖中黑圈表示輸入恒為1的神經元,其目的是把閾值當成特殊的權值看,在硬件實現(xiàn)過程中,統(tǒng)一為乘累加計算,減少減法器的使用。
BP神經網絡的算法分為三步:前向傳播、誤差反向傳播、權值更新,其數(shù)學描述如下:
前向傳播實現(xiàn)了n維空間向量到m維空間向量的映射。隱含層節(jié)點的輸出為:
hk=f1(∑
2 BP神經網絡硬件實現(xiàn)
系統(tǒng)采用模塊化設計方法,主要包括乘累加、權值存儲、激勵函數(shù)實現(xiàn)、控制功能模塊。系統(tǒng)結構圖如圖2所示:圖2系統(tǒng)硬件結構圖2.1數(shù)據(jù)表示
神經網絡的FPGA實現(xiàn)存在資源限制和精度之間的沖突。需要根據(jù)實際情況對神經網絡的各種數(shù)據(jù)進行精度分析,盡量提高資源利用率。因為定點小數(shù)表示效果優(yōu)于浮點小數(shù)[9],所以該文采用定點小數(shù)來表示數(shù)據(jù)。根據(jù)文本的實際情況,輸入樣本經歸一化后范圍為[0,1],采用16位定點數(shù)表示(1,15),1位符號位,15位小數(shù)。權值范圍為[38,-18],采用21位定點數(shù)表示(1,6,14)。結果范圍為[-1,1]采用16位定點數(shù)表示(1,15),1位符號位,15位小數(shù)。
2.2乘累加設計
輸入x和權值w相乘后輸出用21位(1,6,14)定點數(shù)表示,為了防止累加溢出,乘累加后輸出用25(1,10,14)位定點數(shù)表示。
2.3激勵函數(shù)實現(xiàn)
BP神經網絡的FPGA設計中,激勵函數(shù)的實現(xiàn)是重點和難點。該文采用tan-s函數(shù)作為激勵函數(shù),其表達式如下:
f(x)=
激勵函數(shù)的逼近算法主要有:泰勒級數(shù)逼近法、坐標旋轉法、查表法、分段法。泰勒級數(shù)和分段法所占資源少但精度較差。坐標旋轉法和查表法精度高,但資源利用率低[10-12]。該文提出一種折線法、查表法及等分相加法相結合的混合表示方法,在提高精度的同時提高了資源的利用率。
tan-s函數(shù)在[-10,10]的范圍內的波形如圖3所示:圖3 tan-s波形圖
從圖3中可以看出,當輸入大于等于6時,可以將激勵函數(shù)輸出直接賦值為1;輸入小于等于-6,可直接賦值為-1,此時誤差為1.23e-05,滿足性能要求。
激勵函數(shù)tan-s的FPGA實現(xiàn)主要是在[-6,6]范圍內的實現(xiàn)。由于其關于x=0對稱,所以只討論x大于0的情況。把x按照表1所示劃分為3個區(qū)間,每種區(qū)間采用不同的實現(xiàn)方法。
表1 S函數(shù)各區(qū)間實現(xiàn)方法表
實現(xiàn)方法折線法查表法等分相加法
S=1
當x∈[0,1]區(qū)間內采用五段折線逼近,如式(9)所示,逼近效果如圖4所示。當x∈(1,3]時逼近效果較差,采用查表法(LUT)實現(xiàn)tan-s函數(shù)。當x∈(3,6)時,激勵函數(shù)輸出為(0.9951,1),已經非常逼近1,所以在此范圍內采用等分相加的策略。即以0.1為一個間隔范圍,每次在0.9951的基礎等量增加0.00016。采用以上改進的混合激勵函數(shù)實現(xiàn)方法,在保證精度的前提下,提高了資源的利用率,是一種有效的tan-s激勵函數(shù)硬件實現(xiàn)方法。
3羊絨近紅外光譜數(shù)據(jù)實驗分析
以羊絨近紅外光譜模型辨識為背景,在FPGA上進行BP神經網絡實現(xiàn)仿真。BP神經網絡結構為四層(2-10-7-1),即輸入層2個節(jié)點,第一隱含層10個節(jié)點,第二層隱含層7個節(jié)點,輸出層1個節(jié)點,其中輸入層、隱含層各包括一個輸入恒為1的節(jié)點。系統(tǒng)采用Altera公司Cyclonell系列的EP2C35型FPGA,綜合軟件使用QuartusⅡ7.1。樣本以流水線的方式讀取,即第n個樣本xn在第t,t+1,t+2,t+3個時鐘周期依次進入輸入層、隱含層1、隱含層2、輸出層。xn+1個樣本在t+1時鐘周期進入輸入層,依次計算輸出。這樣xn+1個樣本的處理不需要等待樣本xn完全處理完。同層的神經元間為并行計算,層與層間為流水線處理,節(jié)約處理時間。圖5為FPGA輸出和期望輸出的對比曲線,從圖中可以看出FPGA輸出曲線和期望值很接近,能夠很好的對羊絨近紅外光譜圖進行辨識。圖6為誤差曲線,從圖中可以看出,最大誤差為0.043,滿足性能要求,能夠較精確的對羊絨近紅外光譜進行建模。
4結論
羊絨和羊毛的鑒別是纖維鑒別領域的重要研究課題。而羊絨、羊毛模型的建立是鑒別的基礎。該文基于FPGA實現(xiàn)了BP神經網絡,在保證數(shù)據(jù)精度的前提下,改進了tan-s激勵函數(shù)的實現(xiàn)方法,并應用于羊絨近紅外光譜辨識中,取得了較好的仿真結果。硬件實現(xiàn)羊絨近紅外光譜模型為羊絨、羊毛鑒別的嵌入式實現(xiàn)奠定了基礎。實驗說明,羊絨近紅外光譜模型的FPGA實現(xiàn)精度取決于數(shù)據(jù)表示精度和激勵函數(shù)的實現(xiàn)逼近程度,要提高辨識精度需要從這兩方面改進。
參考文獻:
[1]韓力群.人工神經網絡教程[M].北京:北京郵電大學出版社, 2006.
[2]高雋.人工神經網絡原理及仿真實例[M].北京:機械工業(yè)出版社, 2007.
[3]趙俊,陳建軍.非線性系統(tǒng)模糊神經網絡控制的改進策略[J].控制理論與應用, 2010, 27(4): 466-472.
[4]王守覺,李兆洲,陳向東,等.通用神經網絡硬件中神經元基本數(shù)學模型的討論[J].電子學報, 2001, 29(5): 577-580.
[5]李昂,王沁,李占才,等.基于FPGA的神經網絡硬件實現(xiàn)方法[J].北京科技大學學報, 2007, 29(1): 90-95.
[6]潘松,黃繼業(yè),曾毓.SOPC技術實用教程[M].北京:清華大學出版社, 2005.
[7]陳作炳,艾春庭,夏雪峰.BP神經網絡仿真軟件[J].計算機仿真, 2001, 18(4): 23-24.
[8]林加鄉(xiāng),葛元.淺談BP神經網絡在模式識別中的應用[J].電腦知識與技術, 2011,(7): 1543-1545.
[9] Jordan L Holt, Jenq-Neng Hwang. Finite Precision Error Analysis of Neural Network Hardware Implementations [J]. IEEE Transactions on Computers, 1993, 42(3): 281-290.
[10]張海燕,李欣,田書峰.基于BP神經網絡的仿真線設計及其FPGA實現(xiàn)[J].電子與信息學報, 2007, 29(5): 1267-1270.
[11] Javier Valls. Evaluation of CORDIC Algorithms for FPGA Design [J]. Journal of VLSISignal Processing, 2002, 32: 207-222.
[12]張智明,張仁杰.神經網絡激活函數(shù)及其導數(shù)的FPGA實現(xiàn)[J].現(xiàn)代電子技術, 2008, 281(18): 139-142.