CNN卷積神經網絡學習筆記1:背景介紹

     Convolutional Neural Network 卷積神經網絡是基於人工神經網絡提出的。人工神經網絡模擬人的神經系統,由一定數量的神經元構成。在一個監督學習問題中,有一組訓練數據(xi,yi) ,x是樣本,y是label,把它們輸入人工神經網絡,會得到一個非線性的分類超平面hw,b(x) ,在這篇筆記中先梳理一下傳統人工神經網絡的基本概念,再基於傳統人工神經網絡簡單介紹卷積神經網絡。

1,神經元neuron

     一個神經元是神經網絡中的一個運算單元,它實質上就是一個函數。下圖是一個神經元的示意圖:
這裏寫圖片描述
     有3個輸入x1,x2,x3 ,+1是一個偏置值(bias),輸出hw,b(x)=f(wTx)=f(3i=1wixi+b) ,f是激活函數(activation function),這裏的激活函數用的是sigmoid函數:

f(z)=11+exp(z).

sigmoid函數圖像如圖:
這裏寫圖片描述
     激活函數是以0.5爲分界,讓大值更逼近1,小值更逼近0,因爲人的神經元就是有分“激活”和“不激活”兩種狀態,刺激達到一定程度,就被激活,傳播信號,達不到就不激活,不傳播信號,人工神經網絡中激活函數的設計,應該是爲了模擬這個過程。

2,人工神經網絡Neural Network

     人工神經網絡就是由多個上述的神經元組合成的,下圖是一個小型的人工神經網絡的示意圖:
這裏寫圖片描述
     有3個輸入單元,這個輸入單元的個數一般由樣本向量的維度決定,比如輸入的樣本是sift特徵點,那麼就有128個輸入單元。+1是偏置,a(l)i 是指第l層的激活函數。這個神經網絡的參數是(W(1),b(2),W(2),b(2)) ,其中W(1) 是指第1層到第2層之間的連接的權值,是一個矩陣,b(1) 是指它們之間的連接偏置,是一個向量。W(l)i,j 指的是第l層的unit j和第l+1層的unit i之間的連接的權值,它是一個數值,b(l)i 是連接到第l+1層unit i的偏置,所有連接unit i的連接都使用這同一個偏置值,在圖中連接到第2層的三個unit的偏置值都是+1。在圖中,L1是輸入層(input layer),L2是隱層(hidden layer),因爲這一層每個unit的值是無法觀測到的,L3是輸出層(output layer)。

     當然輸出層也可以有多個unit,如下圖,在label y是向量的情況下,這個unit個數一般和y的維度一致。
這裏寫圖片描述

3,卷積神經網絡

     卷積神經網絡中,輸入就是一幅幅的圖像,權值W就是卷積模板,一般是卷積層和下采樣層交替,最後是全連接的神經網絡,也就是上述經典的人工神經網絡。如下是一個簡單的卷積神經網絡示意圖:
這裏寫圖片描述
     C是卷積層,S是下采樣層。輸入的一幅圖像,在C1層,通過和3個卷積模板做卷積運算,然後加上偏置值,再經過sigmoid激活函數,得到3幅輸出圖像,在S2層,對C1層輸出的3幅圖像做下采樣,假設採樣因子是2,也就是圖中每2*2的patch中的4個像素進行求和,再加偏置,再通過激活函數,得到3張尺寸減小了的輸出圖像。同樣的,再經過C3,S4。將S4的輸出拉成一個向量,輸入傳統的神經網絡中,並得到輸出。
     如下圖是有人對卷積神經網絡每一層輸出的特徵圖像做的可視化:
這裏寫圖片描述
     可以看到,第1層輸出的特徵圖像還是很簡單的形狀和顏色信息,隨着層數增多,到第3層的輸出特徵圖,已經包含了相當複雜的豐富的細節信息,能夠初步辨別目標了。

4,感受野(receptive field)和權值共享

     除了增加捲積層和採樣層,在傳統人工神經網絡的基礎上,卷積神經網絡還通過感受野和權值共享大大地減少了參數,降低了訓練難度,也避免了參數過多引起過擬合(overfitting)。
     卷積神經網絡的輸入是一幅幅的圖像,根據傳統的人工神經網絡,在第2層的每個unit都要和輸入層圖像的每個像素連接,這裏我們假設第2層有1M個hidden units,輸入圖像大小1000*1000,那麼這一層要訓練的權值w就是1M *1000*1000=10^12個,如下圖左:
這裏寫圖片描述
     而人們發現人是通過一個局部的感受野去感受圖像的,且圖像的空間聯繫是局部的,每一個神經元並不需要對全局圖像感受,每個神經元只用感受局部的圖像區域,然後在更高層將這些神經元的信息綜合起來得到全局信息。這樣,我們就可以減少連接數目了,假設感受野是10*10大小,那麼第2層的每個unit只用和一個10*10的感受野連接,這樣的感受野有100*100個,那麼這一層要訓練的權值w是1M*10*10=10^8個,如上圖右。可以看到,通過感受野,隱層的權值個數已經從10^12降到了10^8個,每個hidden unit有10*10=100個參數。
     人們認爲對於不同的感受野區域,要提取的特徵是相似的,比如邊緣,顏色變化等等,這樣,我們可以在不同的感受野用同樣的方式去感受特徵,也就是說,用一個卷積核去卷積全部的感受野。這就是權值共享,就是讓這1M個hidden units共享同一組參數(100個權值),那麼隱層權值個數就降到了100個。下圖左中的紅色,黑色,綠色,藍色的感受野區域使用相同的參數來做卷積。
這裏寫圖片描述

     如果一種卷積核(也就是濾波器)可以提取圖像的某一方面的特徵,那麼我們在這裏使用100種卷積核,每個卷積核的參數都不一樣,提取出來的特徵也就不一樣,這樣,就可以輸出100種特徵圖。上圖右是紅色和黑色兩種卷積核,在卷積層會輸出2中特徵圖。


Reference
http://ufldl.stanford.edu/wiki/index.php/Neural_Networks
http://blog.csdn.net/zouxy09/article/details/8781543
《Visualizing and Understanding Convolutional Networks》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章