1
本文作者: AI研習(xí)社-譯站 | 編輯:楊曉凡 | 2017-10-30 18:07 |
雷鋒網(wǎng)AI研習(xí)社按:日前,深度學(xué)習(xí)教父Geoffrey Hinton關(guān)于Capsule(膠囊)的新論文一發(fā)出,馬上引起了熱烈討論。雷鋒字幕組趁熱對(duì)論文做了全文翻譯,想了解具體細(xì)節(jié)的讀者歡迎仔細(xì)閱讀。有翻譯不當(dāng)?shù)牡胤綒g迎指出,更期待您可以加入我們(申請(qǐng)加入,聯(lián)系微信 julylihuaijiang)。
膠囊間的動(dòng)態(tài)路由
摘要
本論文所研究的膠囊意為一組神經(jīng)元,其激活向量反映了某類特定實(shí)體(可能是整體也可能是部分)的表征。本論文使用激活向量的模長(zhǎng)來(lái)描述實(shí)體存在的概率,用激活向量的方向表征對(duì)應(yīng)實(shí)例的參數(shù)。某一層級(jí)的活躍膠囊通過(guò)矩陣變換做出預(yù)測(cè),預(yù)測(cè)結(jié)果會(huì)用來(lái)給更高層級(jí)的膠囊提供實(shí)例參數(shù)。當(dāng)多個(gè)預(yù)測(cè)值達(dá)成一致時(shí),一個(gè)高層級(jí)的膠囊就會(huì)被激活。論文中展示了差異化訓(xùn)練的多層膠囊系統(tǒng)可以在MNIST上達(dá)到當(dāng)前最高水平的表現(xiàn),在識(shí)別高度重疊的數(shù)字上也要比卷積網(wǎng)絡(luò)要好得多。網(wǎng)絡(luò)的實(shí)現(xiàn)中運(yùn)用迭代的一致性路由機(jī)制:當(dāng)?shù)蛯蛹?jí)的膠囊的預(yù)測(cè)向量和高層級(jí)膠囊的激活向量有較大的標(biāo)量積時(shí),這個(gè)低層級(jí)膠囊就會(huì)傾向于向高層級(jí)膠囊輸出。
一、簡(jiǎn)介
人類視覺(jué)通過(guò)使用仔細(xì)確定的固定點(diǎn)序列來(lái)忽略不相關(guān)的細(xì)節(jié),以確保只有極小部分的光學(xué)陣列以最高的分辨率被處理。要理解我們對(duì)場(chǎng)景的多少知識(shí)來(lái)自固定序列,以及我們從單個(gè)固定點(diǎn)中能收集到多少知識(shí),內(nèi)省不是一個(gè)好的指導(dǎo),但是在本文中,我們假設(shè)單個(gè)固定點(diǎn)給我們提供的不僅僅是一個(gè)單一的識(shí)別對(duì)象及其屬性。我們假設(shè)多層視覺(jué)系統(tǒng)在每個(gè)固定點(diǎn)上都會(huì)創(chuàng)建一個(gè)類似解析樹(shù)這樣的東西,并且單一固定解析樹(shù)在多個(gè)固定點(diǎn)中如何協(xié)調(diào)的問(wèn)題會(huì)被我們忽略掉。
解析樹(shù)通常通過(guò)動(dòng)態(tài)分配內(nèi)存來(lái)快速構(gòu)建,但根據(jù)Hinton等人的論文「Learning to parse images,2000」,我們假設(shè),對(duì)于單個(gè)固定點(diǎn),從固定的多層神經(jīng)網(wǎng)絡(luò)中構(gòu)建出一個(gè)解析樹(shù),就像從一塊巖石雕刻出一個(gè)雕塑一樣(雷鋒網(wǎng) AI 科技評(píng)論注: 意為只保留了部分樹(shù)枝)。每個(gè)層被分成許多神經(jīng)元組,這些組被稱為“膠囊”(Hinton等人「Transforming auto-encoders,2011」),解析樹(shù)中的每個(gè)節(jié)點(diǎn)就對(duì)應(yīng)著一個(gè)活動(dòng)的膠囊。通過(guò)一個(gè)迭代路由過(guò)程,每個(gè)活動(dòng)膠囊將在更高的層中選擇一個(gè)膠囊作為其在樹(shù)中的父結(jié)點(diǎn)。對(duì)于更高層次的視覺(jué)系統(tǒng),這樣的迭代過(guò)程就很有潛力解決一個(gè)物體的部分如何層層組合成整體的問(wèn)題。
一個(gè)活動(dòng)的膠囊內(nèi)的神經(jīng)元活動(dòng)表示了圖像中出現(xiàn)的特定實(shí)體的各種屬性。這些屬性可以包括許多不同類型的實(shí)例化參數(shù),例如姿態(tài)(位置,大小,方向),變形,速度,反照率,色相,紋理等。一個(gè)非常特殊的屬性是圖像中某個(gè)類別的實(shí)例的存在。表示存在的一個(gè)簡(jiǎn)明的方法是使用一個(gè)單獨(dú)的邏輯回歸單元,它的輸出數(shù)值大小就是實(shí)體存在的概率(雷鋒網(wǎng) AI 科技評(píng)論注: 輸出范圍在0到1之間,0就是沒(méi)出現(xiàn),1就是出現(xiàn)了)。在本文中,作者們探索了一個(gè)有趣的替代方法,用實(shí)例的參數(shù)向量的模長(zhǎng)來(lái)表示實(shí)體存在的概率,同時(shí)要求網(wǎng)絡(luò)用向量的方向表示實(shí)體的屬性。為了確保膠囊的向量輸出的模長(zhǎng)不超過(guò)1,通過(guò)應(yīng)用一個(gè)非線性的方式使矢量的方向保持不變,同時(shí)縮小其模長(zhǎng)。
膠囊的輸出是一個(gè)向量,這一設(shè)定使得用強(qiáng)大的動(dòng)態(tài)路由機(jī)制來(lái)確保膠囊的輸出被發(fā)送到上述層中的適當(dāng)?shù)母腹?jié)點(diǎn)成為可能。最初,輸出經(jīng)過(guò)耦合總和為1的系數(shù)縮小后,路由到所有可能的父節(jié)點(diǎn)。對(duì)于每個(gè)可能的父結(jié)點(diǎn),膠囊通過(guò)將其自身的輸出乘以權(quán)重矩陣來(lái)計(jì)算“預(yù)測(cè)向量”。如果這一預(yù)測(cè)向量和一個(gè)可能的父節(jié)點(diǎn)的輸出的標(biāo)量積很大,則存在自上而下的反饋,其具有加大該父節(jié)點(diǎn)的耦合系數(shù)并減小其他父結(jié)點(diǎn)耦合系數(shù)的效果。這就加大了膠囊對(duì)那一個(gè)父節(jié)點(diǎn)的貢獻(xiàn),并進(jìn)一步增加了膠囊預(yù)測(cè)向量和該父節(jié)點(diǎn)輸出的標(biāo)量積。這種類型的“按協(xié)議路由”應(yīng)該比通過(guò)最大池化實(shí)現(xiàn)的非常原始的路由形式更有效,其中除了保留本地池中最活躍的特征檢測(cè)器外,忽略了下一層中所有的特征檢測(cè)器。作者們論證了,對(duì)于實(shí)現(xiàn)分割高度重疊對(duì)象所需的“解釋”,動(dòng)態(tài)路由機(jī)制是一個(gè)有效的方式。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)使用學(xué)習(xí)得到的特征檢測(cè)器的轉(zhuǎn)移副本,這使得他們能夠?qū)D片中一個(gè)位置獲得的有關(guān)好的權(quán)重值的知識(shí),遷移到其他位置。這對(duì)圖像解釋的極大幫助已經(jīng)得到證明。盡管作者們此次用矢量輸出膠囊和按協(xié)議路由的最大池化替代CNN的標(biāo)量輸出特征檢測(cè)器,他們?nèi)匀幌M軌蛟谡麄€(gè)空間中復(fù)制已習(xí)得的知識(shí),所以文中構(gòu)建的模型除了最后一層膠囊之外,其余的膠囊層都是卷積。與CNN一樣,更高級(jí)別的膠囊得以覆蓋較大的圖像區(qū)域,但與最大池化不同,膠囊中不會(huì)丟棄該區(qū)域內(nèi)實(shí)體精確位置的信息。對(duì)于低層級(jí)的膠囊,位置信息通過(guò)活躍的膠囊來(lái)進(jìn)行“地點(diǎn)編碼”。當(dāng)來(lái)到越高的層級(jí),越多的位置信息在膠囊輸出向量的實(shí)值分量中被“速率編碼”。這種從位置編碼到速率編碼的轉(zhuǎn)變,加上高級(jí)別膠囊能夠用更多自由度、表征更復(fù)雜實(shí)體的特性,表明更高層級(jí)的膠囊也相應(yīng)地需要更高的維度。
二、如何計(jì)算一個(gè)膠囊的向量輸入和輸出
已經(jīng)有很多方法可以實(shí)現(xiàn)膠囊的大致思路。這篇文章的目的,不是去探究所有可能的方法,而只是表明非常簡(jiǎn)單直接的方式就可以取得很好的效果,而且動(dòng)態(tài)路由也可以起到幫助。
作者們用膠囊輸出向量的模長(zhǎng)來(lái)表示一個(gè)膠囊所表征的實(shí)體在輸入中出現(xiàn)的概率。因此作者們采用一個(gè)非線性函數(shù)對(duì)向量進(jìn)行“壓縮”,短向量被壓縮到幾乎為零,長(zhǎng)向量也被壓縮到1以下長(zhǎng)度。判別學(xué)習(xí)中充分利用這個(gè)非線性函數(shù)。
(式1)
其中vj是膠囊j的輸出向量,sj是它的全部輸入。
除了第一層膠囊,膠囊sj的全部輸入是對(duì)預(yù)測(cè)向量uj|i的加權(quán)求和。這些預(yù)測(cè)向量都是由低一層的膠囊產(chǎn)生,通過(guò)膠囊的輸出ui 和一個(gè)權(quán)重矩陣Wij相乘得來(lái)。
(式2)
其中cij是由迭代的動(dòng)態(tài)路徑過(guò)程決定的耦合系數(shù)。
膠囊i和其上一層中所有膠囊的耦合系數(shù)的和為1,并由“routing softmax”決定。這個(gè)“routing softmax”的初始邏輯值bij 是膠囊i耦合于膠囊j的對(duì)數(shù)先驗(yàn)概率。
(式3)
這個(gè)對(duì)數(shù)先驗(yàn)可以和其他權(quán)重一起被判別學(xué)習(xí)。他們由兩個(gè)膠囊的位置和類型決定,而不是當(dāng)前的輸入圖像決定。耦合系數(shù)會(huì)從初始值開(kāi)始迭代,通過(guò)測(cè)量每個(gè)高一層膠囊j的當(dāng)前輸出vi和低一層膠囊i的預(yù)測(cè)值ui|j之間的一致性。
所述一致性是簡(jiǎn)單的點(diǎn)積aij=vj . ui|j。這個(gè)一致性可被看做最大似然值,并在計(jì)算出所有將膠囊i連接到更高層膠囊得到的新耦合值前,加到初始邏輯值bi,j上。
在卷積膠囊層中,膠囊內(nèi)每一個(gè)單元都是一個(gè)卷積單元。因此每一個(gè)膠囊都會(huì)輸出一個(gè)向量網(wǎng)格而不是一個(gè)簡(jiǎn)單的向量。
路由計(jì)算的偽碼如下圖
三、某類數(shù)字是否存在的邊緣損失
作者們用實(shí)例化向量的模長(zhǎng)來(lái)表示膠囊要表征的實(shí)體是否存在。所以當(dāng)且僅當(dāng)圖片里出現(xiàn)屬于類別k的數(shù)字時(shí),作者們希望類別k的最高層膠囊的實(shí)例化向量模長(zhǎng)很大。為了允許一張圖里有多個(gè)數(shù)字,作者們對(duì)每一個(gè)表征數(shù)字k的膠囊分別給出單獨(dú)的邊緣損失函數(shù)(margin loss):
作者們用實(shí)例化向量的模長(zhǎng)來(lái)表示膠囊要表征的實(shí)體是否存在。所以當(dāng)且僅當(dāng)圖片里出現(xiàn)屬于類別k的數(shù)字時(shí),作者們希望類別k的最高層膠囊的實(shí)例化向量模長(zhǎng)很大。為了允許一張圖里有多個(gè)數(shù)字,作者們對(duì)每一個(gè)表征數(shù)字k的膠囊分別給出單獨(dú)的邊緣損失函數(shù)(margin loss):
(式4)
其中Tc=1當(dāng)且僅當(dāng)圖片中有屬于類別C的數(shù)字,m+=0.9,m-=0.1。是為了減小某類的數(shù)字沒(méi)有出現(xiàn)時(shí)的損失,防止剛開(kāi)始學(xué)習(xí)就把所有數(shù)字膠囊的激活向量模長(zhǎng)都?jí)嚎s了。作者們推薦選用 λ = 0.5。總損失就是簡(jiǎn)單地把每個(gè)數(shù)字膠囊的損失加起來(lái)的總和。
四、CapsNet 結(jié)構(gòu)
圖1:一個(gè)簡(jiǎn)單的3層CapsNet。這個(gè)模型的結(jié)果能和深層卷積網(wǎng)絡(luò)(比如. Batch-normalized maxout network in network,2015)的結(jié)果媲美。DigitCaps層每個(gè)膠囊的激活向量模長(zhǎng)給出了每個(gè)類的實(shí)例是否存在,并且用來(lái)計(jì)算分類損失。 是PrimaryCapsules中連接每個(gè) ui, i ∈ (1, 32 × 6 × 6) 和每個(gè)vj , j ∈ (1, 10)的權(quán)重矩陣。
圖2:從DigitCaps層來(lái)重構(gòu)數(shù)字的解碼結(jié)構(gòu)。訓(xùn)練過(guò)程中極小化圖像和Sigmoid層的輸出之間的歐氏距離。訓(xùn)練中作者們用真實(shí)的標(biāo)簽作為重構(gòu)的目標(biāo)。
圖1展示的是一個(gè)簡(jiǎn)單的CapsNet結(jié)構(gòu)。 這是一個(gè)很淺的網(wǎng)絡(luò),只有2個(gè)卷積層和1個(gè)全連接層。Conv1有256個(gè)9*9的卷積核,步長(zhǎng)取1,激活函數(shù)為ReLU。這層把像素亮度轉(zhuǎn)化成局部特征檢測(cè)器的激活,接下去這個(gè)值會(huì)被用來(lái)作為原始膠囊(primary capsules)的輸入。
原始膠囊是多維實(shí)體的最底層。這個(gè)過(guò)程和圖形生成的視角相反,激活了一個(gè)原始膠囊就和剛好是圖形渲染的逆過(guò)程。與先分別計(jì)算實(shí)例的不同部分再拼在一起形成熟悉的總體理解(圖像中的每個(gè)區(qū)域都會(huì)首先激活整個(gè)網(wǎng)絡(luò)而后再進(jìn)行組合)不同,這是一種非常不同的計(jì)算方式。而膠囊的設(shè)計(jì)就很適合這樣的計(jì)算。
第二層PrimaryCapsules是一個(gè)卷積膠囊層,有32個(gè)通道,每個(gè)通道有一個(gè)8維卷積膠囊(也就是說(shuō)原始膠囊有8個(gè)卷積單元,9*9的卷積核,步長(zhǎng)為2)。這一層中的膠囊能看到感受野和這個(gè)膠囊的中心重合的所有256*81 Conv1單元的輸出。PrimaryCapsules一共有[32,6,6]個(gè)輸出(每個(gè)輸出是一個(gè)8維向量),[6,6]網(wǎng)格中的每個(gè)膠囊彼此共享權(quán)重。由于具有區(qū)塊非線性,可以把PrimaryCapsules視作一個(gè)符合式1的卷積層。最后一層(DigitCaps)有對(duì)每個(gè)數(shù)字類有一個(gè)16維的膠囊,所有低一層的膠囊都可以是這一層膠囊的輸入。
作者們只在兩個(gè)連續(xù)的膠囊層(比如PrimaryCapsules和DigitCaps)之間做路由。因?yàn)镃onv1的輸出是1維的,它所在的空間中不存在方向可以和高層的向量方向達(dá)成一致性。所以在Conv1和PrimaryCapsules之間沒(méi)有路由。所有的路由邏輯值(bij)被初始化為0。因此,一開(kāi)始一個(gè)膠囊的輸出(ui)會(huì)以相同的概率(cij)傳入到所有的母膠囊(v0,v1,...,v10)。作者們用TensorFlow實(shí)現(xiàn)了這個(gè)網(wǎng)絡(luò),選擇了Adam優(yōu)化器和TensorFlow的默認(rèn)參數(shù),包括指數(shù)衰減的學(xué)習(xí)率用來(lái)優(yōu)化式4的邊緣損失的總和。
4.1 為了正則化效果而做的重構(gòu)工作
作者們使用了一個(gè)額外的重構(gòu)損失,希望數(shù)字膠囊能對(duì)輸入數(shù)字的實(shí)例化參數(shù)做編碼。在訓(xùn)練過(guò)程中,作者們用掩蔽的方法只把正確的數(shù)字膠囊的激活向量保留下來(lái)。然后用這個(gè)激活向量來(lái)做重構(gòu)。數(shù)字膠囊的輸出會(huì)傳入一個(gè)由3個(gè)全連接層組成的解碼器,它的結(jié)構(gòu)如圖2,用來(lái)建模像素密度。
作者們極小化回歸單元的輸出和原來(lái)圖片的像素亮度之間的平方誤差,并把重構(gòu)誤差收縮到原來(lái)的0.0005倍,這樣才不會(huì)在訓(xùn)練過(guò)程中蓋過(guò)邊緣誤差的作用。如圖3所示,CapsNet的16維輸出的重構(gòu)是魯棒的,同時(shí)也只保留了重要的細(xì)節(jié)。
五、把 Capsule 用在MNIST上
使用 28×28 MNIST的圖片集進(jìn)行訓(xùn)練,訓(xùn)練前這些圖片在每個(gè)方向不留白地平移了2個(gè)像素。除此之外,沒(méi)有進(jìn)行其他的數(shù)據(jù)增改或者轉(zhuǎn)換。在MNIST數(shù)據(jù)庫(kù)中,6萬(wàn)張圖片用于訓(xùn)練,另外1萬(wàn)張用于測(cè)試。
圖3: 利用3次路由迭代學(xué)習(xí)的CapsNet對(duì)MNIST中的測(cè)試照片進(jìn)行重構(gòu)。(l, p, r)分別代表真實(shí)標(biāo)簽、模型預(yù)測(cè)和重建結(jié)果。最右兩列展示的是重建失敗的例子,解釋了模型是如何混淆了圖片中的“5”和“3”。其他列屬于被正確分類了的,展示了模型可以識(shí)別圖像中的細(xì)節(jié),同時(shí)降低噪聲。
表1:CapsNet 分類MNIST數(shù)字測(cè)試準(zhǔn)確度。結(jié)果包含了三次測(cè)試得到的平均數(shù)和標(biāo)準(zhǔn)差。
測(cè)試中作者使用的是單一模型,沒(méi)有進(jìn)行“綜合”或者明顯的數(shù)據(jù)擴(kuò)增方法。(Wan等人在「Regularization of neural networks using dropconnect」中通過(guò)“綜合”及數(shù)據(jù)擴(kuò)增實(shí)現(xiàn)了0.21%的錯(cuò)誤率,而未使用這兩種方法時(shí)的錯(cuò)誤率是0.57%)作者們通過(guò)3層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了較低的錯(cuò)誤率(0.25%),這一錯(cuò)誤率以往只有更深的網(wǎng)絡(luò)才能達(dá)到。表1展現(xiàn)的是不同設(shè)置的CasNet在NMIST數(shù)據(jù)庫(kù)上的測(cè)試錯(cuò)誤率,表明了路由以及正則器重構(gòu)的重要性。其基線是一個(gè)標(biāo)準(zhǔn)的三層神經(jīng)網(wǎng)絡(luò)(CNN),分別具有256、256及128個(gè)通道。每個(gè)通道具有5×5的卷積核,卷積步長(zhǎng)為1。接著有兩個(gè)全連接層,大小分別為328、192。最后的全連接層通過(guò)dropout連接到帶有交叉熵?fù)p失的10個(gè)分類輸出的softmax層。
5.1 capsule的單個(gè)維度表示什么
由于模型中只向DigitCaps層的膠囊傳遞一個(gè)數(shù)字的編碼并置零其他數(shù)字,所以這些膠囊應(yīng)該學(xué)會(huì)了在這個(gè)類別已經(jīng)具有一個(gè)實(shí)例的基礎(chǔ)上拓展了變化空間。這些變化包括筆畫粗細(xì)、傾斜和寬度。還包括不同數(shù)字中特定的變化,如數(shù)字2尾部的長(zhǎng)度。通過(guò)使用解碼器網(wǎng)絡(luò)可以看到單個(gè)維度表示什么。在計(jì)算正確的數(shù)字膠囊的激活向量之后,可以將這個(gè)激活向量的擾動(dòng)反饋給解碼器網(wǎng)絡(luò),并觀察擾動(dòng)如何影響重建。這些擾動(dòng)的例子如圖4所示??梢钥吹?,膠囊的一個(gè)維度(總數(shù)為16)幾乎總是代表數(shù)字的寬度。有些維度表示了全局變化的組合,而有些維度表示數(shù)字的局部變化。例如,字母6上部分的長(zhǎng)度和下部分圈的大小使用了不同的維度。
圖4:維度擾動(dòng)。每一行表示DigitCaps16個(gè)維度表示中的一個(gè)維度在[-0.25, 0.25]范圍,步長(zhǎng)0.05時(shí)的重構(gòu)結(jié)果
5.2 仿射變換的魯棒性
實(shí)驗(yàn)表明,每個(gè)DigitCaps層的膠囊都比傳統(tǒng)卷積網(wǎng)絡(luò)學(xué)到了每個(gè)類的更魯棒的表示。由于手寫數(shù)字的傾斜、旋轉(zhuǎn)、風(fēng)格等方面存在自然差異,訓(xùn)練好的CapsNet對(duì)訓(xùn)練數(shù)據(jù)小范圍的仿射變換具有一定的魯棒性。
為了測(cè)試CapsNet對(duì)仿真變換的魯棒性,作者們首先基于MNIST訓(xùn)練集創(chuàng)造了一個(gè)新的訓(xùn)練集,其中每個(gè)樣本都是隨機(jī)放在40× 40像素的黑色背景上的MNIST數(shù)字。然后用這樣的訓(xùn)練集訓(xùn)練了一個(gè)CapsNet和一個(gè)傳統(tǒng)的卷積網(wǎng)絡(luò)(包含MaxPooling和DropOut)。
然后,作者們?cè)赼ffNIST數(shù)據(jù)集上測(cè)試了這個(gè)網(wǎng)絡(luò),其中,每個(gè)樣本都是一個(gè)具有隨機(jī)小范圍仿射變換的MNIST數(shù)字。模型并沒(méi)有在任何放射變換,甚至標(biāo)準(zhǔn)MNIST自然變換的訓(xùn)練集合上訓(xùn)練過(guò),但一個(gè)訓(xùn)練好的帶有早期停止機(jī)制(early stop)的CapsNet,在拓展的MNIST測(cè)試集上實(shí)現(xiàn)了99.23%的準(zhǔn)確度,在仿射測(cè)試集上實(shí)現(xiàn)了79%的準(zhǔn)確性。具有類似參數(shù)數(shù)量的傳統(tǒng)卷積模型在擴(kuò)展的MNIST測(cè)試集上實(shí)現(xiàn)了類似的準(zhǔn)確度(99.22%),在仿射測(cè)試集上卻只達(dá)到了66%。
六、高度重疊數(shù)字的分割
動(dòng)態(tài)路由可以視為平行的注意力機(jī)制,允許同層級(jí)的膠囊參與處理低層級(jí)的活動(dòng)膠囊,并忽略其他膠囊。理論上允許模型識(shí)別圖像中的多個(gè)對(duì)象,即使對(duì)象重疊。Hinton等人的目的是分割并識(shí)別高度重合數(shù)字對(duì)象(「 Learning to parse images,2000」中提出,其它人也在類似的領(lǐng)域?qū)嶒?yàn)過(guò)他們的網(wǎng)絡(luò),Goodfellow等人在「Multi-digit number recognition from street view imagery using deep convolutional neural networks,2013」中,Ba等人在「Multiple object recognition with visual attention,2014」中,Greff等人在「Tagger: Deep unsupervised perceptual grouping,2016」中)。一致性路由使利用對(duì)象的形狀的先驗(yàn)知識(shí)幫助進(jìn)行分割成為了可能,并避免在像素領(lǐng)域進(jìn)行更高級(jí)別的細(xì)分。
6.1 MultiMNIST數(shù)據(jù)集
作者們通過(guò)在數(shù)字上覆蓋另一個(gè)來(lái)自相同集合(訓(xùn)練或測(cè)試)但不同類別的數(shù)字來(lái)生成MultiMNIST訓(xùn)練測(cè)試數(shù)據(jù)集。每個(gè)數(shù)字在每個(gè)方向上最多移動(dòng)4個(gè)像素,產(chǎn)生36*36像素的圖像。考慮到28*28像素圖像中的數(shù)字是以20*20像素的范圍作為邊框,兩個(gè)數(shù)字的邊框內(nèi)范圍平均有80%的重合部分。MNIST數(shù)據(jù)集中的每個(gè)數(shù)字都會(huì)生成1K MultiMNIST示例。訓(xùn)練集的大小為60M,測(cè)試集的大小為10M。
6.2 MultiMNIST數(shù)據(jù)集上的結(jié)果
作者用MultiMNIST的訓(xùn)練數(shù)據(jù)中重新訓(xùn)練得到的3層CapsNet模型,比基線卷積模型獲得了更高的分類測(cè)試準(zhǔn)確率。相較于Ba等人在「Multiple object recognition with visual attention,2014」的序列注意力模型,他們執(zhí)行的是更簡(jiǎn)單的、數(shù)字交疊遠(yuǎn)遠(yuǎn)更小的任務(wù)(本文的測(cè)試數(shù)據(jù)中,兩個(gè)數(shù)字的外框交疊率達(dá)到80%,而B(niǎo)a等人的只有4%),而本文的模型在高度交疊的數(shù)字對(duì)中獲得了與他們同樣的5%的錯(cuò)誤率。測(cè)試圖片由測(cè)試集中的成對(duì)的圖片構(gòu)成。作者們把兩個(gè)最活躍的數(shù)字膠囊看作膠囊網(wǎng)絡(luò)產(chǎn)生的分類結(jié)果。在重建過(guò)程中,作者們每次選擇一個(gè)數(shù)字,用它對(duì)應(yīng)的數(shù)字膠囊的激活向量來(lái)重建這個(gè)數(shù)字的圖像(已經(jīng)知道這個(gè)圖像是什么,因?yàn)樽髡邆冾A(yù)先用它來(lái)生成合成的圖像)。與上文MNIST測(cè)試中模型的唯一不同在于,現(xiàn)在把將學(xué)習(xí)率的衰減步數(shù)提高到了原來(lái)的10倍,這是因?yàn)橛?xùn)練數(shù)據(jù)集更大。
圖5:一個(gè)經(jīng)3次路由迭代的CapsNet在MultiMNIST測(cè)試數(shù)據(jù)集上的樣本重建結(jié)果
如圖中靠下的圖像所示,兩個(gè)重建出的互相交疊的數(shù)字分別顯示為綠色和紅色的。靠上的圖顯示的是輸入的圖像。表示圖像中兩個(gè)數(shù)字的標(biāo)簽;表示用于重建的兩個(gè)數(shù)字。最右邊的兩列顯示了從標(biāo)簽和從預(yù)測(cè)重建的兩個(gè)錯(cuò)誤分類樣例。在例子中,模型將8錯(cuò)判成7;在的例子中,模型將9錯(cuò)判成0。其他的列都分類正確并且顯示了模型不僅僅考慮了所有的像素同時(shí)能夠在非常困難的場(chǎng)景下將一個(gè)像素分配給兩個(gè)數(shù)字(1-4列)。值得說(shuō)明的是,在數(shù)據(jù)集產(chǎn)生的過(guò)程中,像素的值都會(huì)被剪裁到1以內(nèi)。兩個(gè)含“*”的列顯示了重建的數(shù)字既不是標(biāo)簽值也不是預(yù)測(cè)值。這些列顯示模型不僅僅找到了所有存在的數(shù)字的最佳匹配,甚至還考慮了圖像中不存在的數(shù)字。所以在的例子中,模型并不能重建數(shù)字7,是因?yàn)槟P椭罃?shù)字對(duì)5和0是最佳匹配,而且也已經(jīng)用到了所有的像素。的例子也是類似的,數(shù)字8的環(huán)并沒(méi)有觸發(fā)為0的判斷,因?yàn)樵摂?shù)字已經(jīng)被當(dāng)做8了。因此,如果兩個(gè)數(shù)字都沒(méi)有其他額外的支持的話,模型并不會(huì)將一個(gè)像素分配給這兩個(gè)數(shù)字。
圖5中的重構(gòu)表明,CapsNet 能夠把圖片分割成兩個(gè)原來(lái)的數(shù)字。因?yàn)檫@一分割并非是直接的像素分割,所以可以觀察到,模型可以準(zhǔn)確處理重疊的部分(即一個(gè)像素同時(shí)出現(xiàn)在多個(gè)數(shù)字上),同時(shí)也利用到所有像素。每個(gè)數(shù)字的位置和風(fēng)格在DigitCaps中都得到了編碼。給定一個(gè)被編碼數(shù)字,解碼器也學(xué)會(huì)了去重構(gòu)這一數(shù)字。解碼器能夠無(wú)視重疊進(jìn)行重構(gòu)的特性表明,每個(gè)數(shù)字膠囊都能從PrimaryCapsules層接收到的不同激活向量來(lái)獲取位置和風(fēng)格。
表1 也著重表現(xiàn)了這一任務(wù)中膠囊之間路由的重要性。作為CapsNet分類器準(zhǔn)確率的對(duì)比基線,作者們一開(kāi)始先訓(xùn)練了帶有兩層卷積層和兩層全連接層的卷積神經(jīng)網(wǎng)絡(luò)。 第一層有512個(gè)大小為9*9的卷積核,步長(zhǎng)為1;第二層有256個(gè)大小為5*5的卷積核,步長(zhǎng)為1。在每個(gè)卷積層后,模型都連接了一個(gè)2*2大小,步長(zhǎng)2的池化層。 第三層是一個(gè)1024維的全連接層。
所有的這三層都有ReLU非線性處理。 最后10個(gè)單元的層也是全連接。 我們用TF默認(rèn)的Adam優(yōu)化器來(lái)訓(xùn)練最后輸出層的Sigmoid交叉熵?fù)p失。 這一模型有24.56M參數(shù),是CapsNet的11.36M參數(shù)的兩倍多。作者們從一個(gè)小點(diǎn)的CNN(32和64個(gè)大小為5*5的卷積核,步幅為1,以及一個(gè)512維的全連接層)開(kāi)始,然后逐漸增大網(wǎng)絡(luò)的寬度,直到他們?cè)贛ultiMNIST的10K子集上達(dá)到最好的測(cè)試精度。他們也在10K的驗(yàn)證集上搜索了正確的學(xué)習(xí)率衰減步數(shù)。
作者們一次解碼了兩個(gè)最活躍的DigitCaps膠囊,得到了兩張圖片。然后把所有非零的像素分配給不同的數(shù)字,就得到了每個(gè)數(shù)字的分割結(jié)果。
七、其它數(shù)據(jù)集
作者們?cè)?CIFAR10 的數(shù)據(jù)及上測(cè)試了膠囊模型,在用了不同的超參和7個(gè)模型集成(其中每個(gè)模型都通過(guò)圖像中24x24的小塊進(jìn)行三次路由迭代)后得到10.6%的錯(cuò)誤率。這里的圖片都是三個(gè)顏色通道的,作者們一共用了64種不同的 primary capsule,除此之外每個(gè)模型都和在 MNIST 數(shù)據(jù)集中用的一模一樣。作者們還發(fā)現(xiàn)膠囊能夠幫助路由softmax增加一個(gè)“以上皆非”的分類種類,因?yàn)椴荒苤竿?0個(gè) capsules 的最后一層就能夠解釋圖片里的一切信息。在測(cè)試集上有 10.6% 的錯(cuò)誤率差不多也是標(biāo)準(zhǔn)的卷積網(wǎng)絡(luò)初次應(yīng)用到 CIFAR10 上能達(dá)到的效果。
和生成模型一個(gè)一樣的缺點(diǎn)是,Capsules 傾向于解釋圖片中的一切。所以當(dāng)能夠?qū)﹄s亂的背景建模時(shí),它比在動(dòng)態(tài)路由中只用一個(gè)額外的類別來(lái)的效果好。在 CIFAR-10 中,背景對(duì)大小固定的模型來(lái)說(shuō)變化太大,因此模型表現(xiàn)也不好。
作者們還用了和 MNIST 中一樣的模型測(cè)試了 smallNORB 數(shù)據(jù)集,可以得到目前最好的 的 2.7% 的錯(cuò)誤率。smallNORB 數(shù)據(jù)集由 96×96的雙通道灰度圖組成。作者們把圖片縮放到 48×48 像素,并且在訓(xùn)練時(shí)從中隨機(jī)裁剪 32×32 的大小。而在測(cè)試時(shí),直接取中間 32×32 的部分。
作者們還在 SVHN 的 73257 張圖片的小訓(xùn)練集上訓(xùn)練了一個(gè)小型網(wǎng)絡(luò)。我們把第一個(gè)卷積層的通道數(shù)減少到 64個(gè),primary capsule 層為 16 個(gè) 6維膠囊,最后一個(gè)膠囊層為8維的。最后測(cè)試集錯(cuò)誤率為 4.3%.
八、討論以及以往工作
30年來(lái), 語(yǔ)音識(shí)別的最新進(jìn)展使用了以高斯混合作為輸出分布的隱馬爾可夫模型。這些模型雖然易于在一些計(jì)算機(jī)上學(xué)習(xí),但是存在一個(gè)致命的缺陷:他們使用的“n種中的某一種”的表示方法的效率是呈指數(shù)下降的,分布式遞歸神經(jīng)網(wǎng)絡(luò)的效率就比這種方法高得多。為了使隱馬爾可夫模型能夠記住的迄今它所生成字符的信息倍增,需要使用的隱藏節(jié)點(diǎn)數(shù)目需要增加到原來(lái)的平方。而對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),只需要兩倍的隱藏神經(jīng)元的數(shù)量即可。
現(xiàn)在卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)成為物體識(shí)別的主流方法,理所當(dāng)然要問(wèn)是其中是否也會(huì)有效率的指數(shù)下降,從而引發(fā)這種方法的式微。一個(gè)可能性是卷積網(wǎng)絡(luò)在新類別上泛化能力的困難度。卷積網(wǎng)絡(luò)中處理平移變換的能力是內(nèi)置的,但對(duì)于仿射變換的其他維度就必須進(jìn)行選擇,要么在網(wǎng)格中復(fù)制特征檢測(cè)器,網(wǎng)格的大小隨著維度數(shù)目指數(shù)增長(zhǎng),要么同樣以指數(shù)方式增加的標(biāo)注訓(xùn)練集的大小。膠囊通過(guò)將像素強(qiáng)度轉(zhuǎn)換為識(shí)別到的片段中的實(shí)例化參數(shù)向量,然后將變換矩陣應(yīng)用于片段,以預(yù)測(cè)更大的片段的實(shí)例化參數(shù),從而避免了效率的指數(shù)下降。學(xué)到了部分和整體之間固有的空間關(guān)系的轉(zhuǎn)換矩陣構(gòu)成了具有視角不變性的知識(shí),從而可以自動(dòng)泛化到的視角中。
膠囊使得我們可以做出一個(gè)非常具有表征意義的假設(shè):在圖像的每一個(gè)位置,至多只有一個(gè)膠囊所表征的實(shí)體的實(shí)例。這種假設(shè)是由一種稱為“crowding”(Pelli等人「Crowding is unlike ordinary masking: Distinguishing feature integration from detection,2004」) 的感知現(xiàn)象驅(qū)動(dòng)的,它消除了綁定問(wèn)題,并允許一個(gè)膠囊使用分布式表示(它的激活向量)來(lái)對(duì)給定位置的該類型實(shí)體的實(shí)例化參數(shù)進(jìn)行編碼。這種分布式表示比通過(guò)在高維網(wǎng)格上激活一個(gè)點(diǎn)來(lái)編碼實(shí)例化參數(shù)的效率要高得多,并且通過(guò)正確的分布式表示,膠囊可以充分利用空間關(guān)系可以由矩陣乘法來(lái)建模的特點(diǎn)。
膠囊中采用的神經(jīng)活動(dòng)會(huì)隨著視角的變化而變化,而不是試圖消除神經(jīng)活動(dòng)中視角變化帶來(lái)的影響。這使它們比“歸一化”法(如Jaderberg等「Spatial transformer networks,2015」)更具有優(yōu)勢(shì):它們可以同時(shí)處理多個(gè)不同仿射變換或不同對(duì)象的不同部件。
膠囊同時(shí)也非常擅長(zhǎng)處理圖像分割這樣的另一種視覺(jué)上最困難的問(wèn)題之一,因?yàn)閷?shí)例化參數(shù)的矢量允許它們使用在本文中演示的那樣的一致性路由。對(duì)膠囊的研究目前正處于一個(gè)與本世紀(jì)初研究用于語(yǔ)音識(shí)別的遞歸神經(jīng)網(wǎng)絡(luò)類似的階段。根據(jù)基礎(chǔ)表征性的特點(diǎn),已經(jīng)有理由相信這是一種更好的方法,但它可能需要一些更多的在細(xì)節(jié)上的洞察力才能把它變成一種可以投入應(yīng)用的高度發(fā)達(dá)的技術(shù)。一個(gè)簡(jiǎn)單的膠囊系統(tǒng)已經(jīng)在分割數(shù)字圖像上提供了無(wú)與倫比的表現(xiàn),這表明了膠囊是一個(gè)值得探索的方向。
(完)
關(guān)注AI研習(xí)社,回復(fù)【論文】即可獲取論文原文及翻譯。
歡迎各界朋友加入字幕組,讓雷鋒字幕組翻譯水平更上一層樓。組長(zhǎng)微信:julylihuaijiang。
雷鋒字幕組翻譯 / 熊浪濤、小穎同學(xué)、sophie、Clay、李振、孟慶淳、Jackie、小耗子在南京、張小彬、Moonsea、陳智敏
審校 / 曉凡
統(tǒng)籌 / 囧囧、凡江
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。