宋宇鵬, 邊繼龍, 安 翔, 張錫英
(東北林業大學信息與計算機工程學院,哈爾濱150040)
圖像識別分類是計算機視覺領域內的一項關鍵技術。近幾年硬件設備和理論水平不斷發展,圖像識別分類技術被人們廣泛地應用在醫療疾病檢測、工程災害預警和林業監測評估等各個領域[1-6]。圖像識別分類技術能夠有效地提取圖像中的特征,并根據所提取的特征判斷圖像所屬類別。隨著圖像識別分類數據規模和特征維度的增加,傳統機器學習方法已經不能完全滿足需要,因此以神經網絡為主流的深度學習方法成為發展的方向。自2012年Hinton團隊提出AlexNet[7]模型后,使用深度卷積神經網絡進行圖像識別分類成為熱點,不同的網絡模型陸續被提出,如VGG[8]、NIN[9]、Inception[10]、ResNet[11]、DenseNet[12]和NASNet[13]等,在各個網絡模型識別分類精度不斷提高的同時,模型訓練的各個階段也進行相應地改進,其中包括數據預處理、損失函數設計、網絡結構調整和模型優化等方面。網絡模型深度的增加使網絡參數量變大,更容易導致網絡模型出現“網絡退化”,難以訓練。
由于不同領域背景的數據集各有差異,某些特定領域的分類任務中,例如,林業工程中復雜樹種分類問題。僅使用上述的神經網絡并不能很好地完成識別分類任務,而簡單地增加網絡的層數會導致網絡參數冗余,甚至出現網絡退化現象。
就此,提出在神經網絡模型DenseNet中引入注意力機制,更有效地提高網絡的整體性能。通過注意力機制去更好地獲取數據特征,同時模型不會因為過深而出現網絡退化的問題。提出的模型既解決了特定領域內復雜數據集識別分類效果不理想的問題,還提高了網絡訓練效率。針對林業工程中多類別復雜樹種分類任務,以此背景開展實驗,使用基于注意力機制的DenseNet模型,取得了較好的結果。為證明模型的通用能力,使用公共數據集SVHN驗證模型的魯棒性。
注意力機制同神經網絡一樣都是受到仿生學啟發。人類在進化發展過程中逐漸形成的視覺注意力機制能夠快速掃描圖像,判斷出感興趣區域并投入更多的注意,能夠較好地獲取感興趣區域的詳細信息,對于非感興趣區域則較少關注,從而更準確地幫助人們捕捉信息,提高自身事務處理能力。注意力機制在深度學習中的應用同人類注意力機制相似,其目的是通過使用注意力機制更快速、準確地獲取重要信息,忽略無關信息,以提高工作效率。注意力機制最早由計算機圖像領域中提出,經發展現已被應用在許多計算機領域的研究方向,如:機器翻譯,文本分類,圖像分割和圖像分類等[14-17]。
注意力機制訓練過程將注意力機制分為硬性注意力(Hard Attention)機制和柔性注意力(Soft Attention)機制。硬性注意力是一種非確定性的隨機動態過程,在訓練過程中不可微分,大多通過增強學習完成。柔性注意力是一種確定性的注意力機制,其最大的特點在于該注意力機制在訓練過程中是可微分的,能夠通過網絡梯度及反饋,實現端到端的自動訓練。由于柔性注意力能夠實現自動訓練,現階段圖像分類任務中較多使用柔性注意力機制。根據注意力域的不同,將柔性注意力機制分為空間域(Spatial Domain)、通道域(Channel Domain)和混合域(Mixed Domain)?;诳臻g域注意力機制的典型網絡就是空間映射網絡(Spatial Transform Network,STN),該網絡模型2015年由Jaderberg等[18]提出,通過注意力機制提取重要的原始圖像空間信息,并將其保存在新的空間信息中?;谕ǖ烙蜃⒁饬C制的典型網絡,即2017年提出的SENet[19],該網絡通過得到每個通道與重要信息之間的關聯度,產生基于通道域的注意力機制?;旌嫌蜃⒁饬C制的典型網絡—殘差注意力網絡(Residual Attention Network,RAN)[20],該網絡模型通過使用“殘差方式”去學習其內部每一個特征元素的權重,并形成基于空間和通道雙向的注意力機制,能夠較好地獲取原始圖像信息,在一定程度上降低了網絡參數冗余度。
密集神經網絡(DenseNet)是2017年由康奈爾大學、清華大學、Facebook FAIR實驗室聯合提出的一種深層卷積神經網絡。DenseNet受到ResNet模型結構中“跳躍連接”的特征傳遞方式所啟發,提出了一種“前層傳遞”的方式,即網絡模塊中每層的輸入都來自于模塊中該層前面所有層的傳遞。DenseNet神經網絡的“前層傳遞”方式能夠有效地將原始特征傳遞給后續網絡,同時還能避免因為網絡過深導致的“梯度彌散”問題。
ResNet神經網絡通過恒等映射的方式進行特征傳遞,防止梯度彌散。ResNet特征傳遞方式:

DenseNet的特征則是使用前層之間的傳遞方式,DenseNet特征傳遞方式:

式中:Xl為第l層的輸出;Hl(·)為每層的非線性函數;[·]為各層的密集連接。相比于ResNet恒等映射后相加的特征傳遞方式,DenseNet的網絡參數量較少,且更有利于網絡中信息的傳遞,使得DenseNet網絡有更好的魯棒性。

圖1 DenseNet模型結構
DenseNet網絡主要通過內部密集模塊(Dense Block)實現神經網絡的密集連接,如圖1所示。其中每個Dense Block內部都包含一定數量的神經元,神經元個數根據網絡任務不同而有所區別。其中每個神經元主要由批歸一化(Batch Normalization,BN)、激活函數(RectifiedLinearUnits,ReLU) 和卷積層(Convolution,Conv)組成,每個神經元都與其之前的神經元連接,對于含有L個神經元的Dense Block,則有L×(L+1)/2個連接。其中Dense Block的增長率表示每層輸出的特征圖個數。為了實現更好的效果,提高網絡計算效率,每個神經元中都會添加一個卷積層作為Dense Block的瓶頸層(Bottleneck Layer)減少特征圖數量,形成最終的神經元BN+Relu+Conv(1×1)+ BN +Relu+Conv(3×3)。DenseNet模型在相鄰的Dense Block之間添加Translation Layer降低網絡整體參數量,Translation Layer由一層卷積層和一層池化層(Pooling Layer)構成。經過實驗驗證表明,DenseNet不僅能夠提升目標分類準確率,還能有效防止梯度彌散。
注意力機制能提高網絡模型對圖像特征的提取能力,幫助網絡獲取興趣區域,減少對非重要信息的關注度,提高網絡的分類識別效率。與此同時,DenseNet是經典的圖像分類模型,其“前層傳遞”的特征傳遞方式能將原始特征傳遞給后層網絡,有效減緩“梯度彌散”現象,能較好地完成大多數圖像分類識別任務。受到兩者特性所啟發,提出了基于注意力機制的DenseNet模型,該模型將注意力機制引入DenseNet結構中,將原有的DenseNet進行改進,形成最終的新型網絡結構,如圖2所示。
基于注意力機制的DenseNet模型(見圖2)的核心是提出了模型內部的注意力密集模塊(Attention-Dense Block,ADB)。具有ADB的網絡有更強的特征提取能力,同時保留了DenseNet對原始特征的“不破壞性”傳遞的特點,在特定領域背景分類任務的數據集中表現出色。

圖2 基于注意力機制的DenseNet模型結構圖
ADB分為主干分支和標記分支。主干分支以Dense Block為基礎進行設計,采用DenseNet神經元前層傳遞的方式進行特征傳遞,盡可能地保證了網絡有較好的特征信息處理能力。其中每個主干分支設計包含6個神經元,每個神經元都添加了Bottleneck Layer,最終形成單個神經元結構為BN+Relu+Conv(1×1)+BN+Relu+ Conv(3×3)。這種結構使得偏后的網絡層也能獲得較多的特征信息,能夠避免梯度彌散的發生,具有較好的分類性能。同時ADB還設計了標記分支部分。該部分受到殘差注意力網絡所啟發[20]。基于混合域的殘差注意力機制,采用空間域和通道域兩個方向同時學習,通過輸出與主干分支數量一致的標記分支特征圖,最后同網絡中主干分支相結合,實現網絡的注意力機制。ADB中的每一個標記分支不僅僅在前向傳播時作為特征選擇器對圖像特征進行篩選,在網絡訓練反向傳播階段時,該部分還可以作為梯度更新的過濾器。標記分支通過下采樣(down sample)和上采樣(up sample)運算實現,ADB的標記分支部分通過3組Conv(3×3)和Max Pooling(3×3)完成標記分支部分下采樣運算。其中下采樣運算能夠幫助網絡快速搜索全局特征,獲取興趣區域信息。上采樣使用雙線性插值完成,該運算能獲取特征圖中的興趣區域信息同原始信息相結合,并使用兩個連續的Conv(1×1)運算使得標記分支部分的特征圖尺寸和主干分支特征圖尺寸相同,其后通過激活函數將特征圖數據進行歸一化,以點乘的方式與主干分支的特征信息相結合,實現了端到端的聯合訓練。
根據林業工程的復雜樹種分類任務,經實驗對比最終確定整體網絡包含4個ADB、3個Translation Layer和1個Classification Layer。其中每個Translation Layer由Conv(3×3)和Pooling(2×2)組成。ClassificationLayer包括全局平均池化(Global Average Pooling)和全連接層(Fully Connected Layer)。整個網絡使用Softmax作為輸出層激活函數,將得到的分類結果歸一化,并對結果進行概率判定,最終得到類別判斷結果。
面對背景雜亂、場景復雜、外觀變化較大的分類任務時,僅使用一個ADB難以獲取圖像中的重要信息,且只能對圖像重點信息關注一次,標記分支部分一旦出現錯誤信息,難以修正?;谧⒁饬C制的DenseNet模型使用了多個ADB。簡單地添加多個ADB作為網絡標記分支的方式并不能起到有效的注意力機制,反而會導致網絡模型的性能下降,其主要原因是ADB中經過下采樣、上采樣和卷積等一系列運算后會通過激活函數進行歸一化處理,標記分支部分的特征數據都將變為[0,1]范圍之間的數值,之后標記分支的特征數據同主干分支中的特征數據進行點乘運算,在這一過程中會逐漸降低主干分支部分特征數據值,特征數據在傳遞過程中逐漸衰減,造成訓練困難。與此同時,標記分支判斷圖像原始特征的全局信息獲取興趣區域時,經過歸一化后非重要區域數據得到較低的權重,與主干分支數據結合傳遞時造成對原始特征數據的破壞。針對以上問題,在ADB中使用殘差學習方式去降低其對數據的干擾。
注意力機制的殘差學習方式是受到ResNet中恒等映射的思想所啟發,如圖3所示。大多數注意力機制學習得到權重后直接作用在原始圖像中,以此提高網絡對于重點信息的關注:

式中:Hi,c(x)為第i層c通道經過注意力機制后的輸出;x為主干分支和標記分支的輸入;T(x)為主干分支的輸出;M(x)為標記分支輸出。這樣的學習方式會逐漸導致特征圖信息越來越小,使得網絡模型的性能下降。

圖3 殘差學習方式圖
注意力機制的殘差學習方式提出使用類似于ResNet恒等映射的方法進行改進:

將標記分支的輸出構造為相同的映射,能夠有效的防止網絡模型在訓練過程中出現退化現象。即使標記分支輸出M(x)為0時,該部分并不影響主干分支的特征數據,對于標記分支判定為重要信息的特征,經過注意力機制后重要特征會變得更加顯著。注意力機制的殘差學習方式保證了網絡整體性能,還解決了注意力機制對于數據的干擾問題。
本次實驗以林業工程復雜樹種識別分類為背景,使用Leafsnap網站所提供的樹木葉片數據集進行實驗。該數據集共包含7 719張通過移動設備所拍攝的戶外環境中的樹木葉片圖像,其中共有184種類別的樹木葉片圖像,圖像的原始尺寸為800×600(像素)。為了提高網絡模型的泛化能力,使用更多的數據訓練網絡,對該數據集進行數據增強操作。數據增強方式主要通過:伽馬變換、空間幾何變換、低通濾波圖像平滑和噪聲擾動。經過數據增強操作,共計獲得27 863張224×224(像素)的實驗數據集,其中26 253張做訓練集,1 610張做測試集。經過數據增強后的數據集,在原始數據集基礎上經過縮放、旋轉、裁剪、平移、加噪和調整亮度等操作,盡可能符合真實環境,提高實驗數據的可靠性和真實性。
實驗環境為Linux系統,使用Keras框架設計實現。硬件配置如下:內存256 GB,CPU:Intel(R)Xeon(R)CPU E5-2630 V 4。GPU:Tesla V100 (16 GB)×4。實驗以林業工程復雜樹種識別分類任務為研究背景,對27 863張實驗圖片,184個類別的樹木葉片進行分類識別。使用基于注意力機制的DenseNet模型進行實驗,實驗過程設置100個迭代周期,模型增長率設置為12,初始學習率設置為0.001,采用階梯式衰減,當迭代周期達到50和75時,當前學習率分別降低到目前的1/10。為加快模型收斂,反向傳遞階段采用批次隨機梯度下降法,其中動量參數為0.9,批量大?。╞atch size)設置為64。實驗首先對ADB中標記分支不同的采樣方式和采樣次數進行實驗對比。針對不同的注意力域進行分析對比,得到最優的ADB結構,確定基于注意力機制的DenseNet模型的具體結構。使用基于注意力機制的DenseNet模型同其他網絡模型做比較,并根據實驗結果進行分析。同時使用公共數據集SVHN對網絡模型進行分析驗證。
(1)采樣方式和采樣次數實驗對比分析。標記分支部分主要包括下采樣和上采樣運算,下采樣方式和下采樣次數都會影響ADB的性能,實驗以雙線性插值為上采樣方式,比較不同下采樣次數和不同下采樣方式下網絡的分類性能,選取最優下采樣方式和下采樣次數。
由表1可知,實驗選取最大池化(Max pooling)、平均池化(Average pooling)和重疊池化(Overlapping pooling)3種池化方式,分別下采樣1、2和3次實驗對比,發現在標記分支中使用Max pooling池化3次時網絡模型性能最優,確定網絡ADB的標記分支部分使用3組Max Pooling。

表1 不同采樣方式和采樣次數模型分類錯誤率 %
(2)不同注意力域的實驗對比分析。標記分支隨著主干分支的不同而有所差別。標記分支中的注意力機制能夠根據主干分支而進行自適應改變。標記分支的輸出依靠其激活函數將數據進行歸一化,不同注意力域的注意力機制在網絡中表現也有所不同。設計實驗對比不同注意力域激活函數的網絡模型性能,選擇最優注意力域的注意力機制?;谕ǖ烙蚝涂臻g域的Sigmoid的混合域函數為

基于通道域的L2歸一化去限制空間信息激活的通道域函數為

f3對特征信息做標準化處理,只保留關于空間信息的空間域函數為

式中:i為在空間位置上的取值;c為在通道位置的取值meanc;stdc為第c通道的特征圖所對應的特征值和方差。經過實驗比較混合域、通道域和空間域的Top-1錯誤率見表2,分別為8.75%、9.67%和9.25%?;诨旌嫌虻募せ詈瘮稻W絡模型性能最優。

表2 不同注意力域模型分類錯誤率
(3)同其他網絡模型對比分析。經過實驗(1)和實驗(2)確定基于注意力機制的DenseNet神經網絡模型的具體結構。為了驗證模型的性能,使用卷積神經網絡ResNet26[5]和DenseNet-40[12]網絡進行對比實驗,分析3種網絡使用相同的數據集在相同迭代次數下模型的精確率(Precision)、召回率(Recall)和綜合評價指標F1(F-Measure)。判定網絡模型的性能,各模型測試集精確率如圖4所示。

圖4 各模型Top-1測試集精確率圖
如表3所示,經過實驗對比發現,ResNet26、DenseNet-40和基于注意力機制的DenseNet 3種不同的神經網絡模型,在相同數據集相同迭代次數下基于注意力機制的DenseNet模型測試集的模型綜合評價最優。

表3 各網絡模型的測試集結果 %
為證明基于注意力機制的DenseNet模型的可行性,設計實驗在公共數據集SVHN上驗證網絡模型。SVHN數據集是一個類似于MNIST的數字識別數據集,包括訓練集圖片73 257張,測試集圖片26 032張,此外還有531 131張圖片用于額外訓練。SVHN數據集共包括10個類別,其中每個樣本對應該類別所屬類別標簽。SVHN數據集是從Google街景圖像中得到的自然場景下門牌號碼圖像,圖像中具有簡單的自然場景和數字,與此次實驗研究任務相近,因而選擇SVHN數據集做模型驗證數據集。由于SVHN數據集中圖片尺寸都為32×32(像素)大小,根據數據集情況,模型使用3組ADB進行實驗分析。實驗基于注意力機制的DenseNet模型,使用文章3.2中相同的實驗設備和實驗參數,迭代100個周期,得到該模型在SVHN數據集上的不同迭代周期的測試集精確度,如圖5所示?;谧⒁饬C制的DenseNet模型在SVHN數據集測試集中精確度為98.27%,證明該網絡的可行性。

圖5 SVHN測試集精確率圖
經過實驗分析發現,基于注意力機制的DenseNet模型中ADB標記分支部分采用3組Max Pooling時,基于混合注意力域時網絡模型性能最優。通過在相同實驗環境下對比ResNet26[5]、DenseNet-40[12]和本文的基于注意力機制的DenseNet模型,發現基于注意力機制的DenseNet模型識別分類精確率最高。與此同時,為了驗證所提出的神經網絡模型,使用SVHN數據集進行測試,證明了基于注意力機制的DenseNet模型的可行性。基于注意力機制的DenseNet模型能夠較好地解決網絡模型過于復雜造成的參數冗余、訓練困難和網絡退化問題。在林業工程領域復雜樹種識別分類任務上取得了較好的分類效果。
受到注意力機制和DenseNet卷積神經網絡的啟發,提出了基于注意力機制的DenseNet模型,解決了模型因數據特殊而出現識別效果不佳的問題。實驗以林業工程領域復雜樹種識別分類為研究背景?;谧⒁饬C制的DenseNet模型結合注意力機制和DenseNet的良好特性,使得網絡有較強的特征提取能力,對184種樹木葉片分類過程中取得了較好的實驗效果,證明了基于注意力機制的DenseNet模型的可行性。與此同時,實驗在GPU設備上訓練,訓練時間較長,今后還需對網絡模型及訓練方法進行調整,提高網絡模型的訓練效率。形成實體產品應用在林區工作和林業院校教學中,提高林業工程效率。
·名人名言·
科學的未來只能屬于勤奮而謙虛的年輕一代。
——巴甫洛夫