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

基于FPGA的手寫數字BP神經網絡研究與設計

2020-09-04 03:16:20李增剛王正彥孫敬成
計算機工程與應用 2020年17期

李增剛,王正彥,孫敬成

青島大學 電子信息學院,山東 青島 266071

1 引言

人工神經網絡在信息處理、人工智能、圖像識別等領域廣泛應用,它是由大量神經元組成的具有復雜運算和監督學習特性的系統。經過70多年專家和學者的努力,神經網絡的結構、算法不斷優化和完善[1]。手寫數字識別是神經網絡重要領域之一,軟件實現神經網絡用數據串行傳送方式,而神經網絡并行傳送數據的特點,正好利用了FPAG數據并行計算和信息實時處理的優點,滿足了工業控制領域對數據實時處理的要求[2]。隨著FPGA技術的發展,集成和內部邏輯單元增多,例如Altera公司生產的FPGA 產品門電路數量有百萬門,集成了PowerPC、Gbits高速乘法單元硬核處理器和MicroBlaze、Picoblaze、Nios 軟核處理器,增強了 FPGA 芯片的處理能力[3]。文獻[3]研究了用平滑插值法在FPGA 上實現BP神經網絡的S型激活函數,并用深度流水線技術實現網絡串并聯。文獻[4]介紹了在FPGA 上對tan-s函數的高精度實現,并用可重構性充分利用FPGA 邏輯資源,對結果進行仿真。文獻[5]介紹了FPGA通過串口與PC機通信,實現圖像卷積處理,利用并行性提升速度,同時減少帶寬和資源的占用。

2 BP神經網絡的原理

BP神經網絡算法由前向運算、誤差反向傳播、權重和偏置更新構成。網絡帶權輸入、激活值、判決輸出是前向運算結果;誤差、梯度、權重和偏置更新在神經網絡反向運算過程[6]。BP算法的流程如圖1所示。

圖1 BP算法的流程示意圖

網絡的前向運算:訓練樣本x根據BP 算法計算網絡隱藏層的a(2)、輸出層的a(3),輸出訓練樣本判決結果y;網絡的反向運算:先計算最后1 層誤差δ(3),計算梯度更新輸出層偏置b(3)、權重w(3),再算前1層誤差δ(2),計算梯度更新隱藏層偏置b(2)、權重w(2),把它們存入存儲器里作為下次訓練樣本的第2、3層網絡權重和偏置。

2.1 BP神經網絡的前向運算

手寫數字BP網絡有輸入層、1個隱藏層和輸出層共3層,輸入層有784個神經元,隱藏層有30個神經元,輸出層有10 個神經元[7],數字像素數據由輸入層傳入,經運算傳給隱藏層,最后由輸出層輸出判決數字0~9。神經網絡第2、3層初始權重和偏置服從均值為0,方差為1的高斯分布。

BP 神經網絡前向運算的第l層的帶權輸入與激活值、權重、偏置的關系式以第2層網絡為例的展開式如下。

輸入層784 個神經元上的像素數據乘以各自的權重,累乘和傳給隱藏層30個神經元,加上對應的偏置得到第2層神經元的30個帶權輸入,作為S型激活函數自變量算出第2層激活值是第3層網絡輸入數據,計算方法與第2 層網絡相同得到第3 層激活值,網絡最后判決10 個中的最大值,輸出判別數字[8],例如是第3層網絡最大激活值,算法對樣本的識別就是數字6。

2.2 神經網絡的反向運算

神經網絡反向運算是更新權重和偏置,并用MNIST集里測試樣本驗證網絡識別準確率[9]。二次代價函數是找到合適權重和偏置的方法,多次迭代使第3層網絡激活值接近期望值Y,最小化二次代價函數C(w,b)→0 表示BP網絡訓練出合適權重和偏置[10]。為提高網絡訓練速率,隨機選取m個小批量訓練樣本更新網絡權重和偏置,網絡1 次迭代中60 000個訓練樣本使網絡權重和偏置更新60 000/m次。權重和偏置更新公式如下:

計算網絡誤差是為計算梯度,更新網絡權重和偏置。第3層權重更新公式及展開式(6),第3層偏置更新公式及展開式(7),η網絡學習速率η=3,網絡小批量訓練樣本數m=10 。第2 層權重梯度計算及展開式與第3 層相比只有不同,Xk是訓練樣本784個像素數據。

3 BP神經網絡手寫數字研究

根據python代碼中network庫架構和BP算法原理,用Verilog 語言設計網絡,訓練樣本和網絡權值轉化為S7.12 標準的定點數,其中S 表示符號位,7 表示整數位數,12表示小數位數[11]。另一方面考慮S型激活函數及導數的線性擬合,數據串并行轉化,合理利用邏輯資源[12]。初始權重和偏置放在與.mif關聯的讀寫RAM中。

3.1 神經網絡樣本數據和樣本標簽的寫入

BP網絡MNIST庫60 000個28×28的訓練樣本,圖2是10個手寫數字樣本,像素灰度值范圍0~255[13]。源文件1 個地址數據的高8 位和低8 位各一個樣本像素,每個樣本有自己標簽,用Verilog 語言中的具有讀寫功能的$fopen 函數讀取存放在文本文件中的樣本像素和標簽,在網絡識別與訓練時讀取并寫入樣本存儲器。

圖2 MNIST庫10個手寫數字樣本

3.2 S激活函數σ(z)

BP 神經網絡激活函數是Sigmoid 函數(S 型函數),表達式函數曲線如圖3(a)。Verilog代碼設計采用線性分割擬合S 函數曲線,分段擬合如圖3(b)。表1 是S 型分段函數的浮點數表達式,網絡帶權輸入Z和分段函數系數浮點數轉定點數標準分別是S7.12與S0.12[14]。

圖3 (a) S型激活函數曲線

圖3 (b) S型激活函數分段曲線

表1 S型分段函數的浮點數表達式

S激活函數線性擬合的定點數Verilog代碼如下:

3.3 S激活函數導數σ'(z)

S函數導數是,函數曲線如圖4(a)。Verilog語言設計σ'(z)函數分段線性擬合曲線如圖4(b)。表2是S函數導數σ'(z)的定點數分段表達式,系數定點數標準是S7.12。

圖4 (a) S型激活函數導數

圖4 (b) S型激活函數導數分段曲線

表2 S型導數分段函數的定點數表達式

3.4 BP網絡數據流程

兩個訓練樣本為例的各層網絡信號流程如圖5,包括BP 網絡前向判決輸出和反向計算網絡誤差,1 次權重、偏置的更新[15],設計用的是10個訓練樣本。RAM_x1、RAM_x2是兩個訓練數據存儲器,樣本像素x前向運算傳入第 2 層網絡,z_2_1、z_2_2 是第 2 層網絡 2 樣本的帶權輸入,經過S 型函數算出第2 層網絡2 樣本的激活值a_2_1、a_2_2,根據反向誤差公式第 2 層z_2_1、z_2_2 的導數與第 3 層網絡的誤差e_3_1、e_3_2和權重計算第2層網絡神經元誤差e_2_1、e_2_2,根據式更新偏置并存入偏置存儲器RAM_b2,再根據梯度公式,它與樣本像素x計算第2 層網絡權重梯度g_2_1、g_2_2,根據式更新權重并存入權重存儲器RAM_W2,輸出層的信號流程原理和第2 層網絡相同。z_3_1、z_3_2是第3層網絡帶權輸入,e_3_1、e_3_2是2個樣本第3層網絡誤差,Y1、Y2 是樣本標簽,g_3_1、g_3_2 是2 樣本第3 層網絡權重梯度,RAM_b3 是第3 層網絡的偏置存儲器,RAM_W3是第3層的權重存儲器。根據第2章BP算法公式與BP網絡信號的流程圖設計工程。

3.5 時序設計

在FPGA 平臺上設計手寫數字識別系統,除了BP網絡算法的數學邏輯,還有3 層神經網絡前向、反向運算和網絡神經元權值更新的時序設計。本文采用一個計數器控制3 層網絡的數據存儲器RAM 和神經元誤差、網絡權值梯度狀態[16]。

100 MHz時鐘clk下計數器D計數范圍0~2 455。數值0~786是第2層BP網絡前向運算,787~819是第3層BP網絡前向運算,第2、3層網絡寄存器中帶權輸入導數用于誤差計算,820~851是反向第3層BP網絡計算誤差、梯度和更新權重,884~1 668 是反向運算第2 層BP 網絡誤差、梯度和權重。1 770~2 454是第2組BP網絡訓練的小批量數據,因為RAM關聯的.mif文件是第1組樣本[17]。

4 BP神經網絡手寫數字設計

BP 網絡系統的輸入端口是訓練樣本x1~x10、標簽Y1~Y10 和時鐘clk及復位rst_n,輸出端口是out1~out10樣本判決。圖6是根據第2章BP網絡算法原理,1個樣本判別和權值訓練的電路圖,圖中虛線框是反向運算訓練網絡的權重和偏置。W_RAM2_0~W_RAM2_29為第2層網絡784個地址的權重存儲器,W_RAM3_0~W_RAM3_9為第3層網絡30個地址的權重存儲器,X_RAM為訓練樣本存儲器,b2_RAM為第2 層30 個地址的偏置存儲器,b3_RAM為第3層10個的地址偏置存儲器。

圖5 以2個訓練樣本為例BP神經網絡的前向運算及權重、偏置更新信號流程

圖6 神經網絡前向運算及誤差反饋的電路圖(1個訓練樣本為例)

前向運算的Verilog語言程序(以第2層網絡第1個神經元帶權輸入為例):

存儲器在地址發生器下輸出樣本、權重及偏置,偏置存儲器b_RAM在時鐘clk下串行輸出,進行數據串轉并(每神經元一個偏置)。第2層神經元并行激活值a(l2)轉為串行與第3層神經元權重的累積和計算,最后判決第3 層并行激活值輸出數字[18]。圖7(a)和圖7(b)是神經網絡初始權重和偏置下訓練樣本5前向第2、3層網絡的QuartusII仿真。x[1]是訓練樣本,a3_0~a3_9是第3層神經元的激活值,z_out32是第3個神經元帶權輸入,b32是第3 個神經元的偏置,y_in1 是樣本標簽,out1 是系統判別結果。

圖7 (a) 激活值a2_0~a2_29的QuartusII仿真

圖7 (b) 識別結果的QuartusII仿真

BP神經網絡的偏置b2串轉并Verilog程序如下(以第2層的30個神經元偏置為例):

BP神經網絡的反向運算式(1)~(3)計算第3層神經元的加權平均誤差(神經元的偏置梯度),更新偏置串行存入b_RAM作為系統下次迭代初始偏置。式(4)和式(7)計算神經元權重的加權平均梯度和更新權重存入W3_RAM。式(5)計算第2 層神經元誤差。最后784 個時鐘clk周期樣本X灰度像素值乘以并行的δ(j2),計算第2層神經元權重的加權平均梯度,更新并存入W2_RAM。至此BP神經網絡完成了1次小批量數據的樣本判別和網絡權重、偏置的訓練[19]。

反向運算Verilog 語言程序(:誤差計算,梯度計算,權值更新):

5 調試結果與分析

本文解決了BP 神經網絡架構架構、MNIST 手寫數字庫、S 型激活函數及導數、各層網絡數據狀態的時序控制、數據串行與并行間轉換、存儲模塊的設計、硬件結構圖。研究手寫數字BP算法,并根據network庫python實現手寫數字的網絡架構[20]。為實現硬件系統,對算法進行相應向量轉換和數據處理,用MNIST 庫60 000 幅手寫數字的像素數據和對應標簽,在FPGA 上實現BP神經網絡的判決和訓練[21],在100 MHz 系統時鐘計算1次迭代耗時150 ms,30次迭代4.5 s,而python2.7軟件在計算機上迭代30次用時329 s,選取第30次迭代的最后1 000 個樣本與標簽,系統記錄判別正確的樣本個數為916 個,即準確率是91.6%,network 庫網絡架構中手寫數字識別率為95.3%。圖8(a)和圖8(b)是網絡中樣本和標簽在QuartusII 13.0 中第1 次迭代的仿真結果。圖中y_in1~y_in10 是神經網絡輸入的小批量數據標簽,out1~out10 是網絡系統的判決,n是系統第n次小批量樣本(60 000個樣本數據,一次讀10個,n最大為6 000),網絡迭代30 次更新權重和偏置。隨機取第1 次迭代n是 4 893 和 5 936 次中的 10 個訓練樣本,n為 4 893 有out3、out6、out8 與out9 和自己對應的標簽不同,n為5 936 有out4、out5 與out10 和自己對應的標簽y_in4、y_in5 與y_in10 不同,驗證網絡識別的準確率增加,第1次迭代識別率為69%(共30次迭代)。

圖8 (a) n=4 893樣本標簽和識別的QuartusII仿真結果

圖8 (b) n=5 936樣本標簽和識別的QuartusII仿真結果

6 結束語

通過仿真與測試分析,網絡系統識別MINST數據庫手寫數字,并能訓練網絡,更新權重和偏置。利用FPGA并行計算實現了硬件速度快的優勢,解決了軟件訓練速度慢、耗時長的問題。該系統可以應用于小型嵌入式數字實時識別,且利用BP 網絡反向訓練及更新權重和偏置,進一步擴展成網絡,為判別其他字符圖片奠定基礎。另一方面FPGA 實現了浮點轉定點和函數線性擬合,降低了數據在BP算法運算中的準確度,可以考慮進一步優化算法和精細劃分S函數及導數擬合區間,提高網絡判決精確度。

主站蜘蛛池模板: 欧美中文字幕一区| 欧美福利在线观看| 91亚洲国产视频| 国产原创第一页在线观看| 国产h视频在线观看视频| 无码AV日韩一二三区| 国产免费网址| 欧美激情二区三区| 制服无码网站| 国产十八禁在线观看免费| 九九九国产| 亚洲天堂网在线观看视频| 欧洲一区二区三区无码| 91香蕉国产亚洲一二三区| 欧美精品在线免费| 青草视频免费在线观看| 狠狠做深爱婷婷综合一区| 成AV人片一区二区三区久久| 免费无码又爽又黄又刺激网站| 免费国产一级 片内射老| 婷婷99视频精品全部在线观看| 亚洲成人免费看| 欧美亚洲综合免费精品高清在线观看 | 99久久精品国产麻豆婷婷| 成人永久免费A∨一级在线播放| 亚洲婷婷六月| 久久久噜噜噜| 99热免费在线| 国产精品亚洲五月天高清| 91 九色视频丝袜| 伊人久综合| 成人精品在线观看| P尤物久久99国产综合精品| 欧美国产综合色视频| 成人在线综合| 国产幂在线无码精品| 欧美一区国产| 日本三级精品| 亚洲美女高潮久久久久久久| 亚洲高清资源| 日韩AV无码一区| 人妻21p大胆| 国产爽爽视频| 国产成人精品高清不卡在线| a毛片免费观看| 青青草一区二区免费精品| 青青久在线视频免费观看| 99精品欧美一区| 不卡无码h在线观看| 成色7777精品在线| 欧美国产日本高清不卡| 亚洲日韩精品伊甸| 亚洲视频影院| 亚洲第一av网站| 91在线激情在线观看| 国产免费黄| 波多野结衣中文字幕一区二区| 中文字幕1区2区| 日韩A∨精品日韩精品无码| 亚洲天堂日韩在线| 国产91视频免费| 2019年国产精品自拍不卡| 热re99久久精品国99热| 无码又爽又刺激的高潮视频| 天堂av综合网| A级毛片高清免费视频就| 91精品久久久无码中文字幕vr| 国产美女主播一级成人毛片| 久久中文电影| 伊在人亞洲香蕉精品區| 国产精品爽爽va在线无码观看 | 亚洲视频在线观看免费视频| 久久女人网| 一区二区日韩国产精久久| 亚洲人成人伊人成综合网无码| 国产一级毛片高清完整视频版| 亚洲v日韩v欧美在线观看| 亚洲成人在线播放 | 99精品免费欧美成人小视频| 亚洲无码视频一区二区三区| 久久精品人妻中文系列| 久久久精品无码一区二区三区|