范文豪,吳曉富,張索非
(1.南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003;2.南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)比較擅長檢測圖像特征[1-2],但由于CNN中神經(jīng)元的輸入和輸出都是標(biāo)量,標(biāo)量只能用來表示所提取到的特征存在的可能性,不能表示特征的空間信息,這就導(dǎo)致CNN探索特征間的空間關(guān)系能力欠佳[3]。同時(shí)CNN中的下采樣層降低了圖像的空間分辨率,一些空間信息就會(huì)丟失,使得CNN對于輸入的一些小變化不敏感。例如當(dāng)輸入圖像為人臉時(shí),如果將他的鼻子和嘴巴位置互換,通常CNN會(huì)誤認(rèn)為這是一張人臉。這正是由于CNN特征的弱空間關(guān)聯(lián)性造成的[4]。
為了解決CNN的這一缺陷,Sara Sabour等提出了動(dòng)態(tài)路由的膠囊網(wǎng)絡(luò)(capsule network)[5]。它與傳統(tǒng)CNN的最主要區(qū)別在于,膠囊網(wǎng)絡(luò)提出了一種由神經(jīng)元組成的膠囊結(jié)構(gòu),它的輸入輸出都是矢量[6],不僅能夠通過矢量的模長來表示某個(gè)特征出現(xiàn)的可能性,還能夠通過矢量來表示特征的空間信息,包括位置、方向、大小、形變等。這樣膠囊網(wǎng)絡(luò)就能夠?qū)W習(xí)到同一個(gè)特征的不同變體,還能很好地表達(dá)特征間的空間關(guān)聯(lián)。
文中先對CNN中各層提取到的特征進(jìn)行可視化,驗(yàn)證CNN中提取到的特征空間關(guān)聯(lián)性的強(qiáng)弱。之后對膠囊網(wǎng)絡(luò)中DigiCaps層最終提取到的矢量特征的不同維度分別進(jìn)行改變,將得到特征的不同變體進(jìn)行可視化[7]。通過可視化方法判斷出提取到的矢量化特征是否包含空間信息,并通過不同變體的變化得出具體的空間信息,從而加深對膠囊網(wǎng)絡(luò)所提取到的矢量化特征的理解。
可視化實(shí)驗(yàn)結(jié)果表明,CNN中提取到的特征空間的關(guān)聯(lián)性較弱,而膠囊網(wǎng)絡(luò)的矢量化特征確實(shí)包含了所提取特征的姿態(tài)、形變等空間信息[8-10],能夠很好地表達(dá)特征之間的空間關(guān)聯(lián)。
CNN主要由卷積層和池化層組成,對于多層的CNN,每一層所提取到的特征都是不完全相同的。為了驗(yàn)證CNN提取到特征的空間關(guān)聯(lián)性的強(qiáng)弱,可以通過反池化和反卷積[11-12]的操作對每一層提取到的多個(gè)特征進(jìn)行可視化,從而觀察所提取到的特征間空間關(guān)聯(lián)性強(qiáng)弱。
使用MNIST數(shù)據(jù)集[13-14]訓(xùn)練一個(gè)4層的CNN,其中每一層的卷積核尺寸都為5×5,卷積時(shí)所采用的padding為SAME模式,并在第二層和第四層卷積后加上大小為2×2的max pooling層。訓(xùn)練完成后對CNN每層所提取到的特征進(jìn)行可視化,可視化結(jié)果見表1。從每層的多個(gè)特征中抽取出部分特征的可視化圖像放入表中,表中包括輸入圖像以及CNN前3層特征的可視化。
從表1可以看出:CNN第一層提取出的特征主要是圖像中數(shù)字的邊緣和輪廓,第二層提取到的特征主要是數(shù)字邊緣的顏色分布與數(shù)字內(nèi)容,第三層則能夠提取到數(shù)字一些局部特征以及少量的空間信息。可視化結(jié)果表明,普通的CNN提取空間信息的能力較弱,并不能夠?qū)W習(xí)到同一個(gè)特征的多種不同變體,所以提取到特征的空間關(guān)聯(lián)性也就較弱。
表1 CNN特征可視化
膠囊網(wǎng)絡(luò)中最重要的組成部分是膠囊。膠囊是由神經(jīng)元組成的一個(gè)向量,能表征檢測類型的多維實(shí)體的實(shí)例化參數(shù)和存在性。
圖1 膠囊之間的轉(zhuǎn)換結(jié)構(gòu)
圖1是膠囊網(wǎng)絡(luò)中兩層膠囊之間的轉(zhuǎn)換關(guān)系,其中膠囊i和膠囊j都是矢量,ui為膠囊i的激活值,Wij,cij為兩個(gè)膠囊之間的轉(zhuǎn)換矩陣和權(quán)重:
通過非線性“壓縮”函數(shù)(Squash函數(shù))得到膠囊j的激活值vj:
膠囊網(wǎng)絡(luò)中使用動(dòng)態(tài)路由[15]迭代算法,迭代步驟如下:
1.令:bij←0(i∈l,j∈l+1)
2.forriterations do
ci←softmax(bi)(i∈l)
vj←squash(sj)(j∈l+1)
returnvj
圖2為整個(gè)膠囊網(wǎng)絡(luò)的結(jié)構(gòu)。本次實(shí)驗(yàn)使用的是MNIST數(shù)據(jù)集,圖中第一層為輸入層,輸入圖像的尺寸為28×28×1;第二層為卷積層,使用卷積核尺寸為9×9×1×256,進(jìn)行步長為1的VALID型卷積,這層把像素強(qiáng)度轉(zhuǎn)換成局部特征檢測信息;第三層為PrimaryCaps層,使用卷積核仍為9×9×1×256,進(jìn)行步長為2的VALID型卷積,將得到結(jié)果組合成32×6×6個(gè)膠囊,每一個(gè)膠囊為8維的向量;第四層為DigiCaps層,共10個(gè)膠囊,每個(gè)膠囊為16維的向量,第三層輸出經(jīng)轉(zhuǎn)換矩陣Wij和動(dòng)態(tài)路由過程得到第四層輸出;最后三層全連接層用來對圖像進(jìn)行復(fù)原。
圖2 膠囊網(wǎng)絡(luò)結(jié)構(gòu)
實(shí)驗(yàn)使用MNIST數(shù)據(jù)集來訓(xùn)練膠囊網(wǎng)絡(luò)[16-18],數(shù)據(jù)的預(yù)處理過程進(jìn)行了簡單的歸一化處理,具體的訓(xùn)練參數(shù)見表2。其中DigiCaps層的維度是會(huì)隨著實(shí)驗(yàn)改變的。
表2 膠囊網(wǎng)絡(luò)主要訓(xùn)練參數(shù)
本次實(shí)驗(yàn)?zāi)康氖茄芯砍鯠igiCaps層膠囊提取到的矢量化特征所能代表的空間信息。實(shí)驗(yàn)的主要內(nèi)容是改變DigiCaps層提取到的特征的某一維大小(其余維不變),按訓(xùn)練好的參數(shù)通過全連接層復(fù)原圖像進(jìn)行可視化,得到的復(fù)原圖像會(huì)是同一個(gè)特征的不同變體,對比多個(gè)復(fù)原圖像判斷出所改變的那一維代表的空間信息。然后將DigiCaps層中膠囊特征的維數(shù)改變做同樣的實(shí)驗(yàn)。
2.2.1 DigiCaps層膠囊中矢量化特征維數(shù)為16的可視化
當(dāng)DigiCaps層膠囊中向量維數(shù)為16時(shí),按照表2中的參數(shù)訓(xùn)練圖2的網(wǎng)絡(luò)后得到的loss值見圖3。經(jīng)過300個(gè)epoch之后,loss下降到0.003 5左右,最終測試得到的準(zhǔn)確率在99.25%左右。
參數(shù)訓(xùn)練完成后,通過全連接層將輸入的圖像進(jìn)行復(fù)原。表3中包括初始復(fù)原圖和改變特征某一維大小得到的復(fù)原圖。這里的改變某一維大小是指在特征某一維上加或減去一個(gè)小于1的合適的常數(shù),多次改變大小將得到的復(fù)原圖像進(jìn)行對比。表3中初始復(fù)原圖像的右下角數(shù)字代表修改的矢量化特征的維度。
圖3 維數(shù)為16時(shí)網(wǎng)絡(luò)的loss
對比表3中復(fù)原圖像可知,當(dāng)改變特征某一維的大小后,會(huì)對數(shù)字的大小、旋轉(zhuǎn)、局部形狀、筆畫的彎曲、粗細(xì)等產(chǎn)生影響。例如輸入為0時(shí)改變特征的第2維發(fā)現(xiàn)數(shù)字的大小發(fā)生了變化,輸入為1時(shí)改變特征的第15維時(shí)數(shù)字發(fā)生了旋轉(zhuǎn),輸入為2時(shí)改變特征的第1維時(shí)數(shù)字的局部形狀發(fā)生了改變。說明膠囊網(wǎng)絡(luò)的矢量化特征是可以表示特征的空間信息的。從可視化結(jié)果可以看出,矢量化特征所提取到的空間信息主要是來源于同一類別的訓(xùn)練數(shù)據(jù)集的多樣化。當(dāng)DigiCaps層膠囊中矢量化特征維數(shù)為16時(shí),對于MNIST數(shù)據(jù)集而言,16個(gè)維度足夠提取出輸入圖像的絕大部分的空間信息,并且對同一類別16個(gè)維度所表示的空間信息有少部分是類似的。如果同一類別的訓(xùn)練數(shù)據(jù)集中數(shù)字圖像的變化不是非常大,那么提取到的特征的部分維度所表示的空間信息有一些會(huì)比較相似,但是對于不同類別的輸入,提取到的空間信息大多數(shù)是不相同的。
2.2.2 改變DigiCaps層膠囊中矢量化特征維數(shù)
將DigiCaps層膠囊中特征維數(shù)下降為8時(shí),同樣按表2中的參數(shù)訓(xùn)練圖2網(wǎng)絡(luò),最終訓(xùn)練得到的loss值和維度為16時(shí)的loss值比較接近。測試得到的準(zhǔn)確率在98.75%左右,相較于維度為16時(shí)的準(zhǔn)確率稍有下降。
當(dāng)矢量化特征維數(shù)下降為8時(shí),仍然能提取到數(shù)據(jù)集的部分空間信息,它們與維數(shù)為16時(shí)提取到的空間信息基本相同,但是沒有16維時(shí)提取的空間信息全面,并且在這8個(gè)維度所表示的空間信息中相互類似的越來越少。說明維數(shù)下降為8時(shí)也能夠提取MNIST數(shù)據(jù)集的大部分空間信息,使得在復(fù)原圖像過程中能夠逼近原圖像,維數(shù)為8時(shí)的loss值接近于維數(shù)為16時(shí)的loss值也從側(cè)面說明了這一點(diǎn)。
將DigiCaps層膠囊中特征維數(shù)下降為4時(shí),同樣按表2中的參數(shù)訓(xùn)練圖2網(wǎng)絡(luò),最終訓(xùn)練得到的loss值比之前的維度為16和8時(shí)都要大很多,大約在0.008左右,測試得到的準(zhǔn)確率在98.5%左右,比之前維度為16和8時(shí)的準(zhǔn)確率都要低。當(dāng)矢量化特征維數(shù)下降為4時(shí),只能夠提取到數(shù)據(jù)集的一小部分空間信息,且4個(gè)維度所表示的空間信息一般各不相同。由于提取的空間信息較少,使得復(fù)原出的圖像與原圖像差距相對較大,因此矢量化特征維數(shù)為4時(shí)的loss值相對于維數(shù)為16和8時(shí)的loss值較大。
表3 維數(shù)為16時(shí)的特征可視化
根據(jù)以上實(shí)驗(yàn)得出,在選取DigiCaps層膠囊中矢量化特征維數(shù)時(shí),應(yīng)該根據(jù)訓(xùn)練數(shù)據(jù)集中同一類別所有圖像所包含的空間信息的多少,也就是同一類別圖像的多樣化來判斷適合的維數(shù)。維數(shù)過少會(huì)導(dǎo)致提取到的圖像的空間信息較少,在復(fù)原圖像時(shí)就會(huì)與原圖有較大的差距,維數(shù)過多雖然能提取到更多的空間信息,但同時(shí)也會(huì)增加網(wǎng)絡(luò)的參數(shù)量。
通過特征可視化的方法驗(yàn)證了CNN中提取到的特征空間關(guān)聯(lián)性較弱,而膠囊網(wǎng)絡(luò)提取到的矢量化特征確實(shí)包含了多種空間信息,這使得特征之間具有空間關(guān)聯(lián)性,可解釋性也更強(qiáng)。相比于CNN,膠囊網(wǎng)絡(luò)不僅可以學(xué)習(xí)到輸入圖像的絕大部分空間信息,同時(shí)提取到特征的多種不同變體也可以通過改變DigiCaps層矢量化特征得到。但是CNN只能夠提取到輸入圖像的少量空間信息,能夠提取到的特征的不同變體也很有限。使得對于每個(gè)類別的輸入,膠囊網(wǎng)絡(luò)比傳統(tǒng)的卷積網(wǎng)絡(luò)能學(xué)習(xí)到一個(gè)更加魯棒的表示。并且隨著DigitCaps層特征維數(shù)的降低,矢量化特征所能提取到的空間信息越來越少,膠囊網(wǎng)絡(luò)復(fù)原出的圖像與原圖差距也就越大。
對于MNIST數(shù)據(jù)集,膠囊網(wǎng)絡(luò)只需要更少的訓(xùn)練數(shù)據(jù)就可以得到較高的準(zhǔn)確率。并且膠囊網(wǎng)絡(luò)比較擅長分割任務(wù),在識別高度重疊的數(shù)字時(shí),其效果要明顯好于卷積神經(jīng)網(wǎng)絡(luò),說明膠囊網(wǎng)絡(luò)是一個(gè)值得探索的方向。