臺大Machine Learning 2017Fall 卷積神經網絡 Convolutional Neural Network

這是臺大李宏毅教師Machine Learning 2017Fall課程 關於講述卷積神經網絡 Convolutional Neural Network內容的部分。

課程主頁如下:臺大Machine Learning 2017Fall   感興趣的可以去學習下,主頁提供了教學ppt和教學視頻。


一.首先有這樣一個問題,爲什麼CNN非常適用於圖像識別?這裏給出了3個性質。

1.Some patterns are much smaller than the whole image。

圖片中一些小的模式通常比整個圖片小很多,例如下圖中的鳥嘴。鳥嘴可以用一個神經元檢測到。


2.The same patterns appear in different regions.

同樣的模式可能會出現在圖片的不同區域,如下圖中的鳥嘴可以在圖片上面和圖片中間。


3.Subsampling the pixels will not change the object.

對圖片像素進行Subsampling不會影響圖片表示這個物體,如下圖中將圖片大小減半還是能看出是一個鳥。


接着給出一個做圖像問題的CNN的通常網絡架構,如下:


整個CNN網絡架構中,大致可以由以下幾個部分組成:

(1)Convolution卷積層

(2)Pooling池化層

(3)Fully ConnectedFeedforward network一個全連接的神經網絡

其中convolution和pool可以重複很多次,同時對於上述的3個性質,

性質1,2是由Convolution卷積層來考慮(操作的),性質3是由Convolution卷積層來考慮(操作的)。

具體的卷積和池化是怎麼做的,這裏就不說明了,具體的可以參考李宏毅教師的教學錄像視頻。


二.接着這裏介紹下,CNN和一般的全連接的神經網絡的區別。

那麼,對於網絡層數相同的網絡結構而言,CNN的所得到的function set實際上是全連接得到function set的子集,

因爲CNN採用了很多減少參數的方法,目的是爲了加快訓練速度。

1.對於一個全連接的網絡層,實際上是上一層的所有輸入和下一層的所有輸出都有連接邊,每一個連接邊都需要訓練出

一個weight,這樣參數就很多,如下圖:


2.對於CNN,convolution可以減少訓練的參數量

(1)Filter只和上一層的所有輸入的部分值有連接。

(2)由Filter滑動得到不同區域和下一層的連接邊的訓練weight是共享數值的。

這樣就從兩個程度上減少了總體需要訓練的參數,如下圖:






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