卷積神經網路的一些細節思考(卷積、池化層的作用)

hearthougan發表於2018-10-20

卷積神經網路由卷積核來提取特徵,通過池化層對顯著特徵進行提取,經過多次的堆疊,得到比較高階的特徵,最後可以用分類器來分類。這是CNN的一個大概流程,其具體實現的結構是豐富多樣的,但總的思想是統一的。


CNN整個的計算過程,最重要的有兩點:組合性和區域性不變性(平移、旋轉、尺度放縮)。

組合性:

每個卷積核可以看做某種特徵的提取器。所謂組合性就是將卷積核提取的一些簡單特徵進行組合,得到更高階的特徵。比如影象的人臉分類:

第一個卷積層,可能只是從原始影象畫素中學習到一些邊緣特徵,第二個卷積層可以從這些邊緣特徵中探測到簡單的形狀特徵,然後接下來的卷積層,就可以用這些簡單的形狀特徵探測到更高階的特徵。比如人臉的形狀。

區域性不變性:

所謂區域性不變性,比如影象,就是影象經過簡單的平移、旋轉、尺度放縮,池化層在相同的位置依舊可以提取到相同的特徵。是的,這是池化層完成的任務。那麼怎麼樣理解不變性呢,為了方便理解,如下圖示例(來源知乎):

(1)平移不變性:

假設有一個16x16的圖片,裡面有個數字1,我們需要識別出來,這個數字1可能寫的偏左一點(圖1),這個數字1可能偏右一點(圖2),圖1到圖2相當於向右平移了一個單位,但是圖1和圖2經過max pooling之後它們都變成了相同的8x8特徵矩陣,主要的特徵我們捕獲到了,同時又將問題的規模從16x16降到了8x8,而且具有平移不變性的特點。圖中的a(或b)表示,在原始圖片中的這些a(或b)位置,最終都會對映到相同的位置。

 

(2)旋轉不變性:

下圖表示漢字“一”的識別,第一張相對於x軸有傾斜角,第二張是平行於x軸,兩張圖片相當於做了旋轉,經過多次max pooling後具有相同的特徵。

(3)尺度不變性:

下圖表示數字“0”的識別,第一張的“0”比較大,第二張的“0”進行了較小,相當於作了縮放,同樣地,經過多次max pooling後具有相同的特徵。

 

注:這三種操作只能保證小幅度的變換,如果變換幅度較大,池化層並不能保證這種區域性不變性。

池化層:

maxpooling除了剛剛所講的有區域性不變性,還有可以提取顯著特徵的同時降低模型的引數,從而降低模型的過擬合。

因為只是提取了顯著特徵,而捨棄了不顯著的資訊,是的模型的引數減少了,從而一定程度上可以緩解過擬合的產生。

相關文章