1. 程式人生 > >Udacity深度學習之卷積神經網路概念解析

Udacity深度學習之卷積神經網路概念解析

一文卷積神經網路引數解釋


一提到卷積神經網路,有些概念我們需要解析一下,要不然一說卷積神經網路可能會發懵。

patchfilter

       第一次聽到patch,這是個啥?我們先看一下斯坦福大學對卷積核的一個動態介紹[1],這裡直接弄一個圖,動態圖參考文獻[1]:
卷積核
                                                         圖1 卷積核
       Image

代表的就是圖片的輸入,Image圖中的黃色33的塊就是patch,那麼黃色裡紅色數字組成的33矩陣就是卷積核,或者叫filter

例項說明

       為了更清晰說明,我們以一張貓的圖片做立體說明。
       CNN 的第一步是把圖片分成小塊。我們通過選取一個給定寬度和高度的濾波器來實現這一步。濾波器會照在圖片的小塊 patch (影象區塊)上。這些 patch 的大小與濾波器一樣大。
在這裡插入圖片描述
       CNN用濾波器來把圖片分割成更小的 patch,patch 的大小跟濾波器大小相同。我們可以在水平方向,或者豎直方向滑動濾波器對圖片的不同部分進行聚焦。

tride

       tride,也叫步長,表示濾波器在圖片上每一次向右移動的距離。假設步長設為1,圖1卷積核就會變成圖2(第一次移動一個步長後的卷積核圖)。
在這裡插入圖片描述
                                               圖2 移動1位後的卷積核
       濾波器滑動的間隔被稱作 stride(步長)。這是你可以調節的一個超引數。增大 stride 值後,會減少每層總 patch 數量,因此也減小了模型大小。通常這也會降低影象精度。

Filter Depth

      通常都會有多餘一個濾波器,不同濾波器提取一個 patch 的不同特性。例如,一個濾波器尋找特定顏色,另一個尋找特定物體的特定形狀。卷積層濾波器的數量被稱為濾波器深度Filter Depth。
                                         在這裡插入圖片描述

                             上述例子中,一個 patch 與下一層的神經元相連

                                                    來源: MIchael Neilsen

       每個 patch 連線多少神經元?
在這裡插入圖片描述

       這取決於濾波器的深度,如果深度是 k,我們把每個 patch 與下一層的 k 個神經元相連。這樣下一層的高度就是 k,如下圖所示。實際操作中,k是一個我們可以調節的超引數,大多數的 CNNs 傾向於選擇相同的起始值。

       濾波器的深度為k,與下一層的k個神經元相連。

       為什麼我們把一個 patch 與下一層的多個神經元相連呢?一個神經元不夠好嗎?

       多個神經元的作用在於,一個 patch 可以有多個有意義的,可供提取的特點。

       例如,一個 patch 可能包括白牙,金色的須,紅舌頭的一部分。在這種情況下,我們需要一個深度至少為3的濾波器,一個識別牙,一個識別須,一個識別舌頭。

       這隻狗的 patch 有很多有意思的特徵需要提取。包括牙、須以及粉紅色的舌頭。

       一個 patch 連線有多個神經元可以保證我們的 CNNs 學會提取任何它覺得重要的特徵。

       記住,CNN 並沒有被規定尋找特定特徵。與之相反,它自我學習什麼特徵值得注意。
Ref:
1、卷積核動態圖
2、Udacity課程