當前位置:
首頁 > 最新 > Capsule介紹(一)-cnn和capsule的基本概念介紹

Capsule介紹(一)-cnn和capsule的基本概念介紹

1、深度學習與CNN介紹

1.1深度學習介紹

深度學習是指多層神經網路上運用各種機器學習演算法解決圖像,文本等各種問題的演算法集合。深度學習從大類上可以歸入神經網路,不過在具體實現上有許多變化。深度學習的核心是特徵學習,旨在通過分層網路獲取分層次的特徵信息,從而解決以往需要人工設計特徵的重要難題。深度學習是一個框架,包含多個重要演算法:

Convolutional Neural Networks(CNN)卷積神經網路

AutoEncoder自動編碼器

Sparse Coding稀疏編碼

Restricted Boltzmann Machine(RBM)限制波爾茲曼機

Deep Belief Networks(DBN)深信度網路

Recurrent neural Network(RNN)多層反饋循環神經網路神經網路

對於不同問題(圖像,語音,文本),需要選用不同網路模型才能達到更好效果。此外,最近幾年增強學習(Reinforcement Learning)與深度學習的結合也創造了許多了不起的成果,AlphaGo就是其中之一。

1.2CNN介紹

卷積神經網路(Convolutional Neural Networks, CNN)是多層感知機(MLP)的變種。由生物學家休博爾和維瑟爾在早期關於貓視覺皮層的研究發展而來。視覺皮層的細胞存在一個複雜的構造。這些細胞對視覺輸入空間的子區域非常敏感,我們稱之為感受野,以這種方式平鋪覆蓋到整個視野區域。這些細胞可以分為兩種基本類型,簡單細胞和複雜細胞。簡單細胞最大程度響應來自感受野範圍內的邊緣刺激模式。複雜細胞有更大的接受域,它對來自確切位置的刺激具有局部不變性。

卷積神經網路是一種多層神經網路,擅長處理圖像特別是大圖像的相關機器學習問題。卷積網路通過一系列方法,成功將數據量龐大的圖像識別問題不斷降維,最終使其能夠被訓練。CNN最早由Yann LeCun提出並應用在手寫字體識別上(MINST)。LeCun提出的網路稱為LeNet,其網路結構如下:

這是一個最典型的卷積網路,由卷積層、池化層、全連接層組成。其中卷積層與池化層配合,組成多個卷積組,逐層提取特徵,最終通過若干個全連接層完成分類。卷積層完成的操作,可以認為是受局部感受野概念的啟發,而池化層,主要是為了降低數據維度。綜合起來說,CNN通過卷積來模擬特徵區分,並且通過卷積的權值共享及池化,來降低網路參數的數量級,最後通過傳統神經網路完成分類等任務。

CNN最大的特點就是稀疏連接、權值共享以降低網路參數的數量級,那為什麼要降低參數量級?如果我們使用傳統神經網路方式,對一張圖片進行分類,那麼,我們把圖片的每個像素都連接到隱藏層節點上,那麼對於一張1000x1000像素的圖片,如果我們有1M隱藏層單元,那麼一共有10^12個參數,這顯然是不能接受的。(如左圖所示)

但是在CNN里,可以大大減少參數個數,也就是說,我們用10x10這樣大小的過濾器就能表示邊緣等底層特徵圖像上不同小片段,以及不同圖像上的小片段的特徵是類似的,也就是說,我們能用同樣的一組分類器來描述各種各樣不同的圖像如右圖所示,我們用100個10x10的小過濾器,就能夠描述整幅圖片上的底層特徵。

因此,CNN具有一些傳統技術所沒有的優點:良好的容錯能力、並行處理能力和自學習能力,可處理環境信息複雜,背景知識不清楚,推理規則不明確情況下的問題,允許樣品有較大的缺損、畸變,運行速度快,自適應性能好,具有較高的解析度。它是通過結構重組和減少權值將特徵抽取功能融合進多層感知器,省略識別前複雜的圖像特徵抽取過程。CNN的泛化能力要顯著優於其它方法,已被應用於模式分類,物體檢測和物體識別等方面。

2、CNN的不足和膠囊網路的提出

2.1CNN的不足

CNN的優點很多,但在實際的應用中也暴露出一些不足:

(1)圖像遷移後的一致性識別能力低,這裡的圖像遷移是指CNN對於左右的平移,旋轉和加上邊框等難以察覺出一致性,這就造成了CNN所需的訓練集很大,數據增強技術雖然有用,但提升有限;

(2)CNN的問題是其神經元之間都是平等的,沒有內部的組織結構,這導致無法保證在不同位置,不同角度下對同一個物品做出相同的識別,也無法提取不同卷積核得出的子結構之間的相互關係。

上圖會被CNN看成是一張臉,這是因為CNN識別臉的時候,是識別臉的幾個組成部分,下圖中的確有兩個眼睛,有鼻子,有嘴,雖然其位置不對,這對於CNN來說就夠了,CNN是不會注意子結構之間關係的。

2.2膠囊網路的提出

為解決上述問題,hiton提出capsule網路,那麼膠囊網路究竟是什麼?

在計算機圖形學中,表達一個場景都是從抽象的表示開始。如上圖所示位置x=20和y=30的矩形旋轉16°,位置x=24,y=25的三角形旋轉65°,即每個對象類型都有不同的實例化參數,然後你調用一些渲染函數得到一幅圖像。下圖是上圖抽象表示的一個逆向過程,從一個圖像開始,試著找出它包含的對象以及它們的實例化參數,這即是膠囊網路的工作任務。一個膠囊網路基本上是一個試圖執行反向圖形解析的神經網路,它由許多膠囊組成,一個膠囊是一個函數,它試圖在給特定位置的目標預測它的存在性以及實例化參數,因此,capsule可以看做是一些神經元的集合,這些神經元都是某一類別實體的激活的向量。向量的長度表示實體存在概率,向量的方向表示所代表向量的實例化參數。

下面以幾個簡單的例子來說明膠囊網路的工作方式:假設我們訓練一個識別數字2的網路,我們首先做的是在每一層訓練一些膠囊(即一組相對獨立的神經元),每一個膠囊只負責圖形中的一個子結構,例如圖中的三個膠囊,分別識別橫線,豎線和銳角,每個膠囊給出圖形中每個位置出現自己負責識別的特徵的概率(intensity),之後再通過一個編碼器,綜合每一個膠囊給出的在各個位置的強度信息,最終得到經過重構後的圖像。

以識別數字7為例,下圖中的第一行是傳統的神經元,會給出對應圖形是不是7的概率,但這個神經網路卻無法識別第三行的數字。一個包含兩個神經元的膠囊可以一個識別圖形的翻轉情況,一個識別具體的形狀。不管圖形是第二行那樣豎直站立的,還是像第三行那樣歪倒的,膠囊網路都可以正確的識別。

3、小結

(1)CNN具有良好的容錯、並行處理和自學習能力,可處理環境信息複雜,背景知識不清楚,推理規則不明確情況下的問題,允許樣品有較大的缺損、畸變,運行速度快,自適應性能好,但圖像遷移後的一致性識別能力低,不會注意子結構之間的關係。

(2)膠囊網路神經元的輸出從一個標量變成了一組向量,這如同讓網路流動起來了。每一個識別子結構的膠囊,使原始圖形中隱藏的信息在bits數變小的情況下實現了高度的保真。

(3)CNN和膠囊神經網路並不是互斥的,網路的底層也可以是卷積式的,畢竟膠囊網路善於的是在已抽象信息中用更少的比特做到高保真的重述。

參考資料:

https://jhui.github.io/2017/11/03/Dynamic-Routing-Between-Capsules/

https://www.cnblogs.com/alexcai/p/5506806.html

http://www.sohu.com/a/220730417_314987

https://arxiv.org/abs/1710.09829

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

客官,這個瓜很甜的,不來一口嗎?
細數現役NBA「父子檔」,若他們巔峰同隊,將是怎樣一番景象?

TAG:全球大搜羅 |