【膠囊網絡-CapsNet】Dynamic Routing Between Capsules

hinton capsule的論文發表在nips2017。
修改來源於:雷鋒網 AI 科技 https://www.leiphone.com/news/201710/seYRjGDt30yXcNSr.html

Abstract

本論文所研究的膠囊意爲一組神經元,其激活向量反映了某類特定實體(可能是整體也可能是部分)的表徵。本論文使用激活向量的模長來描述實體存在的概率用激活向量的方向表徵對應實例的參數。某一層級的活躍膠囊通過矩陣變換做出預測,預測結果會用來給更高層級的膠囊提供實例參數。當多個預測值達成一致時,一個高層級的膠囊就會被激活。論文中展示了差異化訓練的多層膠囊系統可以在MNIST上達到當前最高水平的表現,在識別高度重疊的數字上也要比卷積網絡要好得多。網絡的實現中運用迭代的一致性路由機制:當低層級的膠囊的預測向量和高層級膠囊的激活向量有較大的標量積時,這個低層級膠囊就會傾向於向高層級膠囊輸出。(動態路由精髓)

一、Introduction

人類視覺通過使用仔細確定的固定點序列來忽略不相關的細節,以確保只有極小部分的光學陣列以最高的分辨率被處理。要理解我們對場景的多少知識來自固定序列,以及我們從單個固定點中能收集到多少知識,內省不是一個好的指導,但是在本文中,我們假設單個固定點給我們提供的不僅僅是一個單一的識別對象及其屬性。我們假設多層視覺系統在每個固定點上都會創建一個類似解析樹這樣的東西,並且單一固定解析樹在多個固定點中如何協調的問題會被我們忽略掉。

解析樹通常通過動態分配內存來快速構建,但根據Hinton等人的論文「Learning to parse images,2000」,我們假設,對於單個固定點,從固定的多層神經網絡中構建出一個解析樹,就像從一塊岩石雕刻出一個雕塑一樣( 意爲只保留了部分樹枝)。每個層被分成許多神經元組,這些組被稱爲“膠囊”(Hinton等人「Transforming auto-encoders,2011」),解析樹中的每個節點就對應着一個活動的膠囊。通過一個迭代路由過程,每個活動膠囊將在更高的層中選擇一個膠囊作爲其在樹中的父結點。對於更高層次的視覺系統,這樣的迭代過程就很有潛力解決一個物體的部分如何層層組合成整體的問題。

一個活動的膠囊內的神經元活動表示了圖像中出現的特定實體的各種屬性。這些屬性可以包括許多不同類型的實例化參數,例如姿態(位置,大小,方向),變形,速度,反照率,色相,紋理等。一個非常特殊的屬性是圖像中某個類別的實例的存在。表示存在的一個簡明的方法是使用一個單獨的邏輯迴歸單元,它的輸出數值大小就是實體存在的概率。在本文中,作者們探索了一個有趣的替代方法,用實例的參數向量的模長來表示實體存在的概率,同時要求網絡用向量的方向表示實體的屬性。爲了確保膠囊的向量輸出的模長不超過1,通過應用一個非線性的方式使矢量的方向保持不變,同時縮小其模長。

膠囊的輸出是一個向量,這一設定使得用強大的動態路由機制來確保膠囊的輸出被髮送到上述層中的適當的父節點成爲可能。最初,輸出經過耦合總和爲1的係數縮小後,路由到所有可能的父節點。對於每個可能的父結點,膠囊通過將其自身的輸出乘以權重矩陣來計算“預測向量”。如果這一預測向量和一個可能的父節點的輸出的標量積很大,則存在自上而下的反饋,其具有加大該父節點的耦合係數並減小其他父結點耦合係數的效果。這就加大了膠囊對那一個父節點的貢獻,並進一步增加了膠囊預測向量和該父節點輸出的標量積。這種類型的“按協議路由”應該比通過最大池化實現的非常原始的路由形式更有效,其中除了保留本地池中最活躍的特徵檢測器外,忽略了下一層中所有的特徵檢測器。作者們論證了,對於實現分割高度重疊對象所需的“解釋”,動態路由機制是一個有效的方式。

卷積神經網絡(CNN)使用學習得到的特徵檢測器的轉移副本,這使得他們能夠將圖片中一個位置獲得的有關好的權重值的知識,遷移到其他位置。這對圖像解釋的極大幫助已經得到證明。儘管作者們此次用矢量輸出膠囊和按協議路由的最大池化替代CNN的標量輸出特徵檢測器,他們仍然希望能夠在整個空間中複製已習得的知識,所以文中構建的模型除了最後一層膠囊之外,其餘的膠囊層都是卷積。與CNN一樣,更高級別的膠囊得以覆蓋較大的圖像區域,但與最大池化不同,膠囊中不會丟棄該區域內實體精確位置的信息。對於低層級的膠囊,位置信息通過活躍的膠囊來進行“地點編碼”。當來到越高的層級,越多的位置信息在膠囊輸出向量的實值分量中被“速率編碼”。這種從位置編碼到速率編碼的轉變,加上高級別膠囊能夠用更多自由度、表徵更復雜實體的特性,表明更高層級的膠囊也相應地需要更高的維度。

二、如何計算一個膠囊的向量輸入和輸出

作者們用膠囊輸出向量的模長來表示一個膠囊所表徵的實體在輸入中出現的概率。因此作者們採用一個非線性函數對向量進行“壓縮”,短向量被壓縮到幾乎爲零,長向量也被壓縮到1以下長度。判別學習中充分利用這個非線性函數。
(1)Vj=sj21+s2sjsj V_j = \frac{||s_j||^2}{1+_||s||^2} \frac{s_j}{||s_j||} \tag{1}

其中vj是膠囊j的輸出向量,sj是它的全部輸入。

除了第一層膠囊,膠囊sj的全部輸入是對預測向量uj|i的加權求和。這些預測向量都是由低一層的膠囊產生,通過膠囊的輸出ui 和一個權重矩陣Wij相乘得來。
sj=iciju^jiu^ji=Wijui s_j = \sum_i c_{ij} \hat{u}_{j|i} \\ \hat{u}_{j|i} = W_{ij} u_i
其中cijc_{ij}是由迭代的動態路徑過程決定的耦合係數,即權重。

膠囊i和其上一層中所有膠囊的耦合係數的和爲1,並由“routing softmax”決定。這個“routing softmax”的初始邏輯值bij 是膠囊i耦合於膠囊j的對數先驗概率。
cij=exp(bij)kexp(bik) c_{ij} = \frac{exp(b_{ij})}{\sum_k exp(b_{ik})}
這個對數先驗可以和其他權重一起被判別學習。他們由兩個膠囊的位置和類型決定,而不是當前的輸入圖像決定。耦合係數會從初始值開始迭代,通過測量每個高一層膠囊j的當前輸出vi和低一層膠囊i的預測值ui|j之間的一致性。

所述一致性是簡單的點積aij=vju^jia_{ij} = v_j ·\hat u_{j|i}。這個一致性可被看做最大似然值,並在計算出所有將膠囊i連接到更高層膠囊得到的新耦合值前,加到初始邏輯值bij=bij+vju^jib_{ij} = b_{ij} + v_j ·\hat u_{j|i}上。

對比神經網絡:

img

網絡結構:(左:膠囊;右:人工神經元 )

img

在卷積膠囊層中,膠囊內每一個單元都是一個卷積單元。因此每一個膠囊都會輸出一個向量網格而不是一個簡單的向量。

路由計算的僞碼如下圖Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯

三、損失函數

作者們用實例化向量的模長來表示膠囊要表徵的實體是否存在。所以當且僅當圖片裏出現屬於類別k的數字時,作者們希望類別k的最高層膠囊的實例化向量模長很大。爲了允許一張圖裏有多個數字,作者們對每一個表徵數字k的膠囊分別給出單獨的邊緣損失函數(margin loss):
Lc=Tcmax(0,m+v)2+λ(1Tc)max(0,vcm)2 L_c = T_c max(0, m^+ - ||v||)^2 + \lambda (1-T_c) max(0, ||v_c|| - m ^-)^2
其中Tc=1當且僅當圖片中有屬於類別C的數字,m+=0.9,m-=0.1。是爲了減小某類的數字沒有出現時的損失,防止剛開始學習就把所有數字膠囊的激活向量模長都壓縮了。作者們推薦選用 λ = 0.5。總損失就是簡單地把每個數字膠囊的損失加起來的總和。

四、CapsNet 結構

Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯

圖1:一個簡單的3層CapsNet。這個模型的結果能和深層卷積網絡(比如. Batch-normalized maxout network in network,2015)的結果媲美。DigitCaps層每個膠囊的激活向量模長給出了每個類的實例是否存在,並且用來計算分類損失。 是PrimaryCapsules中連接每個 ui, i ∈ (1, 32 × 6 × 6) 和每個vj , j ∈ (1, 10)的權重矩陣。

Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯

圖2:從DigitCaps層來重構數字的解碼結構。訓練過程中極小化圖像和Sigmoid層的輸出之間的歐氏距離。訓練中作者們用真實的標籤作爲重構的目標。

圖1展示的是一個簡單的CapsNet結構。 這是一個很淺的網絡,只有2個卷積層和1個全連接層。Conv1有256個9*9的卷積核,步長取1,激活函數爲ReLU。這層把像素亮度轉化成局部特徵檢測器的激活,接下去這個值會被用來作爲原始膠囊(primary capsules)的輸入。

原始膠囊是多維實體的最底層。這個過程和圖形生成的視角相反,激活了一個原始膠囊就和剛好是圖形渲染的逆過程。與先分別計算實例的不同部分再拼在一起形成熟悉的總體理解(圖像中的每個區域都會首先激活整個網絡而後再進行組合)不同,這是一種非常不同的計算方式。而膠囊的設計就很適合這樣的計算。

第二層PrimaryCapsules是一個卷積膠囊層,有32個通道,每個通道有一個8維卷積膠囊(也就是說原始膠囊有8個卷積單元,99的卷積核,步長爲2)。這一層中的膠囊能看到感受野和這個膠囊的中心重合的所有25681 Conv1單元的輸出。PrimaryCapsules一共有[32,6,6]個輸出(每個輸出是一個8維向量),[6,6]網格中的每個膠囊彼此共享權重。由於具有區塊非線性,可以把PrimaryCapsules視作一個符合式1的卷積層。最後一層(DigitCaps)有對每個數字類有一個16維的膠囊,所有低一層的膠囊都可以是這一層膠囊的輸入。

作者們只在兩個連續的膠囊層(比如PrimaryCapsules和DigitCaps)之間做路由。因爲Conv1的輸出是1維的,它所在的空間中不存在方向可以和高層的向量方向達成一致性。所以在Conv1和PrimaryCapsules之間沒有路由。所有的路由邏輯值(bij)被初始化爲0。因此,一開始一個膠囊的輸出(ui)會以相同的概率(cij)傳入到所有的母膠囊(v0,v1,…,v10)。作者們用TensorFlow實現了這個網絡,選擇了Adam優化器和TensorFlow的默認參數,包括指數衰減的學習率用來優化式4的邊緣損失的總和。

4.1 爲了正則化效果而做的重構工作

作者們使用了一個額外的重構損失,希望數字膠囊能對輸入數字的實例化參數做編碼。在訓練過程中,作者們用掩蔽的方法只把正確的數字膠囊的激活向量保留下來。然後用這個激活向量來做重構。數字膠囊的輸出會傳入一個由3個全連接層組成的解碼器,它的結構如圖2,用來建模像素密度。

作者們極小化迴歸單元的輸出和原來圖片的像素亮度之間的平方誤差,並把重構誤差收縮到原來的0.0005倍,這樣纔不會在訓練過程中蓋過邊緣誤差的作用。如圖3所示,CapsNet的16維輸出的重構是魯棒的,同時也只保留了重要的細節。

五、把 Capsule 用在MNIST上

使用 28×28 MNIST的圖片集進行訓練,訓練前這些圖片在每個方向不留白地平移了2個像素。除此之外,沒有進行其他的數據增改或者轉換。在MNIST數據庫中,6萬張圖片用於訓練,另外1萬張用於測試。

Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯

圖3: 利用3次路由迭代學習的CapsNet對MNIST中的測試照片進行重構。(l, p, r)分別代表真實標籤、模型預測和重建結果。最右兩列展示的是重建失敗的例子,解釋了模型是如何混淆了圖片中的“5”和“3”。其他列屬於被正確分類了的,展示了模型可以識別圖像中的細節,同時降低噪聲。

Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯

表1:CapsNet 分類MNIST數字測試準確度。結果包含了三次測試得到的平均數和標準差。

測試中作者使用的是單一模型,沒有進行“綜合”或者明顯的數據擴增方法。(Wan等人在「Regularization of neural networks using dropconnect」中通過“綜合”及數據擴增實現了0.21%的錯誤率,而未使用這兩種方法時的錯誤率是0.57%)作者們通過3層神經網絡實現了較低的錯誤率(0.25%),這一錯誤率以往只有更深的網絡才能達到。表1展現的是不同設置的CasNet在NMIST數據庫上的測試錯誤率,表明了路由以及正則器重構的重要性。其基線是一個標準的三層神經網絡(CNN),分別具有256、256及128個通道。每個通道具有5×5的卷積核,卷積步長爲1。接着有兩個全連接層,大小分別爲328、192。最後的全連接層通過dropout連接到帶有交叉熵損失的10個分類輸出的softmax層。

5.1 capsule的單個維度表示什麼

由於模型中只向DigitCaps層的膠囊傳遞一個數字的編碼並置零其他數字,所以這些膠囊應該學會了在這個類別已經具有一個實例的基礎上拓展了變化空間。這些變化包括筆畫粗細、傾斜和寬度。還包括不同數字中特定的變化,如數字2尾部的長度。通過使用解碼器網絡可以看到單個維度表示什麼。在計算正確的數字膠囊的激活向量之後,可以將這個激活向量的擾動反饋給解碼器網絡,並觀察擾動如何影響重建。這些擾動的例子如圖4所示。可以看到,膠囊的一個維度(總數爲16)幾乎總是代表數字的寬度。有些維度表示了全局變化的組合,而有些維度表示數字的局部變化。例如,字母6上部分的長度和下部分圈的大小使用了不同的維度。

Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯

圖4:維度擾動。每一行表示DigitCaps16個維度表示中的一個維度在[-0.25, 0.25]範圍,步長0.05時的重構結果

5.2 仿射變換的魯棒性

實驗表明,每個DigitCaps層的膠囊都比傳統卷積網絡學到了每個類的更魯棒的表示。由於手寫數字的傾斜、旋轉、風格等方面存在自然差異,訓練好的CapsNet對訓練數據小範圍的仿射變換具有一定的魯棒性。

爲了測試CapsNet對仿真變換的魯棒性,作者們首先基於MNIST訓練集創造了一個新的訓練集,其中每個樣本都是隨機放在40× 40像素的黑色背景上的MNIST數字。然後用這樣的訓練集訓練了一個CapsNet和一個傳統的卷積網絡(包含MaxPooling和DropOut)。

然後,作者們在affNIST數據集上測試了這個網絡,其中,**每個樣本都是一個具有隨機小範圍仿射變換的MNIST數字。**模型並沒有在任何放射變換,甚至標準MNIST自然變換的訓練集合上訓練過,但一個訓練好的帶有早期停止機制(early stop)的CapsNet,在拓展的MNIST測試集上實現了99.23%的準確度,在仿射測試集上實現了79%的準確性。具有類似參數數量的傳統卷積模型在擴展的MNIST測試集上實現了類似的準確度(99.22%),在仿射測試集上卻只達到了66%。

六、高度重疊數字的分割

動態路由可以視爲平行的注意力機制,允許同層級的膠囊參與處理低層級的活動膠囊,並忽略其他膠囊。理論上允許模型識別圖像中的多個對象,即使對象重疊。Hinton等人的目的是分割並識別高度重合數字對象(「 Learning to parse images,2000」中提出,其它人也在類似的領域實驗過他們的網絡,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」中)。一致性路由使利用對象的形狀的先驗知識幫助進行分割成爲了可能,並避免在像素領域進行更高級別的細分。

6.1 MultiMNIST數據集

作者們通過在數字上覆蓋另一個來自相同集合(訓練或測試)但不同類別的數字來生成MultiMNIST訓練測試數據集。每個數字在每個方向上最多移動4個像素,產生3636像素的圖像。考慮到2828像素圖像中的數字是以20*20像素的範圍作爲邊框,兩個數字的邊框內範圍平均有80%的重合部分。MNIST數據集中的每個數字都會生成1K MultiMNIST示例。訓練集的大小爲60M,測試集的大小爲10M。

6.2 MultiMNIST數據集上的結果

作者用MultiMNIST的訓練數據中重新訓練得到的3層CapsNet模型,比基線卷積模型獲得了更高的分類測試準確率。相較於Ba等人在「Multiple object recognition with visual attention,2014」的序列注意力模型,他們執行的是更簡單的、數字交疊遠遠更小的任務(本文的測試數據中,兩個數字的外框交疊率達到80%,而Ba等人的只有4%),而本文的模型在高度交疊的數字對中獲得了與他們同樣的5%的錯誤率。測試圖片由測試集中的成對的圖片構成。作者們把**兩個最活躍的數字膠囊看作膠囊網絡產生的分類結果。在重建過程中,作者們每次選擇一個數字,用它對應的數字膠囊的激活向量來重建這個數字的圖像(已經知道這個圖像是什麼,因爲作者們預先用它來生成合成的圖像)。**與上文MNIST測試中模型的唯一不同在於,現在把將學習率的衰減步數提高到了原來的10倍,這是因爲訓練數據集更大。

Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯

圖5:一個經3次路由迭代的CapsNet在MultiMNIST測試數據集上的樣本重建結果

如圖中靠下的圖像所示,兩個重建出的互相交疊的數字分別顯示爲綠色和紅色的。靠上的圖顯示的是輸入的圖像。表示圖像中兩個數字的標籤;表示用於重建的兩個數字。最右邊的兩列顯示了從標籤和從預測重建的兩個錯誤分類樣例。在例子中,模型將8錯判成7;在的例子中,模型將9錯判成0。其他的列都分類正確並且顯示了模型不僅僅考慮了所有的像素同時能夠在非常困難的場景下將一個像素分配給兩個數字(1-4列)。值得說明的是,在數據集產生的過程中,像素的值都會被剪裁到1以內。兩個含“*”的列顯示了重建的數字既不是標籤值也不是預測值。這些列顯示模型不僅僅找到了所有存在的數字的最佳匹配,甚至還考慮了圖像中不存在的數字。所以在的例子中,模型並不能重建數字7,是因爲模型知道數字對5和0是最佳匹配,而且也已經用到了所有的像素。的例子也是類似的,數字8的環並沒有觸發爲0的判斷,因爲該數字已經被當做8了。因此,如果兩個數字都沒有其他額外的支持的話,模型並不會將一個像素分配給這兩個數字。

圖5中的重構表明,CapsNet 能夠把圖片分割成兩個原來的數字。因爲這一分割並非是直接的像素分割,所以可以觀察到,模型可以準確處理重疊的部分(即一個像素同時出現在多個數字上),同時也利用到所有像素。每個數字的位置和風格在DigitCaps中都得到了編碼。給定一個被編碼數字,解碼器也學會了去重構這一數字。解碼器能夠無視重疊進行重構的特性表明,每個數字膠囊都能從PrimaryCapsules層接收到的不同激活向量來獲取位置和風格。

表1 也着重表現了這一任務中膠囊之間路由的重要性。作爲CapsNet分類器準確率的對比基線,作者們一開始先訓練了帶有兩層卷積層和兩層全連接層的卷積神經網絡。 第一層有512個大小爲99的卷積核,步長爲1;第二層有256個大小爲55的卷積核,步長爲1。在每個卷積層後,模型都連接了一個2*2大小,步長2的池化層。 第三層是一個1024維的全連接層。

所有的這三層都有ReLU非線性處理。 最後10個單元的層也是全連接。 我們用TF默認的Adam優化器來訓練最後輸出層的Sigmoid交叉熵損失。 這一模型有24.56M參數,是CapsNet的11.36M參數的兩倍多。作者們從一個小點的CNN(32和64個大小爲5*5的卷積核,步幅爲1,以及一個512維的全連接層)開始,然後逐漸增大網絡的寬度,直到他們在MultiMNIST的10K子集上達到最好的測試精度。他們也在10K的驗證集上搜索了正確的學習率衰減步數。

作者們一次解碼了兩個最活躍的DigitCaps膠囊,得到了兩張圖片。然後把所有非零的像素分配給不同的數字,就得到了每個數字的分割結果。

七、其它數據集

作者們在 CIFAR10 的數據及上測試了膠囊模型,在用了不同的超參和7個模型集成(其中每個模型都通過圖像中24x24的小塊進行三次路由迭代)後得到10.6%的錯誤率。這裏的圖片都是三個顏色通道的,作者們一共用了64種不同的 primary capsule,除此之外每個模型都和在 MNIST 數據集中用的一模一樣。作者們還發現膠囊能夠幫助路由softmax增加一個“以上皆非”的分類種類,因爲不能指望10個 capsules 的最後一層就能夠解釋圖片裏的一切信息。在測試集上有 10.6% 的錯誤率差不多也是標準的卷積網絡初次應用到 CIFAR10 上能達到的效果。

和生成模型一個一樣的缺點是,Capsules 傾向於解釋圖片中的一切。所以當能夠對雜亂的背景建模時,它比在動態路由中只用一個額外的類別來的效果好。在 CIFAR-10 中,背景對大小固定的模型來說變化太大,因此模型表現也不好。

作者們還用了和 MNIST 中一樣的模型測試了 smallNORB 數據集,可以得到目前最好的 的 2.7% 的錯誤率。smallNORB 數據集由 96×96的雙通道灰度圖組成。作者們把圖片縮放到 48×48 像素,並且在訓練時從中隨機裁剪 32×32 的大小。而在測試時,直接取中間 32×32 的部分。

作者們還在 SVHN 的 73257 張圖片的小訓練集上訓練了一個小型網絡。我們把第一個卷積層的通道數減少到 64個,primary capsule 層爲 16 個 6維膠囊,最後一個膠囊層爲8維的。最後測試集錯誤率爲 4.3%.

八、討論以及以往工作

30年來, 語音識別的最新進展使用了以高斯混合作爲輸出分佈的隱馬爾可夫模型。這些模型雖然易於在一些計算機上學習,但是存在一個致命的缺陷:他們使用的“n種中的某一種”的表示方法的效率是呈指數下降的,分佈式遞歸神經網絡的效率就比這種方法高得多。爲了使隱馬爾可夫模型能夠記住的迄今它所生成字符的信息倍增,需要使用的隱藏節點數目需要增加到原來的平方。而對於循環神經網絡來說,只需要兩倍的隱藏神經元的數量即可。

現在卷積神經網絡已經成爲物體識別的主流方法,理所當然要問是其中是否也會有效率的指數下降,從而引發這種方法的式微。一個可能性是卷積網絡在新類別上泛化能力的困難度。卷積網絡中處理平移變換的能力是內置的,但對於仿射變換的其他維度就必須進行選擇,要麼在網格中複製特徵檢測器,網格的大小隨着維度數目指數增長,要麼同樣以指數方式增加的標註訓練集的大小。膠囊通過將像素強度轉換爲識別到的片段中的實例化參數向量,然後將變換矩陣應用於片段,以預測更大的片段的實例化參數,從而避免了效率的指數下降。學到了部分和整體之間固有的空間關係的轉換矩陣構成了具有視角不變性的知識,從而可以自動泛化到的視角中。

膠囊使得我們可以做出一個非常具有表徵意義的假設:在圖像的每一個位置,至多隻有一個膠囊所表徵的實體的實例。這種假設是由一種稱爲“crowding”(Pelli等人「Crowding is unlike ordinary masking: Distinguishing feature integration from detection,2004」) 的感知現象驅動的,它消除了綁定問題,並允許一個膠囊使用分佈式表示(它的激活向量)來對給定位置的該類型實體的實例化參數進行編碼。這種分佈式表示比通過在高維網格上激活一個點來編碼實例化參數的效率要高得多,並且通過正確的分佈式表示,膠囊可以充分利用空間關係可以由矩陣乘法來建模的特點。

膠囊中採用的神經活動會隨着視角的變化而變化,而不是試圖消除神經活動中視角變化帶來的影響。這使它們比“歸一化”法(如Jaderberg等「Spatial transformer networks,2015」)更具有優勢:它們可以同時處理多個不同仿射變換或不同對象的不同部件。

膠囊同時也非常擅長處理圖像分割這樣的另一種視覺上最困難的問題之一,因爲實例化參數的矢量允許它們使用在本文中演示的那樣的一致性路由。對膠囊的研究目前正處於一個與本世紀初研究用於語音識別的遞歸神經網絡類似的階段。根據基礎表徵性的特點,已經有理由相信這是一種更好的方法,但它可能需要一些更多的在細節上的洞察力才能把它變成一種可以投入應用的高度發達的技術。一個簡單的膠囊系統已經在分割數字圖像上提供了無與倫比的表現,這表明了膠囊是一個值得探索的方向。

reference

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章