孫敬成,王正彥,李增剛
青島大學(xué) 電子信息學(xué)院,山東 青島 266071
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一[1]。近年來,卷積神經(jīng)網(wǎng)絡(luò)在多方向持續(xù)發(fā)力,已成為圖像識別和語音分析領(lǐng)域中的研究熱點[2]。相較BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),引入卷積層與混合層,降低了運算量。
手寫數(shù)字識別是模式識別領(lǐng)域中熱點問題,有著重要的理論價值[3]。識別過程首先通過網(wǎng)絡(luò)反向傳播訓(xùn)練樣本數(shù)據(jù),提取識別率較高的權(quán)重與偏置用于前向傳播,通過計算帶權(quán)輸入與激活值,以輸出層中激活值最大值所對應(yīng)的位置表示識別值。訓(xùn)練樣本數(shù)據(jù)來源于MNIST 數(shù)據(jù)庫,數(shù)據(jù)庫中為人工手寫的0~9 的數(shù)字圖片,包括50 000 訓(xùn)練樣本和10 000 驗證樣本,灰度值于0~255之間,像素大小均為28×28[4]。盡管數(shù)字識別類別較小,但卻有利于深入分析以及驗證新結(jié)論,能夠推廣其他相關(guān)問題,一個直接應(yīng)用即英文字母的識別。
神經(jīng)網(wǎng)絡(luò)的組成單位為神經(jīng)元,神經(jīng)元規(guī)則的連接形成網(wǎng)絡(luò)[5]。BP神經(jīng)網(wǎng)絡(luò)連接方式為全連接,即相鄰層神經(jīng)元相互連接,使權(quán)重偏置數(shù)量大。而卷積神經(jīng)網(wǎng)絡(luò)則憑借卷積層的區(qū)域連接以及混合層的壓縮,減少了參數(shù)數(shù)量,簡化了網(wǎng)絡(luò)結(jié)構(gòu)[6],使訓(xùn)練變的簡單。但作為BP神經(jīng)網(wǎng)絡(luò)研究的產(chǎn)物,也保留部分特性,仍離不開帶權(quán)輸入(z)與激活值(a)的計算。公式如式(1)、(2):
其中w為權(quán)重,b為偏置,l為當(dāng)前層,j、k為神經(jīng)元位置順序,x表示輸入神經(jīng)元數(shù)據(jù),σ為激活函數(shù),激活函數(shù)選擇Sigmoid 函數(shù),其特性可將激活值壓縮到(0,1)中[7]。
卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入層、卷積層、混合層、全連接層、輸出層五部分構(gòu)成。采用了3 種基本概念:卷積核、局部感受野、混合層。卷積核由共享權(quán)重與偏置組成,對應(yīng)不同的特征映射,用于卷積運算,考慮到FPGA資源,該系統(tǒng)選擇一個卷積核。局部感受野與卷積核大小對應(yīng),表示區(qū)域性連接,區(qū)別于BP 的全連接?;旌蠈?,又稱池化層[8],可壓縮數(shù)據(jù)內(nèi)容,減小計算量。
傳統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。輸入層輸入圖片像素數(shù)據(jù);卷積層,令卷積核數(shù)目為3,分別與像素數(shù)據(jù)作卷積,得到3組數(shù)據(jù);混合層壓縮卷積層的輸出,每2×2矩陣可用平均數(shù)或最大值表示。上述對于3 個卷積核的卷積、混合運算,利用硬件實現(xiàn)可同時完成,軟件則需分3次計算,體現(xiàn)了硬件實現(xiàn)并行性的優(yōu)點。之后兩層均為全連接,全連接層需將3 組神經(jīng)元矩陣轉(zhuǎn)換為1 組列矩陣,以便于綜合所有特征;最終計算輸出層的激活值,最大值所在的位置即判別結(jié)果[9]。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
參數(shù)設(shè)置如下所示。
輸入層神經(jīng)元數(shù)量:28×28
卷積核大?。?×5
卷積層輸出:24×24(28?5+1)
混合層輸出:12×12
全連接層神經(jīng)元數(shù)量:100×1
輸出層神經(jīng)元數(shù)量:10×1
卷積神經(jīng)網(wǎng)絡(luò)一次完整的訓(xùn)練包括前向和反向傳播。前向傳播依靠權(quán)重與偏置計算帶權(quán)輸入和激活值,求得識別結(jié)果;反向傳播推導(dǎo)和優(yōu)化權(quán)重與偏置,以求高識別率。為使網(wǎng)絡(luò)的輸出能夠擬合所有的訓(xùn)練輸入,定義代價函數(shù)[10],公式如式(3):
式中,n為訓(xùn)練輸入個數(shù);y為標簽值,a為輸出層的激活值。反向傳播的目的找到一系列讓代價函數(shù)C盡可能小的權(quán)重與偏置,采取梯度下降法來達到目的[11]。梯度下降需要引入神經(jīng)元誤差,公式可表示為代價函數(shù)對帶權(quán)輸入的偏導(dǎo),該過程存在激活函數(shù)導(dǎo)數(shù)。公式如式(4):
權(quán)重與偏置的更新梯度可表示為神經(jīng)元誤差對該層w、b的偏導(dǎo),公式如式(5)、(6)所示,由公式可得權(quán)重梯度可在偏置梯度基礎(chǔ)上求得。以梯度下降法計算更新梯度,原數(shù)據(jù)與梯度對應(yīng)相減,得到更新權(quán)重與偏置,反復(fù)訓(xùn)練,以求最高識別率:
網(wǎng)絡(luò)前向傳播輸入層需讀取圖片像素,網(wǎng)絡(luò)計算需讀取權(quán)重與偏置。初始化均值為0,方差為1 的高斯分布網(wǎng)絡(luò)權(quán)重與偏置。反向傳播需讀取標簽值,標簽值對應(yīng)輸入圖像的值。訓(xùn)練過程小批量處理,即輸入層一次訓(xùn)練輸入MNIST 數(shù)據(jù)庫中10 個樣本,將樣本像素數(shù)據(jù)輸入到輸入層神經(jīng)元矩陣。
由于FPGA 不能夠識別小數(shù),所以,要經(jīng)過浮點轉(zhuǎn)定點處理,規(guī)定定點數(shù)位寬16 位,選擇S3.12 進行轉(zhuǎn)換。其中S表示符號位,3為整數(shù)位個數(shù),12為小數(shù)位個數(shù)[12]。權(quán)重、偏置及標簽值都應(yīng)擴大4 095(位寬12 位)倍。以上均為有符號數(shù)。轉(zhuǎn)換定點數(shù)后進行計算時,注意位寬的匹配。
Verilog 語言存在數(shù)學(xué)運算上的弊端,例如不能進行矩陣運算、不能夠識別對數(shù)、更不能夠計算導(dǎo)數(shù)等。為了設(shè)計的進行,對曲線函數(shù)采用分段擬合近似表示。通過分割將每段曲線近似為直線,將曲線線性化[13]。卷積神經(jīng)網(wǎng)絡(luò)用到激活函數(shù)及其導(dǎo)數(shù),均可采用該方法處理。圖2 為Sigmoid 激活函數(shù)在區(qū)間(?6,6)的圖像,值域為(0,1),且單調(diào)遞增。求解每段函數(shù)時,可以借助Matlab 基本擬合功能。激活函數(shù)求導(dǎo)過程類似,不作講解。
圖2 Sigmoid函數(shù)
令分割區(qū)間為0.5,并進行定點化,曲線代碼如下:
上述代碼將線性化函數(shù)的斜率、截距進行浮點轉(zhuǎn)定點出理并以二進制數(shù)表示,因此橫坐標也要做出相應(yīng)調(diào)整。在(?6,6)兩端,因變量結(jié)果趨近于0、1。代碼中不再細分區(qū)間,直接令其值固定。將Sigmoid 函數(shù)及其導(dǎo)數(shù)作為底層,直接調(diào)用。
如圖3所示,輸入層排列為28×28的神經(jīng)元矩陣,卷積核大小為5×5,令跨度為1,卷積核與局部感受野對應(yīng)乘加,最終與共享偏置求和得到帶權(quán)輸入z,經(jīng)過激活函數(shù)得到激活值a,卷積后可得576 個神經(jīng)元,維數(shù)轉(zhuǎn)換后得下一層24×24的神經(jīng)元矩陣。
圖3 卷積計算結(jié)構(gòu)
卷積過程重點即提取矩陣中局部感受野。提取方法可對矩陣首個元素進行控制,局部感受野其余元素均可導(dǎo)出。首元素移動,帶動局部感受野移動。因此,僅控制a、b即可。由時鐘控制a、b變化,直至掃描結(jié)束。
代碼如下:
因此,一個時鐘可得一組局部感受野,進而與卷積核進行卷積,最終求得帶權(quán)輸入與激活值,總耗時576個時鐘周期,得到卷積層輸出神經(jīng)元。
將卷積計算所得24×24 激活值矩陣劃分2×2 小矩陣,并將矩陣中四個數(shù)據(jù)用平均值一個數(shù)據(jù)表示[14],跨度為2,如圖4 所示。提取2×2 矩陣與局部感受野方式相同,每一個時鐘計算一組矩陣的平均值,耗時144 個時鐘周期,得到下一層12×12神經(jīng)元矩陣。該層不涉及權(quán)重與偏置,僅求激活值的平均數(shù)。
圖4 混合運算結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)混合層之后連接方式均為全連接,神經(jīng)元排列由二維矩陣轉(zhuǎn)為一維矩陣。如圖5 所示,al-1表示混合層144 個神經(jīng)元,與下一層的100 個神經(jīng)元兩兩連接,求得帶權(quán)輸入與激活值;再與輸出層10個神經(jīng)元兩兩連接,計算求得輸出值。每個連接對應(yīng)一個權(quán)重,每個被連接神經(jīng)元對應(yīng)一個偏置,可見fully層權(quán)重、偏置個數(shù)為144×100、100;soft 層權(quán)重、偏置個數(shù)為100×10、10。
圖5 全連接輸出
該過程中,兩層計算方式相同,以計算fully 層帶權(quán)輸入為例。Verilog 不能進行矩陣運算,根據(jù)矩陣定義,在for 循環(huán)中需對應(yīng)好計算變量的位置。如圖6 所示,x_pool表示混合層神經(jīng)元,fully_w、fully_b表示該層權(quán)重、偏置,最終求得帶權(quán)輸afullyresult和激活值afullyresult,即圖5中
圖6 fully層仿真
帶權(quán)輸入代碼實現(xiàn)(fully層):
輸出層計算方式類似,100個激活值與10個神經(jīng)元全連接,最終獲得10個神經(jīng)元激活值。加入比較器,比較激活值的大小,大小所對應(yīng)的位置即檢測樣本數(shù)據(jù)。由于線性分割不夠精確,激活值存在相等的情況,可根據(jù)激活函數(shù)單調(diào)遞增特性,比較帶權(quán)輸入值即可。
前向傳播主要識別輸入樣本的值,即便采用一個卷積核,計算量仍較大,尤其在矩陣運算時,必須對應(yīng)好相乘的量。Verilog語言實現(xiàn)特點就是加入了時序,例如卷積層計算應(yīng)用576 時鐘周期、混合層144 時鐘周期等。總結(jié)前向傳播電路結(jié)構(gòu),如圖7所示,其中Sconv對應(yīng)卷積層、fully對應(yīng)全連接層、Soft對應(yīng)輸出層,給出每層的數(shù)據(jù)結(jié)構(gòu)。由權(quán)重、偏置計算帶權(quán)輸入,并求得激活值(池化層除外),激活值作為為下一層的輸入,經(jīng)過混合層、輸出層的計算,最終求得判別結(jié)果。
圖7 前向傳播電路結(jié)構(gòu)圖
反向傳播需讀取標簽值y,與輸入樣本類似,每個訓(xùn)練周期讀取10個標簽值。同樣標簽值需進行浮點轉(zhuǎn)定點,因此列矩陣由0與4 095組成,標簽值所在位置對應(yīng)4 095。仿真結(jié)果如圖8。
圖8 標簽值讀取
權(quán)重與偏置共3 組,代碼中分別表示為:con_w、core_b(輸入層→卷積層),fully_w、fully_b(混合層→全連接層),soft_w、soft_b(全連接層→輸出層)。更新梯度主要依靠公式計算,以下根據(jù)代價函數(shù)及神經(jīng)元誤差定義所做出的公式推導(dǎo)、實現(xiàn)方案。
公式如式(7),(a-y) 對應(yīng)輸出激活值與標簽值的差,為 10×1 列矩陣;asoftresult'表示asoftresult對softresult的導(dǎo)數(shù)(激活函數(shù)的導(dǎo)數(shù)),得10×1列矩陣;兩者點乘得到soft_b的更新梯度。
公式如式(8),包含soft_grad_b,為10×1 列矩陣,afullyresult激活值存于100×1列矩陣,兩個矩陣相乘不能得到soft_grad_w的100×10 矩陣。因此根據(jù)公式進行計算不可行,需根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)定。令afullyresult的100×1 矩陣與soft_grad_b轉(zhuǎn)置后得到的 1×10 矩陣相乘。因前向過程中,afullyresult中100個神經(jīng)元與下一層10 個神經(jīng)元連接;反向過程10 個神經(jīng)元對應(yīng)值為soft_grad_b。因此,afullyresult中每一個仍與soft_grad_b中10個計算,滿足梯度對應(yīng)關(guān)系。
代碼實現(xiàn)的關(guān)鍵即處理矩陣運算,必須要對應(yīng)好因數(shù)位置[15]。全連接層梯度的推導(dǎo)方式大同小異,以權(quán)重更新梯度計算為例。
代碼如下:
卷積神經(jīng)網(wǎng)絡(luò)一次訓(xùn)練十幅圖片,目的是在更新梯度時,取平均得到較為準確的更新梯度[16]。以上代碼即求得十組更新梯度。仿真結(jié)果如圖9。all表示梯度和,ave表示平均值,即真正更新梯度。與原始數(shù)據(jù)求差,得到更新值。
圖9 soft_w更新仿真
公式如式(9),soft_w為100 行10 列,此處不用更新值,矩陣乘積后得100×1矩陣,與afullyresult′(導(dǎo)數(shù))作點乘。計算結(jié)束后求平均值得到100個fully_b的更新梯度。
公式如式(10),結(jié)果是在fully_grad_b的100×1矩陣基礎(chǔ)上與混合層x_pool的144×1矩陣進行乘積。同樣矩陣要進行轉(zhuǎn)置,換序,與計算soft_grad_w原理相同,最終得到144×100矩陣。
以上為以全連接方式連接的權(quán)重與偏置梯度的推導(dǎo)。卷積層計算方式與以上不同,但也離不開前一層神經(jīng)元誤差。
卷積層誤差前向傳播時,混合層將卷積層24×24神經(jīng)元矩陣壓縮為12×12。若要求得卷積層的誤差,首先求得混合層誤差,將混合層12×12 誤差矩陣恢復(fù)至24×24神經(jīng)元矩陣,處理稱為Unsample[17]?;旌嫌嬎憷闷骄担归_過程將混合層的誤差除以4,分布到每一個2×2的矩陣中。舉例如圖10所示。
圖10 Unsample示例
卷積層與混合層之間不存在激活函數(shù),x_pool即帶權(quán)輸入z,所以fullyresult對x_pool求導(dǎo)時結(jié)果為1,如公式(11):
fully_grad_b為 100 行 1 列矩陣,fully_w為 144 行 100列,相乘得144 個神經(jīng)元誤差。進行unsample 處理,為了計算方便,將誤差存入二維矩陣進行擴展,擴展結(jié)果即卷積層神經(jīng)元誤差。
共享權(quán)重與偏置數(shù)目較少,梯度推導(dǎo)方式也有所不同。25個權(quán)重梯度依靠輸入圖片像素與卷積層誤差的卷積,即28×28矩陣卷積24×24矩陣,最終得到5×5的矩陣,對應(yīng)共享權(quán)重的梯度,公式如式(12);偏置梯度更為特殊,由于δ是高維張量,而core_b只是一個向量,通常的做法是將δ的各項分別求和,得到一個誤差向量[18],即為偏置更新梯度,公式如式(13):
反向傳播通過更新權(quán)重與偏置,使代價函數(shù)降到最低,以求最大識別率。主要工作為公式計算,難點在于對梯度下降法的原理、公式推導(dǎo)的理解;利用Verilog代碼實現(xiàn),難點在于解決矩陣的運算、激活函數(shù)求導(dǎo)。該過程同樣以時序控制,總結(jié)反向傳播電路結(jié)構(gòu),如圖11所示,權(quán)重、偏置梯度倒序計算,各層數(shù)據(jù)結(jié)構(gòu)如圖。矩陣相乘、轉(zhuǎn)置對應(yīng)4.2節(jié)中的公式計算,可以看出前兩層的計算方式相同,計算輸入為帶權(quán)輸入、激活值以及原始權(quán)重,輸出為更新梯度。卷積層則依靠卷積、疊加計算方式求得更新梯度。提取全部更新梯度與原數(shù)據(jù)作差,求得更新值。該結(jié)構(gòu)可由一條總線連接,是因為后一層的梯度由前一層梯度求得,公式中可以體現(xiàn)。
圖11 反向傳播電路結(jié)構(gòu)圖
卷積神經(jīng)網(wǎng)絡(luò)一次完整的訓(xùn)練為10 幅圖片,實際應(yīng)用中需要訓(xùn)練MNIST 數(shù)據(jù)庫中所有圖片,因此在時鐘控制下,網(wǎng)絡(luò)的訓(xùn)練持續(xù)進行。一次訓(xùn)練的周期約為850個時鐘周期,以時鐘控制,每850個時鐘周期輸入新的訓(xùn)練樣本,并更新權(quán)重與偏置。如圖12所示,每個周期的訓(xùn)練,僅需要上次更新的權(quán)重與偏置,因此,在提取出新的權(quán)重與偏置后,可認為周期訓(xùn)練單獨運行,互不影響。以計算fullyresult為例,如圖13所示,每850周期計算一組。
圖12 網(wǎng)絡(luò)時序結(jié)構(gòu)圖
圖13 fullyresult運算仿真結(jié)果
在行為級描述及仿真正確的基礎(chǔ)上,進一步進行RTL 級設(shè)計,以便進行硬件測試,該設(shè)計針對Altera 芯片Cyclone?IV 4CE115 及友晶開發(fā)板DE2-115。考慮到芯片資源有限,將卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進行修改,卷積核由5×5 修改為3×3,全連接層由100 個神經(jīng)元修改為30個神經(jīng)元,小批量數(shù)據(jù)選擇3個樣本。訓(xùn)練系統(tǒng)框圖如圖14所示。
圖14 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練系統(tǒng)框圖
樣本數(shù)據(jù)經(jīng)前向運算、后向運算后獲得權(quán)重梯度和偏置梯度,然后進行權(quán)重、偏置更新,根據(jù)更新后的權(quán)重偏置繼續(xù)對新的樣本進行訓(xùn)練,反復(fù)循環(huán)進行。同時計算識別準確率,當(dāng)準確率達到設(shè)置的閾值時,停止訓(xùn)練。由狀態(tài)機控制各個運算過程的進行,當(dāng)準確率達到設(shè)置閾值時,狀態(tài)機停止運行。
由于樣本數(shù)據(jù)需要輸入電路進行處理,故采用雙口RAM 存取樣本[19]。權(quán)重和偏置需要更新處理,也采用RAM 存取。經(jīng)過詳細分析處理過程,將一次訓(xùn)練過程分解為7個狀態(tài)。
S0:空閑狀態(tài)。
S1:卷積運算,求卷積層帶權(quán)輸入;輸入新樣本(乒乓輸入)。
S2:池化運算,求池化層激活函數(shù);求全鏈接層帶權(quán)輸入/激活值。
S3:輸出層帶權(quán)輸入/激活值;判決輸出;計算準確率;求輸出層誤差;輸出層偏置梯度;更新輸出層偏置梯度。
S4:求全鏈接層誤差、全鏈接層偏置梯度;更新全連接層偏置。
S5:求全連接層權(quán)重梯度;更新全連接層權(quán)重;求池化層誤差;卷積層誤差,卷積層偏置梯度;更新卷積層偏置。
S6:求卷積層權(quán)重梯度;更新卷積層權(quán)重。
S7:停止狀態(tài)。
時序圖如圖15。其中卷積層的卷積運算及卷積層的權(quán)重梯度需要時間最長。
圖15 訓(xùn)練電路時序圖
根據(jù)時序分析,進行狀態(tài)機設(shè)計。狀態(tài)機的狀態(tài)轉(zhuǎn)換圖如圖16 所示。S7 狀態(tài)即正確率達到設(shè)定閾值,停止訓(xùn)練,此時保留權(quán)重與偏置,直接用于識別數(shù)字即可。
圖16 狀態(tài)機狀態(tài)轉(zhuǎn)換圖
構(gòu)造卷積神經(jīng)網(wǎng)絡(luò),用于手寫數(shù)字的訓(xùn)練與識別。利用quartus II編寫 Verilog代碼并進行編譯綜合,同時調(diào)用ModelSim 軟件進行仿真,仿真結(jié)果如圖17 所示,compare 表示樣本標簽,max_addr 表示識別值,right 表示正確識別的個數(shù),count 為表示訓(xùn)練的總樣本數(shù)計算準確率,統(tǒng)計結(jié)果如表1。當(dāng)樣本數(shù)目為20 000時,準確率達到最大值95.4%,繼續(xù)訓(xùn)練識別率降低。分析原因,當(dāng)參量、類別過于復(fù)雜時,神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的收斂壓力則越大,效果降低。因此,合適的網(wǎng)絡(luò)參量數(shù)目是卷積神經(jīng)網(wǎng)絡(luò)達到良好實驗結(jié)果的必要條件[20]。
圖17 行為級訓(xùn)練結(jié)果
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練60 000樣本,將代碼下載至工作頻率可達 100 MHz 的 FPGA 中,訓(xùn)練耗時約 50 ms,而python訓(xùn)練耗時約8 min。因此速度顯著提高。對于硬件描述語言在數(shù)學(xué)計算上的缺點,也得到了良好解決。即便存在浮點轉(zhuǎn)定點、激活值計算所造成的誤差,也并不影響識別結(jié)果。因此,以硬件實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),保證了實時性、高準確性。
表1 識別率統(tǒng)計結(jié)果
在Quartus II 13.0 中對RTL 級前向電路進行了全編譯及硬件測試,選取訓(xùn)練好的權(quán)重和偏置,電路可正確識別樣本數(shù)據(jù)。網(wǎng)絡(luò)結(jié)構(gòu)在Quartus II 13.0 中進行了邏輯綜合,并利用Modelsim-ASE進行了仿真,正確率可達96%。該設(shè)計基于Intel 公司的Cyclone IV 系列FPGA 芯片EP4CE115F29C7N 進行了驗證,并在DE2-115 開發(fā)板上進行了硬件測試,輸入樣本數(shù)字進行識別測試,隨機選取樣本庫中數(shù)據(jù),灰度值排列如圖18 所示,連接數(shù)碼管引腳,直接顯示識別結(jié)果,完成數(shù)字識別,結(jié)果正確如圖19 所示。該設(shè)計可直接用于小型嵌入式系統(tǒng)進行數(shù)字識別。
圖18 數(shù)字樣本
圖19 識別結(jié)果
本文以硬件描述語言(Verilog)實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),并以手寫數(shù)字識別為測試應(yīng)用。相較軟件實現(xiàn)而言,在保證準確率的情況下,滿足了實時性的要求。盡管硬件描述語言在數(shù)學(xué)計算上存在缺點,但也得到了很好的解決。實現(xiàn)過程存在浮點轉(zhuǎn)定點、激活值計算、求導(dǎo)所造成的誤差,對識別結(jié)果影響較小。卷積神經(jīng)網(wǎng)絡(luò)作為圖像識別的重要工具,要保證識別率足夠高,才可真正應(yīng)用于嵌入式設(shè)備,后續(xù)工作還需深入研究,例如增加網(wǎng)絡(luò)層數(shù)將準確率再度提高或者實現(xiàn)其他識別應(yīng)用等。