徐清海,丁世飛,2*,孫統(tǒng)風,2,張 健,2,郭麗麗,2
(1.中國礦業(yè)大學 計算機科學與技術(shù)學院,江蘇 徐州 221116;2.礦山數(shù)字化教育部工程技術(shù)研究中心(中國礦業(yè)大學),江蘇 徐州 221116)
2012 年,Hinton 等發(fā)表AlexNet[1],展現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在圖像識別領(lǐng)域的潛力,使CNN 一舉超越支持向量機、Boosting 等算法,成為圖像識別領(lǐng)域的首選方法。池化、卷積等操作使CNN 具有平移不變性,并獲得了良好的識別性能;但平移不變性也使CNN失去了一些重要信息,如位置、姿態(tài)等,這意味著CNN 在某種程度上忽略了平移同變性;同時,CNN 在識別物體的過程中忽略了空間關(guān)系,這不符合人眼的視覺邏輯。
為了探究圖像中物體的空間關(guān)系,Hinton 等[2]于2011 年提出了“膠囊”的概念。膠囊是一個向量,向量整體表示圖像中某個部件的特征,向量的分量表示部件的某個屬性。膠囊之間存在可學習的部分與整體的空間關(guān)系,這種空間關(guān)系用變換矩陣表示。同時,向量表示法保證了網(wǎng)絡(luò)具有平移同變性。在此基礎(chǔ)上,Sabour 等[3]實現(xiàn)了膠囊間的動態(tài)路由,這是一種有效的膠囊特征的傳遞方式,在MNIST 數(shù)據(jù)集上的表現(xiàn)超越了CNN,膠囊網(wǎng)絡(luò)(Capsule Network,CapsNet)由此吸引了大量研究者。Hinton 等[4]在2018 年描述了一種新的膠囊類型,膠囊由矩陣和激活值兩部分組成,矩陣用于描繪物體的屬性,激活值則代表膠囊的存在概率,該網(wǎng)絡(luò)在smallNORB 數(shù)據(jù)集上取得了良好的效果。Kosiorek 等[5]實現(xiàn)了首個無監(jiān)督的膠囊網(wǎng)絡(luò),它利用空間的幾何關(guān)系來推理物體,在MNIST 和SVHN 數(shù)據(jù)集上達到了無監(jiān)督分類的最新成果。與此同時,CapsNet 已經(jīng)被應用于醫(yī)療診斷[6-8]、圖像生成[9-10]、文本分類[11-12]以及其他諸多領(lǐng)域[13-16]。
盡管CaspNet 有許多優(yōu)點且應用廣泛,但它在某些方面仍存在改進空間,比如它在接近現(xiàn)實環(huán)境的復雜數(shù)據(jù)集的分類任務上表現(xiàn)不佳,因其龐大的參數(shù)量和計算量阻礙了膠囊網(wǎng)絡(luò)的推廣。為了降低CapsNet 的參數(shù)量和計算量,研究者們提出了一些優(yōu)化方法:為了減少膠囊的數(shù)量,Duarte 等[14]基于矩陣膠囊提出了一種膠囊池化方法,即讓同類型的初級膠囊共享轉(zhuǎn)換矩陣,然后對轉(zhuǎn)換后所得的預測膠囊進行平均池化,即求取感受野內(nèi)的預測膠囊的均值;Xiong 等[17]提出在深度方向上選取一半最活躍的膠囊類型進行動態(tài)路由,減少了膠囊層一半的參數(shù);Lalonde 等[13]提出了反卷積膠囊的概念,將CapsNet 的全連接重構(gòu)方式改為反卷積重構(gòu),在參數(shù)大量減少的情況下,對目標分割任務顯示出良好的分割效果。
為了提升CapsNet 在復雜數(shù)據(jù)集上的分類精度,研究者也提出了一些CapsNet 的改進模型:Xiang 等[18]提出了一種多尺度膠囊網(wǎng)絡(luò)(Multi-Scale Capsule Network,MS-CapsNet),使用多尺度特征提取器獲取結(jié)構(gòu)和語義信息,以提高網(wǎng)絡(luò)的表達能力;Amer 等[19]提出的 路徑膠囊網(wǎng)絡(luò)(Path Capsule Network,PathCapsNet)使用多個路徑生成膠囊,且所有路徑的膠囊均使用同一個動態(tài)路由層,這增加了膠囊的數(shù)量和多樣性;Do Rosario 等[20]提出的多線程膠囊網(wǎng)絡(luò)(Multi-Lane Capsule Network,MLCN)則為每個線程都配備獨立的路由層,各個線程路由所得的父膠囊則作為輸出膠囊的一維。在CNN 中,也有類似研究,如Tissera 等[21]在多路徑CNN 中引入交叉連接,提升了特征提取質(zhì)量和圖像識別精度;Phaye 等[22]使用更深的卷積模塊替換卷積層,并且一個卷積模塊搭配一個膠囊輸出層,組成了性能優(yōu)異的多級膠囊網(wǎng)絡(luò)。在文獻[22]研究的基礎(chǔ)上,Sun 等[23]用密集連接塊構(gòu)建了多級膠囊網(wǎng)絡(luò),顯示了良好的分類效果;Ren 等[24]提出的自適應算法使底層膠囊能自適應地調(diào)整它們的方向和長度,并且消除了耦合系數(shù)對梯度傳播的影響,使CapsNet 的路由層可以多次堆疊,從而使膠囊能表示更深層的隱含信息,提升分類精度。
上述方法或改進了膠囊網(wǎng)絡(luò)的分類精度,或減少了參數(shù)數(shù)量,但并未同時兼顧分類精度以及參數(shù)數(shù)量。本文提出一種基于多路徑特征的膠囊網(wǎng)絡(luò)(Capsule Network based on Multipath feature,MCNet)模型,包括一種新的適用于膠囊網(wǎng)絡(luò)的特征提取器和一種新的膠囊池化技術(shù)。其中:特征提取器擁有4 條并行的路徑,各路徑擁有不同數(shù)量的卷積層和池化層,能提取到豐富的不同層次的特征,然后生成具備空間特性的膠囊特征;膠囊池化技術(shù)能有效選取少數(shù)膠囊來代表整體的膠囊特征,在保證模型分類性能的前提下,大量減少膠囊數(shù)量,從而減少參數(shù)數(shù)量和計算量。本文主要工作如下:
1)提出一種新的膠囊特征提取器,以生成更豐富的初級膠囊特征,有效地提升模型的分類準確率;
2)提出一種新的膠囊池化技術(shù),以有效減少膠囊數(shù)量,降低模型的計算量;
3)在CIFAR-10、SVHN、Fashion-MNIST、MNIST 等4 個數(shù)據(jù)集上考察了本文模型的分類準確率和參數(shù)數(shù)量,實驗結(jié)果表明,本文模型在性能上具有競爭力。
圖1 是Sabour 等[3]描述的CapsNet 的結(jié)構(gòu),由1 個三層的編碼器和1 個三層的解碼器組成。編碼器的第一層是1 個卷積層,用于提取底層特征。第二層是初級膠囊層(Primary Capsule layer,PrimaryCaps),它將底層特征再次卷積,生成初級膠囊(子膠囊)。在圖1 中,20 × 20 × 256 的特征圖通過32個9 × 9 的卷積得到了6 × 6 × 8 × 32 的膠囊特征圖,其中:8表示一個卷積核的輸出通道數(shù),也是一個膠囊的維度;32 表示膠囊類型的數(shù)量,1 個卷積核單獨生成一種膠囊類型。第三層是數(shù)字膠囊層(Digit Capsule layer,DigitCaps),用于存儲10 個代表分類結(jié)果的輸出膠囊(父膠囊),輸出膠囊的長度(L2 范式)代表著其對應的類的存在概率。初級膠囊與輸出膠囊之間通過動態(tài)路由傳遞膠囊特征,本文將在1.2 節(jié)介紹。
圖1 CapsNet結(jié)構(gòu)Fig.1 Structure of CapsNet
解碼器是CapsNet 的輔助網(wǎng)絡(luò),它被用于重構(gòu)圖像。解碼器由3 個全連接層(Fully Connected layer,F(xiàn)C)構(gòu)成,前兩層分別包含512、1 024 個神經(jīng)元,通過修正線性單元(Rectified Linear Unit,ReLU)激活。第三層通過Sigmoid 函數(shù)激活,包含784 個神經(jīng)元,對應于MNIST 數(shù)據(jù)集28 × 28 的圖像尺寸。值得一提的是,在解碼前,除了1 個正確膠囊,位于DigitCaps 的其余9 個錯誤膠囊要通過掩碼屏蔽。解碼器的目標函數(shù)應使重構(gòu)圖像與原圖像的歐氏距離不斷縮小,因此原圖像與重構(gòu)圖像像素之間的平方差之和或平方差均值就是重構(gòu)損失。為了防止解碼器在網(wǎng)絡(luò)訓練過程中占據(jù)主導地位,重構(gòu)損失要乘以重構(gòu)系數(shù)后才能加入總損失函數(shù)。
與CNN 不同的是,CapsNet 有獨特的向前傳播方式,這種方式被稱為動態(tài)路由。動態(tài)路由發(fā)生在初級膠囊和輸出膠囊之間,如圖1,PrimaryCaps 和DigitCaps 通過動態(tài)路由連接,位于PriamryCaps 的初級膠囊需要通過空間關(guān)系預測處于DigitCaps 的輸出膠囊,預測的過程為:
假設(shè)膠囊i是位于l層的某個初級膠囊,取值為ui;膠囊j是位于l+1 層的某個輸出膠囊;Wij為i與j之間的空間關(guān)系矩陣,那么是膠囊i通過空間關(guān)系對膠囊j所作的預測;Sj是初級膠囊對輸出膠囊的預測的加權(quán)和;cij為路由迭代過程中確定的耦合系數(shù)。Sj需要經(jīng)過非線性壓縮才能表示概率,壓縮過程為:
式(2)為Squash 非線性壓縮函數(shù),它可以把向量Sj的長度壓縮至0 到1,短向量的長度將被壓縮至略大于0,長向量將被壓縮至略小于1。這樣可以確保輸出向量Vj的長度可以表示該膠囊所代表的類的出現(xiàn)概率。
對于耦合系數(shù),需要通過Softmax 路由公式進行計算,計算式如下:
其中:bij表示膠囊i到膠囊j之間的連接概率,初值為0。對bi進行Softmax 路由后得到耦合系數(shù)cij,膠囊i與上層所有膠囊的耦合系數(shù)之和為1。
算法1 動態(tài)路由算法[3]。
算法1 的步驟2)表示動態(tài)路由會迭代r次,r通常設(shè)置為3。步驟6)表示動態(tài)路由使用Vj與的標量積來更新連接概率bij,這意味著當輸出膠囊Vj與預測膠囊相似時,連接概率bij會增大,進一步導致耦合系數(shù)增大;相反,當它們不相似時,標量積為負數(shù),連接概率bij和耦合系數(shù)會縮小。
解碼器是膠囊網(wǎng)絡(luò)的重要組成部分,它能以重構(gòu)圖像的方式提升網(wǎng)絡(luò)的分類準確率。除了CapsNet 所使用的全連接解碼器,反卷積解碼器同樣適用于膠囊網(wǎng)絡(luò)。反卷積解碼器的優(yōu)勢在于參數(shù)量小,適用于復雜數(shù)據(jù)集。本文模型MCNet同樣使用了反卷積解碼器來重構(gòu)圖像。
圖2 是一個應用于CIFAR-10 數(shù)據(jù)集的膠囊網(wǎng)絡(luò)的反卷積解碼器。經(jīng)過動態(tài)路由后,DigitCaps 得到10 個16 維的向量(父膠囊),膠囊的長度代表它對應的類的存在概率。除了其中正確的膠囊外,其他膠囊都被掩碼所屏蔽,然后將DigitCaps 拉伸為一維張量。通過一個全連接層后,得到8 ×8 × 16 個標量特征,再將這些特征折疊成[16,8,8]的特征圖。最后將特征圖進行反卷積(Deconvolution,Deconv)處理,該處理過程需要經(jīng)過4 個反卷積層,每層的輸出通道分別為64、32、16、3,最終得到和與CIFAR-10 圖像尺寸一致的[3,32,32]的重構(gòu)圖像。解碼器通過重構(gòu)圖像與原圖像的均方損失進行訓練。
圖2 反卷積解碼器結(jié)構(gòu)Fig.2 Structure of deconvolutional decoder
圖3 是本文模型MCNet 應用于CIFAR-10 數(shù)據(jù)集的網(wǎng)絡(luò)結(jié)構(gòu)。MCNet 的編碼器部分可以分為5 個模塊,包括2 個卷積層、1 個膠囊特征提取層、1 個膠囊池化層和1 個DigitCaps。MCNet 使用兩個尺寸為5×5 的卷積核提取原始特征,原CapsNet 則使用單個尺寸為9×9 的卷積核。這兩種特征提取方式的感受野一樣,但是多層卷積能提取到更深層次的特征,所以小而連續(xù)的卷積核提取的特征要好于單個大尺寸的卷積核。膠囊特征提取器可以通過多個路徑的特征來生成膠囊(將在第2.2 節(jié)中詳述)。膠囊池化是一種篩選膠囊的技術(shù),目的是用具有代表性的少數(shù)膠囊來表示最多的有效膠囊特征,從而減少計算量(將在第2.3 節(jié)詳述)。池化后,所有被篩選出的膠囊將通過動態(tài)路由機制(見2.2 節(jié))轉(zhuǎn)換為輸出膠囊,從而進入DigitCaps。DigitCaps 的10 個輸出膠囊的長度代表各個類的存在概率。
圖3 MCNet模型結(jié)構(gòu)Fig.3 Structure of MCNet model
DigitCaps 作為網(wǎng)絡(luò)的輸出層,位于該層的膠囊的長度可以表示類的存在概率,MCNet 通過計算該層膠囊的邊緣損失來訓練編碼器。邊緣損失的計算公式如下:
其中:Lk表示第k個膠囊所代表的類的損失。當且僅當該膠囊代表的類存在時,Tk=1;不存在時,Tk=0。vk是DigitCaps的第k個膠囊,‖vk‖是膠囊的L2范式,即長度。m+=0.9,是上邊界;m-=0.1,是下邊界。λ是比例系數(shù),大小為0.5,意味著正類損失的重要性是負類損失的2 倍。編碼器的總損失是DigitCaps 中所有膠囊損失的總和。
最后,在解碼器部分,MCNet 使用反卷積解碼器(見2.3節(jié))重構(gòu)圖像。相較于CapsNet 使用的全連接重構(gòu),反卷積重構(gòu)增強了網(wǎng)絡(luò)的性能,并且顯著減少了參數(shù)數(shù)量。應用于CIFAR-10 數(shù)據(jù)集的全連接解碼器有3.76×106個參數(shù),而反卷積解碼器只有0.2×106個參數(shù)。實驗結(jié)果表明,反卷積解碼器在CIFAR-10 這類復雜的數(shù)據(jù)集中的表現(xiàn)要明顯好于全連接解碼器。
膠囊特征提取器的目標是提取豐富、多樣的標量特征,從而生成同樣豐富的向量(膠囊)特征。如圖4,提取器有4條路徑,每條路徑所擁有的卷積層和池化層的數(shù)量也不相同,即每條路徑的深度不一致。為了盡量不提取重復的標量特征,即使有路徑深度相同,但是結(jié)構(gòu)也不相同。
圖4 膠囊特征提取器與膠囊池化層的結(jié)構(gòu)Fig.4 Structures of capsule feature extractor and capsule pooling layer
膠囊特征提取器為每條路徑設(shè)立了一個膠囊層,該層存儲著初級膠囊up。p是路徑的標號,提取器有4 條路徑,因此p∈{1,2,3,4}。每條路徑都存在許多膠囊類型,假設(shè)在第一條路徑中:
其中:t是膠囊類型的數(shù)量,在一條路徑中,t=32,因此4 條路徑總共有128 種膠囊類型。MCNet 不是單純地在一條路徑上增加膠囊類型的數(shù)量,而是通過疊加不同路徑來增加膠囊數(shù)量,這確保了膠囊來源的豐富度和膠囊的質(zhì)量。事實上,對任意一個路徑p'的任意一個膠囊類型t'而言,都存在h×w個膠囊u:
其中:h是膠囊特征圖的高度,w是膠囊特征圖的寬度。因此,MCNet 一共有4 × 32 ×h×w個膠囊。具體到 在CIFAR-10 數(shù)據(jù)集,h=w=10??紤]到膠囊特征提取器有4條路徑,因此膠囊數(shù)量是CapsNet 的4 倍。從計算量的角度考慮,MCNet 為每條路徑都配備了一種新的膠囊池化層,它大幅減少了膠囊數(shù)量(將在第2.3 節(jié)詳述)。
多路徑的特征提取方式并沒有使MCNet 參數(shù)驟增。因為對卷積核的尺寸和輸出通道的把控,在CIFAR-10 數(shù)據(jù)集中,MCNet 從輸入層到膠囊特征提取層有5.47×106的參數(shù),相比之下CapsNet 有5.37×106參數(shù)。相反,因為膠囊池化方法減少了膠囊數(shù)量,會大大降低動態(tài)路由的計算量。
實驗結(jié)果表明,膠囊特征提取器使用的特征提取方法使網(wǎng)絡(luò)在復雜數(shù)據(jù)集上的分類準確率大幅提升,尤其在膠囊池化層篩選膠囊數(shù)量之后,MCNet 用遠小于CapsNet 的膠囊數(shù)量實現(xiàn)了更好的分類結(jié)果,說明膠囊特征提取器提取了良好的膠囊特征。
上文提到,膠囊特征提取器產(chǎn)生了4 倍于CapsNet 的膠囊數(shù)量。膠囊的數(shù)量越多,參與到動態(tài)路由的參數(shù)就越多,而且必須考慮到這些參數(shù)在動態(tài)路由過程中會經(jīng)過多次迭代,這將導致計算成本增加。因此需要一種減少膠囊數(shù)量的方法,本文的解決方案是在動態(tài)路由之前,添加一種膠囊池化技術(shù)。
膠囊特征的動態(tài)路由過程可看作是一個膠囊全連接過程,在子膠囊和父膠囊之間存在耦合系數(shù)。Ren 等[24]提出,在動態(tài)路由的過程中,大多數(shù)膠囊的耦合系數(shù)幾乎可以忽略不計。這意味著少數(shù)子膠囊占據(jù)了極大的耦合系數(shù),幾乎決定了父膠囊的取值。本文的膠囊池化技術(shù)就是要找到這些最重要的子膠囊。
如圖5,在子膠囊層u中,共包含t×h×w個子膠囊,t是膠囊類型的數(shù)量,h是膠囊層u的高度,w是膠囊層u的寬度。在膠囊層u的(x,y)處,存在t個膠囊:
圖5 膠囊池化Fig.5 Capsule pooling
在膠囊池化層中,存在h×w個膠囊。在該層只有一個膠囊類型,膠囊數(shù)量是u層的1/t,這兩層的位置一一對應。具體來說,在的(x,y)位置,只存在一個膠囊
膠囊就是u層在(x,y)位置的t個膠囊中最活躍的一個。上文提到,輸出膠囊的長度代表類的存在概率,而在子膠囊層和膠囊池化層,膠囊的長度代表的是膠囊本身的活躍度。長度越長,膠囊越活躍。膠囊池化方法保證了子膠囊層的每個位置都有膠囊入選池化層,保護了位置信息。
對于MCNet 而言,膠囊池化方法使膠囊的數(shù)量減少到原來的1/t(t=32)。盡管MCNet 有4 條路徑,最終參與動態(tài)路由的膠囊數(shù)量僅為CapsNet 的1/8。因此,路由過程中的可訓練的參數(shù)也僅為原來的1/8。參數(shù)指的是子膠囊和父膠囊之間的空間關(guān)系。應用于CIFAR-10 數(shù)據(jù)集的CapsNet,參與動態(tài)路由的參數(shù)量為4.10×106,而MCNet 只有0.51×106。實驗結(jié)果表明,本文提出的膠囊池化方式能在大幅減少參數(shù)量和計算量的同時保持分類準確率。
除了在同一位置取最活躍膠囊的池化方式外,本文還嘗試了在同一位置取膠囊平均值的池化方式。取平均值的本意是融合膠囊,在減少膠囊數(shù)量的情況下讓所有膠囊的特征都參與到路由過程中,但結(jié)果顯示該池化方式會使分類準確率明顯降低,這也再次說明并不是所有膠囊都對分類結(jié)果有所幫助,少數(shù)膠囊可以代表所有膠囊。
本文在CIFAR-10、SVHN、Fashion-MNIST 和MNIST 等4個數(shù)據(jù)集上測試了MCNet 模型。CIFAR-10 是一個包含飛機、汽車、鳥類、貓、鹿、狗、蛙類、馬、船和卡車等10 類彩色圖像的數(shù)據(jù)集,圖片大小為32 × 32,圖片背景貼近實際且十分復雜;SVHN 數(shù)據(jù)集來源于谷歌街景的門牌號碼,包含10 個數(shù)字類別的彩色圖像,圖像大小同樣為32 × 32,圖片背景復雜;Fashion-MNIST 數(shù)據(jù)集包含了T 恤、牛仔褲、套衫、裙子、外套、涼鞋、襯衫、運動鞋、包、短靴等10 個類別的灰色圖像,圖像大小為28 × 28,圖像背景單一;MNIST 數(shù)據(jù)集包含10 類手寫數(shù)字的灰度圖像,圖片大小為28 × 28,圖片背景十分簡單。因此,實驗中的CIFAR-10 可視為復雜數(shù)據(jù)集,MNIST 可視為簡單數(shù)據(jù)集,SVHN 和Fashion-MNIST 則位于兩者之間。
本文的實驗建立在文獻[25]的開源代碼上,所有數(shù)據(jù)集均取自torchvision.datasets 函數(shù)庫,并在數(shù)據(jù)預處理的過程中在各方向上使用了最多2 個像素的隨機裁剪,除此之外無其他數(shù)據(jù)增強方式。在所有實驗中,本文均使用自適應矩估計(Adaptive moment estimation,Adam)優(yōu)化器,未設(shè)置固定學習率,batch size 為100,epochs 為100。對所有實驗數(shù)據(jù),本文都進行了3 次實驗測試,并取均值作為結(jié)果。實驗中:加粗的字體表示性能最好的實驗結(jié)果;“—”表示對應模型未給出在該數(shù)據(jù)集的實驗結(jié)果。
本文以分類準確率為評價標準,將MCNet 和其他膠囊網(wǎng)絡(luò)模型在CIFAR-10、SVHN、Fashion-MNIST 和MNIST 數(shù)據(jù)集上進行比較和分析。在CIFAR-10 和SVHN 數(shù)據(jù)集上,MCNet的膠囊特征提取器共生成了12 800 個下層膠囊;經(jīng)膠囊池化層篩選后,一共留下了400 個下層膠囊;最后經(jīng)過動態(tài)路由,在DigitCaps 生成了10 個代表分類結(jié)果的輸出膠囊。在MNIST 和Fashion-MNIST 數(shù)據(jù)集上,MCNet 的膠囊特征提取器共生成了4 608 個下層膠囊;膠囊池化后,一共留下了144個下層膠囊;動態(tài)路由后,產(chǎn)生了10 個輸出膠囊。
表1 中,CapsNet 是本文根據(jù)文獻[25]的開源代碼復現(xiàn)的結(jié)果,使用了數(shù)據(jù)增強手段。Xi 等[26]對CapNet 使用了增加卷積層、多模型集成等手段,在CIFAR-10 數(shù)據(jù)集上的分類準確率比原CapsNet 更高。Nair 等[27]是首個對CapsNet 在多個數(shù)據(jù)集上進行測試的研究者。MS-CapsNet[18]、MLCN2[20]、PathCapsNet[19]改進了 膠囊網(wǎng) 絡(luò)的結(jié) 構(gòu),HitNet[28](Neural network with capsules embedded in a Hit-or-Miss layer)、Zhao等[29]、Ren 等[24]則改進了膠囊網(wǎng)絡(luò)的路由機制。
表1 模型的分類準確率對比 單位:%Tab.1 Classification accuracy comparison of models unit:%
由表1 可知,幾乎所有的模型都能在MNIST 這類簡單的數(shù)據(jù)集上達到極高的準確率,其中CapsNet 的表現(xiàn)最好。大多模型對Fashion-MNIST 數(shù)據(jù)集的分類準確率都集中在92%到93%,MCNet 的表現(xiàn)明顯好于其他模型。對于SVHN 數(shù)據(jù)集,MCNet 的分類結(jié)果也是最好的。對于比較復雜的CIFAR-10 數(shù)據(jù)集,MCNet 分類準確率達到了79.27%,大幅超出CapsNet(準確率提高了8.7%),也明顯好于其他的模型。
就識別準確率而言,與其他模型相比,CapsNet 在簡單數(shù)據(jù)集(MNIST)上表現(xiàn)優(yōu)秀,在稍微復雜的數(shù)據(jù)集(Fashion-MNIST、SVHN)上僅稍遜一籌,但在復雜數(shù)據(jù)集(CIFAR-10)上則不盡如人意。本文模型MCNet 在3 個數(shù)據(jù)集上的表現(xiàn)都好于CapsNet 的其他改進模型,尤其是在復雜數(shù)據(jù)集上。顯然,MCNet 改善了CapsNet 不適應于對復雜數(shù)據(jù)集進行分類的問題。
MCNet 在可訓練的參數(shù)量上也具有優(yōu)勢。表2 記錄了3種膠囊網(wǎng)絡(luò)模型與MCNet 在CIFAR-10 和Fashion-MNIST 數(shù)據(jù)集上關(guān)于參數(shù)量及分類準確率的比較。在這兩個數(shù)據(jù)集上,MCNet 所使用的參數(shù)數(shù)量僅是其他模型的43.86%到71.53%,但是分類準確率卻明顯高過其他模型。MCNet 在大幅減少了參數(shù)量的前提下,仍然提升了分類準確率,驗證了MCNet 模型的競爭力。
表2 三種膠囊網(wǎng)絡(luò)模型與MCNet的分類準確率及參數(shù)量對比Tab.2 Comparison of classification accuracy and number of parameters among three capsule network models and MCNet
表3 是在CIFAR-10 數(shù)據(jù)集上進行消融實驗的結(jié)果。其中:“—”和“√”分別表示未使用和使用了相關(guān)技術(shù)。由表3可知,使用了膠囊特征提取器的模型c、d 的分類準確率大幅超過未使用特征提取器的模型a、b,說明膠囊特征提取器能幫助模型提升對復雜數(shù)據(jù)集的分類準確率。采用了膠囊池化技術(shù)的模型b 的準確率比模型a 高0.72 個百分點,未使用膠囊池化技術(shù)的模型c 的準確率比模型d 高0.07 個百分點,但是實驗中模型d 的訓練時間是模型c 的37.44%,可訓練的參數(shù)量是模型c 的28.24%。本文提出的膠囊池化技術(shù)在保持了分類準確率的情況下,大幅減少了參數(shù)量和計算量,驗證了該技術(shù)的有效性。
表3 CIFAR-10數(shù)據(jù)集上的消融實驗Tab.3 Ablation study on CIFAR-10 dataset
本文提出了一種基于多路徑特征的膠囊網(wǎng)絡(luò)。該網(wǎng)絡(luò)能有效提升膠囊網(wǎng)絡(luò)在復雜數(shù)據(jù)集上的分類性能,大幅減少可訓練的參數(shù)量。該網(wǎng)絡(luò)的膠囊特征提取器從多個不同路徑提取了豐富多樣的膠囊特征,提升了模型的分類性能。另外,本文還提出了一種新的膠囊池化技術(shù),它用極少的膠囊數(shù)量保留了最多有效的語義信息,從而大幅降低了模型在路由過程的計算量和參數(shù)量。相較于其他膠囊網(wǎng)絡(luò)模型,本文模型用更少的參數(shù)量實現(xiàn)了更好的分類性能。
未來的工作包括:一是繼續(xù)探索更好的膠囊池化方法,即精確選取少數(shù)膠囊代表整體的膠囊特征。二是探究計算量更小的路由方式。該路由方式應該通過減少路由過程的迭代次數(shù)和參數(shù)量來減少計算量,同時,它還應當盡量避免梯度消失問題,使深度路由成為可能,幫助膠囊網(wǎng)絡(luò)降低對深度卷積的依賴性,加速膠囊網(wǎng)絡(luò)的推廣。