羅會蘭,易 慧
(江西理工大學 信息工程學院,江西 贛州 341000)
傳統的圖像分類算法首先對圖像進行特征提取,然后將獲取到的特征描述符來充分描述圖像的完整信息。即將原始圖像包含的一些特定信息充分提取,進而用來表示圖像的結構化特征數據,然后將圖像的結構化特征數據傳輸到可進行網絡模型訓練的分類器,最終得到圖像分類結果。該方法得到的圖像分類準確度取決于手工提取特征的充分性。
卷積神經網絡主要由若干層不同尺寸大小的卷積層和池化層組成,前一卷積層的輸出特征圖作為后一卷積層的輸入。其中卷積層主要由一個大小固定的卷積核與輸入進行卷積運算,正好對應模擬了生物視覺系統中的簡單細胞,而池化層則是一種下采樣操作,用來擴大感受野(receptive fields),并且獲得一定的不變性,例如旋轉不變性,尺度不變性。若干卷積層和池化層的組合,其功能相當于一個特征提取器;隨后的若干層由全連接層構成,其作用相當于一個分類器。一般情況下,特征信息提取越完整,越能有效改善分類精度,但是沒有區分度的特征信息通常會對分類結果產生不好的影響。在當前圖像數據集龐大的情況下,隨著卷積神經網絡模型深度的不斷加深,寬度不斷加寬,這種特征算法耗費大量人力物力,并且效率低下。
為了解決圖像特征信息提取不完整的問題,本文將迭代訓練卷積神經網絡模型和集成學習分類器兩者相結合,提出一種使用迭代訓練卷積神經網絡模型和集成學習相結合的圖像分類算法,旨在提升圖像分類精度,使卷積神經網絡模型訓練效率更高。通過構建三流卷積神經網絡模型,然后對3個網絡流采用迭代訓練的方式訓練卷積神經網絡,這樣便可以提取到完整的能夠描述圖像的特征信息。最后采用集成學習的思想,根據各網絡流基分類器的表現性能,賦予分類器不同權重,能力越強的分類器權重越大。
卷積神經網絡發展已經日趨完善,從近幾年ImageNet競賽圖像分類中表現出色的隊伍中我們不難發現,由于當前龐大的訓練數據和多并行GPU加速運算效率帶來的便利,當前該領域已經采取了多種不同的方法來提高圖像分類精度。例如,Zhang等[6]提出了一個Maxout Network模型,相當于卷積神經網絡的激活函數層,替換了之前卷積神經網絡模型常用的Sigmod,Relu,Tanh等函數,但又不同于這些激活函數,它是一個可學習的激活函數,網絡中的參數都是可學習變化的,并且可以擬合任意的凸函數。因為Maxout是一個分段線性函數,然而任意一個凸函數都可由線性分段函數以任意精度進行擬合,即可以擬合上述3種常用的激活函數。但是這種方法的不足之處在于新的激活函數的提出會導致網絡參數個數比原始網絡參數成倍的增加,在數據量較大的情況下,會對網絡模型帶來巨大負荷,造成“維數災難”[7]。因此這種方法并不適合數據集較大的情況。
而針對數據量少或包含罕見類的數據集的分類問題,將先驗知識添加到決策樹的結構中,同時將這些先驗知識應用于網絡模型的最后一層網絡層,根據加入的先驗知識得出的圖像分類性能差異模型,將得到的圖像分類性能較強的網絡模型賦予較大的權重,可以改善深度卷積神經網絡的性能。Lin等[8]提出的NIN網絡模型,將多個感知卷積層替換了傳統的卷積層,以此來提升網絡泛化能力和增強抽象特征信息的提取能力;同時利用全局平均池化層替換了網絡模型中的全連接層,并且最后加上Softmax層用作分類。Xiao等[9]提出將先驗知識添加到決策樹的結構中,同時將這些先驗知識應用于網絡模型的最后一層網絡層,根據加入的先驗知識得出的圖像分類性能差異模型,將得到的圖像分類性能較強的網絡模型賦予較大的權重,最后運用類繼承的圖像分類方法來達到相同類別間的圖像特征信息共享。這種方法從一定程度上擴充了訓練的數據集,并且能夠解決圖像數據樣本量不足的問題以及罕見圖像類別數據集的分類問題。Lee等[10]利用了一個先驗經驗,如果能夠讓圖像特征具有區分性,則分類性能就會比較優越。文中在卷積神經網絡的基礎上對隱藏層進行監督學習。即對卷積神經網絡的隱藏層采用Squared Hinge Loss,使得卷積神經網絡的隱藏層具有區分性。但是文中并沒有對這種先驗經驗方法是否真實有效進行驗證說明。Agostinelli等[11]提出了一個自適應分段線性激活函數,每個神經元能夠使用梯度下降算法獨立學習。Yan等[12]通過將深度卷積神經網絡模型添加到具有兩級分類層次的卷積神經網絡結構中,以此進一步加深卷積神經網絡的網絡層深度。通過粗略調節網絡參數和加載預訓練模型來微調網絡參數相結合的方法,并以此改善網絡性能。Murthy等[13]通過運用決策樹理論和將不同類型的圖像樣本劃分成多個區域子塊的方法構建了深度決策網絡,達到不同類別樣本分區域分別聚類的目的。上述這些方法均是從網絡模型結構,激活函數,以及將傳統機器學習與深度學習結合的幾個方面進行模型的改進創新,并且取得了性能的改進。
卷積神經網絡是一個由卷積層與降采樣層交替出現的多層神經網絡,每個網絡層由多個二維特征平面組成。CNN首先通過反向傳播算法 (backpropagation algorithm,BP)來預測輸入圖像的分類結果,然后將實際得到的正確圖像標簽和預測的正確圖像標簽進行比較,以此得到分類誤差,最后利用梯度下降算法將網絡權值更新。卷積層是模型的重要網絡層,而特征提取則是計算機視覺任務中至關重要的問題。以CaffeNet網絡模型為例,本文的網絡模型結構如圖1所示,主要由特征提取部分,分類器和融合分類器3部分組成。其中圖1中只畫出了3個子網絡流所對應的分類器。在訓練分類器階段,本文利用集成學習訓練了多個分類器,鑒于文章篇幅大小有限,圖1中只畫出了其中3個。網絡框架中的3個子網絡S1,S2和S3均可以設計成NIN[8],ResNet[14],VGGNet[15]等其它常用的卷積神經網絡模型。

圖1 網絡結構
對網絡模型進行迭代訓練,主要是對網絡框架中的3個子網絡S1,S2和S3之間,固定其中兩個子網絡的模型參數,以迭代訓練的方式微調另外一個子網絡。一方面,這樣做主要是考慮到GPU內存限制和減少網絡模型過擬合的問題。另一方面,相對于另外兩個特征提取部分,這樣提取到的圖像特征更詳細豐富且具有區分性。Hou等[16]提出了一種新穎高效率的卷積神經網絡模型訓練方法——迭代交替訓練。這種訓練方法主要以單個卷積神經網絡模型為基礎,從網絡框架的形式上構建一個孿生卷積神經網絡模型;然后分別對兩個具有相同網絡參數的網絡模型進行訓練,迭代訓練多次后,最后微調迭代訓練成功的孿生網絡(即識別率較高的網絡模型),以此來得到兩個具有相同網絡結構模型的互補特征,提升分類準確率。本文受到此文獻迭代交替訓練方法的啟發,文中的3個子網絡也采用這種迭代交替訓練的方法來充分提取不同類別圖像的具有區分性質的圖像特征,從而提升網絡模型的分類準確率。
在單個卷積神經網絡模型中,首先對單個卷積神經網絡模型進行訓練,根據單個卷積神經網絡模型的分類性能表征的強弱,持續對表征分類性能良好的卷積神經網絡模型進行迭代交替訓練。在訓練過程中,由單流網絡變成孿生雙流網絡,通過訓練雙流網絡得到的互為補充的圖像特征信息實現圖像充分有效的提取。本文的方法以迭代交替訓練雙流網絡結構為基礎,在首迭代訓練雙流卷積神經網絡模型的時候,三流結構的子網絡S1的網絡參數設定為初始參數(即對應最原始的卷積神經網絡模型參數),只訓練三流網絡結構的子網絡S2和S3,此時的損失函數為
Loss1=λs2loss_S2+λs3loss_S3
(1)
然后在第二次迭代的時候,固定S2,訓練子網絡S1和S3,此時的損失函數為
Loss2=λs1loss_S1+λs3loss_S3
(2)
最后在第三次迭代的時候,固定S3,訓練子網絡S1和S2,此時的損失函數為
D.若A是應用最廣泛的金屬,反應④用到A,反應②⑤均用到同一種氣態非金屬單質,實驗室保存D溶液的方法是加入適量鐵粉與稀鹽酸
Loss3=λs1loss_S1+λs2loss_S2
(3)
3個子網絡重復迭代交替多次訓練,直到Loss1,Loss2和Loss3這3個損失函數的數值都趨于穩定,然后在以圖像分類性能表征較強的3個子網絡流S1,S2和S3網絡為基礎,對3個子網絡流進行微調,此時的損失函數為
Loss3=λs1loss_S1+λs2loss_S2+λs3loss_S3
(4)
以上4個損失函數中的λ都參照文獻[16]中的設置取0.3,其中loss_S1, loss_S2和 loss_S3用的都是softmax損失函數。
在訓練參數復雜的神經網絡時,如果沒有足夠大的訓練數據集,模型極有可能陷入過擬合的狀態。為了解決網絡模型過擬合的問題,同時增加足夠的圖像數據,更有效提取到圖像中有區分度的特征,并且減少圖像中特征數據的冗余,提高模型的分類精度。文中在圖像預處理階段,采用了數據增強的操作方法,一方面擴充了數據集,另一方面可以得到不同類別圖像更豐富有效的圖像特征。例如:將原始圖像旋轉一個小角度,添加隨機噪聲,帶彈性的形變和截取原始圖像的一部分等方法。
圖像增強的具體操作為:圖像平移,目的是讓網絡模型學習到圖像的平移不變性;圖像旋轉,旨在讓網絡模型學習圖像的旋轉不變性特征;并且調節圖像不同亮度和對比度,可以得到不同光照條件下圖像的不同特征。
集成學習(ensemble learning)在計算機視覺領域應用較為廣泛。近年來該方法是各個領域的研究重點,并且該方法在圖像識別領域對圖像分類精度的提升有著很大的潛力,具有其獨特的優勢。
集成學習的主要思想是將不同分類器進行集合,根據各分類器的表征性能進行合理選擇并且重組,旨在獲得比單個表征性能最好的分類器還要優秀的分類精度[17]。在圖像分類問題上,單個分類器的性能表現出來的隨機性較大,并且不穩定。但是通過引入集成學習的思想,某一個網絡模型在學習某些圖像特征方面,能夠得到良好的結果。因此,選取訓練得到的表征性能較強的不同網絡模型集成,得到的網絡模型泛化能力更強,在不同的情況下均能得到一個良好的分類結果。
本文在經過多次迭代訓練后,得到多個分類器,本文中集成學習分類器的示意圖,如圖2所示。

圖2 分類器融合結構
如圖2 所示,采用文獻[18]中的直接平均法對分類器進行多網絡模型集成訓練,直接平均法通過對不同模型產生的類別置信度求平均值而得到最終的分類結果。假設共有N個模型待集成,對測試樣本D,其測試結果為N個C維(C為數據的標記空間大小)向量q1,q2,…,qN。 直接平均法對應的公式如下
(5)
對于加權平均法中網絡層權值大小的設定,根據不同網絡模型在訓練集上單獨表征的圖像分類性能來確定。因此圖像分類性能準確率較高的網絡模型權值較大,圖像分類性能準確率低的網絡模型的權值較小。
為了測試該網絡模型的有效性和泛化性能,選取了CaffeNet[19],VGGNet[15],NIN[8]和ResNet[14]這4個常用的網絡模型,分別在CIFAR-100[20],Stanford Dogs[21]和UEC FOOD-100[22]這3個廣泛使用的數據集上進行實驗測試。
本文進行實驗操作的硬件配置為:CPU為Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz,內存512GB,4塊16GB的NVIDIA Tesla P100-PCIE,系統類型為64位Win10操作系統。本文實驗結果采用平均精度均值(mean average precision,mAP)[23]來評價卷積神經網絡性能的表現差異。mAP算法不僅考慮了圖像分類的召回率,而且考慮了圖像分類性能好壞的排名分布情況,可以較為全面地反應網絡性能。
CIFAR-100數據集由60 000張彩色圖像組成,包括100種不同的圖像類別,其中每個圖像類別分別有6000張圖像,圖像像素尺寸大小為32×32。在本文實驗中,隨機的選取50 000(即每類100張圖像)張圖像用來作為訓練數據集,剩下的10 000張圖像作為測試數據集使用。
Stanford Dogs數據集是一個主要用于圖像細粒度分類的數據集,合計20 580張圖像,由120種不同品種的狗組成,每個品種的狗的圖像數量為148張~252張。本文將該數據集劃分為訓練集和測試集兩大類:12 000張圖像用作訓練集,8580張圖像用作測試集[24]。
UEC FOOD-100數據集是一個主要用來識別不同種日本食品的數據集,合計14 461張圖像。包含了100個不同食物類別,每個類的圖像數目為101到729不等,本文將該數據集劃分為訓練集和測試集兩大類:10 000張圖像用作訓練集,4461張圖像用作測試集[25]。
為了驗證本文提出的基于卷積神經網絡迭代訓練和集成學習的圖像分類方法具有良好的分類性能,本文在上述3個數據集上分別和前期不同研究者的實驗結果進行了分類性能比較。
3.3.1 CIFAR-100數據集上分類性能對比
本文方法在CIFAR-100數據集上的實驗結果見表1。表1中的基礎網絡NIN和ResNet-20的分類結果來源文獻[16],其中,DNI和DNR分別是文獻[16]中以NIN-3和ResNet-20為基礎卷積神經網絡模型搭建的雙流卷積神經網絡模型。從表1的實驗結果可以觀察到,本文的方法在NIN和ResNet-20兩個網絡模型上均取得了良好的性能。其中,在NIN網絡模型上,本文的方法比文獻[16]中的單個網絡模型準確率提高了4.58%,比文獻[16]中的雙流NIN網絡DNI準確率提高了1.73%。在ResNet-20網絡模型上,本文的方法較文獻[16]中單個網絡模型提高了6.15%,比文獻[16]中的雙流網絡DNR準確率提高了2.81%。并且,CIFAR-100數據集在本文提出的方法上均取得了較好的結果。實驗結果表明,本文提出的三流卷積神經網絡迭代訓練和集成學習的算法能夠充分完整地提取到圖像的充分有效特征信息,使得圖像分類性能有比較顯著的提升。

表1 CIFAR-100數據集上本文方法的mAP(%)比較
表2所示的是本文方法與當前一些主流方法[8,10-13,16]在CIFAR-100數據集上的分類性能的比較。其中文獻[8]利用多層感知卷積層來替代傳統卷積網絡層,本文的方法較文獻[8]中的方法提高了10.92%。文獻[10]對卷積網絡模型的隱藏層進一步運用監督學習的方法來獲得充分有效的圖像特征信息,實驗結果得到的準確率為65.43%,本文的方法較文獻[10]中的方法提高了9.81%。文獻[11]提出了一個自適應分段線性激活函數,并利用該激活函數來替換卷積神經網絡中的Softmax函數,進行圖像特征提取。本文的方法較文獻[11]中的方法提高了9.64%。文獻[12]通過將卷積神經網絡層數較多的深度CNN添加到兩級類別層次結構中來獲取圖像充分有效的特征信息,使用粗類別圖像分類器來得到圖像特征信息簡單的簡單圖像類別,精細類別分類器來獲取圖像特征多而復雜的圖像類別,并且通過運用粗類別圖像分類器與精細類別分類器相結合的方法,得到的圖像分類準確率為67.38%,本文的方法較文獻[12]中的方法提高了7.86%。文獻[13]提出深度決策網絡DDN,得到的圖像分類準確率為68.35%,本文的方法較文獻[13]中的方法提高了6.89%。本文方法在ResNet-20方法的圖像分類準確率分別比文獻[16]中的DNI,DNR提高了5.48%,2.81%。由表2實驗結果可以看出,本文方法相較于當前一些數據集在不同卷積神經網絡模型上的方法準確率均有一定提升,具有較好的分類性能。

表2 各主流方法與本文方法的mAP(%)比較
3.3.2 Stanford Dogs數據集上分類性能對比
因為CIFAR-100(32×32)數據集比CaffeNet(227×227)和VGGNet(224×224)兩個網絡模型的輸入尺寸要小很多,如果增大CIFAR-100中的圖像尺寸,會導致圖像模糊不清,在一定程度上給實驗結果帶來影響。所以,本文選擇了另外一個數據集Stanford Dogs用來驗證本文方法在CaffeNet和VGGNet網絡模型上性能。表3中展示了Stanford Dogs數據集利用本文方法在CaffeNet和VGGNet兩個網絡上的實驗結果。由表3的實驗結果可以看出,在CaffeNet網絡模型上,本文的方法均比文獻[16]中的單個CaffeNet網絡模型和雙流網絡模型DNC的分類精度要高,分別高了2.30%,1.20%。同時,在VGGNet網絡模型上,本文的方法分別比文獻[16]中的單個VGGNet高了5.76%,2.31%。實驗結果表明,本文提出的方法比文獻[16]中的雙流卷積神經網絡模型分類精度更高,具有較好的分類性能。

表3 Stanford Dogs數據集上的mAP(%)比較
3.3.3 UEC FOOD-100數據集上分類性能對比
表4中展示了UEC FOOD-100數據集利用本文方法在CaffeNet和VGGNet兩個網絡上的實驗結果。由表4的實驗結果可以看出,在CaffeNet網絡模型上,本文的方法比文獻[16]中雙流網絡模型DNC和雙流網絡模型DNV分類精度有較為明顯的提升。其中,在CaffeNet網絡模型上,本文方法分別比文獻[16]中的單個CaffeNet網絡模型和雙流網絡模型DNC分類精度高了3.12%,1.93%。在VGGNet網絡模型上,本文方法分別比文獻[16]中的單個VGGNet網絡模型和雙流網絡模型DNV分類精度高了3.57%,1.78%。由此說明了本文提出的方法可以有效學習到圖像的充分有效特征,使得圖像分類精度提升較為顯著。

表4 UEC FOOD-100數據集上的mAP(%)比較
本文提出了一種基于卷積神經網絡的迭代訓練和集成學習的圖像分類方法。該方法主要運用了迭代訓練的方式,來訓練3個子網絡流。這種對卷積神經網絡進行迭代訓練的方式主要有兩個優點:①訓練時網絡梯度回傳的層數更少,所以梯度消失的問題更少;②具有更好的并行性,每一個子網絡流可以進行單獨訓練,故可以獲得更好的訓練效率,并減少設備內存空間的限制。并且對圖像數據預處理采用了數據增強的方式,這樣不僅擴充了圖像數據集,而且能有效減少網絡模型過擬合。最后采用集成學習對分類器進行集成,得到分類結果。本文在Stanford Dogs,UEC FOOD-100和CIFAR-100數據集上的實驗結果驗證了本文提出的方法在圖像分類中具有較好的性能。本文的良好性能主要是通過對3個子網絡進行多次迭代訓練獲得的。在后續的工作中將探討利用網絡壓縮模型來減少網絡參數,同時在保證網絡性能良好的基礎上,提高模型訓練效率。