段 傲,李 莉,楊 旭
(天津職業(yè)技術師范大學電子工程學院,天津 300222)
世界上大約有200~300種不同品種的狗,有的品種極其相似,分類標準復雜且難以準確區(qū)分。目前,狗品種識別大都基于人眼直接觀察,這種方法準確性不高,且受人工經驗和主觀因素的影響較大?;谏疃葘W習的圖像識別是機器視覺領域的發(fā)展前沿,在很多領域都有廣泛應用[1],如在人臉識別領域,有使用深入研究面孔的自動面部識別系統(tǒng)[2];在場景識別領域,場景特征融合技術有效提高了場景識別精度[3];在農業(yè)領域,可以進行作物識別[4]等。本文提出基于AlexNet的圖像識別與分類算法,旨在解決人眼識別犬類準確率不高且效率低的問題。
卷積神經網絡屬于前饋神經網絡,其具有一定的深層結構。模擬人的大腦表面視覺形成過程的卷積神經網絡,也成功地成為了目前機器視覺領域內的最實用的模型結構[5]。圖像輸入卷積神經網絡后,直接進入輸入層,該層負責原始圖像的預處理,如平均、分散化等;然后進入卷積層,對圖像中的每個特點起首局部感知;第3層是BN層,BN層為批量歸一化層,對卷積層抓取的特征進行歸一化操作,以便增加學習率,還可以提高訓練速度以及改善流經網絡的梯度[6];第4層為池化層,用來提高網絡模型的泛化性;最后通過全連接層輸出。
卷積層是卷積神經網絡最重要的部分,圖像特點的抓取取決于卷積層。卷積層經由過程卷積模板進行對象的提取,跟隨卷積模板的轉變,卷積層也會在不同的特征通道進行運算,從而實現(xiàn)不同特點的提取和相同特點的整合。根據數據的變化,通過優(yōu)化算法可以將卷積核調整到適合的權值,進而使提取的特征最為有效[7]。
卷積神經網絡的運算公式為
式中:W為輸入圖片的寬和高;F為卷積/池化和的大?。籗為卷積/池化的步距;P為padding的步數。
卷積過程描述為
式中:kil(j′)為第j′層的i卷積核的權重;xl(rj)為l層的第j個卷積局部區(qū)域;W為卷積核的寬度[8]。
AlexNet網絡是深度卷積神經網絡的起源。在2012年的ImageNet競賽圖像分類任務中,石翠萍等[9]采用AlexNet網絡結構取得了最好的成績,這也使得卷積神經網絡在圖像分類中取得了階段性成功。本研究對近幾年比較具有代表性的AlexNet[10]進行改進。
AlexNet網絡包含5個卷積層(Conv),3個最大池化層(Max pooling)和3個全連接層(dense)。卷積層和最大池化層交替排布,不同的卷積層有不同的卷積核,提取低層次特征的能力也不同。
AlexNet網絡的亮點在于利用雙GPU進行網絡加速訓練,對照利用單GPU訓練學習,學習速度有很大的提高。AlexNet網絡使用的激活函數是ReLU函數,而不是傳統(tǒng)的Sigmiod函數,這也加快了學習的速度,并且很好地解決了梯度彌撒問題。LRN局部響應歸一化是在ReLU后對局部神經元建立競爭機制,使得響應較大的值變得相對更大,抑制響應較小的神經元,加強網絡的泛化本領。
Hinton在2012年的AlexNet網絡中給出其具體的計算式為
式中:a為卷積層后的輸出結果,其表現(xiàn)為一個四維數組;N表示通道數;n為相鄰的卷積核;k為偏差;α和β為自定義值[11]。
此外,AlexNet還增加了Dropout層,其以0.5的概率隨機失活神經元,失活的神經元便不再參與進行前向傳播與反向傳播,由于神經元并不是依靠某一個特定神經元而存在,因此Dropout技術有效減少了神經元之間復雜的連接關系,在一定程度上也有效地減少了過擬合問題。
深度學習經由過程神經網絡將抽樣空間映射到概率特征分布空間。在機器學習的框架下,對于描述模型的復雜程度,部分學者認為Error=Bias(偏差)+Variance(方差),這可以理解為模型的預測錯誤率由兩部分組成:第一部分為預測值的期望與真實值之間的差距,即為偏差;第二部分為預測值的離散程度。方差越大,數據的分布越離散,就會帶來過擬合問題[12]。簡單來說,當訓練集與驗證集的特征分布差距很大,或者模型相較于樣本量過于復雜時,機器通過學習方法得到的結果并不樂觀,這說明模型已過擬合。為了解決過擬合問題,通常使用正則化方法,在正則化中會保留所有的特征變量,但這樣會相應減少特征變量的數量級,簡而言之,即為損失函數加一個正則化項??上扔嬎愠稣齽t化項,再把其加在目標函數,使其影響目標函數最優(yōu)點的選取[12]。L1和L2是最常見的正則化范例,它們通過增加一個額外項來更新目標函數,因此稱該額外項為正則項。常見的L2正則化公式為
為了構建訓練識別準確率高和收斂速度快的神經網絡模型,本文提出了一種改進的AlexNet卷積神經網絡模型。AlexNet每層使用不同的卷積核,因此每層提取的低層次特征不同。本模型分別使用11×11的卷積核48個,7×7的卷積核128個,5×5的卷積核192個,3×3的卷積核128個。仍使用RelU作為網絡的激活函數,3個最大池化層來縮小模型的大小,并且增加了被提取特征的魯棒性。此外,在模型的通道維度增加了注意力機制(attention mechanism),這樣網絡通過自主學習的方式得到不同特征通道的重要程度,通過給重要程度高的特征通道增加一個權值達到使網絡關注一些特征通道的作用。然后使用4 096和1 024個神經元進行全連接,每一個全連接層后面加上Dropout層,并且在原有Dropout層上繼續(xù)增加了權重衰減(正則化)。改進后的網絡框架如圖1所示。
圖1 改進后的AlexNet深度學習網絡框架
經典的卷積層或者全連接層在進行特征信息的傳遞時,可能會發(fā)生信息的缺失和損耗等,分類狗的圖片需要識別較高層次的特征,因此特征信息損耗、丟失等問題會降低算法的識別效率。注意力機制可以認為是一種資源分配的機制,根據對象的重要程度分配資源而不是平均分配。選取目標任務中重要的關鍵信息是注意力機制的主要任務[13]。
保持輸入和輸出神經元不變的情況下,Dropout層隨機失活了一些隱藏的神經元,再重新把輸入通過已經改變的神經網絡進行前向傳播,再把得到的loss函數結果通過神經網絡反向傳播。首先選取一小部分的訓練樣本,先進行一個前向的傳輸過程,后將loss函數結果反向傳輸回來,然后依據隨機梯度下降法更新參數[14],通過不斷地重復這一過程來進行訓練。正則化是指對算法的修改,本質上是在削減泛化的偏差,是在目標函數后面加上參數的L1或L2范數和。
實驗環(huán)境為Windows 10 64位系統(tǒng),采用pycharm 2020.3.3 64 bit,搭 載Intel(R)Core(TM)i5-10200H CPU@2.40 GHz 2.40GHz處理器。操作環(huán)境為TensorFlow+python3.7。
斯坦福大學犬類數據集是由Stanford創(chuàng)建,該數據集給出大量的犬類圖片信息,包含了世界各地的120種犬的圖像數據。此數據集是經由過程ImageNet中的圖像和解釋構建的,使用此數據集,有利于本文方法與其他方法在相同的條件下進行對比實驗。該數據集包含了20 580張犬類圖片,分為120種差別類別的犬的品類。本實驗把全部圖像按7∶3的比例分為訓練集和測試集,包含訓練集14 458張,測試集6 122張。原數據集每張圖片大小不等,在預處理中把每張圖片的像素都修改為227×227。樣本被分為0~119號,分別對應一種類別的犬圖像。圖5給出了9種不同種類犬的圖片。
圖2 9種不同種類犬圖片
AlexNet網絡的默認輸入是227×227,由于數據集圖像的來源復雜且種類、大小不統(tǒng)一,首先需要統(tǒng)一圖像的分辨率,本實驗中將所有圖像的分辨率修改為227×227。
本實驗的訓練過程采取了哥倫比亞大學的犬類圖像數據集,訓練集和測試集的比例為7∶3,初始學習率設置為0.000 05,batch_size為80,epoch為200。Loss函數使用特征重建損失函數,標準形式為
式中:Cj、Hj、Wj分別為特征圖的通道數、長和寬;j為網絡的第j層;l為損失函數的損失值。
Dropout值對網絡訓練結果有一定的影響,設置失活一定比例神經元節(jié)點,失活的神經元節(jié)點便不再更新其對應的權值,AlexNet網絡默認的Dropout值為0.5。在0.4~0.7進行Dropout值的改動,實驗發(fā)現(xiàn),Dropout值在0.5時,損失率為0.189,模型訓練效果最好。因此,本實驗的Dropout值也設置為0.5。
實驗驗證了在不使用正則化、使用L1正則化和L2正則化,以及在改進后的網絡結構加正則化的條件下,對隨機相同的犬圖像進行預測識別,識別準確率和運算時間的對比結果如表1所示。
表1 不同方法識別準確率及訓練時間的比較
由表1可知,對于所驗證的隨機犬種類,本文方法的識別率和訓練速度均得到相應提高。
本文針對人工識別犬種類抽檢率低、準確性不高、勞動強度大且受人為因素影響等弊端,利用深度學習和傳統(tǒng)的分類算法,在AlexNet網絡原有結構上進行了改進,減少卷積層并修改卷積核的大小和個數,增加注意力機制與正則化。本文改進的結果網絡模型可以有效、快速地對犬種類進行識別與預測。由于數據集的局限性,本文算法的適用性還需進一步驗證。