膠囊網絡是什麼?膠囊網絡為什麼能夠克服卷積神經網絡的缺點和不足?
CNN的缺陷
在先前的文章中,企通查為大家介紹過了卷積神經網絡CNN的工作原理。CNN的價值在於能夠將大數據量的圖片有效地降維成小數據量且不影響結果,在 CNN 出現之前,圖像對於人工智慧來說一直是一個難題。
然而,對於著力於監測圖像像素中重要特徵的傳統CNN來說其實存在著一定的缺陷。
以簡單的人臉檢測任務為例,一張臉的構成要素有代表臉型的橢圓、眼睛、眉毛、鼻子和嘴巴。基於CNN的原理,只要存在這些對象就有一個很強的刺激,這些對象空間關係反而沒有那麼重要。
如下圖,圖片右側顯然不是人臉但具備了構成一張人臉所需的全部對象,因此CNN有很大可能通過現有的構成要素而激活了是人臉的判斷,從而使得結果判斷出錯。
圖:來源於網絡
重新審視CNN的工作方式,高層特徵是低層特徵組合的加權和,前一層的激活與下一層神經元的權重相乘並且相加,接著通過非線性激活函數進行激活。在這樣的架構中,高層特徵和低層特徵之間的位置關係變得模糊。而CNN解決這個問題的方法是通過最大池化層或者或許的卷積層來擴大下續卷積核的視野,但最大池化層或多或少都會丟掉一部分信息。
膠囊網絡如何解決CNN的缺陷?
為了解決CNN的不足,深度學習的開創者之一Geoffrey Hinton提出了一種對於圖像處理更加有效的網絡——膠囊網絡,其綜合了CNN的優點的同時,考慮了CNN缺失的相對位置、角度等其他信息,從而使得識別效果有所提升。
那麼,膠囊網絡到底是什麼?
簡言之,膠囊網絡的基本構成單位是膠囊而不是神經元。膠囊是一個包含多個神經元的載體,每個神經元表示了圖像中出現的特定實體的各種屬性,這些屬性可以包括許多不同類型的實例化參數(例如位置、大小、方向、變形、色相、紋理等)。膠囊裡有一個非常特殊的屬性,即圖像中某個類別的實例的存在,它的輸出數值大小就是實體存在的概率。
由於膠囊也有所謂的「長度」和「方向」,基於其特殊性,可把膠囊類比為數學向量,它輸出一個向量,該向量的長度表示被檢測對象存在的估計概率,而方向對被檢測對象的姿態參數(如精確的位置,旋轉等)進行編碼。如果被檢測對象發生稍微改變(如移動、旋轉、調整大小等),則膠囊將輸出相同長度的矢量,但方向稍有不同。這樣,膠囊是等變的。
因此,我們可以將膠囊稱為向量神經元(VN),而普通的人工神經元則稱為標量神經元(SN)。
圖:向量神經元與人工神經元的對比,來源於網絡
就像常規的神經網絡一樣,一個膠囊網絡也是按多個層組織的。最下層的膠囊被稱為主膠囊:每個膠囊都接收圖像的一個小區域作為輸入(稱其為接受場),嘗試檢測一個特定模式的存在和姿態。更高層的膠囊稱為路由膠囊,檢測更大更複雜的對象。
圖:膠囊網絡基本架構,來源於網絡
通過利用膠囊網絡,一個圖可以表示為多個嵌入,每個嵌入都可以捕獲不同方面的圖屬性。生成的圖形和類封裝不僅可以保留與分類相關的信息,還可以保留關於圖屬性的其他信息,這些信息可能在後續流程中用到。
在計算機圖形學中,三維圖形中的三維對象之間的關係可以用位姿表示,位姿的本質是平移和旋轉。保留對象部件之間的分層位姿關係對於正確分類和辨識對象來說很重要。
膠囊網絡結合了對象之間的相對關係,在數值上表示為4維位姿矩陣。當模型有了位姿信息之後,可以很容易地理解它看到的是以前看到的東西而只是改變了視角而已。
如下圖,人眼可以很容易分辨出是自由女神像,只是角度的不同,但CNN卻很難做到,而把位姿信息集合進去的膠囊網絡,也可以判別出是自由女神像的不同角度。
圖:來源於網絡
由於膠囊網絡更加貼近人腦的思維方式,能夠更好地建模神經網絡中內部知識表示的分層關係,同時由於數據中集合了位姿信息,因此膠囊網絡可以通過一小部分數據即學習出很好的表示效果。
膠囊神經網絡作為一種新穎、高效且強大的數據驅動方法,可以表示諸多高維數據,因此我們可以說,膠囊網絡基於CNN而又強於CNN。