楊薇
摘要:卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是一種人工神經(jīng)網(wǎng)絡(luò),是典型的多階段全局可訓(xùn)練的模型,在模式識別,目標(biāo)跟蹤等方面具有很重要的應(yīng)用價(jià)值?,F(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA)作為高速、高密度可編程邏輯資源得到了快速的發(fā)展,可以通過將算法映射到FPGA上的并行硬件,完成加速功能。本文嘗試使用FPGA的計(jì)算模式,以并行化的方式實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),加速其運(yùn)行過程。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò) 現(xiàn)場可編程門陣列 并行結(jié)構(gòu)
中圖分類號:TP183 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2015)12-0000-00
1 引言
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)具有良好的處理能力、自學(xué)能力及容錯(cuò)能力,可以用來處理復(fù)雜的環(huán)境信息,例如,背景情況不明,推理規(guī)則不明,樣品存有一定程度的缺陷或畸變的情況。所以,卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于目標(biāo)檢測、物體識別和語音分析等方面[1]。現(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA),作為可編程使用的信號處理器件,其具有高集成度、運(yùn)行高速、可靠性高及采用并行結(jié)構(gòu)的特點(diǎn),易于配合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)原進(jìn)行連接的,所以網(wǎng)絡(luò)群體由全部神經(jīng)元構(gòu)成,可實(shí)現(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ò),以多個(gè)神經(jīng)元互相連接,組織成一個(gè)互連的神經(jīng)網(wǎng)絡(luò),使得電流和信號能夠通過正向和反向進(jìn)行流通。(3)隨機(jī)型神經(jīng)網(wǎng)絡(luò)。此種神經(jīng)網(wǎng)絡(luò)的運(yùn)行規(guī)律是隨機(jī)的,通過有監(jiān)督學(xué)習(xí)方法進(jìn)行網(wǎng)絡(luò)訓(xùn)練。(4)自組織競爭型神經(jīng)網(wǎng)絡(luò)。此種神經(jīng)網(wǎng)絡(luò)通過無監(jiān)督的學(xué)習(xí)方法進(jìn)行網(wǎng)絡(luò)訓(xùn)練,一般具有兩層網(wǎng)絡(luò)結(jié)構(gòu),輸入層和競爭層。兩層間的各神經(jīng)元實(shí)現(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)練集,通過給定輸入值與輸出期望值和實(shí)際網(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)強(qiáng)化學(xué)習(xí)。此種算法不需要給出明確的期望輸出,而是采用評價(jià)機(jī)制來評價(jià)給定輸入所對應(yīng)的神經(jīng)網(wǎng)絡(luò)輸出的質(zhì)量因數(shù)。外界環(huán)境對輸出結(jié)果僅給出評價(jià)結(jié)果,通過強(qiáng)化授獎(jiǎng)動(dòng)作來改善系統(tǒng)性能。此種學(xué)習(xí)方法是有監(jiān)督學(xué)習(xí)的特例。
2.3 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)為識別二維或三維信號而設(shè)計(jì)的一個(gè)多層次的感知器,其基本結(jié)構(gòu)包括兩種特殊的神經(jīng)元層,一為卷積層,每個(gè)神經(jīng)元的輸入與前一層的局部相連,并提取該局部的特征[8];二是池化層,用來求局部敏感性與二次特征提取的計(jì)算層[8]。作為部分連接的網(wǎng)絡(luò),最底層是卷積層(特征提取層),上層是池化層,可以繼續(xù)疊加卷積、池化或者是全連接層。
3 FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的并行體系結(jié)構(gòu)
(1)卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算架構(gòu)。卷積神經(jīng)網(wǎng)絡(luò)可以使用“主機(jī)”與“FPGA”相結(jié)合的體系模型,主機(jī)用來控制計(jì)算的開始和結(jié)束,并在神經(jīng)網(wǎng)絡(luò)前向傳播計(jì)算過程中,提供輸入圖像等數(shù)據(jù)。主機(jī)與FPGA之間的通信可以通過標(biāo)準(zhǔn)接口,在主機(jī)進(jìn)行任務(wù)分配的過程中可以對FPGA上的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行硬件加速。當(dāng)卷積神經(jīng)網(wǎng)絡(luò)開始啟動(dòng)計(jì)算,通過標(biāo)準(zhǔn)接口接收到主機(jī)傳輸?shù)膱D像時(shí),F(xiàn)PGA開始進(jìn)行計(jì)算,并且使用FPGA中的存儲器來存儲卷積核權(quán)值。FPGA將會(huì)先完成卷積神經(jīng)網(wǎng)絡(luò)前向傳播過程的計(jì)算,然后將其最后一層計(jì)算得到的結(jié)果輸出給主機(jī)。(2)卷積神經(jīng)網(wǎng)絡(luò)并行體系架構(gòu)。一、單輸出并行結(jié)構(gòu):每次計(jì)算一個(gè)輸出圖像,其中會(huì)將多個(gè)輸入圖像和多個(gè)卷積核基本計(jì)算單元同時(shí)進(jìn)行卷積運(yùn)算,然后將全部卷積運(yùn)算的結(jié)果與偏置值進(jìn)行累加,再將結(jié)果輸入非線性函數(shù)和自抽樣子層進(jìn)行計(jì)算。二、多輸出并行結(jié)構(gòu):若卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算單元中含有多個(gè)單輸出的并行結(jié)構(gòu),那么輸入數(shù)據(jù)可同時(shí)傳送到多個(gè)單輸出計(jì)算單元的輸入端,從而組成多個(gè)單輸出計(jì)算單元組成的并行結(jié)構(gòu)。在卷積神經(jīng)網(wǎng)絡(luò)的并行計(jì)算結(jié)構(gòu)中,每個(gè)卷積核計(jì)算單元在進(jìn)行卷積操作時(shí)都要進(jìn)行乘加運(yùn)算,所以,有必要將單個(gè)的卷積運(yùn)算拆分實(shí)現(xiàn)并行化,并且可以嘗試將同一層內(nèi)的多個(gè)卷積運(yùn)算進(jìn)行并行化。
4 結(jié)語
本文對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了介紹,總結(jié)了國內(nèi)外的研究現(xiàn)狀,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算的特點(diǎn)與FPGA的快速計(jì)算單元數(shù)量及功能方面的優(yōu)勢,嘗試闡述了在FPGA映射過程的卷積神經(jīng)網(wǎng)絡(luò)的并行體系結(jié)構(gòu)。
參考文獻(xiàn)
[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)用.計(jì)算機(jī)科學(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ò)實(shí)現(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] 陸志堅(jiān).基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)并行結(jié)構(gòu)研究[D].哈爾濱:哈爾濱工程大學(xué),2013.
數(shù)字技術(shù)與應(yīng)用2015年12期