1. 程式人生 > >介紹膠囊網路 capsule networks

介紹膠囊網路 capsule networks

CNN與CapsNets比較

  • CNN要麼需要大量圖片來訓練,要麼需要複用訓練好的CNN網路來填充當前網路的某些層。而膠囊網路,只需要少量圖片就可以訓練
  • 對於元素豐富的圖片,CNN不能很好地處理模稜兩可的邊界。而CapsNets即使在擁擠的場景下,也能表現出色(僅說明CapsNets比CNN強,並不是說CapsNets就可以完美處理了)。
  • CNN在池化層,會主動丟棄大量資訊。池化層降低了空間解析度,所以它們的輸出對於輸入的小變化是不敏感的。如果要求網路儲存細節資訊時,例如在語義分割場景中(請參見原文中的圖,譯者從業NLP,對CV不太瞭解。),CNN就力所不能及了。當然,可以通過在CNN周圍簡歷複雜的體系結構來恢復一部分丟失的資訊。而使用CapsNets,詳細的位置資訊(如精確的物件位置,旋轉,厚度,歪斜,大小等等)會整個網路中被保留下來。這種資訊的留存的優勢在於,輸入的微小變化直接導致輸出的細微不同。因此,CapsNets可以以簡單而一致的身姿,出現在多種計算機視覺任務中。
  • CNN需要額外的元件,來識別影象中元素的歸屬關係。而CapsNets免費提供層次結構資訊。

2011年,Geoffrey Hinton大神首次提出了CapsNets。而在幾個月前,即2017年11月,它在MNIST手寫數字識別上達到最先進的水平。

儘管如此美好,不過,它還遠未達到完美之境。
首先,現在它在CIFAR10或ImageNet等資料集上表現不如CNN好。
其次,它們是計算密集型的,當兩個相同的物體貼合得很近時,它無法區分出來。
它的核心思想非常有前途,只是還需要時間打磨。

膠囊網路到底是什麼

簡而言之,CapsNet由膠囊組成。一個膠囊單元是一組神經元,學習檢測某一給定區域的特定物體,輸出一個向量,向量的長度表示特定物體出現的概率,而向量的方向編碼了特定物體的姿態(如,位置、朝向)。如果特定物體稍作變換,如移動,旋轉,調整大小等,則膠囊將輸出相同長度的向量,但是方向稍有不同。 因此,膠囊是等變的。

CapsNet和普通神經網路一樣,由許多層組成。最底層的膠囊層被稱為初級膠囊層:它們中的每一個膠囊單元都接收影象的一塊區域作為輸入,檢測特定物體的存在和姿態,例如矩形。 更高層能夠檢測更大更復雜的物體,如船隻。

接下來,原文中用圖文結合的方式,展示了膠囊網路,是如何通過膠囊單元識別基本元素的存在於方向,進而識別影象中的具體的事物。略長,改天繼續翻譯。