【論文導讀】淺談膠囊網絡與動態路由算法

2021-01-18 小小挖掘機
前言

「Dynamic Routing Between Capsules」是由Hinton等聯合發表在NIPS會議上。提出了一個新的神經網絡---膠囊網絡與囊間的動態路由算法。

上篇文章中提到了動態路由算法,由於沒太理解,因此找了原論文並且結合參考文獻的4篇博文進行解讀,才對膠囊網絡與動態路由算法的過程有了一點認識。本篇文章的所有圖片來源都是來自4篇博文,並且參考了其中部分知識。對膠囊網絡有興趣的同學可以閱讀下,非常有幫助。

本篇文章約3.2k字,預計閱讀12分鐘。

1. 作者

本篇論文是由Sara Sabour、Nicholas Frosst與Geoffrey E. Hinton聯合發表。對於膠囊網絡(Capsules Net)的提出者之一Geoffrey E. Hinton(「傑弗裡·埃弗裡斯特·辛頓」),我們應該了解下:

他是「反向傳播算法」「對比散度算法」「波爾茲曼機」的發明人之一,也是深度學習的積極推動者,被譽為「「深度學習之父」」。因在深度學習方面的貢獻與約書亞·本希奧和楊立昆一同被授予了2018年的圖靈獎。 維基百科

❞2. 背景2.1 CNN的特性與缺陷

卷積神經網絡(CNN)在圖像分類上取得了非常顯著的效果。它有幾個非常重要的特性:

「平移不變性(translation invariance )」:簡單來說不管圖片的內容如何進行平移,CNN還能輸出與之前一樣的結果。為什麼具有平移不變性?這個性質由全局共享權值和Pooling共同得到的;「平移等變性(translation equivariance)」:對於一個函數,如果你對其輸入施加的變換也會同樣反應在輸出上,那麼這個函數就對該變換具有等變性。這由局部連接和權值共享決定;

例:

如果輸出是給出圖片中貓的位置,那麼將圖片中的貓從左邊移到右邊,這種平移也會反應在輸出上,我們輸出的位置也是從左邊到右邊,那麼我們則可以說CNN有等變性;如果我們只是輸出圖片中是否有貓,那麼我們無論把貓怎麼移動,我們的輸出都保持」有貓」的判定,因此體現了CNN的不變性。---引自http://www.lunarnai.cn/2018/03/23/CNN_euivariant_invariant/

「不具備特性」

「旋轉不變性」:做過簡單的圖像分類就應該知道,當我們為了增強模型性能,總是會做圖像增強的工作,其中就包括旋轉,這就是為了克服CNN不具備旋轉不變性的缺陷;

根據以上信息我們可以得出「結論」:CNN擅長檢測特徵,但在探索特徵之間的「空間關係」(大小,方向)「方面效果不佳」。例如,對於以下扭曲的人臉圖,CNN可能會認為這是一張正常的人臉。

2.2 最大池化(Max Pooling)的缺陷

作者認為Max Pooling在每一層僅保留最活躍的特徵,而忽略了其他的特徵,即損失了有價值的東西。

This type of 「routing-by-agreement」 should be far more effective than the very primitive form of routing implemented by max-pooling, which allows neurons in one layer to ignore all but the most active feature detector in a local pool in the layer below.

❞3. 膠囊網絡

簡單的CNN模型可以正確提取鼻子,眼睛和嘴巴的特徵,但會錯誤地激活神經元以進行面部檢測。如果沒有意識到「空間方向和大小」上的不匹配,則面部檢測的激活將太高【簡單來說,並不是存在眼睛、鼻子、嘴巴就一定是一張臉,還有考慮各個部位的方向問題、大小問題等】。

但是,如果每個神經元都包含特徵的概率和其他屬性。例如,它輸出一個包含[可能性,方向,大小]的「向量」。有了這些空間信息,就可以檢測到鼻子,眼睛和耳朵的特徵在方向和大小上的不一致,從而為面部檢測輸出低得多的激活力。

「因此用向量來代替單個神經元標量」,即文章提到的「膠囊」(Capsule),形成了膠囊網絡。

3.1 膠囊

以下通過原文的描述對膠囊下一些定義:

1、一個膠囊是一組神經元(「輸入」),即神經元「向量」(activity vector),表示特定類型的實體(例如對象或對象部分)的實例化參數(例如可能性、方向等)。

A capsule is a group of neurons whose activity vector represents the instantiation parameters of a specific type of entity such as an object or an object part.

2、「使用膠囊的長度(模)來表示實體(例如上述的眼睛、鼻子等)存在的概率」,並使用其方向(orientation)來表示除了長度以外的其他實例化參數,例如位置、角度、大小等。

We use the length of the activity vector to represent the probability that the entity exists and its orientation to represent the instantiation parameters.

❞❝

In this paper we explore an interesting alternative which is to use the overall length of the vector of instantiation parameters to represent the existence of the entity and to force the orientation of the vector to represent the properties of the entity.

3、膠囊的「向量輸出」的長度(模長)不能超過1,可以通過應用一個「非線性函數」使其在方向不變的基礎上,縮小其大小。

cannot exceed 1 by applying a non-linearity that leaves the orientation of the vector unchanged but scales down its magnitude.

接下來我們主要介紹膠囊之間的傳播與訓練過程。

3.1.1 問題定義

膠囊網絡總的計算過程如下所示(圖來自[4]):

我們假設低層次的膠囊(輸入)是探測眼睛、嘴巴、鼻子,整個膠囊網絡的目的(輸出)是探測人臉。為了與普通神經網絡相比,完全可以將膠囊網絡的計算看成前向傳播的過程。

3.1.2 低層膠囊輸入

輸入為較為低層次的膠囊(Primary Capsule)


3.1.3 計算預測向量(predict vector)

應用一個轉換矩陣(transformation matrix)「預測向量」

「為什麼稱 因為轉換矩陣

例如對於鼻子來說,臉以鼻子為中心,它的大小是鼻子的10倍,它在空間中的方向與鼻子的方向相對應,因為它們都在同一個平面上,因此得到的向量是對人臉的預測;其他兩個向量同理,如下圖所示:

對於權重矩陣「它依舊是通過反向傳播進行學習」

3.1.4 預測向量加權求和

然後我們需要將所有得到的預測向量進行加權求和:

其中「它是通過動態路由算法進行學習」

3.1.5 膠囊輸出

之前我們提到想要一個膠囊的向量的模來表示由膠囊所代表的實體存在的概率。因此作者在論文中提出使用非線性函數「「squashing」」來替代傳統的神經網絡的激活函數Relu,這是為了確保短向量可以被壓縮至接近0的長度,長向量壓縮至接近1的長度,「並且保持向量的方向不變」。因此最終膠囊的向量輸出:

對上述式子進行分析:

3.1.6 與普通神經網絡進行比較

上述膠囊網絡與傳統的神經網絡比較圖片來自[4],了解神經網絡結構的同學也可以對膠囊網絡有更深入的認識,具體的介紹可以看[4]。

兩者的計算過程如下所示:

3.2 Dynamic Routing算法

對於上述的學習參數

首先得到所有的「預測向量」「迭代次數」

對於所有的輸入膠囊

計算向量

【注】:由於第一次迭代

最後一步的向量通過非線性函數squash,這確保了向量的方向保持不變,但它的長度被強制不超過1。這一步輸出最終的向量

這一步是權重發生更新的地方,也是整個動態路由算法的「關鍵」。這一步通過膠囊「進行點積處理,是為了檢測膠囊輸入與輸出的相似性」。更新權重後,進行下一輪迭代;

經過上述動態路由算法的解析,我們發現動態路由不能完全替代反向傳播。轉換矩陣反向傳播訓練。但是,使用動態路由來計算「膠囊的輸出」「通過計算

4. 總結

通過論文與參考文獻中的博客的敘述,對上篇文章中使用的動態路由算法有了更清晰的認識。

參考文獻

[1] https://jhui.github.io/2017/11/03/Dynamic-Routing-Between-Capsules/

[2] https://medium.com/ai³-theory-practice-business/understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b

[3] https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66

[4] https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-iii-dynamic-routing-between-capsules-349f6d30418

相關焦點

  • 動態膠囊網路由Dynamic Routing Between Capsules漢譯文[神經網絡BP反向算法Hinton又一力作]
    10月26日著名預印本文獻庫arXiv發表了加拿大人工智慧科學家,傑弗裡·欣頓(Geoffrey Hinton)最新的神經網絡學術論文《動態膠囊網路由(DynamicRoutingBetweenCapsules)》。原文arXiv:1710.09829v1 [cs.CV] 26 Oct 2017,論文地址https://arxiv.org/pdf/1710.09829.pdf。
  • Hinton的Capsule論文全公開!首發《膠囊間的動態路由》原文精譯
    膠囊間的動態路由摘要本論文所研究的膠囊意為一組神經元,其激活向量反映了某類特定實體(可能是整體也可能是部分)的表徵。某一層級的活躍膠囊通過矩陣變換做出預測,預測結果會用來給更高層級的膠囊提供實例參數。當多個預測值達成一致時,一個高層級的膠囊就會被激活。論文中展示了差異化訓練的多層膠囊系統可以在MNIST上達到當前最高水平的表現,在識別高度重疊的數字上也要比卷積網絡要好得多。
  • 膠囊網絡:一種全新的富有吸引力的AI架構
    針對卷積神經網絡模型性能不足的領域問題,人們提出了膠囊網絡和動態路由算法。畢卡索和他的女神們膠囊表示圖像中特定實體的各種特徵。一種非常特殊的特徵是圖像中實例化實體的存在。實例化實體是諸如位置、大小、方向、變形、速度、反照率、色調、紋理等參數。表示其存在的一個簡單方法是使用單獨的邏輯單元,其輸出是實體存在的概率[1]。
  • 學界 | 膠囊網絡是如何克服卷積神經網絡的這些缺點的?
    但是這裡的關鍵點是膠囊網絡是非常有希望的,看起來只要做一些修改就能讓膠囊網絡充分釋放它們的潛能。畢竟現代CNN在1998年就被發明了,但也要經過幾次改進,直到2012年的ImageNet大賽上才達到業界領先水平。簡而言之,一個膠囊網絡是由膠囊而不是由神經元構成。
  • Hinton膠囊網絡代碼正式開源,你也能為GitHub1.4萬fork的庫貢獻
    【新智元導讀】萬眾期待中,Hinton膠囊網絡論文《Dynamic Routing between Capsules》的代碼正式公布,僅僅5天,Github上fork數量就超過了1.4萬。Capsule真能取代CNN嗎?接下來是你動手的時間了。
  • 學習Hinton老爺子的膠囊網絡,這有一篇歷史回顧與深度解讀
    這個版本採用期望最大化算法 (Expectation Maximization algorithm) 代替動態路由。具體來說,膠囊中特徵實體存在的概率用參數 a 來替代上一個版本中向量的長度,這有助於避免壓縮函數被認為是「不客觀或不明智的」。
  • 動態路由!動態路由!動態路由的原理與配置
    動態路由!動態路由!動態路由的原理與配置 動態路由選擇是指路由器使用路由選擇協議來獲悉網絡並更新路由選擇表。下面,我們就一起來了解動態路由的原理與配置。
  • Hinton膠囊網絡代碼正式開源,5天GitHub fork超1.4萬
    新智元也對膠囊網絡的概念做過詳細介紹:[1]【大神Hinton】深度學習要另起爐灶,徹底拋棄反向傳播[2]【重磅】Hinton 大神 Capsule 論文首次公布,深度學習基石 CNN 或被取代[3] Reddit 討論:Hinton 的 Capsule 網絡真的比 CNN 效果更好嗎?
  • 企業網絡管理:EIGRP動態路由協議
    但EIGRP是思科私有的一個路由協議,這其實也制約了EIGRP的使用範圍,因為只有在同一個網絡中全部都是思科的產品才會使用 EIGRP,但要考慮到一個網絡的擴展功能。那萬一以後要使用其他廠家的產品怎麼辦?所以一定要考慮好用不用EIGRP。
  • 路由算法分析:管理距離和最大跳數的區別是什麼?
    靜態路由表由網絡管理員在系統安裝時根據網絡的配置情況預先設定,網絡結構發生變化後由網絡管理員手工修改路由表。動態路由隨網絡運行情況的變化而變化,路由器根據路由協議提供的功能自動計算數據傳輸的最佳路徑,由此得到動態路由表。
  • AI不再黑箱:利用可解釋的膠囊網絡算法識別細胞亞型
    近日由北京師範大學張江組、中科研基因所蔡軍組合作發表的論文中,利用改進後的膠囊網絡深度架構,應用於轉錄組分析和細胞分類,取得良好效果並具有較強的可解釋性。我們邀請論文第一作者王力飛博士,在周四(12月17日)的生命複雜性讀書會中做線上分享,解讀這項研究。分享將在B站和騰訊會議同步進行,參與方式見文末。
  • NeurIPS 2017 論文 2018 年引用量排名揭曉,這裡是排名前三的論文...
    該文提供了一種訓練 GAN 的穩定的算法,能夠更好的探索哪種架構能夠得到最好的生成模型性能。該方法也打開了使用大規模圖像或語言數據集訓練以得到更強的模型性能的大門。Hinton 這篇論文解決的重點問題就是不同膠囊間連接權重(路由)的學習。解決路由問題首先,每個層中的神經元分組形成不同的膠囊,每個膠囊有一個「活動向量」activity vector,它是這個膠囊對於它關注的類別或者屬性的表徵。樹結構中的每個節點就對應著一個活動的膠囊。
  • 淺談TCP/IP傳輸層TCP BBR算法
    鑑於TCP擁塞控制算法背後有一套複雜的數學理論和控制策略,因此本文也只能是淺談,通過本文你將了解到以下內容(溫馨提示:文章較長需要一些耐心,也可以先收藏再閱讀): 回顧傳統擁塞控制算法 TCP BBR算法的概況 BBR算法的原理簡介0x01.
  • 史上最火 ECCV 已開幕,這些論文都太有意思了
    論文地址:https://arxiv.org/abs/2007.117313D 點雲 《用於 3D 點雲的四元數等變膠囊網絡》單位:史丹福大學,多特蒙德工業大學,帕多瓦大學摘要:我們提出了一種處理點雲的三維膠囊架構,它與無序輸入集的 SO(3)旋轉組、平移和排列等價。
  • 用Hinton的膠囊神經網絡來識別空間關係 Part1: CNNs及其缺點
    Geoffery Hinton 是包括神經網絡在內的很多廣泛使用的深度學習算法的創始人之一,考慮到他有著神經科學和人工智慧的雙重背景,取得這些成就也就不會太讓人意外。2017年10月底, Geoffrey Hinton, Sara Sabour, 和 Nicholas Frosst 在Google Brain發表了題為「Dynamic Routing Between Capsules(膠囊間的動態路由)」的論文,給神經網絡領域帶來了一些新的東西。這很令人興奮,因為這樣大的創新已經很久沒人做到了,圍繞它很可能有更多的研究點被激發出來。
  • HCIP課程開始,第一節課之RIP路由協議
    RIP【Routing Information Protocol | 路由信息協議】什麼是動態路由1.概念:網絡中的各個路由器彼此相互通訊,互相發送自身的完整路由表項,各路由器根據直連鄰居發送的路由表項來更新和維護自身路由表的過程,稱之為動態路由2.動態路由是基於某種動態路由協議來實現的3.單播環境下動態路由協議的種類
  • 基於CNN,強於CNN:膠囊網絡為何如此熱門?
    膠囊網絡是什麼?膠囊網絡為什麼能夠克服卷積神經網絡的缺點和不足? CNN的缺陷 在先前的文章中,企通查為大家介紹過了卷積神經網絡CNN的工作原理。
  • 網絡用戶監測 NETGEAR DGN2200無線路由
    NETGEAR DGN2200 無線路由概要介紹    DGN2200是NETGEAR公司的新款產品,不僅外形給力而且性能也非常出眾。尤其是它特有的網絡用戶檢測功能,更是給我們帶來了很大的便利。擁有該項功能之後,如果在公共場所,無論是在網絡上或是通過網際網路訪問USB存儲設備的一些URL列表,我們都可以看到,方便實用。