【導讀】前幾天,Hinton團隊的膠囊網絡論文第一作者Sara Sabour將其源碼在GitHub上開源,其實,該論文「Dynamic Routing Between Capsules」早在去年10月份就已經發表,直到今日,其官方實現終於開源。此前,Hinton一再強調,當前的反向傳播和CNN網絡存在很大的局限性,表明AI的下一代研究方向是「無監督學習」。因此,CapsNet應運而生,雖然傳統神經網絡很大程度上是在Hinton的理論基礎上創建的,但Hinton卻絲毫沒有手下留情,聲稱要把反向傳播等深度學習方法推倒重來。
近日,深度學習之父Geoffrey Hinton的膠囊網絡論文「Dynamic Routing Between Capsules」的源碼在GitHub上公布,目前,其Star數達到486,Fork數達到14407。早在去年10月份,該論文就已經發表,但其源碼一直未公布,此前也有人根據其論文實現過其他版本,直到前幾天,該論文第一作者Sara Sabour終於將其在GitHub上開源,可謂萬眾期待!
▌GitHub:
https://github.com/Sarasra/models/tree/master/research/capsules
▌膠囊網絡的paper及連結:
Dynamic Routing Between Capsules. Sara Sabour, Nicholas Frosst, Geoffrey E Hinton
https://arxiv.org/abs/1710.09829
▌膠囊網絡(Capsule Networks, CapsNet)
膠囊網絡是Hinton等人在論文「Dynamic Routing Between Capsules」中提出的網絡結構,它提出了理論上能更好地替代卷積神經網絡的方案,是當前計算機視覺領域的最新技術。
首先來看一下傳統神經網絡的神經元。在物質世界中,這是一組細胞,以信號作為輸入,並發出一些信號作為輸出,只要它足夠興奮。雖然這是一個簡單直白的解釋,但這最終是對「神經網絡」機器學習概念的充分體現。在這裡,神經元是一個數學單位,它接受一個輸入,並使用一系列函數給出輸入的輸出。我們學習權重來確定在訓練階段哪個特定的輸入可能比使用反向傳播的輸入更重要。我們可以堆疊這些神經元,使得一層神經元的輸出成為另一層神經元的輸入。所有類型的神經元都取自從這個基本概念,包括遞歸神經網絡和卷積神經網絡。
膠囊的概念:像基本的神經元一樣,它們也代表了一個認知思想的符號數位化。大腦的高層做了更多的演繹、理解和高層次特徵的計算,大腦的特定部分在他們處理的領域或主題上有明確的含義。我們並不是將所有維度的數據都放在整個大腦中,而是「餵食(feed in)」較低級別的特徵,以供大腦的高層部分處理,從而將認知負荷從較高級別的處理中移除。如果較低級別的功能與大腦某些較高級別的部分不相關,則不應將其發送到那裡。它的信號至少應該有所減弱。
如果膠囊被用於處理姿勢識別問題中。當訓練一個模型對人的姿勢進行識別時,往往會因為方向而存在問題:當人轉個方向可能會在識別的時候遇到問題。為了解決這一問題,膠囊試圖通過讓「符號數學大腦(symbolic mathematical brain)」(即網絡)的更高級別部分來處理複雜特徵的識別和姿勢認證,而較低級別部分用來處理「子」特徵。一個較高級別的膠囊可以識別出一張臉部特徵,而這是基於較低級別的膠囊是以一個相一致的方向來對嘴巴和鼻子進行識別的。
然而,傳統的CNN只是依賴大量的數據,其中將該目標可能擁有的所有姿勢都包含在內。
如果用膠囊代替神經元。較低級別的膠囊通過識別該目標的較簡單的子部分來做一個該目標可能是什麼的「弱賭注」,然後一個更高級別的膠囊會採取這些低級別的賭注,並試圖看看它們是否同意。如果它們中有足夠多的同意,那麼這個目標就是Y,這可能是非常巧合。而這就是這些膠囊網絡運行方式的本質。
我們如何路由這些較低級別的膠囊,把它們送到正確的、更高級別膠囊中呢?Hinton等人也在其論文中詳細介紹了其路由算法,感興趣的讀者可以仔細閱讀其論文,這裡不做詳細描述。
https://arxiv.org/abs/1710.09829
▌反向傳播存在的問題
我們知道,反向傳播也是Geffrey Hinton及其同事在1986年發表的論文「Learning representations by back-propagating errors」上提出的,自此之後,反向傳播成了所有深度學習技術的基礎。
但是,去年9月份,Hinton在多倫多接受採訪時就表示要放棄反向傳播,那麼,反向傳播到底存在什麼問題呢?
首先,反向傳播在生物學上很難成立。反向傳播需要進行準確地求導、進行矩陣轉置等,這種功能的系統從來沒有在解剖學上得到證實。所以,反向傳播更像是為訓練多層神經網絡而發展起來的算法。反向傳播還需要進行小心翼翼地優化,這是個高度非凸的問題,依賴於繁雜的調參過程。
其次,反向傳播計算出來的梯度不能保證是學習的正確方向。很多時候,研究者找到的所謂的最優解,往往只是看上去可行的,並不是問題最終的最優解。Hinton認為,要想讓神經網絡能夠自己變得智能,必須進行「無監督學習」,「我認為這意味著需要放棄反向傳播。」
▌卷積神經網絡
不可否認,CNNs是當前計算機視覺中最先進的技術。CNN 是通過積累各層的特徵集進行工作的,它的工作方式是首先從尋找邊緣開始,然後是形狀,繼而是實際對象。但這種工作方式,把所有這些特徵的空間關鍵信息都丟失了。所以,CNN在探索特徵(視角,大小,方位)之間的空間關係方面效果較差。CNN 在以不同的方向查看圖像時,也很容易混淆比如,在我們倒轉或部分旋轉圖片時,CNN的性能會大幅下降。
▌參考連結:
https://arxiv.org/abs/1710.09829
https://github.com/Sarasra/models/tree/master/research/capsules
-END-
專 · 知