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

?

基于FPGA的Gaussian傳輸函數(shù)實現(xiàn)

2019-03-30 03:49:19朱智云
數(shù)字技術與應用 2019年12期
關鍵詞:RBF神經(jīng)網(wǎng)絡

朱智云

摘要:Gaussian函數(shù)作為RBF神經(jīng)網(wǎng)絡常用的激活函數(shù),在FPGA上實現(xiàn)Gaussian函數(shù),有利于提高神經(jīng)網(wǎng)絡的運算速度。本文簡要介紹了Gaussian函數(shù)模型,并基于FPGA平臺,分析了幾種實現(xiàn)復雜函數(shù)的方案,最終采用分段擬合的方法對Gaussian函數(shù)進行逼近。首先用MATLAB對Gaussian函數(shù)進行初步的擬合,在FPGA平臺用Verilog HDL語言實現(xiàn)Gaussian函數(shù)。仿真結(jié)果表明,誤差可以控制在較小的數(shù)量級,滿足神經(jīng)網(wǎng)絡運算的精度。

關鍵詞:FPGA;RBF神經(jīng)網(wǎng)絡;Gaussian函數(shù);分段擬合

中圖分類號:TP315 文獻標識碼:A 文章編號:1007-9416(2019)12-0124-03

0 引言

神經(jīng)網(wǎng)絡是機器學習領域一個重要模型,隨著集成電路的發(fā)展,計算機處理能力不斷提高,加上深度學習等概念的提出,神經(jīng)網(wǎng)絡再次成為人工智能研究和發(fā)展的熱點[1]。但是現(xiàn)階段神經(jīng)網(wǎng)絡的實現(xiàn)還是多以軟件形式為主,無法滿足實時性的要求。FPGA又稱現(xiàn)場可編程門陣列,它能通過硬件編程實現(xiàn)并行計算。用FPGA來實現(xiàn)神經(jīng)網(wǎng)絡,能夠提高運算速度和靈活性[2]。

Gaussian函數(shù)是RBF神經(jīng)網(wǎng)絡算法中常用的激勵函數(shù),是神經(jīng)網(wǎng)絡實現(xiàn)復雜非線性計算的關鍵[3]。本文首先對Gaussian函數(shù)進行簡單介紹,提出基于FPGA平臺的若干種實現(xiàn)方案,經(jīng)過分析各種方案優(yōu)缺點,最終選擇分段擬合逼近的方式對Gaussian函數(shù)進行仿真實現(xiàn),并對其誤差進行分析。

1 Gaussian函數(shù)簡介

RBF神經(jīng)網(wǎng)絡是比較典型的單隱層神經(jīng)網(wǎng)絡,其由三層網(wǎng)絡構(gòu)成,分別是輸入層、隱含層以及輸出層,其結(jié)構(gòu)如圖1所示[4]。

徑向基函數(shù)有多種形式,如:二次型、逆二次型或Gaussian型等。若采用高斯函數(shù)作為徑向基函數(shù),則神經(jīng)元的輸出為:

(1)

上式中,m是隱含層節(jié)點數(shù);||·||是歐幾里得范數(shù);Ci和σ分別為與每個隱含層節(jié)點相關的參數(shù)向量的中心和寬度;ωi是第i個基函數(shù)與輸出節(jié)點的連接權(quán)值[4]。

Gaussian函數(shù)是一個非線性函數(shù),其函數(shù)表達式如式(1)中所示,其函數(shù)圖像如圖2所示。可以看出,Gaussian函數(shù)的值域為(0,1],輸入值為0時函數(shù)值為1。

2 方案選擇

Gaussian函數(shù)是非線性函數(shù),因此不能直接在硬件上進行設計實現(xiàn)。常用的設計方式有泰勒展開逼近法、多項式擬合法、查表法、坐標旋轉(zhuǎn)數(shù)字計算(CORDIC)算法以及分段擬合方法等。

泰勒展開逼近與多項式擬合能夠?qū)崿F(xiàn)較高的精度,但主要不足在于所需的計算量過大,利用MATLAB工具進行仿真可以發(fā)現(xiàn),要實現(xiàn)高精度的擬合至少需要六階以上的多項式,并且需要較長的計算時間。泰勒展開要想實現(xiàn)高精度不僅需要較多的階數(shù),還需保證后續(xù)的矩陣乘算??紤]到硬件設計方面,過多的乘法器使用不僅會增加電路面積,也會增加電路功耗,因此這兩種方式不適合高精度應用場景。

CORDIC算法的優(yōu)勢主要在于不需要乘法器等復雜運算單元,但帶來的問題是擬合時間長,并且精度不高,因此使用場景也不多。查表法最為直接快捷,但要想實現(xiàn)高精度會消耗巨大的存儲資源。

分段擬合則是將Gaussian函數(shù)劃分為若干段,而后利用多項式對每一段進行擬合的方式。由于分段的存在,其各段擬合階數(shù)相比于直接多項式擬合少了許多,并且保證了精度的要求。

參考上面幾種方式,考慮到精度與資源消耗的折衷,本次設計采用分段函數(shù)擬合進行設計。此外,結(jié)合Gaussian函數(shù)圖像特點,首先圖像基于x軸對稱,只需要計算[0,+∞)區(qū)間的函數(shù)值。另外在輸入大于某個值(大約3.18)后,函數(shù)值趨近于0,誤差僅在0.001以下數(shù)量級。因此只需要擬合輸入數(shù)據(jù)在[0,3.18]區(qū)間內(nèi)的函數(shù)值。

3 函數(shù)設計

3.1 MATLAB擬合

用MATLAB的內(nèi)置函數(shù)polyfit并設置最高階為二次,可以依次得到每一階的系數(shù)[2]。整個函數(shù)分為10個區(qū)間進行擬合,具體如表1所示。

利用MATLAB工具箱對擬合性能進行分析,取輸入范圍為[0,3.18],取點間隔為0.01,其誤差值如圖3所示。

從結(jié)果可以看出,函數(shù)的最大誤差在0.001以下,說明Gaussian函數(shù)的分段擬合性能良好,能實現(xiàn)良好的逼近效果。

3.2 FPGA實現(xiàn)

一般而言,神經(jīng)網(wǎng)絡計算會涉及大量浮點數(shù)計算。在FPGA中為了表示浮點數(shù),如果采用IEEE32位浮點標準表示,雖然可以提高精度,不過會消耗大量浮點乘法器等資源[1]。因此,為了保證模型的計算精度,本次設計決定采用32位定點數(shù)進行設計。

從表1可以看出,擬合函數(shù)具有多個區(qū)間且最多采用二階多項式,則對應的基本框架可如圖4所示。

考慮到資源的消耗,因此本次設計不采取流水線的設計方式,同時為了保證一定的計算速度,在設計中引入并行計算。根據(jù)圖4可以看出,一個二階多項式的計算大體可以分為四個過程:首先,根據(jù)輸入數(shù)據(jù)x查找對應的二階多項式系數(shù)a,b,c;然后,第二階段采用兩個乘法器并行計算x2與bx;之后,利用一個乘法器與加法器同時計算x2與bx+c;最后,利用加法器計算輸出y。因為本次設計中不采用流水線設計思路,因此其中的加法器、乘法器模塊能夠進行復用以降低資源消耗。

4 仿真實現(xiàn)與誤差分析

本次設計基于FPGA平臺實現(xiàn)Gaussian函數(shù),為了獲得更全面的性能分析,本次隨機選取了20個數(shù)據(jù)點進行仿真,并將結(jié)果與MATLAB理論值進行比較,表2為對比結(jié)果,圖5為仿真結(jié)果。

從結(jié)果可以看出,誤差絕對值控制在0.001以下,可以滿足計算精度要求。

5 結(jié)語

本次簡單介紹了RBF神經(jīng)網(wǎng)絡計算中常用的Gaussian激活函數(shù),采用分段擬合逼近的方法在FPGA平臺實現(xiàn),對計算的結(jié)果進行與理論值進行對比,基本實現(xiàn)了設計的目標。

參考文獻

[1] 張玉璽,劉寒穎,張耀天.基于FPGA的sigmoid函數(shù)實現(xiàn)[C]//第十屆全國信號和智能信息處理與應用學術會議.2016.

[2] 李建龍.基于FPGA的GO硅橋濕度傳感器溫度補償系統(tǒng)設計與實現(xiàn)[D].西南交通大學,2014.

[3] 劉培龍.基于FPGA的神經(jīng)網(wǎng)絡硬件實現(xiàn)的研究與設計[D].電子科技大學,2012.

[4] 王興.基于FPGA的RBF神經(jīng)網(wǎng)絡的硬件實現(xiàn)[J].電子設計工程,2012,20(16):164-166.

FPGA-based Implementation of? Gaussian Transfer Function

ZHU Zhi-yun

(School of? Physics and Information Engineering,F(xiàn)uzhou University,F(xiàn)uzhou? Fujian? 350116)

Abstract:As a commonly used activation function of RBF neural network, Gaussian function realizes Gaussian function on FPGA, which is beneficial to improve the operation speed of neural network. This paper briefly introduces the Gaussian function model, and based on the FPGA platform, analyzes several schemes for implementing complex functions. Finally, the Gaussian function is approximated by the piecewise fitting method. Firstly, the Gaussian function is firstly fitted with MATLAB, and the Gaussian function is implemented in the FPGA platform with Verilog HDL language. The simulation results show that the error can be controlled to a small order of magnitude, which satisfies the accuracy of neural network operations.

Key words:FPGA; RBF neural network;Gaussian function;piecewise fitting

猜你喜歡
RBF神經(jīng)網(wǎng)絡
無線Mesh網(wǎng)絡發(fā)展
無線Mesh網(wǎng)絡安全性研究
無線Mesh網(wǎng)絡基礎知識
基于RBF神經(jīng)網(wǎng)絡的PID自校正控制研究
基于RBF神經(jīng)網(wǎng)絡的一回路核動力裝置典型故障診斷
科技視界(2016年18期)2016-11-03 23:59:24
RBF神經(jīng)網(wǎng)絡在創(chuàng)業(yè)板新股定價問題上的研究
鲁甸县| 临澧县| 六盘水市| 高平市| 利川市| 金溪县| 上饶县| 苏州市| 华宁县| 黄山市| 甘泉县| 吴江市| 莒南县| 托克托县| 兖州市| 宽甸| 博湖县| 涟源市| 丹江口市| 常宁市| 大渡口区| 潞西市| 荔波县| 威远县| 马山县| 蚌埠市| 久治县| 定陶县| 新宾| 义马市| 浪卡子县| 丹阳市| 荥经县| 临漳县| 桑植县| 乌兰察布市| 白玉县| 若尔盖县| 城口县| 独山县| 阳朔县|