? ? ? ? ? ? ? ? ? ? ? ? ?? 膠囊間的動(dòng)態(tài)路由
摘要:膠囊是一組神經(jīng)元够委,其激活向量表示特定類(lèi)型實(shí)體(比如目標(biāo)或目標(biāo)部分)的實(shí)例化參數(shù)荐类。我們用激活向量的長(zhǎng)度來(lái)表示實(shí)體存在的概率,而其方向表示實(shí)例化參數(shù)茁帽。同一層的活性膠囊玉罐,通過(guò)變換矩陣,對(duì)更高層的膠囊的實(shí)例化參數(shù)進(jìn)行預(yù)測(cè)潘拨。當(dāng)多個(gè)預(yù)測(cè)相一致時(shí)厌小,較高層的膠囊被激活。我們展示出一個(gè)具有判別性的訓(xùn)練战秋,多層膠囊系統(tǒng)在MNIST上實(shí)現(xiàn)了最先進(jìn)的性能,在識(shí)別高度重疊的數(shù)字時(shí)讨韭,其效果明顯要好于卷積神經(jīng)網(wǎng)絡(luò)脂信。為了達(dá)到這樣的結(jié)果,我們使用了迭代路由協(xié)議機(jī)制:低層膠囊傾向于將其輸出發(fā)送到更高層膠囊透硝,更高層膠囊(激活向量具有大的標(biāo)量積)的預(yù)測(cè)來(lái)自低層膠囊狰闪。
1 引言
? ? ?? 人類(lèi)視覺(jué)通過(guò)使用精心確定的固定點(diǎn)序列來(lái)忽略不相關(guān)的細(xì)節(jié),以確保只有極小部分的光學(xué)陣列在最高分辨率下進(jìn)行處理濒生。針對(duì)我們對(duì)場(chǎng)景有多少知識(shí)來(lái)自于固定的順序以及我們從單一固定中收集多少東西的理解埋泵,自省是不太好的指導(dǎo),但是在本文中,我們將假設(shè)單一固定給我們帶來(lái)的不僅僅是單個(gè)確定的對(duì)象及其屬性丽声。我們假設(shè)我們的多層視覺(jué)系統(tǒng)在每個(gè)固定上創(chuàng)建了一個(gè)類(lèi)似于樹(shù)狀的分析結(jié)構(gòu)礁蔗,并且我們忽略了這些單一固定的解析樹(shù)是如何在多個(gè)固定上進(jìn)行協(xié)調(diào)的問(wèn)題。
? ? ?? 解析樹(shù)通常是在動(dòng)態(tài)分配內(nèi)存中構(gòu)建的雁社。然而浴井,在Hinton等人之后我們假設(shè),對(duì)于單一的固定霉撵,解析樹(shù)是由一個(gè)固定的多層神經(jīng)網(wǎng)絡(luò)雕刻成的磺浙,就像雕刻在巖石上的雕塑一樣。每層將分成許多小組稱(chēng)為“膠囊”的神經(jīng)元(Hinton等人)徒坡,解析樹(shù)的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)激活膠囊撕氧。使用迭代路由過(guò)程,每個(gè)激活膠囊將在其上層膠囊中選擇一個(gè)作為父節(jié)點(diǎn)喇完。對(duì)于較高級(jí)別的視覺(jué)系統(tǒng)伦泥,這個(gè)迭代過(guò)程將解決部件分配給整體的問(wèn)題。
? ? ?? 激活膠囊內(nèi)的神經(jīng)元活動(dòng)表示圖像中存在的特定實(shí)體的各種屬性何暮。這些屬性可以包括許多不同類(lèi)型的實(shí)例化參數(shù)奄喂,如姿勢(shì)(位置,大小海洼,方向)跨新、形變、速度坏逢、反射率域帐、色調(diào)、紋理等等是整。一個(gè)非常特殊的屬性是圖像中實(shí)例化實(shí)體的存在肖揣。表示實(shí)體存在的一個(gè)顯而易見(jiàn)的方法是用一個(gè)獨(dú)立的邏輯單元,其輸出是實(shí)體存在的概率浮入。在本文中龙优,我們探索一種有趣的替代方法,即用實(shí)例化參數(shù)向量的總長(zhǎng)度來(lái)表示實(shí)體的存在事秀,并強(qiáng)制向量的方向來(lái)表示實(shí)體的屬性彤断。我們通過(guò)應(yīng)用非線(xiàn)性使向量的方向不變但是規(guī)模縮小易迹,從而保證了膠囊向量的輸出長(zhǎng)度不超過(guò)1一屋。
? ? ?? 膠囊的輸出是向量的事實(shí)使得它可以使用一個(gè)強(qiáng)大的動(dòng)態(tài)路由機(jī)制以確保膠囊的輸出發(fā)送至上層合適的父節(jié)點(diǎn)先嬉。最初,輸出被發(fā)送到所有可能的父節(jié)點(diǎn),但是被耦合系數(shù)縮減總數(shù)為1。對(duì)于每個(gè)可能的父類(lèi),膠囊通過(guò)將對(duì)自身輸出乘以一個(gè)權(quán)重矩陣來(lái)計(jì)算“預(yù)測(cè)向量”愿待。如果這個(gè)預(yù)測(cè)向量是一個(gè)可能父類(lèi)輸出的一個(gè)很大的標(biāo)量積,那么就有一個(gè)自上而下的反饋,增加該父類(lèi)的耦合系數(shù)批糟,并減少其他父節(jié)點(diǎn)的耦合系數(shù)悄但。這增加了膠囊對(duì)于該父節(jié)點(diǎn)的貢獻(xiàn)嚎京,從而進(jìn)一步增加了使用父節(jié)點(diǎn)輸出的膠囊預(yù)測(cè)的標(biāo)量積。這種類(lèi)型的“路由協(xié)議”要比最大池化(max-pooling)實(shí)現(xiàn)的最原始的路由方式更加有效钦扭,它允許一層中的神經(jīng)元忽略除過(guò)下面一層的局部池化中最活躍的特征檢測(cè)器之外所有的裹匙。我們證明了我們的動(dòng)態(tài)路由機(jī)制是一個(gè)可用于解釋高度重疊的目標(biāo)分割的有效方法技掏。
? ? ?? 卷積神經(jīng)網(wǎng)絡(luò)(CNNs)使用學(xué)習(xí)特征檢測(cè)器的變換副本鸠真。這使得它們能夠?qū)D像中的某個(gè)位置獲取的良好權(quán)重值知識(shí)變換到其他位置。這已被證實(shí)在圖像解釋中是非常有幫助的程奠。盡管我們正在用向量-輸出膠囊取代CNNs的標(biāo)量-輸出特征檢測(cè)器距境,以及用路由協(xié)議取代最大池化霹粥,但是我們?nèi)匀幌M谡麄€(gè)空間中復(fù)制學(xué)到的知識(shí)。為了實(shí)現(xiàn)該目標(biāo)洼怔,我們讓除了膠囊最后一層外的其它層做卷積怀酷。與CNNs一樣,我們使用更高層的膠囊覆蓋圖像的更大區(qū)域。然而甥桂,不同于最大池化,我們不會(huì)丟棄遠(yuǎn)離該區(qū)域內(nèi)實(shí)體的精確位置信息婶肩。對(duì)于低層膠囊办陷,位置信息是激活膠囊的“位置-編碼”。隨著層次結(jié)構(gòu)的升級(jí)律歼,有越來(lái)越多的位置信息成為膠囊輸出向量實(shí)際值分量中的“速度-編碼”民镜。從位置-編碼到速度-編碼的轉(zhuǎn)變,再加上更高層的膠囊代表具有更多自由度更復(fù)雜的實(shí)體的事實(shí)苗膝,表明隨著層次的提升殃恒,膠囊的維度應(yīng)該會(huì)增加。
2 如何計(jì)算膠囊的向量輸入和輸出
? ? ?? 有很多種可能的方法來(lái)實(shí)現(xiàn)膠囊的一般概念辱揭,本文的目的不是探索這整個(gè)空間离唐,而是簡(jiǎn)單地說(shuō)明一個(gè)相當(dāng)簡(jiǎn)單的實(shí)現(xiàn)是有效的,并且動(dòng)態(tài)路徑規(guī)劃是有幫助的问窃。
? ? ?? 我們用膠囊的輸出向量的長(zhǎng)度表示膠囊所代表的實(shí)體在當(dāng)前的輸入中存在的概率亥鬓。因此,我們使用一個(gè)非線(xiàn)性的“擠壓(squashing)”函數(shù)以確保短向量被壓縮至接近0域庇,長(zhǎng)向量被壓縮至略低于1嵌戈。我們讓其進(jìn)行判別性學(xué)習(xí)以充分利用該非線(xiàn)性覆积。
? ? ?? 其中v_ j是膠囊 j 的向量輸出,s_ j是其總輸入熟呛。
? ? ?? 除了膠囊體第一層外的其他層宽档,膠囊的總輸入s_ j是來(lái)自于下一層的膠囊所有“預(yù)測(cè)向量”u_ j|i 的一個(gè)加權(quán)和,其通過(guò)權(quán)重矩陣W_ij 乘以下一層膠囊的輸出u_i 產(chǎn)生庵朝。
? ? ?? 其中c_ij是由迭代動(dòng)態(tài)路由過(guò)程決定的耦合系數(shù)吗冤。膠囊 i 和高一層的所有膠囊間的耦合系數(shù)總和為1,并由“路由softmax”決定九府,該“路由softmax”的初始邏輯b_ij 是對(duì)數(shù)先驗(yàn)概率椎瘟,即膠囊 i 應(yīng)該與膠囊 j 耦合。
? ? ?? 同一時(shí)間的對(duì)數(shù)先驗(yàn)可以作為所有其他權(quán)重來(lái)進(jìn)行判別性的學(xué)習(xí)侄旬。它們?nèi)Q于兩個(gè)膠囊的位置和類(lèi)型肺蔚,而不是取決于當(dāng)前的輸入圖像。然后儡羔,初始耦合系數(shù)通過(guò)測(cè)量更高一層中每個(gè)膠囊 j 的當(dāng)前輸出v_ j 和膠囊 i 的預(yù)測(cè)u_ j|i 間的一致性迭代細(xì)化宣羊。
? ? ?? 一致性?xún)H僅是標(biāo)量積a_ij=v_ j.u_ j|i 。這種一致性被認(rèn)為是一個(gè)對(duì)數(shù)似然比汰蜘,并在對(duì)連接膠囊 i 和更高層膠囊的所有耦合系數(shù)計(jì)算新值之前段只,這種一致性被添加到初始邏輯b_ij 。
? ? ?? 在卷積膠囊層中鉴扫,每個(gè)膠囊對(duì)高一層的每種類(lèi)型膠囊的輸出一個(gè)向量的局部網(wǎng)格赞枕,并對(duì)于網(wǎng)格的每一部分和膠囊的每種類(lèi)型使用不同的變換矩陣。
3 數(shù)字存在的邊際損失
? ? ?? 我們使用實(shí)例化向量的長(zhǎng)度來(lái)表示膠囊實(shí)體存在的概率坪创。當(dāng)且僅當(dāng)圖像中有數(shù)字時(shí)炕婶,我們想要得到數(shù)字類(lèi) k 的頂層膠囊來(lái)獲取一個(gè)長(zhǎng)的實(shí)例化向量。為了允許多個(gè)數(shù)字莱预,我們對(duì)每個(gè)數(shù)字膠囊 k 使用一個(gè)單獨(dú)的邊緣損失L_k柠掂。
? ? ?? 其中,T_k=1依沮,如果存在一個(gè)類(lèi) k 的數(shù)字涯贞,并且m+= 0.9并且m-= 0.1。缺失數(shù)字類(lèi)別的損失的^下降權(quán)重會(huì)阻止最初學(xué)習(xí)縮小所有數(shù)字膠囊的激活向量的長(zhǎng)度危喉。我們用 ^= 0.5宋渔。 總損失僅是所有數(shù)字膠囊損失的總和。
4 CapsNet 架構(gòu)
? ? ? ? 一個(gè)簡(jiǎn)單的CapsNet架構(gòu)如圖1所示辜限。架構(gòu)可以簡(jiǎn)單的表示為僅有兩個(gè)卷積層和一個(gè)全連接層組成皇拣。Conv1有256個(gè)9×9個(gè)卷積核,步長(zhǎng)為1和ReLU激活。該層將像素的強(qiáng)度轉(zhuǎn)換為之后會(huì)用于作為基本膠囊輸入的局部特征探測(cè)器的激活氧急。
? ? ?? 基本膠囊是多維實(shí)體的最低層,并且來(lái)自于一個(gè)相反的圖形視角稿黍,激活初始膠囊體對(duì)應(yīng)于反向表現(xiàn)過(guò)程疹瘦。這是一個(gè)非常不同的計(jì)算方式,而非將實(shí)例化的部件組合在一起以形成熟悉的整體巡球,這是膠囊被設(shè)計(jì)用來(lái)擅長(zhǎng)做的事情言沐。
? ? ?? 第二層(PrimaryCapsules)是一個(gè)具有8維膠囊的32通道卷積的膠囊層,(即每個(gè)基本膠囊包含8卷積單元酣栈,用一個(gè)9×9的核和一個(gè)長(zhǎng)度為2的步長(zhǎng))险胰。每個(gè)初始膠囊的輸出看作是所有256×81Conv1單元的輸出,這些單元可以容納與膠囊的中心位置重疊的區(qū)域矿筝∑鸨悖總的PrimaryCapsules有[32×6×6]膠囊輸出(每個(gè)輸出都是8維向量),每個(gè)膠囊都在[6×6]的網(wǎng)格中互相共享權(quán)重窖维。PrimaryCapsules作為卷積層用公式1表示榆综,作為其的非線(xiàn)性塊。最終層(DigitCaps)有每個(gè)數(shù)字類(lèi)是一個(gè)16維膠囊铸史,這些膠囊的每一個(gè)都是從低一層的所有膠囊中接收輸入鼻疮。
? ? ?? 我們僅僅有兩個(gè)連續(xù)的膠囊層之間的路由(即PrimaryCapsules和DigitCaps)。由于Conv1的輸出是1維的琳轿,在它的空間里沒(méi)有任何方向可以達(dá)成一致判沟。因此,不存在路由是用于Conv1和PrimaryCapsules之間崭篡。所有的路由模型(b_ij)初始化為到0挪哄。因此,最初的一個(gè)膠囊輸出(u_i)以相等的概率(c_ij)被發(fā)送到所有有父膠囊體(v_0...v_9)琉闪。我們是在TensorFlow(Abadiet al. [2016])進(jìn)行實(shí)驗(yàn)中燥,并且我們使用有著TensorFlow默認(rèn)參數(shù)(包括指數(shù)衰減的學(xué)習(xí)率,最小化方程4中的邊緣損失的總和)的Adam優(yōu)化器(Kingma and Ba [2014])塘偎。
4.1 一種正則化方法——重建
? ? ?? 我們使用額外的重建損失來(lái)鼓勵(lì)數(shù)字膠囊去編碼輸入數(shù)字的實(shí)例化參數(shù)疗涉。在訓(xùn)練過(guò)程中拿霉,我們將除了正確數(shù)字膠囊的激活向量外的所有激活向量都屏蔽掉。然后咱扣,我們使用這個(gè)激活向量重建輸入圖像绽淘。數(shù)字膠囊的輸出被送入一個(gè)由3個(gè)模擬像素強(qiáng)度的全連接層組成的解碼器,如圖2所示闹伪。我們最小化邏輯單元和像素強(qiáng)度輸出間的平方差異的總和沪铭。我們用0.0005縮小重建損失,以至于它在訓(xùn)練中不是邊緣損失的主要部分偏瓤。如圖3所示杀怠,來(lái)自CapsNet的16維輸出重建是穩(wěn)定的,但是只保留了重要細(xì)節(jié)厅克。
5 MNIST上的Capsules
? ? ?? 在28×28的MNIST(LeCun等人[1998])圖像(用填充0在每個(gè)方向上提升2個(gè)像素實(shí)現(xiàn)轉(zhuǎn)移)上進(jìn)行訓(xùn)練吱肌。沒(méi)有其他數(shù)據(jù)增加/變形使用痘拆。數(shù)據(jù)集有6萬(wàn)張圖片用來(lái)訓(xùn)練,1萬(wàn)張圖片用來(lái)測(cè)試氮墨。
? ? ?? 我們用一個(gè)沒(méi)有任何模型平均的單一模型纺蛆。Wan等人[2013]用旋轉(zhuǎn)和縮放在全部和擴(kuò)充的數(shù)據(jù)集上實(shí)現(xiàn)了0.21%的測(cè)試錯(cuò)誤率,在沒(méi)有旋轉(zhuǎn)和縮放時(shí)的測(cè)試錯(cuò)誤率是是0.39%规揪。我們?cè)谝粋€(gè)先前的3層網(wǎng)絡(luò)上取得了更低的錯(cuò)誤率(0.25%)桥氏,并且只通過(guò)加深網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。表1列出了在MNIST上對(duì)于不同CapsNet設(shè)置的測(cè)試錯(cuò)誤率猛铅,并表明了路由和重建正則化的重要性字支。通過(guò)在膠囊向量中強(qiáng)制構(gòu)成編碼來(lái)增加重建正則化矩陣,從而提高了路由性能。
? ? ?? 基線(xiàn)是一個(gè)分別有256堕伪,256揖庄,128通道的三個(gè)卷積層的標(biāo)準(zhǔn)CNN。每個(gè)的核為5x5欠雌,步長(zhǎng)為1蹄梢。最后一個(gè)卷積層后有兩個(gè)大小為328,192的全連接層富俄。最后一個(gè)全連接層用交叉熵?fù)p失連接著dropout和一個(gè)10類(lèi)的softmax層禁炒。基線(xiàn)也被用Adam優(yōu)化器在2像素轉(zhuǎn)移MNIST上進(jìn)行訓(xùn)練霍比∧桓ぃ基線(xiàn)的設(shè)計(jì)是為了在MNIST上取得最好的性能,同時(shí)保持計(jì)算成本接近CapsNet悠瞬。在參數(shù)的數(shù)量上们豌,基線(xiàn)有3540萬(wàn),而CapsNet有820萬(wàn)阁危,在沒(méi)有重建子網(wǎng)絡(luò)時(shí)是680萬(wàn)。
5.1 一個(gè)膠囊的每個(gè)維度表示什么
? ? ?? 由于我們只傳遞一個(gè)數(shù)字的編碼而將其他數(shù)字歸零汰瘫,一個(gè)數(shù)字膠囊的維數(shù)應(yīng)該學(xué)會(huì)用實(shí)例化的類(lèi)的數(shù)字的方式跨越變化的空間狂打。這些變化包括行程厚度(stroke thickness)、傾斜(skew)和寬度(width)混弥。它們還包括數(shù)字-特性變化趴乡,如一個(gè)為2的蹤跡長(zhǎng)度。通過(guò)使用解碼網(wǎng)絡(luò)蝗拿,我們可以看到每個(gè)維度表示的是什么晾捏。在計(jì)算正確的數(shù)字膠囊體的激活向量后,我們可以反饋這個(gè)激活向量的一個(gè)受擾動(dòng)的版本到解碼網(wǎng)絡(luò)哀托,并且看看擾動(dòng)是如何影響重建的惦辛。這些擾動(dòng)的例子如圖4所示。我們發(fā)現(xiàn)仓手,膠囊的一維(超過(guò)16)幾乎總是表示數(shù)字的寬度胖齐。雖然有些維度表示全局變量的組合,但是也有其它維度表示數(shù)字的一個(gè)局部嗽冒。例如呀伙,用不同的維數(shù)提升6的長(zhǎng)度和循環(huán)的大小。
5.2 仿射變換的魯棒性
? ? ?? 實(shí)驗(yàn)結(jié)果表明,對(duì)于每個(gè)類(lèi)別雨女,每一個(gè)DigitCaps膠囊比一個(gè)傳統(tǒng)的卷積網(wǎng)絡(luò)學(xué)習(xí)到一個(gè)更加魯棒的表示谚攒。因?yàn)樵谑謱?xiě)數(shù)字中,在傾斜戚篙、旋轉(zhuǎn)五鲫、字體等等上有自然地變化,訓(xùn)練的CapsNet對(duì)于訓(xùn)練數(shù)據(jù)小的仿射變換是適當(dāng)魯棒的岔擂。
? ? ?? 為了測(cè)試CapsNet對(duì)于仿射變換的魯棒性位喂,我們?cè)谔畛浜妥儞Q的MNIST訓(xùn)練集上訓(xùn)練了一個(gè)CapsNet和一個(gè)傳統(tǒng)的卷積網(wǎng)絡(luò)(有MaxPooling和DropOut),其中每一個(gè)例子都是一個(gè)隨機(jī)放置在40×40像素的黑色背景上的MNIST數(shù)字乱灵。然后塑崖,在affNIST數(shù)據(jù)集上測(cè)試這個(gè)網(wǎng)絡(luò),其中每個(gè)樣本是一個(gè)有著一個(gè)隨機(jī)小仿射變換MNIST數(shù)字痛倚。除了在標(biāo)準(zhǔn)MNIST中可以看到的平移和一些自然變換规婆,我們的模型從來(lái)沒(méi)有用仿射變換訓(xùn)練過(guò)。一個(gè)提早停止的訓(xùn)練不足的CapsNet蝉稳,在擴(kuò)充的MNIST測(cè)試集實(shí)現(xiàn)了99.23%的精確度抒蚜,在affnist測(cè)試集上實(shí)現(xiàn)了79%的精確度。有著相似的參數(shù)數(shù)量的傳統(tǒng)卷積模型耘戚,在擴(kuò)充的MNIST測(cè)試集實(shí)現(xiàn)了相似的精確度(99.22%)嗡髓,但是在affnist測(cè)試集上僅實(shí)現(xiàn)了66%的精確度。
6 高度分割重疊數(shù)字
? ? ?? 動(dòng)態(tài)路由可以被看作是一種并行的注意力機(jī)制收津,它允許在同一層的每個(gè)膠囊去關(guān)注低一層上的一些激活膠囊并忽略其他的膠囊饿这。這應(yīng)該允許模型去識(shí)別圖像中多目標(biāo),即使這些目標(biāo)重疊在一起(Hinton等人[2000])撞秋,還有其他人在類(lèi)似的領(lǐng)域內(nèi)測(cè)試了他們的網(wǎng)絡(luò)(Goodfellow等人[2013]长捧、Ba等人[2014]、Greff等人[2016])吻贿。路由協(xié)議應(yīng)該讓它盡可能的用一個(gè)關(guān)于對(duì)象形狀的先驗(yàn)幫助分割串结,且它應(yīng)該避免在像素領(lǐng)域做出更高層分割決策的需求。
6.1 MutiMNIST數(shù)據(jù)集
? ? ?? 我們通過(guò)用相同數(shù)據(jù)集(訓(xùn)練或測(cè)試)但不同的類(lèi)中的數(shù)字舅列,將一個(gè)數(shù)字重疊在另一個(gè)數(shù)字上產(chǎn)生了MutiMNIST訓(xùn)練和測(cè)試數(shù)據(jù)集奉芦。每個(gè)數(shù)字在一個(gè)36x36的圖像上產(chǎn)生每個(gè)方向上移4像素【珲澹考慮一個(gè)在28×28圖像中的數(shù)字在一個(gè)20×20的盒子上是有邊界的赡矢,兩個(gè)數(shù)字邊界的盒子平均有80%的重疊城侧。對(duì)于MNIST數(shù)據(jù)集中的每一個(gè)數(shù)字家厌,我們產(chǎn)生了1000個(gè)MultiMNIST樣本芜赌。所以訓(xùn)練集的大小是6000萬(wàn)其爵,測(cè)試集大小是1000萬(wàn)。
6.2 MultiMNIST結(jié)果
? ? ?? 我們的3層CapsNet模型在MultiMNIST訓(xùn)練數(shù)據(jù)上從頭開(kāi)始訓(xùn)練伸蚯,比我們的基線(xiàn)卷積模型實(shí)現(xiàn)了更高的測(cè)試分類(lèi)精確度摩渺。在高度重疊的數(shù)字對(duì)上,我們和Ba等人實(shí)現(xiàn)了同為5.0%的分類(lèi)錯(cuò)誤率剂邮,而B(niǎo)a等人[2014]連續(xù)的注意模型實(shí)現(xiàn)了一個(gè)更加簡(jiǎn)單的任務(wù)摇幻,即不重疊的任務(wù)(我們的情況是兩個(gè)數(shù)字的盒子的80%的重疊,而B(niǎo)a等人[2014]等人<4%)挥萌。在測(cè)試圖像(由測(cè)試集中的一對(duì)圖像所組成)上绰姻,我們將兩個(gè)最活躍的數(shù)字膠囊作為膠囊網(wǎng)絡(luò)產(chǎn)生的分類(lèi)。在重建過(guò)程中引瀑,我們一次選擇一個(gè)數(shù)字狂芋,使用選定的數(shù)字膠囊的激活向量來(lái)重建選定的數(shù)字圖像(由于我們用它來(lái)產(chǎn)生了一個(gè)合成圖像,所以我們知道這個(gè)圖像)憨栽。我們MNIST模型的唯一不同是我們將學(xué)習(xí)速率的衰減階段增大了10倍帜矾,因?yàn)槲覀兊挠?xùn)練集更大。
? ? ?? 重建過(guò)程如圖5所示屑柔,CapsNet能夠?qū)D像分割為兩個(gè)原始的數(shù)字屡萤。由于這個(gè)分割不是像素級(jí)的,當(dāng)計(jì)算所有像素時(shí)掸宛,我們觀察到模型能夠正確的處理重疊部分(一個(gè)像素出現(xiàn)在兩個(gè)數(shù)字上)死陆。每個(gè)數(shù)字的位置和字體都在DigitCaps中進(jìn)行編碼。解碼器已經(jīng)學(xué)會(huì)根據(jù)編碼重新構(gòu)造一個(gè)數(shù)字旁涤。事實(shí)上翔曲,它能夠不考慮重疊重建數(shù)字迫像,這表明每個(gè)數(shù)字膠囊可以從來(lái)自PrimaryCapsules層的(votes)中獲得字體和位置劈愚。
? ? ?? 表1強(qiáng)調(diào)在該任務(wù)上路由膠囊的重要性惰许。作為CapsNet分類(lèi)精確度的基線(xiàn)席覆,我們訓(xùn)練一個(gè)有兩個(gè)卷積層的卷積網(wǎng)絡(luò),其上有兩個(gè)全連接層汹买。第一層有大小為9×9佩伤、步長(zhǎng)為1的512個(gè)卷積核。第二層有大小為5×5晦毙、步長(zhǎng)為1的256個(gè)卷積核生巡。每一個(gè)卷積層后,模型有一個(gè)尺寸為2×2和步長(zhǎng)為2的池化層见妒。第三層是一個(gè)1024維的全連接層孤荣。所有的這三層都有非線(xiàn)性的ReLU。10個(gè)單元組成的最后一層是全連接的须揣。我們使用TensorFlow默認(rèn)Adam優(yōu)化器(Kingma和Ba[2014])在最后一層的輸出上訓(xùn)練一個(gè)sigmoid交叉熵?fù)p失盐股。該模型有2456萬(wàn)個(gè)參數(shù),是CapsNet的1136萬(wàn)參數(shù)的兩倍耻卡。我們用一個(gè)較小的CNN(大小為5×5和步長(zhǎng)為1的32和64卷積核和一個(gè)512維全卷積層)來(lái)開(kāi)始疯汁,遞增的增加網(wǎng)絡(luò)的寬度,直到我們?cè)谝粋€(gè)MultiMNIST數(shù)據(jù)的子數(shù)據(jù)集1萬(wàn)張圖像上達(dá)到最好的測(cè)試精確度卵酪。我們也在1萬(wàn)的驗(yàn)證集上搜索正確的衰減步幅幌蚊。
? ? ?? 我們同時(shí)解碼兩個(gè)最活躍的DigitCaps膠囊秸谢,并得到兩個(gè)圖像。然后霹肝,通過(guò)對(duì)每個(gè)數(shù)字用非零強(qiáng)度分配任意像素估蹄,我們得到每個(gè)數(shù)字的分割結(jié)果。
7 其他數(shù)據(jù)集
? ? ?? 我們?cè)贑IFAR10上測(cè)試我們的膠囊模型沫换,并在全體7個(gè)模型的上實(shí)現(xiàn)10.6%錯(cuò)誤率臭蚁,每個(gè)模型在24×24的圖像塊上用3個(gè)路由迭代進(jìn)行訓(xùn)練。每一個(gè)模型有相同的結(jié)構(gòu)讯赏,作為我們?cè)贛NIST上使用的簡(jiǎn)單模型垮兑,除了有三個(gè)彩色通道,我們使用初始膠囊的64種不同類(lèi)型漱挎。我們也發(fā)現(xiàn)它對(duì)路由softmax幫助引入一個(gè)“以上都不是”的類(lèi)別系枪,因?yàn)槲覀儧](méi)有期望十層膠囊的最后一層去解釋圖像中的一切事物。10.6%的測(cè)試錯(cuò)誤率與當(dāng)他們第一次被應(yīng)用于CIFAR10(Zeiler和Fergus[2013])時(shí)是用什么標(biāo)準(zhǔn)卷積網(wǎng)絡(luò)實(shí)現(xiàn)的有關(guān)磕谅。
? ? ?? 與生成模型共享的膠囊的一個(gè)缺點(diǎn)是它喜歡對(duì)圖像中的所有內(nèi)容進(jìn)行說(shuō)明私爷,因此它可以更好地模擬雜波,而不是在動(dòng)態(tài)路由中使用額外的“孤立”類(lèi)別膊夹。在CIFAR-10中衬浑,背景的差異太大,以至于不能對(duì)于一個(gè)可幫助解釋較差性能的在合理的大小的網(wǎng)絡(luò)中建模放刨。
? ? ?? 我們也在smallNOPB(LeCun等人[2004])上測(cè)試了與我們對(duì)MNIST使用的完全相同的架構(gòu)工秩,并實(shí)現(xiàn)了2.7%的測(cè)試錯(cuò)誤率,這與最優(yōu)(Ciresan等人[2011])的結(jié)果是相當(dāng)?shù)慕场mallNORB數(shù)據(jù)集由96x96立體聲灰度圖像組成助币。我們調(diào)整圖片至48x48,在訓(xùn)練過(guò)程中隨機(jī)裁剪成32x32螟碎。測(cè)試期間眉菱,我們通過(guò)了中心32x32的補(bǔ)丁。
? ? ?? 我們也在SVHN(Netzer等人[2011])的僅有73257張圖像的小訓(xùn)練集上訓(xùn)練了一個(gè)更小的網(wǎng)絡(luò)抚芦。我們減少第一層卷積層的通道數(shù)至64倍谜,減少初始膠囊層至16迈螟,結(jié)束層有著8維最終膠囊層的6維-膠囊叉抡,在測(cè)試集實(shí)現(xiàn)了4.3%的錯(cuò)誤率。
8 討論和先前的工作
? ? ?? 三十年來(lái)答毫,在語(yǔ)音識(shí)別中最先進(jìn)的方法是使用將高斯混合作為輸出分布的隱馬爾可夫模型褥民。這些模型很容易在小型計(jì)算機(jī)上學(xué)習(xí),但它們具有表示的限制洗搂,這最終是致命的:他們使用其中的一種表示與使用分布式表示法的遞歸神經(jīng)網(wǎng)絡(luò)相比消返,是指數(shù)效率低下的载弄。要使一個(gè)HMM能夠記住它所生成的字符串的信息量增加一倍,我們需要將隱層節(jié)點(diǎn)的數(shù)量平方撵颊。對(duì)于遞歸網(wǎng)絡(luò)宇攻,我們只需要將隱層神經(jīng)元的數(shù)量增加一倍。
? ? ? ? 既然卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)成為了目標(biāo)識(shí)別的主要方法倡勇,詢(xún)問(wèn)是存在指數(shù)效率低導(dǎo)致他們終止的問(wèn)題是有意義的逞刷。一個(gè)好的概括新觀點(diǎn)的卷積網(wǎng)絡(luò)的替代者是困難的。建立處理轉(zhuǎn)化的能力妻熊,但是對(duì)于仿射變換的其它維度夸浅,我們得在一個(gè)隨維數(shù)增長(zhǎng)而指數(shù)增長(zhǎng)的網(wǎng)格內(nèi)復(fù)制的特征檢測(cè)器間選擇,或者用一個(gè)相似的指數(shù)方法增加標(biāo)記訓(xùn)練集的大小扔役。膠囊(Hinton等人[2011])通過(guò)將像素強(qiáng)度轉(zhuǎn)換為識(shí)別片段的實(shí)例化參數(shù)帆喇,然后將變換矩陣用于片段來(lái)預(yù)測(cè)更大片段的實(shí)例化參數(shù),從而避免指數(shù)低效亿胸。學(xué)習(xí)編碼一個(gè)部分和一個(gè)整體間的內(nèi)在空間關(guān)系的變換矩陣構(gòu)成了自動(dòng)泛化到新觀點(diǎn)的觀點(diǎn)不變知識(shí)坯钦。Hinton等人[2011]提出將自動(dòng)編碼器轉(zhuǎn)換為產(chǎn)生PrimaryCapsule層的實(shí)例化參數(shù),他們的系統(tǒng)要求在外部提供變換矩陣侈玄。我們提出了一個(gè)完整的系統(tǒng)葫笼,它也可以回答“用激活的、較底層的膠囊預(yù)測(cè)姿勢(shì)的協(xié)議可以識(shí)別多么更大拗馒、更復(fù)雜的視覺(jué)實(shí)體”路星。
? ? ?? 膠囊有一個(gè)很強(qiáng)的表示假設(shè):在圖像的每一個(gè)位置,最多有一個(gè)膠囊表示的實(shí)體類(lèi)型的實(shí)例诱桂。這個(gè)假設(shè)是被一種稱(chēng)為“擁擠”的感知現(xiàn)象激勵(lì)得到的洋丐,它消除了綁定問(wèn)題(Hinton[1981a]),并允許膠囊使用分布式表示(它的激活向量)對(duì)一個(gè)給定位置的該類(lèi)型實(shí)體的實(shí)例化參數(shù)進(jìn)行編碼挥等。這種分布式表示比用激活一個(gè)高維網(wǎng)格上一點(diǎn)的編碼實(shí)例化參數(shù)的效率要高得多友绝,并且用正確的分布式表示,之后膠囊可以充分利用矩陣乘法建母尉ⅲ空間關(guān)系的事實(shí)迁客。
? ? ?? 膠囊使用隨著觀點(diǎn)變化而變化的神經(jīng)激活,而不是從激活中消除觀點(diǎn)變化辞槐。這使得他們比“歸一化”方法掷漱,如空間變壓器網(wǎng)絡(luò)(Jaderberg等人[2015])更有優(yōu)勢(shì):他們可以同時(shí)處理不同目標(biāo)和目標(biāo)部分的多個(gè)不同的仿射變換。
? ? ? 膠囊也非常善于處理分割榄檬,這是視覺(jué)領(lǐng)域的另一個(gè)最困難的問(wèn)題卜范,因?yàn)閷?shí)例化參數(shù)的向量允許他們使用路由協(xié)議,正如我們?cè)谖闹姓f(shuō)明的那樣鹿榜。動(dòng)態(tài)路由過(guò)程的重要性也得到了視覺(jué)皮層不變模式識(shí)別的生物學(xué)模型的支持海雪。Hinton[1981b]提出動(dòng)態(tài)連接和基于用于目標(biāo)識(shí)別所產(chǎn)生的形狀描述的參考框架的標(biāo)準(zhǔn)識(shí)別锦爵。Olshausen等人[1993]改進(jìn)了Hinton[1981b]動(dòng)態(tài)連接,并給出一個(gè)有生物學(xué)意義奥裸、位置和尺度不變的目標(biāo)表示的模型险掀。
? ? ?? 對(duì)膠囊的研究目前正處于一個(gè)和本世紀(jì)初用于語(yǔ)音識(shí)別的遞歸神經(jīng)網(wǎng)絡(luò)的研究相似的階段。有基礎(chǔ)的代表原因讓我們相信他是一個(gè)更好的方法湾宙,但是在它超越高度發(fā)達(dá)的技術(shù)之前迷郑,它可能需要更多的小思考。事實(shí)上创倔,一個(gè)簡(jiǎn)單的膠囊系統(tǒng)已經(jīng)在分割重疊數(shù)字上提供了無(wú)與倫比的性能嗡害,這是一個(gè)早期跡象,表明膠囊是一個(gè)值得探索的方向畦攘。
A? 使用了多少路由迭代霸妹?
? ? ?? 為了實(shí)驗(yàn)驗(yàn)證路由算法的收斂性,我們?cè)诿總€(gè)路由迭代中繪制出路由邏輯的平均變化知押。圖A.1顯示每次路由迭代后平均b_ij的變化叹螟。從實(shí)驗(yàn)上我們觀察到,從訓(xùn)練開(kāi)始到5次迭代時(shí)台盯,路由的變化可以忽略不計(jì)罢绽。路由第2次的平均變化在經(jīng)過(guò)500個(gè)階段的訓(xùn)練為0.007后穩(wěn)定,而在路由迭代5的過(guò)程中静盅,其模型平均變化僅為1e-5良价。
? ? ?? 圖A.1:每一次路由迭代的每次路由模型(b_ij)的平均變化。在對(duì)MNIST進(jìn)行了500個(gè)周期的訓(xùn)練后蒿叠,平均變化趨于穩(wěn)定明垢,如圖所示,隨著更多的路由迭代市咽,其對(duì)數(shù)尺度的變化幾乎是線(xiàn)性的痊银。
? ? ?? 我們觀察到,一般來(lái)說(shuō)施绎,更多的路由迭代增加了網(wǎng)絡(luò)容量溯革,并傾向于過(guò)度適應(yīng)訓(xùn)練數(shù)據(jù)集。圖A.2展示了在Cifar10上當(dāng)訓(xùn)練1次迭代的路由和3次迭代的路由膠囊訓(xùn)練損失的比較谷醉。由圖A.2和圖A.1的分析致稀,我們建議對(duì)所有實(shí)驗(yàn)進(jìn)行3次迭代。
? ? ?? 圖A.2:在cifar10數(shù)據(jù)集上訓(xùn)練膠囊網(wǎng)絡(luò)的損失孤紧。每個(gè)訓(xùn)練步驟的批量大小為128豺裆。具有3次迭代路由的膠囊網(wǎng)絡(luò)可以更快地優(yōu)化損失并最終收斂到更低的數(shù)值拒秘。