劉威,王薪予,劉光偉,王東,牛英杰
(1.遼寧工程技術大學 理學院,遼寧 阜新 123000; 2.遼寧工程技術大學 智能工程與數學研究院,遼寧 阜新123000; 3.遼寧工程技術大學 數學與系統科學研究所,遼寧 阜新 123000; 4.遼寧工程技術大學 礦業學院,遼寧阜新 123000)
半監督學習[1,2]是一種介于監督學習和無監督學習之間的學習方法,其基本思想是在訓練少量標簽樣本的過程中引入大量無標簽樣本來解決監督學習由于標簽樣本不足所造成的模型退化問題。早期的半監督學習算法與深度學習的結合相對較少,隨著深度學習在各界大放異彩,尤其在圖像分類問題上超人類的識別率使得半監督學習與深度學習的結合成為一種必然趨勢。
半監督深度學習的核心模型依然是卷積神經網絡,不同模型的區別在于添加不同的先驗假設來建立不同的損失函數。Sajjadi等[3]認為相同的樣本在不同的擾動下,模型應該具有相同的輸出(被稱為“一致性正則化原則”)。因此將標簽樣本與無標簽樣本經過隨機增強[4]、裁剪、隨機池化等操作后輸入模型中,強制模型對同一樣本輸出相同的預測類別。Laine等[5]將上述的一致性正則化原則建模為時序模型,認為模型在每次迭代的學習過程中都應該保持所謂的“一致性正則化”。Li等[6]與上述兩篇文獻的做法不同,將這種“一致性正則化”方法加入了模型的參數[7]之中,他們認為相同的樣本在經過模型參數的隨機擾動之后應該輸出相同的類別。
綜上所述,半監督圖像分類算法主要圍繞一致性原則進行建模,使用不同程度的數據增強、混合等操作強制對同類樣本輸出相同的預測結果,希望模型能夠習得圖像的本質特征。但這種建模方式僅在模型的端首與端尾進行操作,缺乏半監督模型的內部機理分析,使模型不具可解釋性。
從本質上而言,半監督學習的建模思想描述為:首先建立所給樣本的隱含“關系”,然后將標簽樣本的標簽信息通過上述“關系”傳遞到無標簽樣本。而圖卷積網絡(graph convolutional networks,GCN)的提出,正好從關系建模的角度出發,給出解析網絡數據的一種思路。與視覺卷積模型相比,模型解釋性大大增加。此外,該方法還為半監督圖像分類提供建模思路,本文旨在利用圖卷積網絡來建模前述樣本的隱含“關系”,然后進一步研究與視覺卷積模型融合后的融合模型的機理性能。
一直以來,模型融合作為改進模型性能的技術被廣泛使用,著名的GoogLeNet[8]模型中作者就表明視覺圖像數據應在各種尺度處理后再進行融合,才能使得深度網絡對輸入圖像的尺度具有魯棒性。而本文將GCN與卷積分類模型相融合則需考慮以下兩個問題:(1)建模“關系”的目標對象。(2)對于圖像特征提取的多層神經網絡模型而言,需要考慮GCN模型如何與這些多層結構相融合。
針對問題(1),首先基于圖像數據構建KNN(K-nearest neighbor,KNN)圖,以此來建模圖像之間的一階關系信息。這種通過建圖來建模GCN模型輸入的相關文獻[9-11]大部分都是用隨機參數化或者依靠添加損失項的方式,所得圖結構很大程度上取決于模型自身性能,且這種圖結構忽略了數據的原始信息,使模型不具解釋性。而構建KNN圖的方式可以保持數據的原始信息不丟失。
針對問題(2),本文嘗試將關系學習模型融合到特征提取模型的任意一層,考慮到特征提取模型是一個復雜且多層的結構,每一層所學特征信息皆不相同,因此關系信息與特征信息不同的融合方式會對模型的泛化性能產生不同的影響。
本文主要貢獻有:1)提出基于圖像間的關系表示模型,該模型可以提取到圖像間的不同階的關系信息。2)設計新的半監督圖像分類模型。將圖像數據的關系信息與特征信息相融合,可以極大地提升表示學習模型的泛化能力。3)對模型中提取樣本間隱含關系的函數進行解釋,進一步闡明其運行機理。4)在5個基準圖像數據集上進行數值實驗,進一步驗證本文提出的融合模型可以在少樣本情形下有效提升監督模型的分類精度。
本節主要介紹半監督深度學習模型的建模方法。首先介紹半監督學習的基本思路。在引言中提到的(預測樣本分布、聚類假設、流形假設以及前述的“一致性原則”)假設的前提下,即可約束相似的樣本輸出相同的結果。
以圖結構的標簽傳播(label propagation,LP)算法[12]為例進行說明,該算法的目標函數如下:

式中:樣本被分為標簽樣本(用L表示)和無標簽樣本(用U表示),其中標簽樣本損失為 ‖fi-yi‖2,在此基礎上又添加與無標簽樣本相關的正則化項‖fi-fj‖2Wij,意味著相同標簽的樣本之間會有更大的連接權重,從而使得與標簽樣本相連的權重較大的無標簽樣本更容易獲得標簽樣本的標簽信息,進而實現全圖的標簽信息傳播。
上述半監督學習方法雖然取得了不錯的效果,但是隨著深度學習的興起,半監督深度學習算法成為了研究的重點。
半監督深度圖像分類模型是將包含無標簽樣本的正則化項引入多層結構的網絡模型中。Weston等[13]針對傳統的半監督學習算法無法充分地學習數據的特征,通過在多層神經網絡的基礎上顯式地引入包含無標簽樣本的正則化項提出3種通用的特征表示模型,從而實現半監督學習與神經網絡的結合。生成對抗網絡(generative adversarial nets,GAN)[14]也是一種學習數據表示的多層網絡模型,由于此模型在模擬生成真實樣本任務上的成功表現,自然而然的想法就是在標簽樣本較少的情況下,可以利用生成器生成的樣本來提高模型的泛化能力。Springenberg等[15]提出的GAN模型是從部分標記數據中學習判別分類器的方法,通過在目標函數中添加標簽樣本的分類損失,使模型在標簽樣本的分布與其預測的無標簽樣本分布之間交換互信息,再結合判別器損失函數即可實現半監督學習。Chang等[16]改進GAN的判別器函數,強制其輸出為N+1類的樣本(N為樣本類別數,額外的一類為生成器的樣本類別),這樣判別器不再是二分類函數,而是多分類的函數。同樣地,上述過程也利用了無標記樣本的隱含分布信息,通過結合改進的GAN模型完成半監督學習的過程。
以上半監督圖像分類算法皆是利用深層卷積模型在提取數據特征方面的優勢來提升模型的泛化性能,但在描述數據內部隱含的“關系”信息時均缺乏解釋性。因此本文針對上述問題,在特征提取模型的基礎上又設計了關系表示模型,而且給出了二者的融合方法,通過端到端的訓練方式提升模型的泛化能力。
本節介紹提出的SCUTTLE模型。該模型結構如圖1所示。由圖可知模型大致可以分為兩個模塊:圖像特征提取的CNN模塊和表示關系函數的GCN模塊。模型設計整體思路如下:

圖1 SCUTTLE模型示意圖Fig.1 Schematic diagram of SCUTTLE model
1)將原始樣本數據輸入CNN中學習樣本的隱含特征,并且通過全連接層將學習到的樣本特征映射到樣本標簽。
2)就監督學習而言,只依靠上述CNN模塊,模型就可以取得很好的泛化性能。但是對于半監督學習,還需依賴模型習得的樣本隱含“關系”函數。為了習得這些“關系”,在上述CNN提取特征的過程中,對于任意卷積層提取到的圖像特征構建KNN圖,圖中不僅包含了樣本自身的特征信息,而且將相鄰樣本間原本無關的樣本集從離散空間映射到一個關系度量空間。此時的KNN圖中僅顯示了樣本間的一階關系信息.為了獲取更高階的關系信息,需要將KNN圖和樣本特征同時輸入GCN模型中,通過多層GCN的疊加,最終將學習到的關系特征與CNN提取到的圖像特征融合在一起進行端到端的學習。下面將描述模型的具體細節。
對于N個樣本數據X=(x1,x2,···,xN),X∈ Rd×N。X中的列向量xi代表第i個樣本的特征,N為樣本的數量,d表示樣本的維度。對于X中的任何一個樣本xi,都可以通過某種映射 φ: Rd×Rd→R來建立該樣本與其他N-1個樣本xj(i≠j)的相似度Sij:

上述映射函數 φ可以表示為

式(3)即為常用的熱核定義法[17],常用于連續型數據之間的相似度定義,通過計算樣本間的距離,將d維連續空間中的兩個樣本映射到一維實空間中。
通過計算N個樣本中任意兩個樣本間的相似度,可得到一個對稱的相似度稠密矩陣S∈ RN×N,即對于其中任意一個元素Sij=Sji(i≠j)。考慮S中任意行Si·(Sii除外)的元素,分別表示第i個樣本與其他N-1個樣本的相似度,通過對這N-1個元素進行排序,使得Si,1≥Si,2≥ ···≥Si,N-1(Si,1表示相似度最大的元素),即可找到最相似的K個元素{Si,1,Si,2,···,Si,K},同理對于S中的每一行都可以執行上述操作,由此即可構建一個稀疏的KNN無向圖。
正如引言所述,提取圖像特征的CNN模型是實施半監督深度學習算法的關鍵。其建模過程可以描述為:
對于任意一個多層卷積神經網絡,第l層卷積提取到的數據特征z(l)表示如下:

式中:表示第l層的卷積核參數以及偏置參數,a(l-1)表示前一層卷積提取到的特征圖經過非線性激活函數(一般用ReLU[18]函數表示)后的輸出。這里對于該模型的具體卷積過程不再贅述。式(4)中的z(l)又可以寫為

表示第l層卷積提取到的Fl個特征圖,這些特征圖再經過非線性的激活函數 ?,即可得到該層最終的輸出a(l),即

對于輸入該模型的N個樣本,該模型的目標函數為

式中:y(n)為第n個樣本的真實標簽;h(n)為第n個樣本的預測標簽; L 為相應的損失函數。
2.2節闡述了CNN模型設計的整體思路,該模型利用不同卷積核提取到了層次化的圖像特征,而忽視了圖像間所蘊涵的內在聯系。本節介紹圖信號處理領域的GCN模型是如何通過圖上節點的特征信息與圖的結構信息來提取節點間的隱含關系。
GCN模型在建模之前通常需要構造一個圖位移算子T來表示所研究的圖結構。位移算子T的作用就是將輸入信號通過線性聚合的方式來提取節點的一階鄰域內的信息,這個過程可以類比CNN中的卷積核的作用(捕捉固定感受野范圍內的信息)。其次只需要將T參數化后融入卷積神經網絡中進行學習即可構建圖上的卷積操作。
常用的圖位移算子包括下面3種類型:
1)圖的鄰接矩陣A。對于其中的元素Amn,如果(υm,υn)∈ ε,則Amn=1,否則為 0;
2)圖的拉普拉斯矩陣L=D-A。D為對角矩陣,其中的Dii表示第i個節點的度;
3)L歸一化之后的類型:
本文采用Kipf等[19]提出的GCN模型,該模型基于歸一化的圖拉普拉斯矩陣而提出的,也即上述圖位移算子中的第3種類型。模型第 ?層學習到的特征Z(?)可以表示為

與CNN模型類似,在模型的最后一層通過softmax函數來獲得樣本標簽的預測分布。同樣地,對于輸入該模型的N個樣本,模型的目標函數為

本節介紹將前述兩種模型相融合的SCUTTLE模型,融合模型具有兩種單一模型的雙重屬性,既具有特征提取能力,也具有關系表示能力。本節不僅給出模型融合的方法描述,也給出了融合模型的訓練算法流程。此外,對本文提到的關系函數的構建過程也加以解釋。
2.4.1 SCUTTLE模型的融合方法描述
本節介紹將2.2節中的CNN模型與2.3節中的GCN模型融合在一個end-to-end的框架中的融合方法,實施步驟如下:
1)對于輸入CNN模型的N個樣本,其中任意一個樣本在第l層學習到的特征z(l)表示為2.2節中的式(5)。假設每個特征圖的大小為m×n,則z(l)∈ Rm×n×Fl,可以將z(l)展成維度為m×n×Fl的一維向量。對輸入模型的N樣本都執行上述操作。此時的一維向量z(l)依然具有特征圖形狀的z(l)應有的特性。
2)將上述樣本特征z(l)作為2.1節KNN模型的輸入,即可構建一個關于N個樣本的稀疏KNN圖,也稱為權重鄰接矩陣,是2.3節提到的圖位移算子T的一種特殊形式,用T′來表示。
3)將步驟1)和步驟2)中得到的z(l)和T′作為2.3節中GCN模型的輸入,則GCN模型同時具有樣本的高階特征信息z(l)以及連接這些信息的位移算子T′,通過圖上的卷積操作即可學習這些特征之間的關系,GCN模型在第一層卷積學習到的特征Z(1)可以表示為

4)為了使得CNN模型與GCN模型在習得的樣本特征上實現維度對齊,本文在GCN的最后一層后又添加了全連接層,假設GCN模型共有L′′層,Wfc為全連接層的權重參數,則上述過程表示為

在融合模型的最后一層分別將兩個模型得到的關系特征Z(L′′)和樣本特征a(L′)相結合得到樣本的預測標簽分布,這里假設CNN模型共有L′層,表示如下:

5)計算模型最終的損失函數:

2.4.2 SCUTTLE模型的訓練算法描述
設訓練樣本總數為N,每個批次的樣本數量也即batch_size設定為Nbatch,則批次數量為設每批次標記樣本數量為Nlable,此時計算得到標記樣本總數為后續提到的所有標記樣本數量皆通過上式計算得到。
算法1SCUTTLE模型訓練方法
輸入N個樣本X=(x1,x2,···,xN)以及Nlable個樣本的標簽。
輸出N個樣本的預測標簽值。
1)隨機初始化SCUTTLE模型的網絡參數。
2)將全部樣本作數據預處理且隨機打亂順序,同時設定樣本批次數量為,且設定每批次標記樣本數量為Nlable,epoch數量為e。
3)將第一個批次的Nbatch個樣本輸入CNN模型中進行正向傳播。
4)隨機挑選步驟3)中CNN的任一隱層輸出特征作為KNN圖的輸入,再經過GCN模型進行正向傳播。
5)步驟3)~4)屬于并行前向傳播,在兩個模型最后輸出層通過式(12)進行特征融合并計算損失值,此時的損失值只包括步驟2)中提前設定好的Nlable個樣本的損失,同時通過梯度反向傳播優化模型參數。
6)測試模型精度。
8)步驟3)~7)循環e次,直至模型收斂。
上述算法即為SCUTTLE模型的批量訓練算法,從步驟4)中可知,SCUTTLE融合算法對于任一批量的樣本都會建立KNN圖,相較于其他算法的隨機參數化方法,本文所構建KNN圖在很大程度上可以保證數據的先驗性質,同時使模型具有解釋性。在步驟5)中,將CNN模型的特征與GCN模型的特征進行融合,可以看作二者之間的相互約束過程,對于卷積特征不夠清晰且明確的樣本可以通過GCN的關系特征進行補充,從而提升泛化性能。SCUTTLE模型的訓練方法流程圖如圖2所示。

圖2 SCUTTLE模型訓練方法流程圖Fig.2 Flow chart of SCUTTLE model training method
2.4.3 SCUTTLE模型的關系函數解釋
對于常見的半監督學習模型(包括引言和相關工作中提到的),其優化目標函數為

式中:Wij即為表示相鄰兩個樣本間的關系參數;L表示標簽樣本;U表示無標簽樣本。為了后續表述的方便,將式(14)中的兩項分別記為(141)與(142)。(141)為標簽樣本的損失函數,(142)為反映樣本隱含關系的函數。根據前兩小節所述的建模流程,CNN與GCN模型都利用標簽樣本的標簽信息來構建監督信息的損失函數,因此(141)可以寫為

在構建樣本的隱含關系函數時,CNN模型不具有建模樣本間關系的能力,因此需依靠GCN模型來捕捉這些信息,因此對于(142)而言,結合式(8)或 (10),可得

對于式(16)中,任意兩個樣本間的關系又可以表示為

其中,N(i)表示第i個樣本的鄰居節點。由式(17)可以看出,相鄰樣本間的關系由Rij以及參數Wij來度量,Wij為模型需要學習的參數,實際值應當由所訓練的樣本集來確定;而Rij可以看作某種先驗信息。
2.4.4 SCUTTLE模型的復雜度分析
設N為輸入模型的樣本數量,CNN模型第l個卷積層的輸出z(l)的維度為Ml,卷積核維度為Kl,上一層的輸出通道數為Fl-1,全連接層的第l′層神經元數量為Cl′,則CNN模型的時間復雜度為,式(3)在構建KNN圖時采用KD樹算法[20]可以將時間復雜度降為O(Nlog3M?+1),GCN模型第 ?層卷積維度為Mld?-1,因此式(10)的時間復雜度為所以模型的總時間復雜度為由此可知,本文所提模型的時間復雜度與輸入模型的樣本數量之間均為線性關系。
為了更好地測試和分析半監督融合模型的泛化能力,本文采用數值實驗的方式對模型進行性能評估。
為了驗證半監督融合模型的有效性,模型需要在已知的一些公開數據集上進行測試并且給出對應的實驗結果。本節介紹將要進行測試的4種數據集:MNIST、CIFAR10、CIFAR100、SVHN。由于眾多研究者對于MNIST、CIFAR10、CIFAR100等常用圖像數據集較為熟悉,關于它們的詳細信息這里不再贅述,下面主要介紹SVHN數據集以及各數據集之間屬性的對比。
SVHN:該數據集摘自Google街景圖像中門牌號碼,共包括73 257張訓練圖像和26 032張測試圖像,每張圖像像素為32×32的彩色圖像。MNIST數據集不同的是,每張圖像中包含多個手寫體數字。相比MNIST數據集,識別難度有所增加。
后續全部實驗所用軟硬件環境為:Intel(R)Core(TM) i7-6850K CPU@3.60GHz處理器,NVIDIA GeForce GTX 1080Ti 12GB顯卡,12GB內存,操作系統為CentOS 7.8.200 3(Core),編程語言為Python3.7,深度學習框架為Pytorch1.4。

表1 4種數據集的屬性信息Table 1 Attribute information of four datasets
3.2.1 實驗模型
由于本文所提模型是CNN模型與GCN模型的融合模型,有必要設置橫向對比實驗來說明融合模型的有效性。鑒于2.4節所述的模型融合方法,在將二者融合時需要考慮如下問題:GCN模型應該與CNN模型哪一層的特征圖相連接。
為了公平對比兩種模型融合的不同方式所產生的模型性能,本文設計了簡單的三層CNN(隱層通道數:128-256-512,卷積核大小:3×3)與單層GCN的融合模型。因此對比的模型共有以下5種結構(一個監督學習的基準模型和4個半監督學習融合模型):CNN、CNN-0-GCN、CNN-1-GCN、CNN-2-GCN、CNN-3-GCN,分別代表監督模型、GCN與CNN的輸入層相連接、GCN與CNN第1層卷積相連接、GCN與CNN第2層卷積相連接、GCN與CNN第3層卷積相連接。
3.2.2 實驗設置
本節實驗數據集劃分與Jiang等[11]的劃分類似,分別從4類數據集的訓練樣本中隨機取10 000個樣本進行訓練,與Jiang等不同的是,本文的10 000個樣本是隨機選取,并沒有針對每類樣本的均衡性進行選擇,其次沒有設置驗證集,而是直接在數據集的測試集上進行測試。其中,對于MNIST、CIFAR10、CIFAR100從 10 000個樣本中隨機選取1 000、2 000、3 000個樣本作為標記樣本,剩余的9 000、8 000、7 000個樣本作為無標記樣本。對于SVHN,從10 000個訓練樣本中選取500、750、1 000個樣本作為標記樣本,剩余的9 500、9 250、9 000個樣本作為無標記樣本。
在實驗過程中,對3.2.1節提到的5種模型均采用Adam優化器進行優化,且KNN圖的K值設定為經驗值4,設置初始學習率為0.000 1,整個模型訓練300次epochs,且進行10次相同的實驗,將這10次實驗結果的均值和標準差記錄在表2中。

表2 五種模型在四種數據集上的分類精度Table 2 Classification accuracy of five models on four datasets
3.2.3 實驗結果分析
分析表2實驗結果,可得如下結論:
1)對比4種半監督融合模型與CNN監督模型的精度值,對于CIFAR10、CIFAR100、SVHN數據集,4種融合模型均可在CNN分類精度的基礎上提升5%~6%,說明本文所提融合模型是一種有效的且分類泛化性能較好的模型。
2)單獨對比4種融合模型的實驗結果,總體上模型之間的精度相差不大,但是CNN-0-GCN是融合模型中表現最突出的,說明將GCN連接到CNN卷積層之后會對模型整體的性能產生輕微的影響,但是與監督學習的CNN相比融合模型的精度提升效果還是比較顯著的。
3)通過對單個數據集的4種融合模型的實驗結果進行對比,MNIST、CIFAR10、CIFAR100中隨著標記樣本的數量減少,模型的分類精度均呈現逐漸遞減的趨勢,但是對于SVHN數據集,隨著標記樣本數量的減少,模型分類泛化性能反而有所提高。考慮到SVHN數據集[21]的特殊性,單張圖像中不僅包含了要識別的數字信息,還包括數字的邊緣、門框、陽光產生的陰影等無關信息的干擾,但是添加了GCN模型的融合模型,相反并沒有受到這些冗余信息的影響,相反較少的標記樣本實現了較高的精度提升,再次說明了本文所提模型具有極好的泛化性能。
3.2.4 融合模型的特征圖可視化
為了進一步驗證融合模型的有效性,本節對CNN和CNN-0-GCN、CNN-1-GCN、CNN-2-GCN、CNN-3-GCN等模型的特征圖進行可視化分析,從CIFAR10數據集中取了3類標簽的樣本(分別是馬、卡車、鳥)進行可視化,如圖3所示。表中從左到右的4列分別展示了4種不同的卷積核對應的特征圖,其中每列從左至右依次為不同迭代次數下的可視化輸出結果。從上到下每5行為一類樣本的可視化結果,每類樣本的第1行為CNN模型特征輸出結果,第2行為CNN-0-GCN的可視化輸出結果,CNN-1-GCN、CNN-2-GCN等以此類推。

圖3 5 種模型在 3 個樣本不同次迭代的特征圖對比Fig.3 Comparison of feature maps of three samples of five models at different iterations
對比圖3中每次迭代得到的特征圖,CNN-0-GCN模型的物體輪廓、清晰度、紋理特征、細膩程度相比于其他模型都有很大優勢。以樣本類別為馬的第一類卷積核對應的特征圖為例,CNN模型將圖像上邊緣的深黑色背景特征也提取出來,這樣使得特征圖中馬的輪廓變的不清晰,而CNN-0-GCN模型中顯然將這些冗余特征去除,通過不同的灰度值,清晰地將馬的輪廓顯現出來。
同樣地,還是以樣本類別是馬的特征圖為例,通過觀察會發現,CNN-0-GCN模型對應的第50次迭代的特征圖無論是清晰度還是紋理特征相比于CNN要差很多,但是50次迭代之后,馬的輪廓以及圖像的細膩程度明顯好轉,而且變的比50次迭代之前的特征更清晰,再一次證明了融合模型具有很好的泛化性能。
此外,通過對比CNN-0-GCN與其他3種融合模型的特征圖,發現CNN-0-GCN的特征圖效果依然優于其他3種模型。以鳥的特征圖為例,其余3種融合模型的前150次迭代圖中均有明顯的噪聲值;迭代到200次后,特征圖的效果才有提升。其余兩類樣本的特征圖對比情況不再詳細分析。
本節從數值實驗、特征圖可視化兩個方面對構建SCUTTLE模型過程中GCN模型與CNN模型哪一層特征圖連接的問題、SCUTTLE自身泛化性能等問題做出了深入研究。實驗結果表明:1) CNN-0-GCN模型相比于其他融合模型具有較好的泛化性能;2) 特征圖可視化結果同時也證明了CNN-0-GCN模型的優良性;3) 4種融合模型在4種數據集上的測試結果相較于CNN模型有明顯提升。研究結果充分證明本文所提SCUTTLE模型是一種良好的半監督分類模型。
3.3.1 實驗內容與實驗設置
1)為了進一步驗證SCUTTLE模型的泛化性能,本節將三層卷積模型替換為VGG模型[22],分別將 VGG11、VGG13、VGG16、VGG19與 GCN 融合在3.1節的4種數據集上測試其泛化性能,并將實驗結果記錄在圖4中。
2)設置消融實驗來研究各個模型在融合模型中所起作用。在圖4中,用4幅圖表示所測試的4種數據集,虛線部分表示單獨的VGG模型實驗結果;紅色虛線表示單獨的GCN模型結果;而實線部分表示SCUTTLE模型的結果,通過對比虛線結果與實線結果的差異,即可分析單一VGG模型與SCUTTLE各模型之間的性能差異。

圖4 VGG、SCUTTLE模型在4種數據集上的精度折線圖Fig.4 Accuracy line graphs of VGG and SCUTTLE on four datasets
3)實驗設置:本節的所有模型對于標記樣本的選取都與3.2.2節所述相同。此外,超參數的設置也與3.2.2節相同。下面首先對4種融合模型實驗結果進行分析。
3.3.2 實驗結果分析
1) 4種SCUTTLE模型的泛化性能分析
SCUTTLE模型在4種數據集上的數值實驗結果見圖4。為了公平地對比每種模型的泛化性能,實驗中設置4種SCUTTLE模型的參數都相同,因此在CIFAR100上的實驗結果只作為對比結果而不作為最佳精度。通過分析表中結果,可得如下結論:
①對比MNIST數據集的4種融合模型的實驗結果,VGG13-0-GCN獲得最佳精度值;對比CIFAR10數據集,當標記樣本數量為1 000、2 000時在VGG11-0-GCN中獲得最佳精度,而當標記樣本為3 000時,在VGG13-0-GCN上得到最佳精度。因此對VGG-GCN的融合模型而言,并沒有所謂的最優模型,不同模型在不同數量的標記樣本下會呈現出不同的結果。
②對比4種融合模型各自在不同數量標記樣本的結果,隨著標記樣本數量的增加,大部分模型的精度呈現上升趨勢,而對于VGG11-0-GCN在CIFAR10數據集的標記樣本數量為3 000時,模型性能有所下降。此外,MNIST數據集隨著標記樣本數量的增加,4種融合模型的精度只有小范圍的提升;而CIFAR10,VGG13-0-GCN、VGG16-0-GCN、VGG19-0-GCN隨著標記樣本數量的增加,模型精度提升幅度較大。綜上所述,采用VGG11-0-GCN作為CIFAR10的半監督學習模型,只用1 000個樣本即可達到較高的精度。而其余兩個數據集仍可得出類似結論。
以上只是對4種融合模型的實驗結果進行簡單地概括,為了充分說明模型的有效性,還需設置消融實驗,分析VGG模型與GCN模型在融合模型中的作用效果。
2)消融實驗結果分析
在4種數據集上,分別設置了VGG11、VGG13、VGG16、VGG19、GCN 5種模型,得到的實驗結果也記錄在圖4中,通過對比圖中實線與虛線之間的差值即可分析VGG模型與融合模型的性能差異。通過對比分析,可得如下結論:
①對比圖中單一GCN的實驗結果,只有在MNIST數據集上精度較高,在其余3種數據集上的精度都無法與CNN模型相比較,因此本節并沒有計算GCN與融合模型的分類精度差值。
②對比虛線與實線之間的差異,幾乎所有模型在不同數量的標記樣本上都實現了性能提升,再次驗證了本文所提融合模型的有效性,而所提升的幅度在不同數據集上自然呈現出不同的特點,對MNIST數據集,融合模型提升的精度值在1%內;對CIFAR10數據集,當標記樣本數量較少時,提升幅度較大,而當標記樣本數量較多時,反而提升幅度較小,此結論驗證了CNN模型只有在大量標記樣本的前提下才能取得不錯的精度,當只有少量標記樣本時,其性能急劇下降。因此融合模型在少樣本上的性能較單一模型的性能更優,充分說明了融合模型在半監督圖像分類任務方向上的優越性。而對于CIFAR100以及SVHN亦可得到類似的結論。
本節從數值實驗的角度對VGG與GCN的融合模型性能進行分析。與前一節實驗的結果對比可知三層CNN的融合模型與VGG的融合模型在性能上的差異較小,甚至在CIFAR100數據集上無論是VGG還是融合模型的性能都出現急劇下降的現象。所謂更深的模型有更好的性能,只是從理論的角度而言,但是實踐中還應另當別論。
注意:后續所有模型都是將GCN與輸入層進行連接,所以在命名時去掉了表示輸入層的數字0。
3.4.1 實驗內容與實驗設置
1)本節選取 ResNet18、ResNet32、DenseNet40、DenseNet100與GCN融合進行實驗,且在CIFAR10、SVHN、CIFAR100、STL10數據集上給出對應的實驗結果。
2)本節實驗設置與前兩節稍有不同,本節中對每個數據集均采用全部的訓練集進行訓練,且設定CIFAR10、CIFAR100、SVHN中的標記樣本數量為 500、1 000、2000、4 000,STL10中的標記樣本數量為 250、500、750、1 000。以 CIFAR10為例,在全部的50 000個訓練樣本中挑選500、1 000、2000、4 000個樣本作為標記樣本,剩余49 500、49 000、48 000、46 000個樣本為無標記樣本進行SCUTTLE模型的性能測試。此外超參數的設置與前兩節相同。
3.4.2 ResNet-GCN融合模型的實驗結果分析
圖5中的4幅圖是在ResNet與GCN融合模型上測試的實驗結果,圖例中的ResNet18、Res-Net32均指監督學習的精度折線。

圖5 ResNet18-GCN、ResNet32-GCN在4種數據集上的精度折線圖Fig.5 Accuracy line graphs of ResNet18-GCN and Res-Net32-GCN on four datasets
分析圖5中實驗統計結果可得如下結論:
1)對比4種數據集,半監督融合模型的分類精度相比ResNet18、ResNet32均有提升且提升幅度有所不同,提升幅度最大的為STL10數據集上的ResNet32-GCN模型,相比于ResNet32模型提升精度竟有20%之多。由于STL10數據集相比于其他3種數據集的特殊性,其挑戰性更能檢驗半監督算法的相關性能,再次驗證本文所提模型具有較強的泛化性能。
2)對于SVHN、CIFAR10、STL10 3種數據集,模型的深度越深其分類性能越好,因為在大部分情況下,ResNet32-GCN的精度折線圖始終高于ResNet18-GCN,但是對于CIFAR100而言,Res-Net18-GCN的精度折線圖要高于ResNet32-GCN。因此模型越深其泛化能力越強只是從理論上給出其解釋性,在實際中應進行綜合分析。
3)對于 CIFAR10、STL10數據集,ResNet18-GCN、ResNet32-GCN兩種模型在較少數量標記樣本的精度與較多數量標記樣本的精度相差無幾,因此ResNet模型可在這兩種數據集上用最少的樣本實現較高的分類精度,這對現實中的樣本標注問題有極大的指導意義。
3.4.3 DenseNet-GCN融合模型的實驗結果分析
本節所用的DenseNet模型為原論文中的L=40,k=12模型,即該模型共有40層,其中Denseblock中的卷積組合數為12,在下文敘述中都簡稱為DenseNet40;此外還使用了原論文中的DenseNet-BC中的L=100,k=12,即該模型共有100層,其中Denseblock中的卷積組合數為12,在下文敘述中簡稱為DenseNet100。
圖6中的4幅圖是在DenseNet與GCN融合模型上測試的實驗結果。類似前一小節中的Res-Net-GCN融合模型,圖例中的DenseNet40、Dense-Net100同樣地為監督學習的精度折線。


圖6 DenseNet40-GCN、DenseNet100-GCN在4種數據集上的精度折線圖Fig.6 Accuracy line graphs of DenseNet40-GCN and DenseNet100-GCN on four datasets
分析圖6中實驗統計結果可得如下結論:
1)觀察圖中的虛線結果也即DenseNet40與DenseNet100的監督學習精度,隨著樣本數量的增多,在4種數據集上會出現精度下降的趨勢。考慮DenseNet自身的建模出發點,通過將一個卷積塊中的每一層都與后面的層相連接來解決深層模型的特征重用問題,使得頂層的特征能傳入模型的深層結構中。這種結構雖然在一定程度上緩減了梯度消失或者特征重用問題,但是會給模型帶來更多的不確定性,因此該模型需要精心調參,調參次數成千上萬才會獲得最佳精度,但是本節所用參數與其他幾節都相同,都為3.2.2節中的參數設置,這樣每一小節之間都可以進行對比。
2)在虛線部分呈現下降趨勢時,實線部分卻呈現上升趨勢,再次驗證本文所提半監督融合模型的有效性,可以彌補單一模型自身的不足。此外,DenseNet40-GCN、DenseNet100-GCN相比監督模型都有分類精度的提升,充分說明融合模型具有較強的泛化性能。
3) DenseNet40-GCN在4種數據集上的表現均優于DenseNet100-GCN,而且DenseNet40-GCN在500個標記樣本下的精度與2 000個標記樣本所得精度相差無幾。因此在對上述4種數據集進行分類時可以優先選擇DenseNet40模型,這一結論同樣地對現實中的樣本標注問題有極大的指導意義。
本節通過對兩種經典視覺卷積ResNet、Dense-Net與GCN融合模型的分類泛化性能進行數值實驗分析,形成如下結論:1)融合模型在分類任務中的性能均優于單一的卷積模型;2)對于不同類型的數據集,融合模型的表現各不相同,沒有最好的模型,在實踐中需要根據不同類型的數據集選擇不同類型的模型才能達到性能最優。研究結果顯示本文所提SCUTTLE模型是一種性能較好的半監督分類模型。
為了說明本文所提半監督圖像分類算法的有效性,需要在上述4種數據集上與同類算法的實驗結果進行對比,而同類算法為了得到較高的精度都在泛化能力較強的WRN[23]模型上進行實驗。WRN模型是ResNet模型的改進版,相比于Res-Net模型淺而寬,由于ResNet模型深而窄,精度每提升1%都需要添加雙倍的卷積層才能實現,因此會導致模型收斂速度較慢且重用性特征越來越少的問題,故而通過較寬且相對淺層的模型來解決上述問題,從而訓練出泛化性能更好的模型。
同樣地本文也采用WRN-GCN模型作為同類算法的比較模型,以此來獲得較高的模型精度。由于目前大部分半監督分類模型沒有統一的比較標準,因此Oliver等[24]提出了統一比較的框架,且給出了該框架下相應算法的實驗結果,本文也采用該框架,將融合模型的實驗結果與Oliver等記錄的算法的結果進行對比。
3.5.1 實驗設置
本節數據集選取以及各數據集標記樣本的數量設置與3.4節相同。CNN模型采用Oliver等提到的WRN-40-4模型。模型超參數設置如下:優化器與前幾小節有所不同,本節采用SGD優化器進行優化,設置KNN圖的K值設定為經驗值4,模型學習率采用衰減形式,設置初始學習率為0.01,模型訓練 200次 epochs,在 0~60次 epochs學習率為 0.01,60~120 次 epochs學習率為 0.005,120~160 epochs學習率為 0.002 5,160~200 epochs學習率為0.001 25,權重衰減率設置為0.000 5,dropout率設置為0.2。
3.5.2 實驗結果說明與分析
通過表3中與其他5種半監督學習算法的比較可以得出以下結論。

表3 SCUTTLE與其他5種半監督分類算法精度比較Table 3 Classification accuracy of SCUTTLE model on five datasets
1)本文所提SCUTTLE模型在4種數據集上的分類泛化性能均優于其他5種模型,除VAT[26]在SVHN數據集的標記樣本數量為250的結果外,但是該算法在CIFAR10數據集的精度值低于SCUTTLE的精度值,且該文中并沒有給出CIFAR100、STL10兩種數據集的數值實驗結果。
2)表3中的5種半監督學習算法在CIFAR100、STL10數據集中沒有給出相應的數值實驗結果,說明這兩個數據集對于檢驗算法分類性能具有很大挑戰,本文所提SCUTTLE模型給出這兩個數據集的數值實驗結果,從一定程度上彌補了這一空白。
本文從樣本間的關系提取角度出發,在圖像特征提取模型基礎上引入了關系表示模型,同時給出了二者的融合方法,構造了SCUTTLE模型,通過泛化性能分析和數值實驗形成了如下結論:
1)SCUTTLE模型是對單一圖像特征提取模型的補充和豐富,使得模型不僅具有特征提取能力也有學習圖像間關系的能力。
2)針對以往視覺領域中目標檢測算法在一幅圖像上不同對象間構建關系的單一性以及圖像分類模型中單獨的特征表達所造成樣本特征提取不夠充分等缺點,提出建立樣本間的關系與樣本特征表示相融合的融合模型,SCUTTLE模型具有特征提取與聚合樣本間關系的雙重能力,無需其他復雜的優化算法,只需要通過簡單的梯度下降即可實現end-to-end的學習。
3)數值實驗結果表明:SCUTTLE模型與目前流行的卷積神經網絡相比具有更強的泛化能力,通過半監督的學習方式,可以提升監督學習情況下普通卷積模型的圖像分類精度。CIFAR10數據集上融合模型與卷積模型的特征圖可視化對比結果驗證了引入的GCN模型對CNN模型的特征圖優化能力,進一步揭示了關系表示在特征提取中的重要性。
4)在 VGG、ResNet、DenseNet等模型上的試驗結果表明:SCUTTLE模型遠遠優于單一CNN模型的分類泛化性能,這一結論無疑為融合模型在少樣本上的精度提升指明了方向。此外實驗還發現,有時候更深特征提取層的模型可能對于監督分類學習會有好的效果,但是對于本文的半監督SCUTTLE模型而言,淺層的特征提取模型往往也會有不錯的表現。
本文所做工作是針對目前計算機視覺領域單個樣本上的關系不夠明確和全面,而提出的樣本間關系表達與特征提取融合算法的一次嘗試,數值實驗結果充分證明了該融合模型的可行性,擴展方法及其實際應用方面還需要進一步深入研究。