卷積神經網路

2022-07-31 05:12:13 字數 3400 閱讀 5329

卷積神經網路的網路結構

卷積神經網路是乙個多層的神經網路,每層由多個二維平面組成,而每個平面由多個獨立神經元組成。

圖:卷積神經網路的概念示範:輸入影象通過和三個可訓練的濾波器和可加偏置進行卷積,濾波過程如上圖,卷積後在c1層產生三個特徵對映圖,然後特徵對映圖中每組的四個畫素再進行求和,加權值,加偏置,通過乙個sigmoid函式得到三個s2層的特徵對映圖。這些對映圖再進行濾波得到c3層。這個層級結構再和s2一樣產生s4。最終,這些畫素被光柵化,並連線成乙個向量輸入到傳統的神經網路,得到輸出。

一般地,c層為特徵提取層,每個神經元的輸入與前一層的區域性感受野相連,並提取該區域性的特徵,一旦該區域性特徵被提取之後,它與其他特徵之間的位置關係也隨之確定下來;s層是特徵對映層,

網路的每個計算層由多個特徵對映組成,每個特徵對映為乙個平面,平面上所有特徵的權值相等。特徵對映結構採用影響函式核小的sigmoid函式作為卷積網路的啟用函式,使得特徵對映具有位移不變性。

此外,由於乙個對映面上的神經元共享權值,因而減少了網路自由引數的個數,降低了網路引數選擇的複雜度。卷積神經網路中的每乙個特徵提取層(c-層)都緊跟著乙個用來求區域性平均與二次提取的計算層(s-層),這種特有的兩次特徵提取結構使網路在識別時對輸入樣本有較高的畸變容忍能力。

3)關於引數減少和權值共享

影象的空間聯絡是區域性的,就像人是通過乙個區域性的感受野去感受外界影象一樣,每乙個神經元都不需要對全域性影象做感受,每個神經元只感受區域性的影象區域,然後在更高層,將這些感受不同區域性的神經元綜合起來就可以得到全域性的資訊了。這樣,我們就可以減少連線的數目,也就是減少神經網路需要訓練的權值引數的個數了。

每個神經元用同乙個卷積核去卷積影象。這樣就只需要100個引數了,但是這樣就只提取了1種特徵,一種濾波器,也就是一種卷積核就是提出影象的一種特徵,例如某個方向的邊緣。那麼需要提取不同的特徵,多用幾個濾波器就可以了。

這樣每種濾波器去卷積影象就得到對影象的不同特徵的放映,我們稱之為feature map。所以100種卷積核就有100和feature map。這100個feature map就組成了一層神經元。

隱層的神經元個數和原影象,也就是輸入的大小,濾波器的大小和濾波器在影象中的滑動步長都有關!

需要注意的一點是,上面的討論都沒有考慮每個神經元的偏置部分。所以權值個數需要加1.這個也是同一種濾波器共享的。

乙個典型的例子:

lenet-5共有7層,不包含輸入,每層都包含可訓練引數(連線權重)。輸入影象為32*32大小。

我們先要明確一點:每個層有多個feature map,每個feature map通過一種卷積濾波器提取輸入的一種特徵,然後每個feature map有多個神經元。

c1層是乙個卷積層,c1層有(5×5+1)×6=156個可訓練引數,有156*(28*28)=122304個連線。

s2層是乙個下取樣層,有6個14*14的特徵圖。s2層每個單元的4個輸入相加,乘以乙個可訓練引數,再加上乙個可訓練偏置。結果通過sigmoid函式計算。可訓練係數和偏置控制著sigmoid函式的非線性程度。每個單元的2*2個感受野並不重疊,因此s2中每個特徵圖的大小是c1中特徵圖大小的1/4。s2層有12個可訓練引數和5880個連線???(怎麼算出來的呢?)

圖:卷積和子取樣過程:卷積過程包括:用乙個可訓練的濾波器fx去卷積乙個輸入的影象(第一階段是輸入的影象,後面的階段就是卷積特徵map了),然後加乙個偏置bx,得到卷積層cx。子取樣過程包括:每鄰域四個畫素求和變為乙個畫素,然後通過標量wx+1加權,再增加偏置bx+1,然後通過乙個sigmoid啟用函式,產生乙個大概縮小四倍的特徵對映圖sx+1。

所以從乙個平面到下乙個平面的對映可以看作是作卷積運算,s-層可看作是模糊濾波器,起到二次特徵提取的作用。隱層與隱層之間空間解析度遞減,而每層所含的平面數遞增,這樣可用於檢測更多的特徵資訊。

f6層有84個單元,有84×120+81個可訓練連線。

最後,輸出層由歐式徑向基單元組成,每類乙個單元,每個有84個輸入。換句話說,每個輸出rbf單元計算輸入向量和引數向量之間的歐氏距離。輸入離引數向量越遠,rbf輸出的越大。乙個rbf輸出可以被理解為衡量輸入模式和與rbf相關聯類的乙個模型的匹配程度的懲罰項。用概率術語來說,rbf輸出可以被理解為使得f6層配置空間的高斯分布的負log-likelihood。給定乙個輸入模式,損失函式應該能使得f6的配置與rbf引數向量(即模式的期望分類)足夠接近。這些單元的引數是人工選取並保持固定的(至少初始時候如此)。這些引數向量的成分被設為-1或1.

rbf引數向量起著f6層目標向量的角色。

5)訓練過程

神經網路用於模式識別的主流是有知道學習網路,無指導學習網路更多的是用於聚類分析。對於有指導的模式識別,由於任一樣本的類別是已知的,樣本在空間的分布不再是依據其自然分布傾向來劃分,而是要根據同類樣本在空間的分布及不同型別樣本之間的分離程度找一種適當的空間劃分方法,或者找到乙個分類邊界,使得不同類樣本分別位於不同的區域內。這就需要乙個長時間並且複雜的學習過程,不斷調整用以劃分樣本空間的分類位置的邊界的位置,是盡可能少的樣本被劃分到非同類區域中。

卷積網路的本質上是一種輸入到輸出的對映,它能夠學習大量的輸入和輸出之間的對映關係,而不需要任何輸入和輸出之間的精確的數學表示式,只要用已知的模式對卷積網路加以訓練,網路就具有輸入輸出對之間的對映能力。卷積網路執行的是有導師訓練,所以其樣本集是由(輸入向量,理想輸出向量)的向量對構成的。所有這些向量對,都應該是**於網路即將模擬的系統的實際「執行」結果。它們可以是從實際執行系統中採集來的。在開始訓練前,所有的權都應該用一些不同的小隨機數進行初始化。「小隨機數」用來保證網路不會因權值過大而進入飽和狀態,而導致訓練失敗;「不同」用來保證網路可以正常學習。實際上,如果用相同的數去初始化權矩陣,則網路無能力學習。

訓練演算法與傳統的反向傳播演算法(bp)差不多。主要包括4步,這4步被分為兩個階段:

第一階段,向前傳播階段:

a) 從樣本集中取乙個樣本(x,yp),將x輸入網路;

b) 計算相應的實際輸出op。

在此階段,資訊從輸入層經過逐級的變換,傳送到輸出層。這個過程也是網路在完成訓練後正常執行時執行的過程。在此過程中,網路執行的是計算(實際上就是輸入域每層的權值矩陣相點乘,得到最後的輸出結果):

op=fn(…(f2(f1(xpw(1))w(2))…)w(n))

第二階段:向後傳播階段

a) 算實際輸出op與相應的理想輸出yp的差;

b) 按極小化誤差的方法反向傳播調整權矩陣。

6)卷積神經網路的優點

卷積神經網路cnn主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由於cnn的特徵檢測曾通過訓練資料進行學習,所以在使用cnn時,避免了顯示的特徵抽取,而隱式地從訓練資料中進行學習。

神經網路 卷積神經網路

這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...

神經網路 卷積神經網路

1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...

卷積神經網路 有趣的卷積神經網路

一 前言 最近一直在研究深度學習,聯想起之前所學,感嘆數學是一門樸素而神奇的科學。f g m1 m2 r 萬有引力描述了宇宙星河運轉的規律,e mc 描述了恆星發光的奧秘,v h d哈勃定律描述了宇宙膨脹的奧秘,自然界的大部分現象和規律都可以用數學函式來描述,也就是可以求得乙個函式。神經網路 簡單又...