初探膠囊網路(Capsule Network)一:為什麼要設計膠囊網路
這次讀的paper是Dynamic Routing Between Capsules,這是Hinton提出Capsule Network(以下翻譯為「膠囊網路」)的第一篇文章。這篇文章發表在NIPS 2017上,截至今天已經被引用了56次(前天我研究這篇paper時只有48次,飛速增長)。對於膠囊網路,參考[2],我將寫4篇文章,針對以下4個問題。
1. 為什麼要設計膠囊網路?(對比CNN)
2. 膠囊網路是如何工作的?
3. 如何在膠囊間動態尋路
4. 膠囊網路結構
鑒於本人也是初學者,如有問題,歡迎指正~
為什麼要設計膠囊網路?
本章節中,我們將探討為什麼這個結構十分重要,以及為什麼設計這個網路結構。
在討論膠囊網路前,我們先來看一下目前最通用的深度學習模型之一,卷積神經網路(CNN)
CNN目前已經完成了很多不可思議的任務,對於整個機器學習領域都產生了很大的影響。然而,它並不是完美的。舉一個簡單的例子,對於一張人臉而言,它的組成部分包括面部輪廓,兩個眼睛,一個鼻子和一張嘴巴。對於CNN而言,這些部分就足以識別一張人臉;然而,這些組成部分的相對位置以及朝向就沒有那麼重要。
CNN的主要組成部分是卷積層,它的任務是識別圖片中的重要特徵。底層的卷積層主要是識別一些簡單的低級特徵(輪廓和顏色等),高層的卷積層會組合簡單特徵而識別一些更為複雜的高級特徵。低級特徵通過(加權求和—>非線性函數激活)的方式得到高級特徵。為了保證特徵在平移和旋轉上的不變性,CNN採用了max pooling以及後繼卷積層的方式來解決這個問題。Max pooling對於CNN而言是非常重要的,它是CNN能取得如此效果的關鍵因素之一。
成也蕭何敗蕭何,max pooling也有其弊端,它同時也丟失了一些很重要的信息。Hinton本人認為max pooling效果這麼好是一個錯誤以及一場災難。CNN沒有解決的問題是:圖像中不同的物體之間是有聯繫的,抓住物體之間在空間上的聯繫也是很重要的。
Hinton: The pooling operation used in convolutional neural networks is a big mistake and the fact that it works so well is a disaster.
膠囊網路還有一個好處,就是當它只用了一小部分數據時,它可以獲得和用了全部數據的CNN一樣好的效果(Hinton在What is wrong with CNNs中提到了這一點)。從這點可以看出,膠囊網路在實際操作上更加接近人腦。
膠囊網路還有一個好處,就是當它只用了一小部分數據時,它可以獲得和用了全部數據的CNN一樣好的效果(Hinton在What is wrong with CNNs中提到了這一點)。從這點可以看出,膠囊網路在實際操作上更加接近人腦。
下一章:膠囊網路是如何工作的
Reference:
[1] Sabour, Sara, Frosst, Nicholas, and Hinton, Geoffrey E. Dy- namic routing between capsules. In Advances in Neural Information Processing Systems, pp. 3859–3869, 2017.
[2] https://medium.com/ai3-theory-practice-business/understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b
推薦閱讀:
※這些是 Python 官方推薦的最好書籍(推薦)
※機器學習的定義
※從建立清晰的步驟開始——Machine Learning Project Checklist
TAG:深度學習DeepLearning | 神經網路 | 機器學習 |