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

機器學習FPGA硬件實驗設計

2019-01-09 02:55:48湯知日
實驗技術與管理 2018年12期
關鍵詞:優化實驗設計

湯知日, 常 勝

(武漢大學 物理科學與技術學院微電子系, 物理國家級實驗教學示范中心, 湖北 武漢 430072)

神經網絡是機器學習的重要內容[1],也是科學研究的熱點。出于科研和實際工程應用的需要和硬件計算方式與神經網絡并行化本質的契合[2],在硬件電路平臺實現神經網絡已逐漸成為技術發展趨勢之一。FPGA具有的可重用性和操作方便簡單等優勢,因而成為一種進行硬件實驗實現神經網絡的理想方式[3]。

目前還鮮有將“神經網絡硬件化”作為實驗教學內容。本文提出的實驗,首先對神經網絡的基本結構在算法級進行熟悉,再進一步在FPGA上實現圖像分類的并完成設計性能的優化。通過此實驗,既可培養學生對神經網絡的理解和對FPGA數字集成設計技術[4]的掌握,也有望提升學生分析和解決復雜問題的能力及團隊協作的精神。

1 神經網絡概念及算法設計

1.1 神經元模型和算法架構

神經網絡是通過對人腦的基本單元——神經元的建模和連接,探索模擬人腦神經系統的功能模型,并在此基礎上提出的具有學習、聯想、記憶和模式識別等智能信息處理功能的人工系統[5]。神經網絡的一個重要特性是它能從環境中學習,并把學習的結果分布存儲于網絡的突觸連接中。神經網絡的學習是一個過程,在其所處環境的激勵下,相繼給網絡輸入一些樣本模式,并按照一定的規則(學習算法)調整網絡各層的權值矩陣,待網絡各層權值都收斂到一定值[6],學習過程結束。之后,就可使用訓練完成的神經網絡來對真實數據進行分類。

作為實驗的第一部分,讓學生對神經網絡基本概念有所了解。神經元基本結構如圖1所示。

圖1 神經元基本結構建模

根據圖1可得:

其中b=-θ。PR為前端其他神經元的軸突輸出,即此神經元的輸入向量,WR為神經元連接的強度,其值可正可負。通過在誤差反向傳播的過程中修改這個強度值的大小,可模擬生物神經元中存在的興奮和抑制興奮兩種神經遞質。當輸入向量和權值乘積之和大于某一閾值時,該神經元啟動。f即為神經元之間的傳遞函數,也被稱為激發函數或觸發函數。

實驗中訓練和測試采用的數據集為3×3像素的二值字母圖像,一共分為3類,如圖2(a)所示。考慮到對網絡容錯率的分析,采用圖2(b)中的30個圖像對已完成訓練的網絡進行測試。

圖2 3×3像素二值字母圖像

1.2 神經網絡算法設計

采用Matlab作為算法設計平臺,使用其函數工具箱提供的newff函數來創建網絡。具體調用格式為:

net=newff(P,T, [S1 S2…S(N-1)]),…

…{TF1 TF2…TFNI}

其中P和T分別為輸入樣本和期望響應,Si為網絡各層的神經元數目,TFi為網絡各層的傳遞函數類型。

利用此函數創建一個經典的誤差反向傳播(BP)神經網絡,完成字母的圖像識別。網絡的建立和訓練過程如下:

clear

[alphabet,targets]=prprob;

[R,Q]=size(alphabet);

[S2,Q]=size(targets);

S1=10;

net=newff(minmax(alphabet),[S1 S2],...

...{′logsig′ ′logsig′},′traingdx′);

net.LW{2,1}=net.LW{2,1}*0.01;

net.b{2}=net.b{2}*0.01;

net.performFcn='sse';

net.trainParam.goal=0.1;

net.trainParam.epochs=5000;

net.trainParam.mc=0.95;

P=alphabet;

T=targets;

[net,tr]=train(net,P,T);

通過這一部分的學習,可使學生對神經網絡算法有更具體的認識,也實踐了神經網絡軟件設計的手段。

2 神經網絡FPGA硬件實現

2.1 硬件設計框架

利用硬件描述語言Verilog對軟件設計得到的神經網絡算法進行硬件化,實現相應的端口定義、內部寄存器定義、輸出計算結果和訓練過程。實驗中,訓練過程采用狀態機進行表述,使學生對主要的FPGA硬件設計手段更加熟悉[7]。其中主要的訓練過程Verilog代碼如下:

parameter N01=5'b00000,N02=5'b00001,…

always@(posedge clk)

begin

if(!rst)

state<=N01;

else

begin n0<=1;n1<=1;n2<=0;n3<=0;n4<=1;n5<=0;n6<=0;n7<=1;n8<=1;end

case(state)

N01:if(3

……

以3×3圖像為例,誤差計算公式如下:

Δij(n)=ei(n)Wj(n)

由于該網絡的規模較小,可預先將教師信號儲存于寄存器中,直接代入誤差公式計算。

網絡訓練中,權值更新計算如下:

其中A為設置的幅值,A偏大則不容易停留在理想值周邊,甚至有可能處于權值允許范圍的上下限之外,A偏小則權值更新速度較慢,所以需要結合實際情況進行修改。sgn函數標記修正量的正負,從而實現雙向的修正。在硬件設計中可以通過比較器的方式方便快捷地實現該sgn函數的計算。

2.2 傳遞函數的FPGA實現

傳遞函數在BP網絡中起著信息傳播的重要作用。本實驗選擇的算法為

fi=tanh(Ii)

上式傳遞函數為雙曲正切函數。考慮到在FPGA里實現這類反三角函數一直是算法硬件化的難點之一,對其進行分解:

通過計算sinh和cosh函數的值,進而利用除法器得到tanh函數的結果。

具體而言,實驗中選擇cordic算法使傳遞函數得到實現。cordic的實質是循環迭代[8],其核心是先固定一些基準角,再通過不斷地搖擺每一個基準角逼近目標角度值。在x-y直角坐標軸中將點(x1,y1)旋轉到(x2,y2,旋轉角為θ,其原理示意如圖3所示:

圖3 cordic算法坐標旋轉示意圖

使用Verilog語言編寫的cordic算法核心部分如下:

module cordic(dat,clk,done,rst_);

input[10:0] dat;

input clk,rst_;

output reg signed [33:0] done;

……

case(state)

A0:

begin

out_sinh<=0;

out_cosh<=0;

done<=0;

state<=A1;

end

A1:

begin

x1[26:0]<=27'h26A3AD2;

y1[26:0]<=27'h0;

z1[26:0]<=dat_in;

state<=A2;

end

A2:

begin

if(!z1[26])

begin

x2[26:0]<=x1[26:0]+{{1{y1[26]}},y1[26:1]};

y2[26:0]<=y1[26:0]+{{x1[26]},x1[26:1]};

z2[26:0]<=z1[26:0]-27'h1193EA8;

state<=A3;

end

else

begin

x2[26:0]<=x1[26:0]-{{1{y1[26]}},y1[26:1]};

y2[26:0]<=y1[26:0]-{{x1[26]},x1[26:1]};

z2[26:0]<=z1[26:0]+27'h1193EA8;

state<=A3;

end

end

……

3 結果測試和硬件優化

編寫testbench,對訓練和測試部分分別進行測試,并使用Modelsim進行波形仿真,使學生對硬件設計的驗證以及優化手段有很好的掌握[9]。在神經網絡的訓練過程中,得到的權值與誤差的仿真波形如圖4所示:

圖4 訓練過程權值誤差波形仿真圖

圖中表示誤差的e22隨著訓練逐漸減小,權值變化量d22也隨著誤差減小,最終減小為0,即宣告神經網絡訓練完成。

用前述30幅帶誤差的二值圖像作為測試數據集進行驗證,仿真波形如圖5所示:

此波形中,輸出數據最大的那一行即為正確分類。訓練結果表明:所有圖像均分類正確,硬件實現的網絡的識別效果非常好。

圖5 神經網絡測試波形仿真圖

在功能正確的基礎上,可進行硬件優化,提高電路的性能。例如刪除不必要的乘法、精簡電路結構;將復雜組合邏輯寫入獨立的時序邏輯中[10],提高電路頻率。以一個具體優化為例,對于最影響電路時序的路徑(dataout輸出路徑),其為各權值與輸入乘積的和,而乘法器占用資源與處理速度均較慢。考慮到其輸入均為一位,所以可在實驗中采用選擇器取代乘法器,從而降低資源消耗。此外,對電路做流水線處理,采用SPEED模式作為綜合策略[11],可對整體進行速度優化。在FPGA型號選擇為Cyclone II:EP2C35F672C6N的情況下,優化后的硬件性能達到總資源187,組合邏輯89,時鐘頻率208.86 MHz。

最終的板級驗證,使用DEII FPGA開發平臺上的七位數碼管展示測試得到的分類結果。圖6所示分類結果為第二類,即字母V。

圖6 分類功能板級驗證

4 結語

以神經網絡為代表的機器學習硬件設計,是人工智能的一個重要發展方向。通過機器學習FPGA硬件實驗,使學生既能對神經網絡算法有個基本的認識,也能對主流實現手段有深入的掌握,有助于學生理解硬件設計以及各種優化設計的方式[12]。

此基于FPGA平臺的機器學習硬件實驗具有很強的開放性和拓展性。在熟悉神經網絡結構和算法、神經網絡工具箱調用、FPGA設計及硬件優化等環節中均可為學生提供自主學習和拓展的空間。例如在算法熟悉階段,設計了一個學生講授自己通過查閱資料對機器學習理解的環節;在硬件優化階段,設計了一個由學生自行探索優化手段的環節。通過此類翻轉課堂教學手段的導入,培養了學生的獨立思考能力和創新精神,取得了良好的實驗教學效果。

猜你喜歡
優化實驗設計
記一次有趣的實驗
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
做個怪怪長實驗
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
NO與NO2相互轉化實驗的改進
主站蜘蛛池模板: 欧美日韩国产系列在线观看| 国产精品三区四区| 黄网站欧美内射| 噜噜噜综合亚洲| 免费国产高清视频| 一本大道视频精品人妻| 国产精品露脸视频| 国产主播一区二区三区| 香蕉视频在线观看www| 国产精品xxx| 毛片最新网址| 国产成人综合亚洲欧洲色就色| 又猛又黄又爽无遮挡的视频网站| 黄色不卡视频| 国产网站免费观看| 四虎永久免费地址| 全午夜免费一级毛片| 激情综合网激情综合| 日本五区在线不卡精品| 亚洲视频色图| 国产午夜精品一区二区三区软件| 亚洲国产天堂久久综合226114| 三上悠亚在线精品二区| 成人另类稀缺在线观看| 四虎成人免费毛片| 99re66精品视频在线观看| 亚洲欧美日韩视频一区| 欧美成人精品一区二区| 国产美女免费| 国产在线自揄拍揄视频网站| 日本日韩欧美| 国产精品视频白浆免费视频| 亚洲丝袜中文字幕| 亚洲欧洲自拍拍偷午夜色无码| 日韩 欧美 小说 综合网 另类| 国产玖玖玖精品视频| 嫩草国产在线| 日韩午夜伦| 日韩精品高清自在线| 国产噜噜在线视频观看| 在线观看视频99| 日韩人妻无码制服丝袜视频| 国产成人a在线观看视频| 国产一区二区三区免费观看| 91系列在线观看| 日韩专区欧美| 中文毛片无遮挡播放免费| 试看120秒男女啪啪免费| 最新日本中文字幕| 国产香蕉在线视频| 国产女人在线观看| 91小视频在线观看| 98精品全国免费观看视频| 久久综合伊人77777| av一区二区无码在线| 亚洲成人在线免费| 2024av在线无码中文最新| 国产精品视频a| 在线精品视频成人网| а∨天堂一区中文字幕| 国产精品区视频中文字幕| 色偷偷av男人的天堂不卡| 国产自产视频一区二区三区| 在线播放真实国产乱子伦| 国产精品乱偷免费视频| 91亚瑟视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲成人精品| 亚洲欧洲日本在线| 色偷偷男人的天堂亚洲av| 久久99久久无码毛片一区二区| 国产成人免费高清AⅤ| 99热这里只有成人精品国产| 亚洲高清无在码在线无弹窗| A级毛片无码久久精品免费| av免费在线观看美女叉开腿| 国产成人亚洲综合a∨婷婷| 免费观看精品视频999| 一本大道东京热无码av| 欧美天堂久久| 亚洲国产精品美女| 国产自在线拍|