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