1. 程式人生 > >Matrix Capsule with EM Routing

Matrix Capsule with EM Routing

摘要

capsule 是一組神經元,其輸出可表徵同一個實體的不同性質。我們描述了一種 capsule 版本,其中每個 capsule 都有一個 logistic 單元(用來表示一個實體的存在)和一個 4×4 的姿態矩陣(pose matrix)(可以學習表徵該實體與觀看者之間的關係)。某一層的 capsule 會為上一層中許多不同 capsule 構成的姿態矩陣投票(vote),這是通過將它自己的姿態矩陣與視角不變的變換矩陣(viewpoint-invariant transformation matrix)相乘而實現的,可以學習表徵「部分-整體」關係。這些投票中的每一個都會根據分配的係數加權。這些係數使用 EM 演算法迭代式地更新,這樣每一個 capsule 的輸出都會被路由到上一層的一個 capsule,它會收到一組相似投票的叢集。這整個系統是通過每個相鄰層對之間的 EM 的展開的 3 次迭代而鑑別式地訓練的。在 smallNORB 基準上,相比於當前最佳的方法,capsule 將測試錯誤的數量降低了 45%。比起我們的基準卷積神經網路,capsule 也表現得更能抵抗白盒對抗攻擊(white box adversarial attack)。

1 介紹

卷積神經網路基於一個簡單的事實,即視覺系統需要在影象中的所有位置使用相同的知識。這是通過繫結特徵檢測器的權重來實現的,以便在一個位置學習的特徵在其他位置可用。 卷積膠囊擴充套件了跨地點的知識共享,包括關於以一個熟悉的形狀為特徵的部分-整體關係的知識。視點變化對畫素強度具有複雜的影響,但對pose矩陣的簡單線性效應表示一個物件或者物件的部分與觀察者之間的關係。膠囊的目的是充分利用這種潛在的線性,既可以處理視點變化,也可以改善分割決策。

膠囊使用高維重合過濾:可以通過尋找其pose矩陣的投票之間的一致性來檢測熟悉的物件。 這些投票來自已經檢測到的部分。一部分通過將其自己的pose矩陣乘以學習的變換矩陣來產生投票,該變換矩陣表示部分和整體之間的視點不變關係。 隨著觀點的變化,部分和整體的pose矩陣將以協調的方式改變,以便來自不同部分的投票之間的任何協議將持續存在。

尋找在無關投票的迷霧中達成一致的高維度投票的緊密叢集是解決將部分分配給整體的問題的一種方法。這是非平凡的,因為我們不能以低維平移空間被網格化以促進卷積的方式對高維姿勢空間進行網格化。為了解決這一挑戰,我們使用稱為“路由協議”的快速迭代過程,根據來自該部分的投票與來自分配給該整體的其他部分的投票的接近程度,更新部分分配給整體的概率。這是一個強大的分割原則,它允許熟悉的形狀知識匯出分割,而不是僅使用低級別的線索,如顏色或速度的接近度或一致。膠囊和標準神經網路之間的重要區別在於膠囊的啟用基於多個輸入pose預測之間的比較,而在標準神經網路中,它基於單個輸入活動向量和學習重量向量之間的比較。

2 膠囊的工作原理

神經網路通常使用簡單的非線性,其中非線性函式應用於線性濾波器的標量輸出。 它們還可以使用softmax非線性,將整個logits向量轉換為概率向量。 膠囊使用更復雜的非線性,其將一層膠囊的整組啟用概率和pose轉換成下一層中的膠囊的啟用概率和pose。

膠囊網路由多層膠囊組成。 層L中的膠囊組表示為ΩL.每個膠囊具有4×4 pose矩陣M和啟用概率a。這些就像標準神經網路中的活動:它們依賴於當前輸入而不是儲存。在層L中的每個膠囊i和層L+1中的每個膠囊j之間是4×4可訓練變換矩陣Wij。這些WijS(以及每個膠囊的兩個學習偏差)是唯一儲存的引數,並且它們是有區別地學習的。 膠囊i的pose矩陣由Wij變換以對膠囊j的pose矩陣投票Vij = MiWij。 層L+1中所有膠囊的pose和啟用是通過使用非線性路由過程計算的,該過程得到所有iΩL,j∈ΩL+1的輸入Vij和ai

非線性過程是期望最大化過程的一個版本。它迭代地調整層L+1中膠囊的平均值,方差和啟用概率以及所有i∈ΩL,j∈ΩL+1(L層膠囊和L+1層膠囊)之間的分配概率。 在附錄1中,我們給出了routing-by-agreement的溫和直觀的介紹,並詳細描述了它如何與EM演算法相結合以擬合高斯混合。

3使用EM進行路由協議

讓我們假設我們已經決定了一層中所有膠囊的pose和啟用概率,我們現在想要決定在上面的層中啟用哪些膠囊,以及如何將每個活動的下層膠囊分配給一個活躍的高層膠囊。 較高層中的每個膠囊對應於高斯,並且較低層中的每個活動膠囊的pose(轉換為向量)對應於資料點(或者如果膠囊部分活動則對應於資料點的一部分)。

我們在決定是否啟用更高級別的膠囊時可以選擇使用最小描述長度原則。選擇0:如果我們不啟用它,我們必須為每個資料點支付固定的-βu成本,用於描述分配給更高級別的膠囊的所有較低級別膠囊的pose。該成本是在不合適的統一先驗下資料點的負對數概率密度。對於小數分配,我們支付固定成本的一小部分。選擇1:如果我們確實啟用更高級別的膠囊,我們必須支付固定的-βa成本來編碼其均值和方差以及它是活躍的,然後支付額外費用,通過分配概率按比例分攤,用於描述較低階膠囊的平均值與為其預測的值之間的差異,利用較高級別膠囊的平均值通過變換矩陣的逆進行預測。計算描述資料點的成本的一種更簡單的方法是在高斯分佈下使用該資料點投票的負對數概率密度,該高斯分佈由它分配給它的任何更高級別的資料包擬合。由於附錄1中解釋的原因是不正確的,但我們使用它是因為它的計算量更少(在附錄中也有解釋)。然後,選擇0和選擇1之間的成本差異是在每次迭代時,都通過邏輯函式來確定更高級別的膠囊的啟用概率。附錄1解釋了為什麼使用邏輯函式是正確的。

使用上面選擇1的有效近似,通過使用具有軸對齊協方差矩陣的活躍膠囊j來解釋整個資料點i的增量成本,僅僅是解釋每個維度的成本的所有維度的總和,投票Vij的h。 這只是-ln(Phi|j),其中Phi|j是向量化投票Vij的第h個分量的概率密度,在j的高斯模型下,維度h具有方差(σhj2和平均值μhj其中μj是j的pose的向量化版本矩陣Mj

對於j的單個維度h的所有較低級別的膠囊求和,我們得到:

其中Σirij是分配給j的資料量,Vhij是Vij的維度h上的值。啟用膠囊j增加了指定為j的低水平膠囊的裝置的描述長度,從每個較低級別膠囊的-βu到-βa加上所有維度的成本之和,因此我們將膠囊j的啟用函式定義為:

其中βa對於所有膠囊都是一樣的,λ是一個逆溫度引數。我們區分地學習βa和βu,併為λ設定一個固定的時間表(schedule)作為超引數。

為了最終確定層L + 1中的膠囊的pose引數和啟用值,我們在確定L層的pose引數和啟用值之後執行EM演算法幾次迭代(通常為3次)。由整個膠囊層實現的非線性是使用EM演算法進行聚類查詢的一種形式,因此我們將其稱為EM Routing。

步驟1路由演算法是根據給定的L層中膠囊的啟用值和投票返回層L + 1中膠囊的啟用值和pose引數。 Vhij是L層中啟用值為ai的膠囊i對L+1層中的膠囊j的投票的第h個維度。βa、βu是有區別地學習的,在每次迭代時,在一個固定的schedule下,反向溫度λ增加。

4 膠囊建築

我們模型的一般結構如圖1所示。該模型以5x5卷積層開始,具有32個通道(A = 32),步幅為2,具有ReLU非線性。 所有其他層是從初級膠囊層開始的膠囊層。 B = 32個主要膠囊型別中的每一個的4×4 pose是以該位置為中心的所有下層ReLU的輸出的學習線性變換。主膠囊的啟用是通過將sigmoid函式應用於同一組較低層ReLUs的加權和而產生的。

圖1:具有一個ReLU卷積層的網路,其後是主卷積囊層和另外兩個卷積囊層。

image-->Relu_conv1:對原圖片進行普通卷積操作,原圖片input=[32,32,1],卷積核大小5×5,卷積核個數32,stride=2,output=[14,14,32]。

PrimaryCaps:和上一篇論文中一樣,是分組的卷積層,從而實現capsule matrix的表達形式。也即在ReLU Conv1得到的featuremap中的每個1*1的位置(深度為A=32),用B=32種capsule去檢測一些entity。其中每種capsule其實就是一個kernel為1*1的卷積層,channels = 4*4+1=17(4*4用於計算pose matrix,1是activation)。所以,經過了PrimaryCaps的輸出其實就是一個正常的feature map,只不過在深度上每17個數字組成了一組capsule而已。這一層的引數為A*B*(4*4+1)。

主要膠囊之後是兩個3x3卷積膠囊層(K = 3),每個膠囊層有32個膠囊型別(C = D = 32),步幅分別為2和1。 最後一層卷積膠囊連線到最終的膠囊層,每個輸出級別有一個膠囊。

當將最後一個卷積膠囊層連線到最後一層時,我們不想丟棄有關卷積膠囊位置的資訊,但我們也想利用所有相同型別的膠囊在不同位置時提取相同實體的事實。因此,我們共享相同膠囊型別的不同位置之間的變換矩陣,並將每個膠囊的感受野中心的縮放座標(行,列)新增到其投票矩陣的右手列的前兩個元素。 我們將此技術稱為座標新增。這應該鼓勵共享的最終變換為這兩個元素生成值,這兩個元素表示實體相對於膠囊感受野中心的精確位置。

在每對相鄰的膠囊層之間使用路由過程。 對於卷積膠囊,層L + 1中的每個膠囊僅向層L中的接收場內的膠囊傳送反饋。因此,層L + 1中的膠囊的每個卷積例項接收來自層L中的每個膠囊型別的最多kernel size X kernel size反饋。靠近影象邊界的例項接收較少的反饋,而角落的反饋僅在層L + 1中每個膠囊型別接收一個反饋。

4.1傳播損失

為了使訓練對模型的初始化和超引數不那麼敏感,我們使用“傳播損失”來直接最大化目標類(at)的啟用和其他類的啟用之間的差距。如果錯誤的等級ai的啟用比邊距m更接近at那麼它將被邊距的平方距離處罰:

通過從0.2的小範圍開始並在訓練期間將其線性增加到0.9,我們避免在早期層中使用死膠囊。 傳播損失相當於平方Hinge損失,m = 1.Guermeur&Monfrini(2011)研究了多類SVM背景下這種損失的變種。

5 實驗

smallNORB資料集(LeCun等人(2004))具有5類玩具的灰度立體影象:飛機,汽車,卡車,人類和動物。 每個類有10個物理例項,塗成亞光綠色。 為訓練資料選擇5個物理例項,為測試資料選擇其他5個物理例項。 每個玩具都在18個不同的方位角(0-340),9個高度和6個光照條件下進行描繪,因此訓練和測試集各包含24,300對立體對96x96影象。 我們選擇smallNORB作為開發膠囊系統的基準,因為它經過精心設計,是一種純粹的形狀識別任務,不會受到背景和顏色的影響,但它比MNIST更接近自然影象。

表1:我們的膠囊結構的不同組分對smallNORB的影響。

我們將smallNORB下采樣到48X48畫素,並將每個影象標準化為零均值和單位方差。在訓練過程中,我們隨機裁剪32X32補丁併為裁剪後的影象新增隨機亮度和對比度。在測試期間,我們從影象中心裁剪32X32補丁,並在smallNORB上實現1.8%的測試錯誤。如果我們在測試時平均多次作物的類別啟用,我們達到1.4%。不使用元資料的smallNORB報告的最佳結果是2.56%(Cires¸an等人(2011))。為實現這一目標,他們增加了兩個額外的立體聲輸入影象對,這些輸入影象是通過使用中心偏離環繞濾波器和偏心環繞濾波器建立的。他們還對影象應用了仿射失真。我們的工作也勝過Sabour等人(2017)膠囊工作在smallNORB上達到2.7%。我們還在NORB上測試了我們的模型,這是一個增加了背景抖動的smallNORB版本,我們實現了2.6%的錯誤率,與2.7%的現有技術相當(Ciresan等人(2012))。

作為我們對新視點概括的實驗的基線,我們訓練CNN,其具有分別具有32和64個通道的兩個卷積層。 兩層的核心大小均為5,步長為1,記憶體為2X2最大池。 第三層是1024單元全連線層,具有壓降並連線到5路softmax輸出層。 所有隱藏單元都使用ReLU非線性。 如上所述,我們對膠囊網路使用與CNN基線相同的影象準備。 我們的基線CNN是對過濾器大小,通道數量和學習率進行廣泛的超引數搜尋的結果。

CNN基線在smallNORB上達到5.2%的測試錯誤率,並具有4.2M引數。 我們推斷出Cires¸an等人(2011)的網路有2.7M引數。 通過使用小矩陣乘法,與我們的基線CNN相比,我們將引數數量減少了15到310K(並且因為9w.r.tCires¸an等人(2011))。 較小的膠囊網路A = 64; B = 8; C = D = 16,只有68K可訓練引數,可達到2.2%的測試誤差率,這也超過了現有技術水平。

圖2顯示了EM路由如何調整投票分配,膠囊意味著如何在投票中找到緊密叢集。 直方圖顯示在路由迭代期間投票距離與每個類別包的平均值(pose)的分佈。 在第一次迭代中,投票在5個最終層膠囊之間平均分配。 因此,所有膠囊接收的投票均接近其計算平均值0.05。 在第二次迭代中,同意投票的分配概率增加。 因此,大多數投票被分配給檢測到的叢集,中間行中的動物和人類和其他膠囊只能獲得分散的票數,這些票數與計算出的平均值相差超過0.05。 附錄中圖2的縮小版本顯示了每次路由迭代時投票距離的完整分佈。

圖2:在每次路由迭代之後,投票距離與5個最終膠囊中每一個的平均值的直方圖。 每個距離點由其分配概率加權。 所有三個影象都是從smallNORB測試集中選擇的。 路由過程正確地在卡車和人類示例中路由投票。飛機示例顯示了模型的罕見故障情況,其中飛機在第三次路線迭代中與汽車混淆。直方圖被放大以僅視覺化距離小於0.05的投票。 圖B.2顯示了“人”膠囊的完整直方圖,沒有剪下x軸或固定y軸的比例。

我們可以將膠囊啟用視為高斯混合中的混合比例,並將它們設定為與膠囊的分配概率之和成比例,並在一層中的所有膠囊上加1,而不是使用我們的MDL衍生膠囊啟用項來計算每個膠囊的單獨啟用概率。 這會將smallNORB上的測試錯誤率提高到4.5%。 表1總結了路由迭代次數,損失型別以及矩陣的使用而不是pose向量的影響。

表2:當兩個模型在熟悉的觀點的錯誤率上匹配時,基線CNN和膠囊模型的smallNORB測試錯誤率在新觀點上的比較。

與圖1相同的膠囊架構在MNIST上實現了0.44%的測試錯誤率。 如果第一個隱藏層中的通道數增加到256,則在Cifar10上實現11.9%的測試錯誤率(Krizhevsky&Hinton(2009))。

5.1推廣到新的觀點

更嚴格的推廣測試是使用有限範圍的觀點進行訓練並在更廣泛的範圍內進行測試。 我們對包含(300,320,340,0,20,40)方位角的訓練資料的三分之一訓練我們的卷積基線和我們的膠囊模型,並測試了包含方位角從60到280的三分之二的測試資料。在另一項實驗中,我們對3個較小的高程進行了訓練,並對6個較大的高程進行了測試。

很難確定膠囊模型是否更好地推廣到新的觀點,因為它在所有觀點上實現了更好的測試精度。為了消除這種混淆因素,當其效能與使用訓練觀點的測試集的第三個上的基線CNN相匹配時,我們停止訓練膠囊模型。然後,我們將測試集的三分之二上的這些匹配模型與新觀點進行了比較。Tab2中的結果顯示,與在熟悉的觀點上具有匹配效能的基線CNN膠囊相比,在新穎視角和新穎高度上的新觀點的測試誤差率降低約30%。

6 對抗的健壯性

人們越來越關注神經網路在對抗示例中的脆弱性;攻擊者稍微改變了一些輸入,以欺騙神經網路分類器進行錯誤的分類。這些輸入可以以多種方式建立,但是諸如FGSM(Goodfellow等人(2014))之類的簡單策略已經顯示出在影象分類任務中大幅度的降低卷積神經網路的準確性。我們針對抵禦這種攻擊的能力,比較了我們的膠囊模型和傳統的卷積模型。

FGSM根據每個畫素強度計算損失的梯度,然後在增加損失的方向上將畫素強度改變一個固定量∈。因此,變化僅取決於每個畫素的梯度符號。通過更新輸入以最大化特定錯誤類的分類概率,可以將其擴充套件到目標攻擊。 我們使用FGSM生成對抗攻擊,因為它只有一個超引數(hyper-parameter),並且比較具有非常不同梯度大小的模型是很容易的。為了測試我們模型的健壯性,我們使用完全訓練的模型從測試集生成了對抗影象。然後,我們記錄了在這些影象上模型的準確性。

我們發現,我們的模型對於一般的和把FGSM作為目標的對抗性攻擊來說都明顯地不那麼容易受到攻擊;對於膠囊模型 (圖3),相比同等的∈,小的∈更可以用來降低卷積模型的準確性。還需要注意的是,膠囊模型在無目標攻擊後的準確度從不低於概率(20%),而卷積模型的準確度則大大低於概率,∈的值小到0.2

我們還針對基本迭代法(Kurakin等人(2016))的稍微複雜的對抗性攻擊測試了我們的模型,這只是前面提到的攻擊,此外,在建立對抗影象時需要多個更小的步驟。在這裡我們也發現我們的模型比傳統的卷積模型更具對抗性。

圖3: 對∈對抗性攻擊後的準確性(左)和目標對抗性攻擊後的成功率(右)。目標攻擊的結果通過平均每個5個可能的類的攻擊後的成功率來評估。

已經表明,模型中對抗性攻擊的一些穩健性可以歸因於梯度Brendel & Bethge(2017)的計算中簡單的數值不穩定性。為了確保這不是我們模型健壯性的唯一原因,我們計算了梯度中零值相對於膠囊模型中影象的百分比,發現它小於CNN的值。此外,膠囊梯度小於CNN梯度,與Brendel&Bethge(2017)工作中的16個數量級相比,儘管只小2個數量級。

最後,我們通過使用CNN生成對抗性示例,並在我們的膠囊模型和不同的CNN上測試它們,從而測試我們的模型對黑盒攻擊的健壯性。我們發現膠囊模型在此任務上的表現並不比CNN明顯好。

7 相關工作

在最近多次嘗試提高神經網路處理視點變化的能力中,有兩個主流。一個流試圖實現視點不變性,另一個流旨在實現視點等效性。Jaderberg等人提出的工作(2015),空間變換器網路,通過選擇仿射變換來改變CNN的取樣來尋求視點不變性。De Brabandere等(2016)擴充套件空間變換器網路,其中根據輸入在推理期間調整濾波器。它們為特徵圖中的每個位置生成不同的過濾器,而不是將相同的變換應用於所有過濾器。他們的方法是從傳統模式匹配框架(如標準CNN(LeCun等人(1990)))進行輸入協方差檢測的一步。Dai等人(2017)通過歸納濾波器的取樣方法改進了空間變換器網路。我們的工作有很大的不同,因為一個單元不是基於與過濾器匹配的分數而被啟用的(在推理過程中,要麼是固定的,要麼是動態的)。在我們的例子中,只有當來自下面的層的變形poses相互匹配時才啟用膠囊。這是捕獲協方差的更有效方法,並且導致具有更少引數的模型更好地歸納。

CNN的成功促使許多研究人員將CNN中內建的平移等效性擴充套件到包括旋轉等效性(Cohen&Welling(2016),Dieleman等人(2016),Oyallon&Mallat(2015))。諧波網路中最近的方法(Worrall等人(2017))通過使用圓形諧波濾波器並使用複數返回最大響應和方向來實現旋轉等效特徵圖。這共享了膠囊的基本表徵思想:假設某個位置只有一個實體例項,我們可以使用幾個不同的數字來表示它的屬性。他們使用固定數量的旋轉orders流。通過強制使任意路徑上的旋轉順序的和相等,它們實現了補丁式的旋轉等效。這種方法比資料增強方法,複製特徵圖或重複過濾器更具引數效率(Fasel&Gatica-Perez(2006),Laptev等人(2016))。我們的方法編碼一般視點等價而不是僅僅仿射2D旋轉。對稱網路(Gens&Domingos(2014))使用迭代Lucas-Kanade優化來查詢最低級別特徵支援的poses。他們的關鍵弱點是迭代演算法始終以相同的pose開始,而不是自下而上投票的平均值。

Lenc&Vedaldi(2016)提出了一種與仿射變換等效的特徵檢測機制(DetNet)。DetNet旨在檢測不同視點變化下影象中的相同點。這項工作與我們的工作正交,但DetNet可能是實現啟用主要膠囊層的去渲染第一階段的好方法。

我們的路由演算法可以看作是一種注意機制。在這種觀點中,它與Gregor等人(2015)的工作有關。他們通過使用高斯kernels來處理編碼器生成的特徵對映的不同部分,從而提高了生成模型中的解碼器效能。 Vaswani等人(2017)使用softmax注意機制在為查詢生成編碼時,將查詢序列的部分與翻譯任務的輸入序列的部分匹配。它們顯示了根據使用迴圈架構的先前翻譯工作的改進。我們的演算法在相反的方向上有所關注。競爭不是在較低級別的膠囊之間,因為一個較高級別的膠囊可能參加。它位於較高級別的膠囊之間,較低級別的膠囊可能會投票給它。

7.1膠囊的先前工作

Hinton等人(2011)在一個變換自編碼器中使用了一個變換矩陣,它可以將立體影象對變換成來自稍微不同視角的立體對。但是,這種系統需要由外部提供變換矩陣。最近,按一致性路由(routing-by-agreement)在分割高度重疊的數字上得到了非常好的效果(Sabouret al. (2017)),但這個系統還有一些不足之處,而我們的研究成果已經解決了這些問題:

1、它使用了姿態向量(pose vector)的長度來表示由一個 capsule所表示的實體存在的概率。為了讓該長度小於 1,需要一種無原則的非線性(unprincipled non-linearity),這可以防止其成為任何可感知的目標函式,它由迭代式的路由過程(routingprocedure)最小化。

2、它使用了兩個姿態向量之間的角的餘弦來測量它們之間的一致性。和高斯聚類的對數方差不一樣,餘弦並不非常適用於區分相當好的一致性與非常好的一致性。

3、它使用了長度為 n 的向量,而不是有 n 個元素的矩陣來表示一個姿態,所以其變換矩陣具有 n2個引數,而不只是 n 個。

8 總結

基於Sabour等人(2017)的工作,我們提出了一種新型的膠囊系統,其中每個膠囊都有一個邏輯單元來表示實體的存在,以及一個表示該實體pose的4x4 pose矩陣。我們還介紹了一種新的基於EM演算法的膠囊層之間的迭代路由程式,該程式允許將每個較低級別膠囊的輸出路由到上面層的膠囊中,以這樣的方式使活性膠囊獲得一組類似的pose投票。與最先進的CNN相比,這個新系統在smallNORB資料集上的準確度顯著提高,減少了45%的錯誤。我們也已經證明,它比CNN的基線在白盒對抗攻擊中顯著更健壯。

SmallNORB是開發新形狀識別模型的理想資料集,因為它缺乏許多在自然環境下的影象的附加特性。現在我們的膠囊模型在NORB上執行良好,我們計劃實現一個高效版本,以在更大的資料集(如ImageNet)上測試更大的模型。