国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)Softmax層實(shí)現(xiàn)

2017-10-18 03:44李理應(yīng)三叢
現(xiàn)代計(jì)算機(jī) 2017年26期
關(guān)鍵詞:分段卷積精度

李理,應(yīng)三叢

(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610041)

基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)Softmax層實(shí)現(xiàn)

李理,應(yīng)三叢

(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610041)

FPGA能夠充分發(fā)揮卷積神經(jīng)網(wǎng)絡(luò)的并行特性,并在小尺寸、低功耗的條件下,實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的運(yùn)算,是人工智能研究和發(fā)展的新方向。其中,Softmax層函數(shù)是神經(jīng)網(wǎng)絡(luò)的輸出層函數(shù),主要用于神經(jīng)網(wǎng)絡(luò)的最后一層。首先簡(jiǎn)要介紹Softmax層函數(shù),分析幾種實(shí)現(xiàn)函數(shù)的方案,然后采用分段擬合的方法在MATLAB上對(duì)Softmax層函數(shù)進(jìn)行逼近,對(duì)數(shù)據(jù)進(jìn)行量化和分析,在FPGA平臺(tái)用硬件描述語(yǔ)言實(shí)現(xiàn)Softmax層函數(shù),并通過(guò)Vivado進(jìn)行仿真,結(jié)果表明誤差可以控制在較小數(shù)量級(jí)。

神經(jīng)網(wǎng)絡(luò);FPGA;Softmax;分段擬合

0 引言

神經(jīng)網(wǎng)絡(luò)作為機(jī)器學(xué)習(xí)的一個(gè)重要領(lǐng)域,隨著集成電路的發(fā)展,計(jì)算機(jī)處理能力不斷提高,神經(jīng)網(wǎng)絡(luò)依然是當(dāng)今人工智能研究和發(fā)展的熱點(diǎn)。目前,為了高效地實(shí)現(xiàn)對(duì)卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算,多塊GPU組成的并行運(yùn)算平臺(tái)被廣泛運(yùn)用。然而,由于存在GPU平臺(tái)體積大、功耗大的特點(diǎn),小尺寸、低功耗的平臺(tái)上難以廣泛應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)。

FPGA又稱現(xiàn)場(chǎng)可編程門陣列,它的特點(diǎn)是能通過(guò)硬件編程來(lái)實(shí)現(xiàn)并行計(jì)算。因此,用FPGA來(lái)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò),不僅能大大加快計(jì)算速度,降低功耗,同時(shí)有助于將神經(jīng)網(wǎng)絡(luò)發(fā)展到嵌入式領(lǐng)域。

1 Softmax層簡(jiǎn)介

Softmax函數(shù)是神經(jīng)網(wǎng)絡(luò)中的一種輸出層函數(shù),計(jì)算輸出層的值,主要用于神經(jīng)網(wǎng)絡(luò)最后一層。Softmax定義:

假設(shè)有一個(gè)數(shù)組V,Vi表示V中的第i個(gè)元素,∑jej表示從第一個(gè)元素值開始的求和,那么這個(gè)元素的Softmax值就是:

也就是說(shuō),是該元素的自然指數(shù)值,與所有元素自然指數(shù)值和的比值。由于分母是一個(gè)求和,只需要對(duì)每一個(gè)ei進(jìn)行分析討論。下面主要對(duì)分子ei進(jìn)行擬合分析。

本文首先對(duì)神經(jīng)網(wǎng)絡(luò)中Softmax層定義進(jìn)行簡(jiǎn)要介紹,接著提出基于FPGA平臺(tái)計(jì)算的幾種方案,并分析各個(gè)方案的優(yōu)缺點(diǎn),最后采用分段擬合逼近的方法對(duì)Softmax進(jìn)行仿真實(shí)現(xiàn),并對(duì)誤差進(jìn)行分析。

2 方案選擇

FPGA實(shí)現(xiàn)復(fù)雜函數(shù)計(jì)算,目前主要的逼近方法有泰勒展開法、查表法、多項(xiàng)式擬合法、CORDIC算法、分段擬合方法等。

泰勒級(jí)數(shù)展開的方法需要階數(shù)過(guò)多,運(yùn)算量較大,會(huì)消耗FPGA大量乘法器,另外,后面矩陣乘法運(yùn)算也需要大量乘法器,因此不適合在此處消耗大量乘法器。

查表法是比較直接簡(jiǎn)單的方法,是將不同自變量對(duì)應(yīng)的函數(shù)值事先存入ROM中供查找。優(yōu)點(diǎn)是適用于任何復(fù)雜函數(shù),理論上可以做到無(wú)限逼近。另外,這種方法不消耗乘法器,能在一個(gè)時(shí)鐘內(nèi)出結(jié)果。缺點(diǎn)是一旦精度要求高,查找表的尺寸就會(huì)增大,消耗存儲(chǔ)資源。

多項(xiàng)式擬合非線性函數(shù)的時(shí)候同樣存在需要階數(shù)過(guò)高,消耗資源較大的問題,而且計(jì)算時(shí)間長(zhǎng)。

CORDIC算法即坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算方法,消耗資源較少,但耗時(shí)長(zhǎng),同時(shí)存在精度不高的問題。

本文采用的是分段函數(shù)擬合逼近的方法實(shí)現(xiàn)Soft?max函數(shù),即在一個(gè)范圍內(nèi)將Softmax函數(shù)劃分為幾段,每一段用次數(shù)較低的多項(xiàng)式進(jìn)行擬合的方法。這種方法有著占用資源少,速度較快,精度較高的特點(diǎn),相對(duì)可行。

3 MATLAB擬合及數(shù)據(jù)分析

用MATLAB內(nèi)置函數(shù)polyfit進(jìn)行擬合,考慮到計(jì)算精度以及計(jì)算時(shí)間,本文主要對(duì)函數(shù)ei在(-8,8)區(qū)間上分成9個(gè)區(qū)間段,并設(shè)置最高階數(shù)為三次,可以依次得到每一階的系數(shù)。具體各個(gè)區(qū)間分段及其擬合函數(shù)如表1所示。

用MATLAB中的plot等繪圖工具,對(duì)函數(shù)ei,擬合函數(shù),以及兩函數(shù)差的絕對(duì)值,三條曲線進(jìn)行繪制,得到如圖1,圖2。

圖1為擬合曲線圖,可以看出兩函數(shù)差的絕對(duì)值對(duì)應(yīng)的誤差曲線基本與x軸重合,直觀上精度相對(duì)較高,由于圖1看不出有三條曲線,圖2為擬合曲線和指數(shù)曲線部分區(qū)域放大的截圖。下面輸入數(shù)據(jù)進(jìn)行分析。

在區(qū)間(-8,8)隨機(jī)取10個(gè)數(shù)據(jù),取點(diǎn)精度為0.01,得到的擬合值及誤差絕對(duì)值如表2:

從表可以看出,誤差絕對(duì)值基本在0.02以下,最大的數(shù)值達(dá)到0.2,輸入值越大,絕對(duì)誤差會(huì)相對(duì)大一些,相對(duì)誤差還是較小的,是由于函數(shù)ei圖像,隨著x值的增大,變化越劇烈造成的。另外,本文考慮到計(jì)算的速度時(shí)效,采用的擬合最高階次為3次,如果階次更高,相對(duì)精度也會(huì)更高。因此,擬合結(jié)果的誤差精度是可以接受的。

4 FPGA實(shí)現(xiàn)及誤差分析

本文使用xc7a35tcpg236-1 FPGA平臺(tái)去實(shí)現(xiàn)ei。

這里使用軟件Vivado中的IP核框圖調(diào)用例化去編程ei的擬合函數(shù)y=ax3+bx2+cx+d。首先,建立模塊,添加IP Catalog中的 Multiplier和 Adder/Substract?er,即乘法器和加法器,進(jìn)行設(shè)置、連線,并添加輸入輸出。然后,Create HDL Wrapper,添加頂層文件,修改代碼進(jìn)行例化即可完成。

同樣的,隨機(jī)的輸入8個(gè)x的值。圖3為其中一個(gè)輸入x=7.4的仿真結(jié)果圖。由于硬件語(yǔ)言限制,不顯示小數(shù)點(diǎn),仿真圖中第二欄Value的值表示為16位的十六進(jìn)制,小數(shù)點(diǎn)在正中間。

FPGA平臺(tái)上計(jì)算的擬合函數(shù)值及誤差表見表2。從表2可以看出,絕對(duì)誤差基本在0.05以內(nèi),只有一個(gè)誤差超出,但是相對(duì)誤差精度較高,因此誤差是可以接受的。

5 結(jié)語(yǔ)

本文簡(jiǎn)要介紹了神經(jīng)網(wǎng)絡(luò)系統(tǒng)的Softmax層函數(shù),運(yùn)用MATLAB采用分段擬合逼近的方法,并在FPGA平臺(tái)上去實(shí)現(xiàn),對(duì)結(jié)果進(jìn)行了誤差分析。通過(guò)數(shù)據(jù)分析,誤差基本保持在0.05以下,表明該算法可運(yùn)用在神經(jīng)網(wǎng)絡(luò)系統(tǒng)的應(yīng)用方面,是今后很好的研究方向。

表1 MATLAB分段擬合函數(shù)表

圖1 MATLAB擬合曲線圖

圖2 放大截圖

圖3 仿真結(jié)果圖

表2 MATLAB擬合函數(shù)值及誤差表

表3 FPGA上計(jì)算的擬合函數(shù)值及誤差表

[1]張玉璽,劉寒穎,張耀天.基于FPGA的Sigmoid函數(shù)實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2016,52(S1):501-505.

[2]王羽.基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用研究[D].廣州:華南理工大學(xué),2015.

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

[4]陳先昌.基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法與應(yīng)用研究[D].杭州:浙江工商大學(xué),2013.

[5]Alin TISAN,Stefan ONIGA,Daniel MIC,Attila BUCHMAN.Digital Implementation of the Sigmoid Function for FPGA Circuits[J].Electronics and Telecommunications:Volume 50,Number 2,2009:15-19.

[6]王羽.基于FPGA的神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)[D].青島:中國(guó)海洋大學(xué),2008.

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

Abstract:The FPGA can give full play to the convolution of the neural network parallel features,and under the condition of small size,low power con?sumption,realize convolutional neural network arithmetic,is the new direction of artificial intelligence research and development.The Soft?max layer function is the output layer function of the neural network,which is used primarily for the last layer of the neural network.Briefly introduces the Softmax layer function principle,analyzes the several functions for realizing scheme,then uses piecewise fitting method in the MATLAB function to approximate the Softmax layer,to quantify the data and analysis,the FPGA platform,uses hardware description language to realize the Softmax layer function and through Vivado simulation,the results show that error can be controlled in smaller orders of magnitude.

Keywords:Neutral Network;FPGA;Softmax;Piecewise Fitting

Softmax Layer Implementation of Neural Network Based on FPGA

LI Li,YING San-cong

(College of Computer Science,Sichuan University,Chengdu 610041)

1007-1423(2017)26-0021-04

10.3969/j.issn.1007-1423.2017.26.005

李理(1990-),男,安徽黃山人,在讀碩士研究生,研究方向?yàn)榧捎?jì)算技術(shù)實(shí)驗(yàn)

2017-06-27

2017-09-10

猜你喜歡
分段卷積精度
基于不同快速星歷的GAMIT解算精度分析
熱連軋機(jī)組粗軋機(jī)精度控制
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
卷積神經(jīng)網(wǎng)絡(luò)的分析與設(shè)計(jì)
從濾波器理解卷積
分段計(jì)算時(shí)間
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
尋求分段函數(shù)問題的類型及解法
3米2分段大力士“大”在哪兒?
以工匠精神凸顯“中國(guó)精度”