999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種自適應(yīng)訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò)FPGA設(shè)計

2016-04-12 00:00:00王蒙常勝王豪
現(xiàn)代電子技術(shù) 2016年15期

摘 要: 為解決軟件實現(xiàn)神經(jīng)網(wǎng)絡(luò)存在并行度不高、速度慢的缺點以及傳統(tǒng)神經(jīng)網(wǎng)絡(luò)硬件設(shè)計資源利用高、網(wǎng)絡(luò)訓(xùn)練不可控的不足,提出了一種新的BP神經(jīng)網(wǎng)絡(luò)FPGA設(shè)計方法。該方法通過基于對稱性的分段線性擬合和非線性擬合實現(xiàn)Sigmoid激勵函數(shù)和利用有限狀態(tài)機實現(xiàn)基于誤差的訓(xùn)練次數(shù)自適應(yīng)。應(yīng)用Verilog HDL語言設(shè)計1?3?1三層BP神經(jīng)網(wǎng)絡(luò)逼近[y=cosx]函數(shù),網(wǎng)絡(luò)的資源占用為2 756 LEs,訓(xùn)練次數(shù)為1 583次,網(wǎng)絡(luò)測試樣本的平均相對誤差為0.6%,最高時鐘頻率為82.3 MHz。驗證結(jié)果表明該方法設(shè)計的神經(jīng)網(wǎng)絡(luò)資源占用少,網(wǎng)絡(luò)訓(xùn)練可自動控制,同時還具有精度高,運行速度快的優(yōu)點。

關(guān)鍵詞: FPGA; BP神經(jīng)網(wǎng)絡(luò); 線性擬合; 非線性擬合; 自適應(yīng)訓(xùn)練

中圖分類號: TN702.2?34; TP183 文獻標識碼: A 文章編號: 1004?373X(2016)15?0115?04

Abstract: Using software for neural network has the disadvantages of low parallelism and slow speed, the hardware design resource utilization of the traditional neural network is high, and the network training is uncontrollable. To solve these problems, a new FPGA?based design method of back propagation (BP) neural network is proposed. The method can realize the Sigmoid excitation function through piecewise linear fitting and nonlinear fitting based on symmetry, and uses the finite state machine (FSM) to accomplish the training times adaption based on error. The Verilog HDL language is used to design the 1?3?1 BP neural network to approximate the function [y=cosx.] The resource occupancy of the network is 2 756 LEs, the training times are 1 583, the average relative error of the network test sample is 0.6%, and the maximum clock frequency is 82.3 MHz. The verification results show that the neural network designed with the method has the advantages of less resource occupancy, high accuracy and fast running speed, and can control the network training automatically.

Keywords: FPGA; BP neural network; linear fitting; nonlinear fitting; adaptive training

0 引 言

人工神經(jīng)網(wǎng)絡(luò)(ANNs)[1]通常都是采用基于軟件的方法實現(xiàn)。但作為一個并行計算系統(tǒng),軟件實現(xiàn)的方法存在速度慢的缺點,而硬件方式具有高并行性的特點,適合于人工神經(jīng)網(wǎng)絡(luò)。FPGA作為一種通用的硬件設(shè)計平臺,其內(nèi)部分布式的資源與神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)非常契合,是一個實現(xiàn)神經(jīng)網(wǎng)絡(luò)硬件化設(shè)計的良好選擇。

資源占用是FPGA設(shè)計的一個重要考量因素,而網(wǎng)絡(luò)訓(xùn)練是神經(jīng)網(wǎng)絡(luò)功能實現(xiàn)的基礎(chǔ)。已有的神經(jīng)網(wǎng)絡(luò)硬件設(shè)計工作在這兩方面還存在巨大的空間。例如,薛維琴等利用FPGA實現(xiàn)了BP神經(jīng)網(wǎng)絡(luò)[2],該網(wǎng)絡(luò)經(jīng)過訓(xùn)練能夠描述非線性函數(shù),但沒有提出BP神經(jīng)網(wǎng)絡(luò)的激勵函數(shù)和訓(xùn)練控制模塊的具體硬件實現(xiàn)方法。李利歌等提出了直接利用查找表實現(xiàn)神經(jīng)網(wǎng)絡(luò)激勵函數(shù)的方法[3],但是查找表存在占用資源大,運行速度慢的缺點。張海燕等采用基于查找表的STAM算法實現(xiàn)神經(jīng)網(wǎng)絡(luò)激勵函數(shù)[4],且文中也沒有提到訓(xùn)練控制模塊。Javier Valls等提出利用CORDIC算法實現(xiàn)神經(jīng)網(wǎng)絡(luò)的激勵函數(shù)[5],資源利用率低,但是存在精度不足的問題。劉培龍利用分段擬合實現(xiàn)激勵函數(shù)[6],但是激勵函數(shù)資源占用較多。

基于這一現(xiàn)狀,本文通過對Sigmoid函數(shù)基于對稱性分段擬合以及基于誤差的訓(xùn)練自適應(yīng)技術(shù),提出了一種新的神經(jīng)網(wǎng)絡(luò)FPGA設(shè)計方法。該方法設(shè)計的神經(jīng)網(wǎng)絡(luò)資源占用少,網(wǎng)絡(luò)訓(xùn)練自適應(yīng),同時還具有精度高,運行速度快的優(yōu)點。

1 BP神經(jīng)網(wǎng)絡(luò)的FPGA設(shè)計

根據(jù)BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),本文將網(wǎng)絡(luò)劃分為神經(jīng)元模塊、激勵函數(shù)模塊、誤差計算模塊,權(quán)值更新模塊、權(quán)值存儲模塊以及自適應(yīng)網(wǎng)絡(luò)訓(xùn)練模塊。圖1給出了不同功能模塊之間的連接和訓(xùn)練過程。其中,權(quán)值存儲模塊和輸入神經(jīng)元將輸入層的權(quán)值以及訓(xùn)練的樣本輸入到隱含層神經(jīng)元進行乘累加運算,其結(jié)果輸入到激勵函數(shù)模塊得到激勵函數(shù)輸出,該輸出和隱含層的權(quán)值作為輸出層神經(jīng)元的輸入得到本次訓(xùn)練結(jié)果。該結(jié)果再經(jīng)過誤差計算模塊計算誤差值和權(quán)值改變量。權(quán)值改變量在權(quán)值更新模塊中得到新權(quán)值存入到權(quán)值存儲模塊。誤差值輸入到自適應(yīng)網(wǎng)絡(luò)訓(xùn)練模塊判斷網(wǎng)絡(luò)訓(xùn)練是否達到最優(yōu)。網(wǎng)絡(luò)訓(xùn)練達到最優(yōu)前,該過程循環(huán),當網(wǎng)絡(luò)訓(xùn)練達到最優(yōu),自適應(yīng)訓(xùn)練模塊控制網(wǎng)絡(luò)停止訓(xùn)練。

系統(tǒng)中神經(jīng)元模塊、誤差計算模塊、權(quán)值更新模塊按照BP網(wǎng)絡(luò)算法規(guī)則可調(diào)用加、乘、乘累加等功能模塊,權(quán)值存儲模塊可調(diào)用RAM模塊。激勵函數(shù)模塊和自適應(yīng)訓(xùn)練模塊關(guān)乎系統(tǒng)資源占用及訓(xùn)練過程的實現(xiàn),是本文BP神經(jīng)網(wǎng)絡(luò)FPGA設(shè)計的重點。

1.1 激勵函數(shù)模塊設(shè)計

激勵函數(shù)模塊是影響整個神經(jīng)網(wǎng)絡(luò)資源利用的主要因素之一,在保證誤差足夠小的前提下,激勵函數(shù)模塊資源占用越小越好。

式中含有指數(shù)運算,較難在FPGA 中直接實現(xiàn)。利用Sigmoid函數(shù)具有對稱性以及較好的線性區(qū)域和非線性區(qū)域分界的特點,本文提出一種資源占用小、精度高的基于對稱性分段擬合的激勵函數(shù)硬件實現(xiàn)的方法。

考慮到Sigmoid函數(shù)的對稱性,只需完成[x>0]的區(qū)域硬件實現(xiàn),根據(jù)對稱性即可求出[x<0]區(qū)域的輸出,節(jié)省了一半的資源。在[x>0]區(qū)域,根據(jù)Sigmoid函數(shù)線性區(qū)域和非線性區(qū)域分界良好的特點,分別采用線性擬合和非線性擬合的方法分段逼近。具體而言,如圖2所示,將整個激勵函數(shù)模塊分為預(yù)處理模塊、函數(shù)逼近模塊以及最終輸出模塊三個子模塊。

1.1.1 預(yù)處理模塊

激勵函數(shù)的輸入[x]為16位定點數(shù),最高位為符號位,中間五位為整數(shù)部分,后十位為小數(shù)部分。當[x]輸入到激勵函數(shù)模塊時,首先進行預(yù)處理。截取二進制輸入[x]的最高位判斷[x>0]或者[x<0。]最高位為1,表示[x<0,]最高位為0,則表示[x>0。]當判斷出[x>0]時,[x=x,]將[x]輸入到后續(xù)處理模塊,若判斷出[x<0,]則需先將[x]變?yōu)閇x,]同時產(chǎn)生一個輸出控制信號,將[x]輸入到后續(xù)處理模塊。

1.1.2 函數(shù)逼近模塊

基于對輸入[x]的預(yù)處理,此子模塊只需要對[x>0]的情況做線性擬合和非線性擬合。分段逼近函數(shù)如表1所示。

1.1.3 最終輸出模塊

最終輸出模塊由預(yù)處理模塊輸出的控制信號控制。若[x>0,]則控制信號控制最終輸出模塊直接輸出函數(shù)逼近模塊中[x]對應(yīng)的輸出[fx;]若[x<0,]則控制信號控制最終輸出模塊將函數(shù)逼近模塊中[x]對應(yīng)的輸出[fx]先做取反處理,然后與1相加得到的結(jié)果作為最終輸出,即輸出值為[1-fx]。

1.1.4 激勵函數(shù)模塊分析

按照上述設(shè)計方法完成激勵函數(shù)模塊的設(shè)計后,對激勵函數(shù)模塊進行功能仿真和誤差分析。從-8~8以0.001為間隔生成測試數(shù)據(jù)輸入到激勵函數(shù)模塊,得到的ModelSim仿真結(jié)果如圖3所示,其各區(qū)間絕對誤差如表2所示。從中可以看出,各區(qū)間的誤差值均很小且誤差分布較為平均,體現(xiàn)出良好的逼近效果。

1.2 自適應(yīng)訓(xùn)練模塊設(shè)計

網(wǎng)絡(luò)訓(xùn)練是神經(jīng)網(wǎng)絡(luò)功能實現(xiàn)的基礎(chǔ)。神經(jīng)網(wǎng)絡(luò)隨著訓(xùn)練的進行,權(quán)值逐漸改變,誤差逐漸減小,但如果網(wǎng)絡(luò)訓(xùn)練不能適時結(jié)束,造成過度訓(xùn)練,則網(wǎng)絡(luò)性能會變差。然而對網(wǎng)絡(luò)訓(xùn)練的控制在硬件上并不易設(shè)計,故很多工作未討論這一點或簡單的以固定周期來完成訓(xùn)練。本文提出了一種基于可容忍誤差值的自適應(yīng)網(wǎng)絡(luò)訓(xùn)練硬件設(shè)計方法,可有效的自動控制神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程。

分析神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,每一次輸入樣本值都會在本次訓(xùn)練完成時得到一個誤差值,當誤差在可以容忍的范圍內(nèi)可以認為網(wǎng)絡(luò)已經(jīng)訓(xùn)練完成。認為在給定的可容忍誤差值的情況下,如果連續(xù)兩次整個樣本集輸入得到的誤差絕對值都要比給定的可容忍誤差值要小,則該神經(jīng)網(wǎng)絡(luò)訓(xùn)練已經(jīng)達到最優(yōu)。根據(jù)這個思想,提出利用有限狀態(tài)機實現(xiàn)自適應(yīng)網(wǎng)絡(luò)訓(xùn)練。

如圖4所示,有限狀態(tài)機的狀態(tài)數(shù)是樣本集中樣本數(shù)的兩倍,狀態(tài)機初始為零狀態(tài)。當某一次訓(xùn)練得到的誤差絕對值小于可容忍誤差值時,狀態(tài)機進入第一個狀態(tài)。若緊鄰的下一次訓(xùn)練得到的誤差絕對值也小于可容忍誤差值,狀態(tài)機進入下一個狀態(tài),否則狀態(tài)機狀態(tài)回到第0個狀態(tài)。當狀態(tài)機跳轉(zhuǎn)到最后一個狀態(tài)時,網(wǎng)絡(luò)訓(xùn)練完成,此時輸出控制信號控制權(quán)值存儲模塊停止權(quán)值更新,提示信號提示訓(xùn)練完成。該模塊的分析需要結(jié)合網(wǎng)絡(luò)中的其他模塊,故測試結(jié)果在下一節(jié)中給出。

2 驗證和分析

2.1 驗證平臺

根據(jù)上述方法,設(shè)計了一個1?3?1三層BP神經(jīng)網(wǎng)絡(luò)驗證其性能。驗證平臺為Altera公司的EP2C70F896C6。

以[y=cosx]函數(shù)為學(xué)習(xí)對象,從[0~2π]之間以[0.062 5π]為間隔選取33個樣本組成樣本集,隨機選取其中25個作為訓(xùn)練樣本,剩下8個作為測試樣本。神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值的選取具有一定的隨機性,根據(jù)網(wǎng)絡(luò)需要逼近的函數(shù)數(shù)值大小,輸入層到隱含層的初始權(quán)值矩陣[W1=[2.5,0.5,-0.3],]隱含層到輸出層的初始權(quán)值矩陣[W2=[0.35,0.4,0.3],]隱含層閾值選為[0.2,0.3,0.4],輸出層閾值選為[0.3]。隱含層的學(xué)習(xí)率設(shè)為0.4,輸出層的學(xué)習(xí)率設(shè)為0.3,容忍誤差設(shè)為0.01。

2.2 結(jié)果分析

ModelSim仿真得到的結(jié)果如圖5所示,從圖5中可以看出該BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是自適應(yīng)的。當網(wǎng)絡(luò)訓(xùn)練到最優(yōu)時,產(chǎn)生一個控制信號和一個提示信號以及網(wǎng)絡(luò)訓(xùn)練的次數(shù),此時權(quán)值存儲器的值不再變化,訓(xùn)練完成。

25個訓(xùn)練樣本集訓(xùn)練的平均誤差為0.003,分析8個測試樣本集的誤差,如表3所示。從表3中可以看出,其誤差與訓(xùn)練數(shù)據(jù)的誤差大體相當且均很小。計算測試樣本的平均相對誤差為0.6%,小于1%,說明該方法實現(xiàn)的基于FPGA的BP神經(jīng)網(wǎng)絡(luò)精度較高。

將該網(wǎng)絡(luò)下載至Altera公司EP2C70F896C6的FPGA中,其最高時鐘頻率為82.3 MHz,可見該方法具有運行速度快的優(yōu)點。將該神經(jīng)網(wǎng)絡(luò)資源占用情況與已有相關(guān)工作的資源占用情況作對比,如表4所示。雖然其中各設(shè)計的規(guī)模和平臺有所差異(如1 Slice≈4 LEs),但仍可估算出即便添加了自適應(yīng)訓(xùn)練模塊,本設(shè)計對資源的占用依然較低。

從表5中可以看到,當學(xué)習(xí)對象不同時,網(wǎng)絡(luò)訓(xùn)練的次數(shù)也不同,實現(xiàn)了訓(xùn)練過程的自適應(yīng)。由此亦可推至,若采用傳統(tǒng)的預(yù)設(shè)固定次數(shù)的方式完成訓(xùn)練,則對于不同學(xué)習(xí)對象難免會造成訓(xùn)練不充分或過度訓(xùn)練的情況,從而影響網(wǎng)絡(luò)的性能。因此,該表也進一步證明了該設(shè)計自適應(yīng)訓(xùn)練的優(yōu)越性。

3 結(jié) 論

本文以典型的BP神經(jīng)網(wǎng)絡(luò)為例,提出了一種自適應(yīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)FPGA設(shè)計方法。通過對Sigmoid激勵函數(shù)基于對稱性做分段擬合減少了資源占用,使用基于可容忍誤差完成了網(wǎng)絡(luò)訓(xùn)練自適應(yīng)。該方法設(shè)計的神經(jīng)網(wǎng)絡(luò)具備訓(xùn)練可控、資源占用低、精度高的優(yōu)點。此方法不僅適合于 BP網(wǎng)絡(luò),也可推廣至采用Sigmoid函數(shù)及需要訓(xùn)練控制的其他類型的神經(jīng)網(wǎng)絡(luò)。

注:本文通訊作者為常勝。

參考文獻

[1] 蔣宗禮.人工神經(jīng)網(wǎng)絡(luò)導(dǎo)論[M].北京:高等教育出版社,2001:15?16.

[2] 薛維琴,李莉華,戴明.基于FPGA的人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)的實現(xiàn)方法[J].電子設(shè)計工程,2010,18(9):151?154.

[3] 李利歌,閻保定,侯忠.基于FPGA的神經(jīng)網(wǎng)絡(luò)硬件可重構(gòu)實現(xiàn)[J].河南科技大學(xué)學(xué)報(自然科學(xué)版),2009,30(1):37?40.

[4] 張海燕,李欣,田書峰.基于BP神經(jīng)網(wǎng)絡(luò)的仿真線設(shè)計及其FPGA實現(xiàn)[J].電子與信息學(xué)報,2007,29(5):1267?1270.

[5] VALLS J, KUHLMANN M, PARHI K K. Evaluation of CORDIC algorithms for FPGA design [J]. Journal of VLSI signal processing, 2002, 32(3): 207?222.

[6] 劉培龍.基于FPGA的神經(jīng)網(wǎng)絡(luò)硬件實現(xiàn)的研究與設(shè)計[D].成都:電子科技大學(xué),2012.

[7] 張智明,張仁杰.神經(jīng)網(wǎng)絡(luò)激活函數(shù)及其導(dǎo)數(shù)的FPGA實現(xiàn)[J].現(xiàn)代電子技術(shù),2008,31(18):139?142.

主站蜘蛛池模板: 亚洲欧洲自拍拍偷午夜色| 欧美在线精品怡红院| 欧美亚洲另类在线观看| 国产成人精品免费av| 无码中字出轨中文人妻中文中| 国产精品太粉嫩高中在线观看| 22sihu国产精品视频影视资讯| 日韩在线观看网站| A级全黄试看30分钟小视频| 亚洲va在线∨a天堂va欧美va| 久久婷婷色综合老司机| 亚洲AV永久无码精品古装片| 免费观看国产小粉嫩喷水| 国产网友愉拍精品视频| 91在线视频福利| 亚洲丝袜第一页| 激情网址在线观看| 久久91精品牛牛| 激情网址在线观看| 国产精品片在线观看手机版| 国产成人久久综合777777麻豆| 国内精自线i品一区202| 国产专区综合另类日韩一区| 成人免费一区二区三区| 久久77777| 99999久久久久久亚洲| 国产亚洲欧美在线中文bt天堂| 日本国产精品一区久久久| 国产男女免费完整版视频| 国产99视频精品免费观看9e| 亚洲va视频| 亚洲成人精品久久| 老司机精品99在线播放| 亚洲综合久久成人AV| 日韩人妻无码制服丝袜视频| 91视频免费观看网站| 伊人婷婷色香五月综合缴缴情| 美女毛片在线| 欧美国产日韩在线| 真实国产精品vr专区| 中文字幕波多野不卡一区| 亚洲无码视频图片| 婷婷午夜天| 国产性精品| 日韩av资源在线| 久久性视频| 欧美在线观看不卡| 国产特级毛片| 亚洲va在线观看| 精品国产中文一级毛片在线看| 国产黑丝视频在线观看| 亚洲欧美在线精品一区二区| 日韩精品毛片| 日本欧美中文字幕精品亚洲| 亚洲日韩精品无码专区97| 在线观看免费AV网| 久久情精品国产品免费| 免费一级成人毛片| 伊人久久精品亚洲午夜| 免费一级毛片在线观看| 午夜视频日本| 国产老女人精品免费视频| 一级全免费视频播放| 亚洲第一视频区| 精品国产免费第一区二区三区日韩| 亚洲性视频网站| 97se亚洲综合| 亚洲无码37.| 国产99久久亚洲综合精品西瓜tv| 在线不卡免费视频| 99久久无色码中文字幕| 免费看一级毛片波多结衣| 国产美女在线观看| 成人国产免费| 精品乱码久久久久久久| 欧美日韩亚洲国产主播第一区| 中文字幕va| 情侣午夜国产在线一区无码| 无码精品一区二区久久久| 国产亚洲视频播放9000| 午夜福利网址| 97一区二区在线播放|