亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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)機(jī)實現(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 文獻(xiàn)標(biāo)識碼: 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)元進(jìn)行乘累加運算,其結(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)練是否達(dá)到最優(yōu)。網(wǎng)絡(luò)訓(xùn)練達(dá)到最優(yōu)前,該過程循環(huán),當(dāng)網(wǎng)絡(luò)訓(xùn)練達(dá)到最優(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ù)部分。當(dāng)[x]輸入到激勵函數(shù)模塊時,首先進(jìn)行預(yù)處理。截取二進(jìn)制輸入[x]的最高位判斷[x>0]或者[x<0。]最高位為1,表示[x<0,]最高位為0,則表示[x>0。]當(dāng)判斷出[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ù)模塊進(jìn)行功能仿真和誤差分析。從-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)練的進(jì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)練完成時得到一個誤差值,當(dāng)誤差在可以容忍的范圍內(nèi)可以認(rèn)為網(wǎng)絡(luò)已經(jīng)訓(xùn)練完成。認(rèn)為在給定的可容忍誤差值的情況下,如果連續(xù)兩次整個樣本集輸入得到的誤差絕對值都要比給定的可容忍誤差值要小,則該神經(jīng)網(wǎng)絡(luò)訓(xùn)練已經(jīng)達(dá)到最優(yōu)。根據(jù)這個思想,提出利用有限狀態(tài)機(jī)實現(xiàn)自適應(yīng)網(wǎng)絡(luò)訓(xùn)練。

        如圖4所示,有限狀態(tài)機(jī)的狀態(tài)數(shù)是樣本集中樣本數(shù)的兩倍,狀態(tài)機(jī)初始為零狀態(tài)。當(dāng)某一次訓(xùn)練得到的誤差絕對值小于可容忍誤差值時,狀態(tài)機(jī)進(jìn)入第一個狀態(tài)。若緊鄰的下一次訓(xùn)練得到的誤差絕對值也小于可容忍誤差值,狀態(tài)機(jī)進(jìn)入下一個狀態(tài),否則狀態(tài)機(jī)狀態(tài)回到第0個狀態(tài)。當(dāng)狀態(tài)機(jī)跳轉(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個樣本組成樣本集,隨機(jī)選取其中25個作為訓(xùn)練樣本,剩下8個作為測試樣本。神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值的選取具有一定的隨機(jī)性,根據(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)的。當(dā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ù)的誤差大體相當(dāng)且均很小。計算測試樣本的平均相對誤差為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中可以看到,當(dāng)學(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ò)的性能。因此,該表也進(jìn)一步證明了該設(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ò)。

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

        參考文獻(xiàn)

        [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创| 少妇高潮尖叫黑人激情在线| 香蕉蜜桃av一区二区三区| 男女搞黄在线观看视频| av东京热一区二区三区| 宅男久久精品国产亚洲av麻豆| 无码啪啪熟妇人妻区| 国产永久免费高清在线观看视频| 日韩精品视频在线观看免费| 国产成人自产拍免费视频| 尤物蜜芽福利国产污在线观看| 国产一区二区三区经典| 亚洲精品国产综合久久| 国产三区二区一区久久| 成人大片免费视频播放一级| 亚洲毛片在线观看免费| 国产爆乳无码一区二区麻豆| 久人人爽人人爽人人片av| 性按摩xxxx在线观看| 丰满少妇呻吟高潮经历| 国产va免费精品高清在线观看| 人人妻人人澡人人爽欧美一区九九 | 亚洲中文字幕无码久久| 国产69精品久久久久9999| 躁躁躁日日躁| 国产A√无码专区| 国产视频最新| 美女黄网站永久免费观看网站| 亚洲国产av午夜福利精品一区| 热综合一本伊人久久精品| 国产在线观看一区二区三区av| 亚洲丝袜美腿精品视频| 日本亚洲中文字幕一区| 亚洲色图三级在线观看| 日韩a级精品一区二区| 精人妻无码一区二区三区| 18禁裸男晨勃露j毛网站| 三年片免费观看大全国语| 中文字幕人妻中文av不卡专区| 大香视频伊人精品75| 亚洲综合色区无码专区|