雷鋒網按:本文為雷鋒字幕組編譯的技術博客,原標題Capsule Neural Networks: The Next Neural Networks? Part 1: CNNs and their problems.,作者為Tomer Eldor。
翻譯 | 陳曉璇 劉寧 魏洪貴 整理 | 凡江
「普通的」卷積神經網絡是當前機器學習領域最熱的一個概念, 但是它也有一些問題,例如不能識別空間關係,比如說圖片或其他數據裡不同部分之間的相對位置關係。Hinton最近提出的膠囊神經網絡也許能幫助我們解決包括這一問題和其他問題。
這篇文章是膠囊神經網絡系列教程的一部分。作為第一篇文章,將介紹常規(卷積)神經網絡以及它的一些問題。
神經網絡可能是當下機器學習領域最熱的部分。 近幾年,神經網絡得到眾多開發者不斷的改善,也更方便使用。但是,這些改進通常都是一些簡單的修改, 例如增加一些層,或者簡單的改進激活函數,但是並沒有引進全新的架構或思路。Geoffery Hinton 是包括神經網絡在內的很多廣泛使用的深度學習算法的創始人之一,考慮到他有著神經科學和人工智慧的雙重背景,取得這些成就也就不會太讓人意外。
2017年10月底, Geoffrey Hinton, Sara Sabour, 和 Nicholas Frosst 在Google Brain發表了題為「Dynamic Routing Between Capsules(膠囊間的動態路由)」的論文,給神經網絡領域帶來了一些新的東西。這很令人興奮,因為這樣大的創新已經很久沒人做到了,圍繞它很可能有更多的研究點被激發出來。
基點:卷積神經網絡
卷積神經網絡 (CNNs) 是一種很靈活的機器學習模型,它的設計靈感來源於人腦的處理問題的方式。
神經網絡通過整合多層「神經元」來將原始數據處理成特定的模式或對象。
卷積神經網絡的一個主要構建塊是「卷積層」(名字的由來)。它有什麼作用? 它將前一層的原始數據作為輸入,找到其中蘊含的模式信息,傳到下一層來更好地理解更大的圖片。
如果你剛接觸神經網絡,想要理解它,我建議你:
1. 看看 3Blue1Brown 的視頻,很生動形象。
2. 有關文字和視頻方面更細節的教程,可以查看beginner’s blogpost
3. 如果你有能力處理更細節的數學問題,你可以看看斯坦福CS231的課程。
如果你以上幾點都沒有做到,可以通過讀下面的簡介後再繼續。
CNNs的靈感來源
我們從頭說起。 神經網絡將原始數據作為輸入。假設有一隻手繪的小狗,你第一眼看到它時,大腦會自動將它識別為一隻狗。但是對計算機來說,這張圖片僅僅是一個關於有很多數字的數組。數組中的數值代表不同顏色通道的像素強度。如果是只有黑白的圖片,我們只需要用一個表示像素灰度值的數組來表示圖片即可。
用於網絡識別的示例。來源: The Sun, image: lovable dog rescue
我們的目標是什麼? 是讓網絡在視覺層面搞清圖片裡有什麼(這個數字序列代表著什麼)。一種方式是自下而上的方式: 讓網絡從聚焦一小部分像素開始,理解它們代表什麼(例如一些線段和曲線:像這張圖片中狗的耳朵的曲線,瞳孔的圓弧), 然後將這些線組合起來,來描述更大的對象(例如耳朵,鼻子,嘴,眼睛),同樣的去學習這些部分組成的更大的對象 (例如,臉,腿,尾巴),最終使網絡對狗做出整體的理解。
網絡是通過層之間數據的從頭到尾的傳遞實現這一功能的。
如果你不了解這個過程,可以看看我的關於CNNs結構的總結: 理解卷積神經網絡
萬一你沒讀過,而且不了解這些,下面是從我那些總結裡提煉出來更簡短的總結。
關於卷積神經網絡的理解
卷積層;第一層卷積層將圖片映射到較低緯度的空間— 歸納出一組像素點(例如5×5的像素塊)的信息—它是垂直的還是水平的線?是什麼形狀的曲線? 這個過程首先是對應元素相乘,然後將這些乘積相加為一個數,即得到filter輸出。
這就引出了神經元或者說卷積核的概念。每個卷積核都會對特定的模式(豎直線?水平線?等等)做出反應。 從第一層的像素傳到神經元時,會激活和它的結構相匹配的神經元,依據就是這個像素塊和卷積核的相似程度。
激活函數(通常用 「ReLU」)層— 每個卷積層後,都要添加一個非線性層 (又叫激活函數層), 從而給系統引入非線性,使得系統能學習到數據間的非線性關係。ReLU 是一個很簡單的激活函數:它把負輸入置零0,正輸入保持原值。
池化層;這層被用來減少冗餘信息, 總結我們關於一個區域已知的信息,並進一步精煉這些信息。例如,「MaxPooling」方法就是選取一組數的最大值 — —例如,電腦會認為 「在這個5×5的像素塊中, 影響最大的是255這個像素點. 」儘管不能確定這個值是哪個像素點,但是確切位置並沒有那麼重要,知道它大概位置就好了。 ( 注意:這個方法並不好。會造成信息的丟失。膠囊網絡就沒採用這個操作,這是一個重要的進步。)
Dropout 層;這一層通過隨機的將一些激活了的神經元置零來實現「dropout」。這麼做會使網絡更加健壯(有點類似於你吃了不乾淨的東西,卻幫助強化了你的免疫系統 這麼做之後網絡對一些小的改變也能免疫了) 還會減小過擬合。 只有訓練時會使用Dropout。
最後的全連接層;對於分類問題,我們希望最後一層不同的神經元代表不同類別。這一層關注前一層的輸出,(即高階特徵的激活圖)並確定出哪些特徵與某個類相關。
SoftMax 層;有時加上這一層來表示每一類的輸出,並把這個輸出傳遞給損失函數。 Softmax 代表了不同類輸出的概率分布。
通常,有更多的提供非線性和保留維度(就像在邊緣周圍填充0)的網絡層,它們能夠幫助改善神經網絡的魯棒性以及防止過度擬合。但是接下來有一些基本概念你需要理解。
現在,重要的一點是,這些層只能是有序列的聯結在一起。這和膠囊神經網絡的結構相反。
神經網絡結構,來自谷歌的文章,是Szegedy,Toshev&Erhan提出的神經網絡
卷積神經網絡有什麼問題?
如果您對此感興趣,請觀看Hinton的課,裡面講解的就是這個問題。下面是膠囊神經網絡能夠改善這些問題的幾個要點:
Hinton說,膠囊神經網絡擁有很少層級的分支結構(網絡由以神經元組成的層組成,就是這樣),並且這使我們需要將每一層的神經元分組到「膠囊」裡面,這種「膠囊」就像小模塊,在小模塊裡面會進行大量的計算,然後輸出一個匯總結果。
問題一:「池化」使信息丟失
CNN運用「池化」或與之等效的方法來「總結」小區域中發生的情況,並理解圖像中越來越大的塊。這是一個讓CNN網絡運作良好的解決方案之一,但與此同時它會丟失寶貴的信息。
膠囊神經網絡會計算一個小特徵和大特徵的姿態關係(跨越邊界和旋轉)。
這些信息的丟失會造成空間信息的丟失。
問題2:CNN沒有考慮圖像的每一部分之間的空間關係。也就是說,它們也對於物體的方向過於敏感了
二次抽樣(和池化)使圖片失去了精確的空間關係,例如鼻子和嘴巴。身份特性的識別需要精確的空間關係。——Hinton,2012,在演講中
CNN不會考慮底層對象之間的空間關係。通過這些平層中的神經元將它們看到的物體照亮,它們識別到了那個物體呈現出的形態。但是它們會傳遞到其他激活和合併圖層,並傳遞到下一層神經元(過濾器),而不會意識到我們在該單層中識別的這些對象之間的關係。
他們只是說明他們的存在。
所以一個(簡單的)神經網絡能夠將巴勃羅和畢卡索歸類為小狗,「小狗 - 鬥牛梗混合」也能同樣的被很好的識別。
普通的(卷積)神經網絡能夠將這兩隻可愛的狗視為同類型的狗臉,因為它並不介關心組成狗臉的元素在空間中相對於彼此的位置。畢卡索(左邊的狗)將幸運的不會被模型分錯,但我們真的想要有一個模型可以認識到,這不是一個常見的柯基犬 - 鬥牛犬混合狗的例子。圖片來源:愛犬救援
神經網絡會將這兩隻小狗是被為典型「小狗 - 鬥牛梗混合」,因為他們的圖像特徵都符合面部卷積層的情況,例如:
if: (2 eyes & pitbullmix_snout
+ pitbullmix_wet_nose & mouth)
then: pitbullmix_face
不正確地激活pitbullmix_face的神經元,而不是像下面這樣的東西:
if: 2 eyes
& BELOW: pitbullmix_snout
& pitbullmix_wet_nose
& BELOW: mouth
then: pitbullmix_face
相反地,膠囊神經網絡反映方向信息和內容,並連接神經元與膠囊以推斷空間關係並保留姿勢信息。
缺少將膠囊分組的呈現、姿態計算和膠囊之間的重疊檢查,會導致下一個問題。
問題3:CNN不能將對幾何關係的理解傳遞到新的視點上
為了正確給圖像分類,這使他們對原始圖像更加敏感。
CNN擅長解決那些與他們訓練的模型相似的問題,它可以把圖像或者目標物體分類的非常好。
但當物件有一些旋轉角度時,尤其是3D的情況,CNN則識別不出來。
一種解決方案是人為地創建傾斜展示的圖像或圖像組,並將它們添加到「訓練」集中。 但是,這樣仍然缺乏一個更為穩健的結構。
對不變視點的空間關係姿態進行編碼
所以,我們應該怎樣編碼3D物體之間的空間關係呢?
Hinton從一個已經被解決的問題領域——3D 計算機圖形學中取得靈感。
在3D圖形中,姿態矩陣是表示對象之間關係的特殊技術。 姿勢本質上是代表平移加旋轉的矩陣。 現在我們得到了它。 我們可以使用子對象之間的姿態關係保留空間關係信息; 測量物體之間的相對旋轉和平移作為4D姿態矩陣。
這對於理解膠囊之間的動態路徑選擇很重要。
現在我們知道了神經網絡的基礎以及空間識別的問題,我們可以繼續了解最近發展出的解決方式:膠囊神經網絡。這將是我們下一篇的主題。請繼續收看!
博客原址 https://towardsdatascience.com/capsule-neural-networks-are-here-to-finally-recognize-spatial-relationships-693b7c99b12
更多文章,關注雷鋒網 雷鋒網(公眾號:雷鋒網)雷鋒網
添加雷鋒字幕組微信號(leiphonefansub)為好友
備註「我要加入」,To be an AI Volunteer !
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。