付家慧 吳曉富 張索非
(1. 南京郵電大學(xué)通信與信息工程學(xué)院,江蘇南京 210003; 2. 南京郵電大學(xué)物聯(lián)網(wǎng)學(xué)院,江蘇南京 210003)
目前,圖像中目標(biāo)識(shí)別的方法大都借助于卷積神經(jīng)網(wǎng)絡(luò)[1- 4]。這種方法能夠在不知道確切位置的情況下正確識(shí)別目標(biāo)并實(shí)現(xiàn)分類(lèi)。 CNN應(yīng)用到圖像識(shí)別上似乎非常合理,而且實(shí)際表現(xiàn)也非常好,但是神經(jīng)網(wǎng)絡(luò)的創(chuàng)始人之一Hinton認(rèn)為CNN中的池化操作是一個(gè)災(zāi)難,因?yàn)槌鼗^(guò)程在一定程度上弱化了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于位置信息的準(zhǔn)確把握。允許模型對(duì)一些小的空間上的變化視而不見(jiàn),并不能精準(zhǔn)地學(xué)習(xí)到不同物體的位置關(guān)聯(lián)。比如在面部識(shí)別中,需要一個(gè)鼻子和一張嘴這樣的高層部分之間精確的空間關(guān)系的知識(shí)[5]。但在卷積網(wǎng)絡(luò)中進(jìn)行了多次下采樣后,在它們的姿態(tài)中,高層特征就有了很大的不確定性。如果此時(shí)把人臉照片中的一只眼睛與嘴巴的位置對(duì)調(diào)一下,CNN還是會(huì)將其識(shí)別成人臉,這顯然是不對(duì)的。
所以對(duì)于卷積神經(jīng)網(wǎng)絡(luò)而言,識(shí)別空間位置關(guān)系的能力是十分有限的,不僅如此,CNN對(duì)于旋轉(zhuǎn)圖像的識(shí)別能力也是有限的,當(dāng)神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練完成后,對(duì)測(cè)試集上的圖片做不同角度的旋轉(zhuǎn)處理,最后得到的準(zhǔn)確率相較于不做旋轉(zhuǎn)處理的數(shù)據(jù)集會(huì)明顯降低。所以旋轉(zhuǎn)之后的人臉圖像會(huì)存在極大的概率被錯(cuò)判。
人類(lèi)識(shí)別圖片是基于平移和旋轉(zhuǎn)將看到的圖片與大腦中已存在的圖片模式進(jìn)行匹配,但是這個(gè)對(duì)于CNN來(lái)說(shuō)是有一定困難的,為了解決這個(gè)問(wèn)題,G.E.Hinton最先在2011年提出了Capsule Network的模型[6-7],該模型不再以“神經(jīng)元”激活中的視角不變性為目標(biāo)。而是使用局部“膠囊(capsules)”,這些“膠囊”對(duì)輸入進(jìn)行一系列復(fù)雜的內(nèi)部操作,然后把計(jì)算結(jié)果封裝成一個(gè)高信息量的信息輸出的小向量。在一個(gè)有限的觀察條件和形變的領(lǐng)域,每個(gè)膠囊學(xué)習(xí)識(shí)別一個(gè)隱式定義的視覺(jué)實(shí)體,它的輸出可以是實(shí)體出現(xiàn)在有限領(lǐng)域內(nèi)的概率,也可以是一些包括視覺(jué)實(shí)體正確的姿態(tài)、光照和形變等信息的“實(shí)例化參數(shù)”。
為了更好的理解膠囊網(wǎng)絡(luò)較卷積神經(jīng)網(wǎng)絡(luò)在識(shí)別空間位置信息上的優(yōu)勢(shì)所在,本文研究了平移、旋轉(zhuǎn)等基礎(chǔ)仿射變換下的膠囊網(wǎng)絡(luò)特征的可視化問(wèn)題。論證得出膠囊網(wǎng)絡(luò)的確可以通過(guò)內(nèi)部集成的膠囊模塊去學(xué)習(xí)和輸出包括視覺(jué)實(shí)體正確的姿態(tài)、形變等信息在內(nèi)的“實(shí)例化參數(shù)”。同時(shí)為驗(yàn)證在平移、旋轉(zhuǎn)過(guò)程中的實(shí)驗(yàn)結(jié)果準(zhǔn)確性,論文中給出了數(shù)字識(shí)別的評(píng)價(jià)指標(biāo),并對(duì)每一個(gè)仿射變換的實(shí)驗(yàn)過(guò)程給出了識(shí)別準(zhǔn)確性的評(píng)價(jià)。
2.1.1 膠囊網(wǎng)絡(luò)的平移模型
圖1中的網(wǎng)絡(luò)模型為G.E.Hinton在2011年提出的平移Capsule Netwot網(wǎng)絡(luò)模型。整個(gè)模型由多個(gè)分立結(jié)構(gòu)的模塊組成,我們稱(chēng)之為“膠囊模塊”。
圖1 基于膠囊網(wǎng)絡(luò)的平移模型
圖中的網(wǎng)絡(luò)模型由三個(gè)膠囊模塊組成,每個(gè)膠囊模塊的內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)相同,由三個(gè)識(shí)別單元和四個(gè)生成單元組成。識(shí)別單元旨在將圖片的像素強(qiáng)度信息轉(zhuǎn)換為位置關(guān)系信息,X、Y、P是識(shí)別單元的輸出值,分別表示圖片中的位置關(guān)系信息以及膠囊的視覺(jué)實(shí)體在輸入圖像中存在的概率?!鱴、△y分別表示二維圖像在橫軸和縱軸的偏移量,由學(xué)習(xí)到的位置關(guān)系信息加上偏移量得到的位置信息做生成單元的輸入,最后又得到了由位置關(guān)系信息轉(zhuǎn)換而來(lái)的像素信息,最后得到的真實(shí)圖像是各膠囊模塊與其對(duì)應(yīng)的概率p加權(quán)和的結(jié)果。
2.1.2 平移變換下的網(wǎng)絡(luò)特征可視化的實(shí)現(xiàn)過(guò)程
平移膠囊網(wǎng)絡(luò)的實(shí)現(xiàn)基于MNIST數(shù)據(jù)集,預(yù)處理過(guò)程利用python的roll函數(shù)對(duì)所有的數(shù)字圖像在x、y坐標(biāo)軸做-5到5范圍內(nèi)任意大小的平移。
具體膠囊模塊的網(wǎng)絡(luò)的搭建仿照?qǐng)D1的平移模型。網(wǎng)絡(luò)的搭建基于全連接層,邏輯識(shí)別單元層的尺寸為784×10,邏輯生成單元層的尺寸為2×20。主要的訓(xùn)練參數(shù)如表1所示。
表1 平移膠囊網(wǎng)絡(luò)主要訓(xùn)練參數(shù)
對(duì)比傳統(tǒng)的可視化方法[8-9],利用 Tensorboard的可視化效果更理想。在平移模型中主要對(duì)平移過(guò)程中的loss函數(shù)、各膠囊模塊的輸出特征圖像、預(yù)處理前后的是數(shù)字圖像以及生成的真實(shí)圖像進(jìn)行可視化,另外,本文為探究膠囊網(wǎng)絡(luò)對(duì)于位置信息的學(xué)習(xí)性,將邏輯識(shí)別單元的輸出概率p和二維坐標(biāo)值進(jìn)行激活輸出,并于Matlab中進(jìn)行可視化處理。
2.2.1 膠囊網(wǎng)絡(luò)的旋轉(zhuǎn)模型
膠囊網(wǎng)絡(luò)的旋轉(zhuǎn)模型如圖2所示,邏輯識(shí)別層、邏輯生成層以及概率值p的目的與平移模型中的相同,不同的是為實(shí)現(xiàn)對(duì)任意角度旋轉(zhuǎn)圖像的學(xué)習(xí),利用了圖像矩陣?yán)@中心點(diǎn)旋轉(zhuǎn)的矩陣運(yùn)算式(1):
(1)
圖2 基于膠囊網(wǎng)絡(luò)的旋轉(zhuǎn)模型
除此之外,與平移網(wǎng)絡(luò)模型最大的不同在于對(duì)于圖像中心點(diǎn)X0、Y0的定義也是通過(guò)學(xué)習(xí)來(lái)得到的,即每一個(gè)膠囊都有自己獨(dú)立學(xué)習(xí)到的X0、Y0。膠囊網(wǎng)絡(luò)最后得到的真實(shí)圖像仍舊是各膠囊模塊與其對(duì)應(yīng)的概率p加權(quán)和再做激活的結(jié)果。
2.2.2 旋轉(zhuǎn)變換下的網(wǎng)絡(luò)特征可視化的實(shí)現(xiàn)過(guò)程
旋轉(zhuǎn)膠囊網(wǎng)絡(luò)的實(shí)現(xiàn)基于MNIST數(shù)據(jù)集,利用opencv對(duì)所有的數(shù)字圖像在中心點(diǎn)處做-180°到180°的任意角度旋轉(zhuǎn)。膠囊網(wǎng)絡(luò)的搭建仿照?qǐng)D2的旋轉(zhuǎn)模型。邏輯識(shí)別層與邏輯生成層的尺寸與平移模型中的相同。主要的訓(xùn)練參數(shù)如表2所示。
表2 旋轉(zhuǎn)膠囊網(wǎng)絡(luò)主要訓(xùn)練參數(shù)
同樣的,在旋轉(zhuǎn)模型中對(duì)預(yù)處理前后的手寫(xiě)體圖像、生成的真實(shí)圖像、各膠囊模塊的輸出特征圖像以及激活前的輸出像素矩陣進(jìn)行可視化,與此同時(shí),將邏輯識(shí)別單元的輸出概率p、旋轉(zhuǎn)前后的位置坐標(biāo)以及中心位置坐標(biāo)進(jìn)行可視化處理。
2.3.1 膠囊網(wǎng)絡(luò)的旋轉(zhuǎn)模型
基于膠囊網(wǎng)絡(luò)的固定中心點(diǎn)的旋轉(zhuǎn)模型如圖3所示,由上一節(jié)的內(nèi)容可知,基于膠囊網(wǎng)絡(luò)的旋轉(zhuǎn)模型具有很好的健壯性,在一個(gè)相對(duì)分散的中心點(diǎn)的情況下,依舊可以很好的生成接近于目標(biāo)圖像的真實(shí)圖像,為探究固定中心點(diǎn)時(shí)的網(wǎng)絡(luò)效果及位置關(guān)系,對(duì)圖2中的基于膠囊網(wǎng)絡(luò)的旋轉(zhuǎn)模型做一些結(jié)構(gòu)上的改變,如圖3所示,改變了模型自身的分立性和封閉性,除了在最后一層相連以外,令其余多個(gè)膠囊模塊共用第一個(gè)膠囊模塊學(xué)到的中點(diǎn)位置信息,其余結(jié)構(gòu)與原網(wǎng)絡(luò)一樣,在這里不做贅述。
圖3 固定中心點(diǎn)的旋轉(zhuǎn)模型
2.3.2 固定旋轉(zhuǎn)中心下的網(wǎng)絡(luò)特征可視化的實(shí)現(xiàn)
固定中心點(diǎn)的膠囊網(wǎng)絡(luò)的搭建仿照?qǐng)D3。識(shí)別單元層與生成單元層的輸入輸出尺寸與旋轉(zhuǎn)變換下的網(wǎng)絡(luò)保持一致。主要的訓(xùn)練參數(shù)如表3所示。
表3 膠囊網(wǎng)絡(luò)主要訓(xùn)練參數(shù)
該網(wǎng)絡(luò)的預(yù)處理過(guò)程與非中心固定點(diǎn)的膠囊網(wǎng)絡(luò)的預(yù)處理過(guò)程相同,對(duì)輸入輸出圖像的可視化處理以及位置坐標(biāo)點(diǎn)的可視化處理也與非固定中心點(diǎn)的膠囊網(wǎng)絡(luò)相同。在這里不做贅述。
為進(jìn)一步印證CNN空間信息表達(dá)的缺陷性,本文通過(guò)反卷積的可視化方法[10],對(duì)分類(lèi)訓(xùn)練的卷積網(wǎng)絡(luò)的特征輸出進(jìn)行可視化。為增加對(duì)比性,CNN的輸入數(shù)據(jù)為任意角度旋轉(zhuǎn)之后的MNIST圖像,具體網(wǎng)絡(luò)的搭建如表4所示。
表4 卷積神經(jīng)網(wǎng)絡(luò)各層尺寸
最終得到的平移模型的可視化結(jié)果如表5所示。將邏輯識(shí)別層學(xué)到的位置坐標(biāo)打印到表4中數(shù)字3的網(wǎng)絡(luò)輸入圖像上,最后的結(jié)果如圖4(a)所示,同時(shí)將平移之后的坐標(biāo),即邏輯生成單元的輸入打印到表4中數(shù)字3的生成圖像上,結(jié)果如圖4(b)所示。
表5 平移膠囊網(wǎng)絡(luò)可視化結(jié)果
圖4 網(wǎng)絡(luò)平移坐標(biāo)圖
通過(guò)對(duì)表5中不同數(shù)字所對(duì)應(yīng)的膠囊模塊的輸出特征圖像的比較,可以發(fā)現(xiàn)不同的圖片所對(duì)應(yīng)的膠囊模塊的姿態(tài)都是相似的,各模塊的輸出特征可以看成一個(gè)基圖像,對(duì)最后的輸出結(jié)果都有貢獻(xiàn),而最后得到的網(wǎng)絡(luò)生成圖像是概率值和輸出特征圖像的像素值加權(quán)和再做激活得到的結(jié)果。
與此同時(shí),數(shù)字和數(shù)字之間的特征圖像又會(huì)有灰度級(jí)上明暗的變化以及黑色邊緣痕跡大小的改變。如表5中數(shù)字3對(duì)應(yīng)的第43個(gè)膠囊模塊的輸出的特征并不明顯,而該膠囊對(duì)應(yīng)的概率值p只有0.10169839,說(shuō)明在圖片3中的對(duì)應(yīng)的第43個(gè)膠囊視覺(jué)實(shí)體在輸入圖像中存在的概率很低。
對(duì)旋轉(zhuǎn)膠囊網(wǎng)絡(luò)的預(yù)處理前后網(wǎng)絡(luò)輸入圖像、目標(biāo)圖像,激活前的圖像以及訓(xùn)練得到的真實(shí)生成圖像進(jìn)行可視化,得到的結(jié)果如表6所示。對(duì)網(wǎng)絡(luò)中的坐標(biāo)信息進(jìn)行可視化,得到的可視化結(jié)果如圖5所示。(a)圖初始位置坐標(biāo)圖中的坐標(biāo)點(diǎn)也不再有規(guī)律的分布在輸入圖像上。而(b)圖旋轉(zhuǎn)后的位置坐標(biāo)圖則在目標(biāo)圖像上呈現(xiàn)出了比較好的結(jié)果。
圖5 網(wǎng)絡(luò)旋轉(zhuǎn)坐標(biāo)圖
最后得到的位置坐標(biāo)中一部分有規(guī)律的分布在手寫(xiě)體數(shù)字上或邊緣輪廓中,其他的坐標(biāo)點(diǎn)分布在黑色背景上,最終得到的概率值的大小與坐標(biāo)點(diǎn)是否在數(shù)字上沒(méi)有關(guān)系,它們都對(duì)最后得到的真實(shí)生成圖像有所貢獻(xiàn)。通過(guò)兩張坐標(biāo)圖彼此之間的聯(lián)系,我們發(fā)現(xiàn)該旋轉(zhuǎn)模型十分健壯,在學(xué)到的中心點(diǎn)不唯一的情況下,仍可以學(xué)到一系列合適的權(quán)重和偏差,使得最終的特征圖像表現(xiàn)出良好的效果。
通過(guò)對(duì)表6中不同手寫(xiě)體數(shù)字對(duì)應(yīng)的膠囊模塊的輸出特征圖的比較中可以得出以下結(jié)論:
表6 旋轉(zhuǎn)膠囊網(wǎng)絡(luò)可視化結(jié)果
(1) 每個(gè)膠囊模塊的輸出可以大體分為兩類(lèi):旋轉(zhuǎn)類(lèi)型、非旋轉(zhuǎn)類(lèi)型,如圖6中(a)、(b)所示。
圖6 特征類(lèi)型
(2)真實(shí)圖像由各膠囊模塊的輸出與概率p的加權(quán)和表示,不同圖像所對(duì)應(yīng)的膠囊姿態(tài)相似,不同的是亮度和旋轉(zhuǎn)類(lèi)型特征圖像旋轉(zhuǎn)角度的改變。
(3)結(jié)合旋轉(zhuǎn)后的位置坐標(biāo)以及相應(yīng)的各膠囊輸出模塊的特征圖像,發(fā)現(xiàn)在手寫(xiě)體數(shù)字輪廓上的點(diǎn)打印出來(lái)的特征圖呈現(xiàn)非旋轉(zhuǎn)類(lèi)型,而沒(méi)有在數(shù)字上的點(diǎn)所對(duì)應(yīng)的特征圖呈旋轉(zhuǎn)類(lèi)型。
同樣,類(lèi)似于論文中的非固定旋轉(zhuǎn)中心的模型可視化,在可視化部分對(duì)固定旋轉(zhuǎn)中心的膠囊網(wǎng)絡(luò)做相同的處理。最終得到的結(jié)果如表7所示,由表7可知,訓(xùn)練得到的生成圖像接近于目標(biāo)圖像。
通過(guò)對(duì)不同數(shù)字所對(duì)應(yīng)的各個(gè)模塊的輸出特征圖像的比較可知,固定旋轉(zhuǎn)中心學(xué)習(xí)到的模塊特征圖像以及圖像呈現(xiàn)出來(lái)的特點(diǎn)與非固定旋轉(zhuǎn)中心學(xué)習(xí)到的特征圖像并無(wú)本質(zhì)區(qū)別。
最終訓(xùn)練得到的旋轉(zhuǎn)中心坐標(biāo)為:
(-1.46215999,1.41398716)
在此次實(shí)驗(yàn)結(jié)果之前,相同的訓(xùn)練參數(shù),訓(xùn)練100次epoch得到的真實(shí)生成圖像也是比較理想的,但是最終的旋轉(zhuǎn)中心的位置與300次迭代的實(shí)驗(yàn)結(jié)果有很大的不同,這說(shuō)明網(wǎng)絡(luò)最后得到的旋轉(zhuǎn)中心有很大概率是不同的,但對(duì)最后的訓(xùn)練效果并不會(huì)產(chǎn)生太大的影響。在整個(gè)訓(xùn)練模型中,所有的坐標(biāo)都是通過(guò)學(xué)習(xí)得到的,所以相同數(shù)字圖片的相同位置在不同的訓(xùn)練情況下得到的坐標(biāo)點(diǎn)是不同的。
表7 固定中心點(diǎn)的旋轉(zhuǎn)膠囊網(wǎng)絡(luò)的可視化結(jié)果
對(duì)旋轉(zhuǎn)之后的坐標(biāo)點(diǎn)做可視化,得到的結(jié)果如圖7所示。除圖像的中心不再落在零點(diǎn)外,得到的結(jié)果與之前的網(wǎng)絡(luò)結(jié)構(gòu)的可視化結(jié)果相似,仍有大多數(shù)的位置坐標(biāo)點(diǎn)分布在數(shù)字的邊緣輪廓上。網(wǎng)絡(luò)學(xué)到了數(shù)字邊緣輪廓的位置信息。
對(duì)于任意角度旋轉(zhuǎn)下的卷積神經(jīng)網(wǎng)絡(luò),在對(duì)處理后的MNIST數(shù)據(jù)集進(jìn)行分類(lèi)訓(xùn)練完成后,任意取一張圖片卷積層的前五個(gè)神經(jīng)元的特征輸出進(jìn)行可視化,得到的特征圖像如表8所示。
圖7 旋轉(zhuǎn)后坐標(biāo)可視化
Conv1Conv2Conv3Conv4
表8中的特征圖像針對(duì)的是數(shù)字3的像素矩陣,通過(guò)對(duì)表8中的特征圖像的觀察,我們發(fā)現(xiàn)各個(gè)神經(jīng)元的輸出特征圖像幾乎看不到空間位置的改變?;旧隙际窃谠袛?shù)字3存在的位置上進(jìn)行一些明暗或者細(xì)節(jié)特征信息的改變,當(dāng)然在第一層卷積層提取到的特征信息是比較清晰的,也是一些比較簡(jiǎn)單的輪廓信息,隨著卷積層的深入,特征信息的變化更加的復(fù)雜多樣,細(xì)節(jié)信息更加豐富,但是空間信息的提取仍舊是比較有限的。
為驗(yàn)證仿射變換下實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,評(píng)價(jià)真實(shí)生成圖像與預(yù)處理后得到的目標(biāo)圖像的差距,本文用歐式距離損失函數(shù)值作為實(shí)驗(yàn)結(jié)果的評(píng)價(jià)指標(biāo)。歐式距離損失函數(shù)的定義如式(2)所示:
(2)
圖8中的展示的是三種變換下600次epoch的損失函數(shù)圖像,其中橫坐標(biāo)表示損失函數(shù)值的迭代次數(shù),如圖8(c)中橫坐標(biāo)表示損失函數(shù)迭代了300k次。在表5、表6、表7中,對(duì)比目標(biāo)圖像和生成圖像,會(huì)發(fā)現(xiàn)兩者或在像素強(qiáng)度上,或在邊緣軌跡上會(huì)有不同,這是因?yàn)橐陨系挠?xùn)練結(jié)果最大的迭代次數(shù)只有300次,損失函數(shù)并未真正的收斂,但卻已經(jīng)獲得比較好的訓(xùn)練結(jié)果。因?yàn)镚PU資源有限,并盡可能的接近最后的收斂值,故我們選擇了600次epoch的訓(xùn)練結(jié)果進(jìn)行可視化輸出。
我們最終發(fā)現(xiàn)600次epoch也并沒(méi)有達(dá)到真正的收斂,但每個(gè)batch中的100張圖片的總的歐式距離損失函數(shù)值總能降到10以下,最后得到的生成圖像已經(jīng)十分接近于目標(biāo)圖像。
圖8 仿射變換下的損失函數(shù)圖像
為了進(jìn)一步加強(qiáng)對(duì)Capsule Network的實(shí)現(xiàn)過(guò)程以及其對(duì)位置信息的學(xué)習(xí)的理解,本文利用了Tesorboard等可視化工具對(duì)應(yīng)用于平移、旋轉(zhuǎn)的Capsule Network進(jìn)行可視化,由實(shí)驗(yàn)結(jié)果可知,在膠囊網(wǎng)絡(luò)內(nèi)部,每個(gè)集成的膠囊模塊都可以學(xué)到一種適用于大多數(shù)手寫(xiě)體數(shù)字的姿態(tài),且每一個(gè)膠囊模塊得到特征姿態(tài)都對(duì)最后的結(jié)果有所貢獻(xiàn)。膠囊網(wǎng)絡(luò)最后的確學(xué)到了手寫(xiě)體數(shù)字圖像變換后的圖像信息,但不同于卷積神經(jīng)網(wǎng)絡(luò)的是,膠囊網(wǎng)絡(luò)在模型搭建時(shí)就考慮到了位置信息,最后邏輯生成單元得到的模塊特征輸出也是從位置信息轉(zhuǎn)換而來(lái)的,所以Capsule Network對(duì)于位置信息的學(xué)習(xí)和處理是要明顯優(yōu)于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)的。