楊薇
摘要:卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是一種人工神經(jīng)網(wǎng)絡(luò),是典型的多階段全局可訓(xùn)練的模型,在模式識別,目標(biāo)跟蹤等方面具有很重要的應(yīng)用價值?,F(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA)作為高速、高密度可編程邏輯資源得到了快速的發(fā)展,可以通過將算法映射到FPGA上的并行硬件,完成加速功能。本文嘗試使用FPGA的計算模式,以并行化的方式實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),加速其運行過程。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò) 現(xiàn)場可編程門陣列 并行結(jié)構(gòu)
中圖分類號:TP183 文獻標(biāo)識碼:A 文章編號:1007-9416(2015)12-0000-00
1 引言
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)具有良好的處理能力、自學(xué)能力及容錯能力,可以用來處理復(fù)雜的環(huán)境信息,例如,背景情況不明,推理規(guī)則不明,樣品存有一定程度的缺陷或畸變的情況。所以,卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于目標(biāo)檢測、物體識別和語音分析等方面[1]?,F(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA),作為可編程使用的信號處理器件,其具有高集成度、運行高速、可靠性高及采用并行結(jié)構(gòu)的特點,易于配合CNN處理數(shù)據(jù)。
2 國內(nèi)外研究現(xiàn)狀
2.1 神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)
根據(jù)研究角度、數(shù)據(jù)傳遞方式、數(shù)據(jù)處理模式、學(xué)習(xí)方法等的不同,多種神經(jīng)網(wǎng)絡(luò)模型被構(gòu)建出來。目前主要有四種模型被廣泛應(yīng)用中[2][3]:
(1)前饋型神經(jīng)網(wǎng)絡(luò)。此類神經(jīng)元網(wǎng)絡(luò)是由觸突將神經(jīng)原進行連接的,所以網(wǎng)絡(luò)群體由全部神經(jīng)元構(gòu)成,可實現(xiàn)記憶、思維和學(xué)習(xí)。此種類型的網(wǎng)絡(luò)是有監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)。(2)遞歸型神經(jīng)網(wǎng)絡(luò)。此種神經(jīng)網(wǎng)絡(luò)又稱為反饋網(wǎng)絡(luò),以多個神經(jīng)元互相連接,組織成一個互連的神經(jīng)網(wǎng)絡(luò),使得電流和信號能夠通過正向和反向進行流通。(3)隨機型神經(jīng)網(wǎng)絡(luò)。此種神經(jīng)網(wǎng)絡(luò)的運行規(guī)律是隨機的,通過有監(jiān)督學(xué)習(xí)方法進行網(wǎng)絡(luò)訓(xùn)練。(4)自組織競爭型神經(jīng)網(wǎng)絡(luò)。此種神經(jīng)網(wǎng)絡(luò)通過無監(jiān)督的學(xué)習(xí)方法進行網(wǎng)絡(luò)訓(xùn)練,一般具有兩層網(wǎng)絡(luò)結(jié)構(gòu),輸入層和競爭層。兩層間的各神經(jīng)元實現(xiàn)雙向全連接。
2.2 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法用來解決調(diào)整網(wǎng)絡(luò)權(quán)重的問題,是指完成輸入特征向量映射到輸出變量之間的算法,可以歸納為三類[4-7]:
(1)有監(jiān)督的學(xué)習(xí)。在學(xué)習(xí)開始前,向神經(jīng)網(wǎng)絡(luò)提供若干已知輸入向量和相應(yīng)目標(biāo)變量構(gòu)成的樣本訓(xùn)練集,通過給定輸入值與輸出期望值和實際網(wǎng)絡(luò)輸出值之間的差來調(diào)整神經(jīng)元之間的連接權(quán)重。(2)無監(jiān)督的學(xué)習(xí)。此種學(xué)習(xí)方法只需要向神經(jīng)網(wǎng)絡(luò)提供輸入,不需要期望輸出值,神經(jīng)網(wǎng)絡(luò)能自適應(yīng)連接權(quán)重,無需外界的指導(dǎo)信息。(3)強化學(xué)習(xí)。此種算法不需要給出明確的期望輸出,而是采用評價機制來評價給定輸入所對應(yīng)的神經(jīng)網(wǎng)絡(luò)輸出的質(zhì)量因數(shù)。外界環(huán)境對輸出結(jié)果僅給出評價結(jié)果,通過強化授獎動作來改善系統(tǒng)性能。此種學(xué)習(xí)方法是有監(jiān)督學(xué)習(xí)的特例。
2.3 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)為識別二維或三維信號而設(shè)計的一個多層次的感知器,其基本結(jié)構(gòu)包括兩種特殊的神經(jīng)元層,一為卷積層,每個神經(jīng)元的輸入與前一層的局部相連,并提取該局部的特征[8];二是池化層,用來求局部敏感性與二次特征提取的計算層[8]。作為部分連接的網(wǎng)絡(luò),最底層是卷積層(特征提取層),上層是池化層,可以繼續(xù)疊加卷積、池化或者是全連接層。
3 FPGA實現(xiàn)神經(jīng)網(wǎng)絡(luò)的并行體系結(jié)構(gòu)
(1)卷積神經(jīng)網(wǎng)絡(luò)的計算架構(gòu)。卷積神經(jīng)網(wǎng)絡(luò)可以使用“主機”與“FPGA”相結(jié)合的體系模型,主機用來控制計算的開始和結(jié)束,并在神經(jīng)網(wǎng)絡(luò)前向傳播計算過程中,提供輸入圖像等數(shù)據(jù)。主機與FPGA之間的通信可以通過標(biāo)準(zhǔn)接口,在主機進行任務(wù)分配的過程中可以對FPGA上的卷積神經(jīng)網(wǎng)絡(luò)進行硬件加速。當(dāng)卷積神經(jīng)網(wǎng)絡(luò)開始啟動計算,通過標(biāo)準(zhǔn)接口接收到主機傳輸?shù)膱D像時,F(xiàn)PGA開始進行計算,并且使用FPGA中的存儲器來存儲卷積核權(quán)值。FPGA將會先完成卷積神經(jīng)網(wǎng)絡(luò)前向傳播過程的計算,然后將其最后一層計算得到的結(jié)果輸出給主機。(2)卷積神經(jīng)網(wǎng)絡(luò)并行體系架構(gòu)。一、單輸出并行結(jié)構(gòu):每次計算一個輸出圖像,其中會將多個輸入圖像和多個卷積核基本計算單元同時進行卷積運算,然后將全部卷積運算的結(jié)果與偏置值進行累加,再將結(jié)果輸入非線性函數(shù)和自抽樣子層進行計算。二、多輸出并行結(jié)構(gòu):若卷積神經(jīng)網(wǎng)絡(luò)的計算單元中含有多個單輸出的并行結(jié)構(gòu),那么輸入數(shù)據(jù)可同時傳送到多個單輸出計算單元的輸入端,從而組成多個單輸出計算單元組成的并行結(jié)構(gòu)。在卷積神經(jīng)網(wǎng)絡(luò)的并行計算結(jié)構(gòu)中,每個卷積核計算單元在進行卷積操作時都要進行乘加運算,所以,有必要將單個的卷積運算拆分實現(xiàn)并行化,并且可以嘗試將同一層內(nèi)的多個卷積運算進行并行化。
4 結(jié)語
本文對卷積神經(jīng)網(wǎng)絡(luò)進行了介紹,總結(jié)了國內(nèi)外的研究現(xiàn)狀,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)運算的特點與FPGA的快速計算單元數(shù)量及功能方面的優(yōu)勢,嘗試闡述了在FPGA映射過程的卷積神經(jīng)網(wǎng)絡(luò)的并行體系結(jié)構(gòu)。
參考文獻
[1] Fan J,Xu W,Wu Y,et al. Human tracking using convolutional neural networks[J].IEEE Transactions on Neural Networks,2010(10):1610-1623.
[2] 楊治明,王曉蓉,彭軍.BP神經(jīng)網(wǎng)絡(luò)在圖像分割中的應(yīng)用.計算機科學(xué)[J].2007(03):234-236.
[3] Simon Haykin . Neural networks ,a comprehensive foundation[M].second edition,Prentice Hall,1998.
[4] Herta J , et al.Introduction to Theory of Neural Compution[M].Sant Fee Complexity Science Series,1991.156.
[5] 戴奎.神經(jīng)網(wǎng)絡(luò)實現(xiàn)技術(shù)[M].長沙:國防科技大學(xué)出版社,1998.
[6] 焦李成.神經(jīng)網(wǎng)絡(luò)系統(tǒng)理論[M].西安:西安電子科技大學(xué)出版社,1996.
[7] 袁曾任.神經(jīng)網(wǎng)絡(luò)原理及其應(yīng)用[M].北京:清華大學(xué)出版社,1999.
[8] 陸志堅.基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)并行結(jié)構(gòu)研究[D].哈爾濱:哈爾濱工程大學(xué),2013.
數(shù)字技術(shù)與應(yīng)用2015年12期