《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > Sigmoid函數(shù)的分段非線性擬合法及其FPGA實現(xiàn)
Sigmoid函數(shù)的分段非線性擬合法及其FPGA實現(xiàn)
2017年電子技術(shù)應(yīng)用第8期
宋宇鯤,高曉航,張多利,杜高明
合肥工業(yè)大學(xué) 微電子設(shè)計研究所,安徽 合肥230009
摘要: 使用分段非線性逼近算法計算超越函數(shù),以神經(jīng)網(wǎng)絡(luò)中應(yīng)用最為廣泛的Sigmoid函數(shù)為例,結(jié)合函數(shù)自身對稱的性質(zhì)及其導(dǎo)數(shù)不均勻的特點提出合理的分段方法,給出分段方式同逼近多項式階數(shù)對逼近結(jié)果精度的影響。完成算法在FPGA上的硬件實現(xiàn),給出一種使用三階多項式處理Sigmoid函數(shù)的擬合結(jié)果及流水線架構(gòu),處理精度達(dá)到10-5數(shù)量級,最大頻率達(dá)到127.327 MHz,滿足了高速、高精度的處理要求。
中圖分類號: TN402
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.170569
中文引用格式: 宋宇鯤,高曉航,張多利,等. Sigmoid函數(shù)的分段非線性擬合法及其FPGA實現(xiàn)[J].電子技術(shù)應(yīng)用,2017,43(8):49-51.
英文引用格式: Song Yukun,Gao Xiaohang,Zhang Duoli,et al. The piecewise non-linear approximation of the sigmoid function and its implementation in FPGA[J].Application of Electronic Technique,2017,43(8):49-51.
The piecewise non-linear approximation of the sigmoid function and its implementation in FPGA
Song Yukun,Gao Xiaohang,Zhang Duoli,Du Gaoming
Institute of VLSI Design,Hefei University of Technology,Hefei 230009,China
Abstract: The piecewise non-linear approximation algorithm is a good way to deal with the calculation of some complex non-linear functions. Combining the piecewise non-linear approximation algorithm with the properties of the Sigmoid function and its derivative function,propose to find the relationship between the segmentation strategy,order of the approximation polynomial and the computation precision. Experiments with FPGA show the better performance on speed and computation precision compared with some other algorithms.
Key words : piecewise non-linear approximation algorithm;Sigmoid function;FPGA

0 引言

    在實時圖像處理、數(shù)字信號處理等領(lǐng)域內(nèi),經(jīng)常需要對非線性函數(shù)進(jìn)行高速計算[1]。而在人工神經(jīng)網(wǎng)絡(luò)中更是需要對大量的非線性函數(shù)進(jìn)行計算。因此,在人工神經(jīng)網(wǎng)絡(luò)的研究領(lǐng)域內(nèi),研究如何高速地處理非線性函數(shù)具有十分重要的意義。在人工神經(jīng)網(wǎng)絡(luò)中應(yīng)用最為廣泛的是Sigmoid函數(shù)。目前對于Sigmoid函數(shù)實現(xiàn)技術(shù)的研究主要分為軟件實現(xiàn)和硬件實現(xiàn)兩個方面。由于軟件相比硬件而言速度較慢并且并行程度很低,所以無法滿足其快速處理的要求[2]。因此,在超大規(guī)模集成電路快速發(fā)展的當(dāng)今時期,研究如何利用硬件快速處理Sigmoid函數(shù)顯然更加有意義。

    FPGA憑借其可重構(gòu)技術(shù)的靈活性,成為解決Sigmoid函數(shù)高速計算問題的有力工具。目前利用FPGA計算Sigmoid函數(shù)常用的方法有查找表法、CORDIC算法、Taylor級數(shù)展開法和分段線性逼近法。查找表法[3]提前將所有的計算結(jié)果保存在一個ROM中,這種方法計算方便且容易實現(xiàn),但是隨著函數(shù)計算精度的提高和擬合區(qū)間的增加,其所需求的存儲資源會顯著增加,資源消耗很高。CORDIC算法[4]通過多次迭代將一些復(fù)雜的運算轉(zhuǎn)換成為簡單的運算,但是隨著精度增高,其算法的迭代次數(shù)也會提高,計算速度會減慢。Taylor級數(shù)展開法[5]在精度要求較高的條件下會增加乘法器和加法器的使用,資源消耗巨大。分段線性逼近法[6-7]將查找表和低階多項式相結(jié)合,計算速度較快,是當(dāng)前解決此問題的主流方法,然而在有限的分段區(qū)間用低階的多項式進(jìn)行擬合運算,其計算結(jié)果在精度上并沒有優(yōu)勢,難以實現(xiàn)高精度的運算要求。

    為了解決上述問題,本文采用傳統(tǒng)的分段非線性逼近法來處理Sigmoid函數(shù)。文獻(xiàn)[8]中使用了分段非線性逼近法來處理神經(jīng)網(wǎng)絡(luò)中常見的雙曲正切函數(shù),然而文中并沒有給出分段方法的依據(jù),同時在各小段的分段區(qū)間所得到的精度也差異很大。因此,本文針對這一問題,以Sigmoid函數(shù)為研究對象,結(jié)合Sigmoid函數(shù)自身對稱及其導(dǎo)數(shù)不均勻的性質(zhì),利用數(shù)值分析中的最小二乘法作為逼近原理,給出合理的分段方式。同時給出對比均勻分段的處理方式下逼近精度的差異情況。利用硬件描述語言實現(xiàn)硬件結(jié)構(gòu)的設(shè)計,并在Xilinx Virtex-5系列的XC5VLX110T器件上完成實際驗證和性能測試,從資源使用、運算速度同計算精度等方面對設(shè)計結(jié)果進(jìn)行合理評估。

1 Sigmoid函數(shù)的分段非線性擬合方案及結(jié)果分析

    分段非線性逼近法的基本原理是用高階多項式來逼近曲線。首先將待逼近函數(shù)按照一定的方式進(jìn)行分段,之后對每一個小段構(gòu)建高階多項式近似地代替原曲線,從而將復(fù)雜的非線性函數(shù)的計算問題轉(zhuǎn)換成為多項式的計算問題。

    由泰勒公式的原理可知,函數(shù)在某一點按照泰勒公式展開,隨著展開的項數(shù)越來越多,逼近式的誤差會越來越小。并且,隨著項數(shù)的增加,每一項在數(shù)值上逐漸遞減,并最終趨向于無窮小。函數(shù)在某一點按照泰勒公式展開,保留N階多項式時,其之后的所有項數(shù)均影響誤差,并且(N+1)階導(dǎo)函數(shù)的數(shù)值直接影響N階多項式的逼近結(jié)果。具體影響的方式為:N+1階導(dǎo)數(shù)取絕對值后,其值越大,表明函數(shù)在這一點處使用N階多項式逼近的誤差越高,因此在這點處對應(yīng)的分段區(qū)間間隔應(yīng)該相對較小;其值越小,表明函數(shù)在這一點處使用N階多項式逼近的誤差越低,因此在這點處對應(yīng)的分段區(qū)間間隔應(yīng)該相對較大。在考慮分段時,可以根據(jù)N+1階導(dǎo)數(shù)的數(shù)值大小,將函數(shù)的分段區(qū)間進(jìn)行動態(tài)調(diào)整,避免造成誤差過大。通過這樣的處理方式,可以對分段方式進(jìn)行一些優(yōu)化。下面結(jié)合Sigmoid函數(shù)進(jìn)行具體分析。

    首先分析Sigmoid函數(shù)及其導(dǎo)函數(shù)的性質(zhì),如圖1。F(x)為Sigmoid函數(shù),G(x)為其4階導(dǎo)函數(shù)。在保證足夠的分段區(qū)間時,使用3階多項式就能夠得到較高的逼近精度。因此,本文使用3階多項式逼近Sigmoid函數(shù),4階導(dǎo)函數(shù)G(x)直接影響逼近的誤差。通過研究圖像,得出以下結(jié)論:

wdz7-t1.gif

    (1)Sigmoid函數(shù)F(x)是以點(0,0.5)為對稱中心的函數(shù),因此在計算Sigmoid函數(shù)值時只需計算正區(qū)間或負(fù)區(qū)間,另一半可通過對稱關(guān)系得到;

    (2)以正區(qū)間為研究對象,Sigmoid函數(shù)的4階導(dǎo)數(shù)在x=1處附近取得最大值,并向兩側(cè)衰減,隨著x的不斷增大,4階導(dǎo)數(shù)最終趨向于0。

    為了驗證這種基于導(dǎo)數(shù)的分段方法在逼近結(jié)果的精度方面是否具有優(yōu)勢,本文選擇了將這種分段方式與傳統(tǒng)的等間距分段方式作對比。首先,將Sigmoid函數(shù)的待處理區(qū)間進(jìn)行等分,之后比較每個子區(qū)間的函數(shù)4階導(dǎo)數(shù)的整體變化規(guī)律,對導(dǎo)數(shù)相對較大的區(qū)間進(jìn)行縮短,對導(dǎo)數(shù)相對較小的區(qū)間進(jìn)行擴(kuò)展。分別對這兩種分段方式下所有的子區(qū)間構(gòu)建3階多項式,通過對比函數(shù)各子區(qū)間及整體區(qū)間的誤差情況來驗證此分段方法的優(yōu)勢。

    本文選用MATLAB作為函數(shù)擬合工具,構(gòu)建擬合多項式使用最小二乘法原理,數(shù)據(jù)類型選取雙精度浮點數(shù),這樣可以保證在計算過程中精度比較高。下面分別給出兩種分段方式下的分段結(jié)果及誤差對比。為了保證實驗結(jié)果可靠,各分段區(qū)間取的數(shù)足夠大(這里以0.000 1為間隔取數(shù)),結(jié)果見表1。

wdz7-b1.gif

    通過表1可以得出,當(dāng)使用三階多項式對Sigmoid函數(shù)進(jìn)行逼近時,參照4階導(dǎo)函數(shù)的數(shù)值而分段的處理方式在平均絕對誤差和均方差兩項指標(biāo)上均優(yōu)于等間距分段的處理方式。從整體區(qū)間上看,平均絕對誤差減小了51.4%,均方差減小了71.9%。

2 Sigmoid函數(shù)的FPGA實現(xiàn)

    為了實現(xiàn)高精度的擬合要求,本文采用表1中基于導(dǎo)數(shù)的分段方式,使用三階多項式對Sigmoid函數(shù)進(jìn)行擬合處理,并給出其FPGA實現(xiàn)結(jié)構(gòu),如圖2所示。設(shè)三階多項式為y=Ax3+Bx2+Cx+D,其在FPGA中的計算流程為:

    (1)取系數(shù)。各分段區(qū)間下的系數(shù)A、B、C、D預(yù)先存儲在RAM中,通過輸入x取出與之對應(yīng)的系數(shù)A、B、C、D。

    (2)計算Cx和x2

    (3)計算Cx+D、Bx2和x2

    (4)計算Bx2+Cx+D和Ax3

    (5)計算Ax3+Bx2+Cx+D。

    (6)用1和步驟(5)的結(jié)果做減法。

    (7)選擇器。當(dāng)輸入的x為非負(fù)數(shù)時,輸出為步驟(5)的結(jié)果;若輸入的x為負(fù)數(shù),輸出為步驟(6)的結(jié)果。

wdz7-t2.gif

    上述所有的乘法器、加法器和減法器的設(shè)計采用Xilinx公司提供的32位單精度浮點型IP核實現(xiàn),整個算法采用了流水線結(jié)構(gòu),數(shù)據(jù)輸入后,10個周期延遲后得到計算結(jié)果。具體實驗數(shù)據(jù)如表2所示。

wdz7-b2.gif

    在實驗過程中,表1的誤差結(jié)果是由算法在FPGA上計算得到的結(jié)果與Sigmoid函數(shù)的真實值(精度遠(yuǎn)高于實驗的精度)之間的對比求得的。表2中的誤差結(jié)果與表1中的誤差結(jié)果相比較在平均絕對誤差方面略有不足,是由于在FPGA中使用的32位單精度浮點數(shù)在精度上不同與MATLAB上使用的64位雙精度浮點數(shù),所以兩者之間存在略微差別,然而并不影響算法的準(zhǔn)確性。

    采用基于導(dǎo)數(shù)的分段方式并使用三階多項式的擬合方案在FPGA上所使用的資源雖然比經(jīng)典的CORDIC算法及分段線性逼近方法較多,然而這種擬合方案在算法的精度上達(dá)到了10-5數(shù)量級,各小段分段區(qū)間甚至達(dá)到10-6數(shù)量級。當(dāng)然,采用更高階數(shù)的多項式逼近在理論上能夠?qū)崿F(xiàn)更高的精度,然而這樣的代價是會消耗更多的硬件資源。本文使用的分段非線性逼近法對Sigmoid函數(shù)的處理結(jié)果上,精度遠(yuǎn)遠(yuǎn)大于另兩種算法在現(xiàn)有的文獻(xiàn)中所取得的精度。并且若要達(dá)到較高精度,CORDIC算法會大大的增加迭代次數(shù)從而降低運算速度,分段線性逼近則會大大的增加存儲資源。

3 結(jié)論

    本文針對人工神經(jīng)網(wǎng)絡(luò)中應(yīng)用最為廣泛的Sigmoid函數(shù),采用傳統(tǒng)的分段非線性逼近方法,結(jié)合Sigmoid函數(shù)自身對稱的性質(zhì)及其導(dǎo)數(shù)不均勻的特點,給出合理的分段方式,在各小段分段區(qū)間內(nèi)使用數(shù)值分析中經(jīng)典的最小二乘法作為擬合逼近原理,得出初始分段間距同逼近多項式的階數(shù)對擬合結(jié)果精度的影響。按照上述方法給出一種在精度上達(dá)到了10-5數(shù)量級的Sigmoid函數(shù)的擬合方案,實現(xiàn)了現(xiàn)階段對Sigmoid函數(shù)的高速、高精度的處理要求。

參考文獻(xiàn)

[1] JAIN V K,LIN L.High-speed double precision computation of nonlinear functions[C]//Symposium on Computer Arithmetic.IEEE Computer Society,1995:107.

[2] MOLZ R F,ENGEL P M,MORAES F G,et al.Codesign of fully parallel neural network for a classification problem[J].

[3] LEBOEUF K,NAMIN A H,MUSCEDERE R,et al.High speed VLSI implementation of the hyperbolic tangent sigmoid function[C]//International Conference on Convergence and Hybrid Information Technology.IEEE,2008:1070-1073.

[4] 萬書芹,陳宛峰,黃嵩人,等.基于改進(jìn)CORDIC算法實現(xiàn)高速直接數(shù)字頻率合成器[J].儀器儀表學(xué)報,2010,31(11):2586-2591.

[5] OUALI J,SAUCIER G.Fast generation of neuro-ASICs[M]//International Neural Network Conference.1990.

[6] ARMATO A,F(xiàn)ANUCCI L,SCILINGO E P,et al.Low-error digital hardware implementation of artificial neuron activation functions and their derivative[J].Microprocessors & Microsystems,2011,35(6):557-567.

[7] BASTERRETXEA K,TARELA J M,DEL CAMPO I.Digital design of Sigmoid approximator for artificial neural networks[J].Electronics Letters,2002,38(1):35-37.

[8] XIE Z Z,ZHANG S Y.A non-linear approximation of the sigmoid function based FPGA[M]//Proceedings of the 2011,International Conference on Informatics,Cybernetics,and Computer Engineering(ICCE2011) November 19-20,2011,Melbourne,Australia.Springer Berlin Heidelberg,2011:221-223.



作者信息:

宋宇鯤,高曉航,張多利,杜高明

(合肥工業(yè)大學(xué) 微電子設(shè)計研究所,安徽 合肥230009)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲免费一级电影| 久久精品国产精品亚洲| 亚洲欧美日韩天堂| 一区二区三区导航| 亚洲精品中文字幕在线观看| 亚洲国产成人午夜在线一区| 黄色成人在线观看| 狠狠色丁香婷婷综合| 国产亚洲综合性久久久影院| 国产视频久久| 国产亚洲欧洲997久久综合| 国产日韩欧美视频在线| 国产精品亚洲产品| 国产欧美日韩中文字幕在线| 国产精品一区二区黑丝| 国产精品蜜臀在线观看| 欧美午夜在线视频| 国产精品福利在线观看网址| 欧美色综合网| 国产精品xxxxx| 国产精品久久久久久久午夜片| 欧美四级伦理在线| 国产精品久久久亚洲一区| 国产精品福利网站| 国产伦精品一区二区三| 国产一区二区高清| 精品成人a区在线观看| 在线观看三级视频欧美| 亚洲激情另类| 一个色综合av| 亚洲专区在线| 欧美一级在线视频| 亚洲第一区在线| 亚洲精品美女久久7777777| 夜色激情一区二区| 亚洲欧美日韩天堂| 久久久久九九九| 麻豆精品网站| 欧美日韩精品三区| 国产精品嫩草影院av蜜臀| 国产一区二区中文字幕免费看| 一区二区亚洲欧洲国产日韩| 亚洲欧洲在线看| 亚洲无线一线二线三线区别av| 亚洲免费在线| 亚洲高清视频中文字幕| 一区二区三区视频在线看| 西瓜成人精品人成网站| 久久亚洲不卡| 欧美日韩国产小视频在线观看| 国产精品久久久久久久午夜 | 99国内精品| 亚洲欧美成人网| 亚洲国产综合在线看不卡| 一区二区免费在线播放| 久久精品国产亚洲高清剧情介绍| 麻豆亚洲精品| 国产精品乱码妇女bbbb| 一区免费观看| 亚洲一区精彩视频| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲精品专区| 欧美一级在线视频| 欧美11—12娇小xxxx| 国产精品swag| 在线日韩欧美| 亚洲欧美日韩天堂| 洋洋av久久久久久久一区| 久久成人国产| 欧美视频二区36p| 一区一区视频| 先锋影音国产一区| 亚洲视频精选| 男女视频一区二区| 国产日韩在线看| 日韩视频一区二区三区在线播放免费观看 | 亚洲欧美日韩在线不卡| 亚洲麻豆国产自偷在线| 欧美伊人久久| 欧美日韩激情网| 黑人一区二区三区四区五区| 亚洲午夜av电影| 日韩视频在线一区二区三区| 久久久精品一区| 国产精品久久久久久影视| 亚洲福利视频网| 欧美在线播放一区| 亚洲综合精品四区| 欧美久久久久| 一区免费视频| 欧美亚洲免费电影| 亚洲一区二区综合| 欧美精品色综合| 永久免费毛片在线播放不卡| 亚洲影音一区| 亚洲专区免费| 欧美日韩黄色一区二区| 亚洲高清在线| 亚洲国产女人aaa毛片在线| 欧美一区二区视频网站| 国产精品扒开腿做爽爽爽软件| 亚洲第一天堂无码专区| 亚洲欧美一区二区精品久久久 | 亚洲欧美第一页| 欧美日韩一级片在线观看| 亚洲国产成人高清精品| 亚洲第一偷拍| 久久免费视频网| 国产一区二区三区在线播放免费观看 | 噜噜噜噜噜久久久久久91| 国产欧美一区二区色老头 | 亚洲一级高清| 亚洲伊人网站| 欧美天天在线| av成人手机在线| 亚洲视频福利| 欧美色图五月天| 一本色道久久综合亚洲精品婷婷| 99re在线精品| 欧美剧在线免费观看网站| 亚洲激情在线观看视频免费| 亚洲国产中文字幕在线观看| 久久婷婷久久一区二区三区| 国内精品久久久久国产盗摄免费观看完整版| 午夜免费日韩视频| 亚洲欧美久久久| 国产九九精品视频| 欧美一级一区| 久久一日本道色综合久久| 一区二区在线观看av| 亚洲日本乱码在线观看| 欧美精品一卡| 一个色综合导航| 欧美一级视频| 国产一区二区三区四区五区美女 | 久久久另类综合| 黄色成人在线网址| 亚洲精品久久久久久一区二区| 欧美成人精品不卡视频在线观看| 亚洲国产高清视频| 亚洲深夜影院| 国产美女精品| 久久精品30| 欧美日本一区| 亚洲免费视频一区二区| 久久久久久久999精品视频| 亚洲丰满在线| 一区二区三区视频在线播放| 国产精品日韩在线一区| 欧美一区二区三区四区在线观看| 久久野战av| 亚洲三级色网| 亚洲综合成人婷婷小说| 国内精品久久久久久久果冻传媒 | 欧美在线国产精品| 欧美国产日产韩国视频| 一区二区三区 在线观看视频| 欧美亚洲综合网| 亚洲二区在线| 午夜精彩视频在线观看不卡| 国精产品99永久一区一区| 亚洲乱码国产乱码精品精| 国产精品九九| 亚洲国产精品成人久久综合一区| 欧美经典一区二区三区| 亚洲一区bb| 麻豆精品在线视频| 亚洲色诱最新| 美日韩精品视频| 亚洲视频在线一区| 免费h精品视频在线播放| 在线一区二区三区做爰视频网站| 欧美中文在线字幕| 亚洲精品美女在线观看| 久久精品夜色噜噜亚洲a∨| 亚洲精品字幕| 久久久久久夜| 一本色道久久综合精品竹菊 | 午夜精品在线观看| 欧美连裤袜在线视频| 欧美在线免费观看| 欧美视频福利| 91久久精品一区二区别| 国产精品日韩欧美| 日韩小视频在线观看专区| 国产亚洲va综合人人澡精品| 亚洲素人一区二区| 在线观看欧美激情| 欧美在线亚洲| 日韩视频永久免费观看| 久久久久国产精品www| 一区二区三区视频在线播放| 欧美大片va欧美在线播放| 午夜精品久久久久久久蜜桃app | 亚洲欧洲在线观看| 久久久久久久综合狠狠综合| 亚洲视频国产视频| 欧美激情aⅴ一区二区三区| 欧美一级片一区| 国产精品女同互慰在线看|