王飛龍,劉萍,張玲,李鋼+
1.太原理工大學 大數據學院,山西 晉中030600
2.太原理工大學 軟件學院,山西 晉中030600
在當前人工智能不斷發展的時代,圖像處理扮演著舉足輕重的角色。圖像分類作為圖像處理的一個重要分支,促進了大量行業的迅速發展。目前的圖像分類多數是基于大數據進行的,然而在各行業中存在數據收集、清洗困難、噪音過多的問題,這使得多數行業只能提供少量有效的復雜圖像數據,導致圖像分類精度不高。針對小樣本復雜圖像的分類問題是當前圖像處理領域研究的難點和熱點,伴隨深度學習技術的發展,學者們嘗試用神經網絡來解決此類問題。
Lecun 等人提出了卷積神經網絡模型LeNet-5,采用三層卷積、兩層全連接,運用了tanh 激活函數,但tanh 激活函數存在冪運算與梯度消失問題,無法有效對圖像進行分類;Hinton 和Alex 隨后提出了AlexNet,增加了網絡規模,并使用了ReLU 激活函數,使計算復雜度降低,一定程度上解決了梯度消失的問題;Simonyan 等人在2014 年提出了VGGNet,簡化了AlexNet 網絡結構,驗證了通過加深網絡深度可以提升模型性能;2016 年,He 等人提出殘差網絡(residual network,ResNet),解決了深度網絡難以訓練的問題,加大了網絡深度;Szegedy 等人在2016 年提出了卷積分解的理念,在保證模型性能的前提下,降低了模型的參數量與計算量;Hu 等人在2018年提出了SENet(squeeze-and-excitation networks),利用了通道間的相關性來提升模型性能,卻屏蔽了空間相關性;2018 年,Redmon 等人在ResNet 的基礎上,提出了Darknet-53 架構,該架構引入殘差理念,并取消池化層,可以更加有效地提取特征,減少了特征損失。然而卷積神經網絡通過不斷改進雖然能更加有效提取圖像的特征圖譜,卻無法學習特征的空間相關性,只能通過大量樣本提升其泛化性。目前卷積神經網絡針對復雜小樣本圖像的分類問題,主要是通過數據增強提升樣本數量或通過特征融合強化提取的特征等手段,效果卻并不理想。
Hinton 等人于2017 年提出了膠囊網絡(capsule network),將特征表征成向量,考慮了特征空間相關性,訓練所需數據量也大幅減少,相比傳統的卷積神經網絡,在Mnist、Fashion Mnist 等簡單樣本數據集上可以使用更少的樣本獲得較好的分類效果,但在CIFAR 等復雜樣本數據集上表現效果不佳。這是由于膠囊網絡將圖像所有的信息都表征成向量,一方面增加了模型訓練難度,另一方面保留了過多圖像細節特征,導致產生過擬合問題。2019 年,Zhang 等人提出了DCaps,在原始的膠囊網絡中加入了一個殘差塊并在CIFAR 數據集上進行實驗,一定程度上減少了圖像中無用的細節特征,提高了膠囊網絡對復雜圖像的分類準確率,提升效果卻并不顯著。
基于此,本文考慮了膠囊網絡的優缺點,提出一種融合Darknet 與膠囊網絡的分類模型,本模型對小樣本圖像的分類準確率遠高于膠囊網絡、DCaps 和傳統的卷積神經網絡。本文主要在以下方面進行改進:首先將Darknet網絡架構進行改進,將圖像的淺層邊緣特征與深層語義特征進行融合以最大程度地保留圖像中有用的細節特征,再通過膠囊網絡對特征進行向量化表示,可以有效減少分類所需數據量,最后通過動態路由實現圖像的分類;在模型的損失函數中加入網絡各層的L正則化損失項,減輕過擬合的現象,從而提高分類精度。
根據相關研究可知卷積神經網絡的池化操作會造成圖像有效特征的丟失;同時無法對特征進行向量化表達,只能通過訓練大樣本數據提升其泛化性能,導致在處理小樣本數據集時的分類效果急劇下降。基于此膠囊網絡提出使用向量代替網絡中的標量神經元,使得特征具有方向性,故可以用更少的數據獲取更多的信息來提升分類精度;其次在低層特征向量與高層特征向量之間引入動態路由算法,使得低層的特征能被傳到高層的特征中加以利用來計算出目標物體存在的概率。
膠囊網絡將提取的特征用膠囊單元(向量)進行表示,膠囊單元的模長表示物體存在的概率,方向表示實例參數,即實體特征的信息。
膠囊網絡采用了Margin Loss損失,如下所示:

其中,T表示類是否存在,=0.9,=0.1,為超參數,一般設置為0.5,||v||代表該膠囊單元屬于這個類別的概率。
膠囊網絡雖然一定程度解決了卷積神經網絡的缺陷性,但是當圖像太復雜時保留了圖像過多的細節特征,無法對圖像特征進行有效的篩選,導致模型存在過擬合問題,致使其分類效果不佳,無法滿足分類需求。
Darknet模型汲取了殘差的思想,避免了網絡退化問題。它由多個Darknet塊組成,每個Darknet塊由兩個卷積(卷積核分別為1×1與3×3)和一個殘差連接組成,且每兩個Darknet塊之間都有一個單獨的卷積層,它們都是下采樣卷積,是將原有的輸入補0,再通過步長為2,卷積核為3的卷積來實現,以此代替池化,避免局部信息的丟失,使模型可以更有效地提取圖像特征。
Darknet 模型能有效保留一類圖像的共有細節特征,避免過多保留圖像無用細節特征的特性可以彌補膠囊網絡的缺陷,因此本文將Darknet 融入膠囊網絡來處理小樣本數據集的分類問題。
目前的深度學習模型一般都需要足夠多的數據量才能獲得較好的效果,在復雜小樣本數據集上的分類效果往往并不理想。因此,本文提出一種融合模型(如圖1 所示),本模型首先通過Darknet 模型提取圖像的有效特征,以此解決膠囊網絡保留過多圖像無用細節特征容易產生的過擬合問題;接著將提取的有效特征經過膠囊網絡做進一步處理,將特征表征成1×8 的二維向量,通過變換矩陣w與耦合系數c來激活高層膠囊:

圖1 膠囊網絡與Darknet融合模型結構Fig.1 Fusion model structure of capsule network and Darknet

進而通過squash 激活函數進行非線性化處理,將輸出向量的模長壓縮到0~1,的模長代表屬于相應類別的概率,向量本身表示特征的位置、姿態等信息,信息量更加豐富:

最后用動態路由迭代實現最后的分類。本模型利用膠囊網絡對特征進行向量化處理可以獲得有效特征的多視角空間信息,使模型可以使用更少的數據量獲得更高的分類準確率。此外,模型整體沿用Darknet 步長為2 的卷積代替池化,以此避免池化所帶來的信息缺失問題。
本模型為了防止Darknet提取的有效特征中某種特征權重過大造成模型產生過擬合的問題,在膠囊網絡的Margin Loss 損失函數后加入了網絡各層權重的L正則化損失項。損失函數公式如下所示:

其中,T表示類是否存在,=0.9,=0.1,為超參數,一般設置為0.5,||v||代表該膠囊單元屬于這個類別的概率,||w||為網絡各層權重的L正則化損失。
圖2 為未經改進初步調整后的Darknet 模型,為了讓模型適應CIFAR數據集,在原模型的基礎上一定程度地減少了網絡深度,且在最后一層步長為2 的卷積之前增加padding 操作以減少邊界信息丟失。圖3為改進后的Darknet模型,該模型每個Darknet塊依然采用兩個傳統卷積加一個殘差單元,但是整個模型通過并列的特征提取器同時提取深層與淺層特征進行融合,一列通過3×3 的卷積核大小與更深層次的網絡提取出有效的深層語義特征,另一列通過5×5 的卷積核大小與淺層的網絡提取出視野更寬廣的淺層邊緣特征,通過特征融合輸出16×16 的有效特征圖譜,同時保留圖像深層語義和淺層輪廓邊緣特征,融合后的特征圖譜獲得的特征信息量更多。圖4 為未經改進初步調整后的Darknet 模型提取的特征圖譜,特征圖只考慮了深層語義特征,卻沒有關注淺層輪廓邊緣的細節特征,無法顯示出相對完整的有效圖像信息,在數據量較少時容易造成過擬合問題;圖5 為改進后的Darknet 模型提取的特征圖譜,不僅關注了深層語義特征,同時關注淺層輪廓邊緣特征,可以顯示相對完整的有效圖像信息,一定程度地減少過擬合。

圖2 未經改進的Darknet模型Fig.2 Unimproved Darknet model

圖3 改進后的Darknet模型Fig.3 Improved Darknet model

圖4 未經改進的Darknet模型提取的特征圖譜Fig.4 Feature map extracted through unimproved Darknet model

圖5 改進后的Darknet模型提取的特征圖譜Fig.5 Feature map extracted through improved Darknet model
本模型采用CIFAR-10 數據集和CIFAR-100 數據集進行實驗。CIFAR-10 和CIFAR-100 是8 000 萬個微型圖像數據集的標記子集,如圖6 所示。

圖6 CIFAR 數據示例Fig.6 Example of CIFAR data
CIFAR-10數據集分為10個類別,由60000 張32×32 彩色圖像組成,每個類別包含6 000 張圖像,分為5 000 張訓練圖像和1 000 張測試圖像,構成大樣本數據集。CIFAR-100 分為100 個類別,每個類只包含600 張32×32 彩色圖像,分為500 張訓練圖片和100張測試圖片,由于每個類的訓練圖像數據較少,構成小樣本數據集。本實驗將CIFAR-10 與CIFAR-100 重新劃分為訓練集、驗證集和測試集,且未對數據集進行其余的處理,其中CIFAR-10 分為訓練集40 000 張圖像,每類4 000 張;驗證集10 000 張,每類1 000 張;測試集10 000 張,每類1 000張。CIFAR-100 分為訓練集40 000 張,每類400 張;驗證集10 000 張,每類100 張;測試集10 000 張,每類100張。對比各種模型在CIFAR-10 與CIFAR-100 不同量級數據集下的準確率,進行分析。
本實驗在Ubuntu18.04 的系統下進行,CPU 為AMD R9-3900X,GPU 為單塊RTX-2080Ti,實驗環境為Python3.6+Tensorflow1.14。
如無特殊說明,模型的參數設置為=50;學習率為0.000 1,衰減指數為0.98,每1 000 輪衰減一次;權重的初始化為截斷的正態分布,均值=0,標準差=0.01。
本實驗使用Cap-Dark 與Bi-Cap-Dark 測試了采用不同的方法在CIFAR-10 與CIFAR-100 數據集上對模型準確率的影響,如表1、表2 所示。

表1 Cap-Dark 不同參數的分類準確率Table 1 Classification accuracy of Cap-Dark with different parameters 單位:%

表2 Bi-Cap-Dark 不同參數的分類準確率Table 2 Classfication accuracy of Bi-Cap-Dark with different parameters 單位:%
表1與表2中conv2d為普通卷積,seperable_conv2d為可分離卷積;relu 與selu 分別為卷積神經網絡所采用的非線性激活函數;BN 為對每層網絡的輸入進行批量歸一化;GN 為組歸一化,即先把輸入通道分成組,然后把每個組單獨拿出來進行歸一化處理,最后把組歸一化之后的數據再進行合并;L、L、L分別為不同的正則化項。
Cap-Dark 采用未改進的Darknet 模型提取特征,Bi-Cap-Dark 采用改進后的Darknet 模型提取特征。對比表1 與表2 的實驗準確率可以看出,在特征提取部分采用改進后的Darknet 模型:在模型細節方面采用傳統卷積加relu 激活函數以及批量歸一化;在損失函數方面,將L正則化項加入到原有損失函數中,所得到的模型在CIFAR-100 小樣本數據集上的準確率是最優的,且在CIFAR-10 大樣本數據集下的準確率同樣是最高的,證明了本模型具備良好的泛化性能。然而針對未改進的Darknet 模型,單獨采用可分離卷積與組歸一化、selu激活函數以及損失函數中加入L與L正則化項都無法獲得較高的分類準確率。
為了體現本文所提出的新模型的性能,本文選用了典型的卷積神經網絡模型ResNet50、Xception 以及膠囊網絡模型Capsule Network 與其改進模型DCaps 分別在CIFAR-100 與CIFAR-10 數據集上進行測試對比,對比所有模型在小樣本數據集和大樣本數據集下準確率的變化,實驗結果如表3 所示。

表3 不同模型分類準確率Table 3 Classification accuracy of different models 單位:%
不同模型的實驗均在Ubuntu18.04 的系統下進行,CPU為AMD R9-3900X,GPU為單塊RTX-2080Ti,實驗環境為Python3.6+Tensorflow1.14,其中DCaps的實驗結果來自DCaps原始文獻,其余模型的分類準確率均為重新實驗的結果。
不同模型的參數設置均采用普通卷積加批量歸一化,非線性激活函數采用relu,正則化項使用L正則化項;且batch 設置為50;學習率為0.000 1,衰減指數為0.98,每1 000 輪衰減一次;權重的初始化為截斷的正態分布,均值=0,標準差=0.01。
Cap-Dark-NR 為將Darknet 與膠囊網絡進行融合,但未對Darknet 和損失函數進行改進。該模型在CIFAR-100 小樣本數據集上的分類準確率明顯高于卷積神經網絡模型與膠囊網絡模型,由于在小樣本數據集下,卷積神經網絡無法有效關注特征空間信息,提取特征的信息量有限;膠囊網絡無法對圖像關鍵特征進行有效篩選,過多關注圖像的無效特征信息導致過擬合問題;而通過Darknet 進行特征提取可以對無效特征進行過濾,再使用膠囊單元對有效特征進行向量化表示可以增加特征空間信息量以提升分類準確率。但在CIFAR-10 大樣本數據集下的分類準確率略低于卷積神經網絡模型,由于在大樣本數據集下卷積神經網絡可以實現良好的泛化性,而Cap-Dark-NR 一方面忽略了圖像的淺層邊緣輪廓特征,另一方面沒有對網絡的權重加以限制,使得模型在大樣本數據集下的分類準確率略低于卷積神經網絡。證明了融合Darknet與膠囊網絡可以有效避免膠囊網絡無法對圖像的細節特征進行有效篩選造成的分類效果不佳的問題,但是當訓練樣本加大時,模型的泛化性能有待提高。
Cap-Dark 為將Darknet 與膠囊網絡進行融合且在損失函數中加入L正則化項,但未對Darknet 進行改進。該模型在CIFAR-100 小樣本的分類準確率比Cap-Dark-NR 高0.05 個百分點;在CIFAR-10 大樣本下的分類準確率比Cap-Dark-NR 高1.76 個百分點,卻依然略低于卷積神經網絡模型,證明在損失中加入L正則化項能一定程度減少過擬合問題,卻依然無法彌補淺層輪廓邊緣特征缺失導致的準確率下降的問題,模型泛化性能還需進一步提升。
Bi-Cap-Dark 為將Darknet 與膠囊網絡進行融合,并將Darknet改進為并列的特征提取器且在損失函數中加入L正則化項,發現模型性能再次獲得明顯提升。本模型在小樣本數據集CIFAR-100 上的準確率比膠囊網絡高28.51 個百分點,比DCaps高24.40 個百分點;同時在大樣本數據集CIFAR-10 的準確率相比膠囊網絡高30.03 個百分點,且比DCaps高22.51 個百分點。對比膠囊網絡模型與其改進版DCaps,本文所提模型在小樣本數據集與大樣本數據集上的分類準確率得到了明顯的提高,證明了改進后的模型整體泛化性能得到明顯提升,能有效處理小樣本數據集。這是由于模型采用改進后的Darknet同時考慮了圖像的深層語義特征與淺層邊緣細節特征,避免了有效特征的缺失,可以相對完整地保留有效圖像信息,同時避免了膠囊網絡將圖像的全部細節特征表示成向量造成的分類效果不佳的問題;其次膠囊網絡對有效特征的向量化處理使得模型能更加有效地處理小樣本數據集,大幅提升了模型的泛化性能;最后在損失函數中加入L正則化項能有效避免模型的過擬合問題。
與卷積神經網絡模型相比,本模型在小樣本數據集CIFAR-100 上的測試準確率得到明顯提高,相比ResNet50 高21.57 個百分點,比Xception 高18.02 個百分點;在CIFAR-10 大樣本數據集上的測試準確率相比ResNet50高2.29個百分點,比Xception高1.91個百分點。對比卷積神經網絡模型,本文所提模型針對小樣本數據集的分類準確率明顯提升,且在大樣本數據集下同樣獲得優秀的分類效果,證明了本模型的泛化性能優于傳統的卷積神經網絡。這是由于ResNet50、Xception 等卷積神經網絡雖然可以有效提取圖像深層語義細節特征,但是卷積網絡的平移不變性使得模型必須學習到不同觀測角度的濾波器,但這需要大量的訓練數據來提高模型的泛化性能,缺少膠囊網絡的天然優勢。
本文對不同損失函數以及不同特征提取器進行對比,對比網絡各層權重的L正則化項與改進前后的Darknet 特征提取器對模型分類準確率的影響,實驗結果如圖7、圖8 所示。圖7 為L正則化項與不同特征提取器對CIFAR-10 數據集準確率的影響,圖8為L正則化項與不同特征提取器對CIFAR-100 數據集準確率的影響,其中Cap-Dark-NR 為模型的損失函數中沒有加網絡各層權重L正則化項且特征提取器采用未改進的Darknet 模型;Cap-Dark 為特征提取器采用未改進的Darknet 模型,但在損失函數中加入網絡各層權重L正則化項;Bi-Cap-Dark 為既采用改進的Darknet模型,又采用改進后的損失函數。

圖7 CIFAR-10 消融實驗分類準確率Fig.7 Classification accuracy of CIFAR-10 in ablation experiments

圖8 CIFAR-100 消融實驗分類準確率Fig.8 Classification accuracy of CIFAR-100 in ablation experiments
Bi-Cap-Dark 在小樣本數據CIFAR-100 的分類準確率比Cap-Dark-NR 高6.91 個百分點,比Cap-Dark高6.86 個百分點;在大樣本數據CIFAR-10 的分類準確率比Cap-Dark-NR 高4.50 個百分點,比Cap-Dark高2.74 個百分點。通過對比實驗,發現采用改進的Darknet特征提取器且在損失中加入L正則化項的模型效果最優。只在損失函數中加入L正則化項對大樣本數據的分類效果提升較為明顯,但對小樣本數據的分類效果并無明顯提升,這是由于在大樣本數據集下,雖然模型泛化能力相對較強,但是某一特征權重過大還是會對準確率造成一定的影響,因而需要在損失函數中加入L正則化項來避免模型過擬合問題;然而在小樣本數據集下,由于本模型提取的有效細節特征過于單一,只關注深層語義特征而忽略了淺層邊緣特征,使得模型的泛化性相對較弱,因此只在損失函數中增加L正則化項依然不能有效提升模型泛化性能。然而在改變損失函數的基礎上再采用改進后的Darknet 模型提取特征,可以豐富圖像的有效細節特征,使模型的泛化性得到明顯提升。通過圖7、圖8 發現,本模型的擬合速度快,容易訓練,在30 個epoch 時,模型就趨于擬合。本模型可以大幅度提升小樣本數據集的分類準確率;同時在大樣本數據集上的分類準確率也獲得了一定程度的提升,證明了本模型具有良好的泛化性能。
目前的圖像分類模型中膠囊網絡可以對簡單的小樣本數據集進行有效分類,但在復雜的小樣本數據集上分類效果不佳。本模型針對膠囊網絡的缺陷進行改進,將Darknet 與膠囊網絡進行融合,并對Darknet 進行改進,將圖像淺層邊緣特征與深層語義特征進行融合,解決膠囊網絡關注過多的圖像細節特征,難以對圖像細節特征進行有效篩選而造成的模型過擬合問題。在對小樣本數據集進行分類時,本文模型相比膠囊網絡、DCaps、ResNet50、Xception分類準確率提升明顯;且對大樣本數據的分類準確率比原始的膠囊網絡及DCaps模型得到了明顯提高,同時對比ResNet50、Xception 分類準確率也獲得了一定程度提升,證明了模型泛化性能良好。在未來的研究工作中,將在減少模型參數的數量上做進一步研究。