卷積神經(jīng)網(wǎng)絡(luò)1

簡介

卷積神經(jīng)網(wǎng)絡(luò)(CNN)最初是為了解決圖像識別等問題設(shè)計的,現(xiàn)在不僅限于圖像和視頻,還可以應(yīng)用于音頻信號、文本數(shù)據(jù)等。

早期研究中,最大的挑戰(zhàn)是如何組織特征,因為 圖像數(shù)據(jù)不像其他類型的數(shù)據(jù)那樣可以通過人工理解來提取特征。譬如股票預(yù)測模型中的許多金融因子等等。在深度學(xué)習(xí)出現(xiàn)之前,大多使用SIFT、HoG算法進行提取具有良好區(qū)分性的特征,但還是很有局限性,錯誤率高,常年難以突破。

卷積神經(jīng)網(wǎng)絡(luò)不需要將特征提取和分類訓(xùn)練兩個過程分開,在訓(xùn)練時就自動提取了最有效的特征。CNN可以直接使用圖像 的原始像素作為輸入,不必使用SIFT等算法進行特征提取,減輕了傳統(tǒng)算法如SVM等所需要做的大量數(shù)據(jù)預(yù)處理工作。同時,CNN具有很強的泛化性,最大的特點在于卷積的權(quán)值共享,可以大幅減少神經(jīng)網(wǎng)絡(luò)的參數(shù)量,防止過擬合的同時又降低了模型的復(fù)雜度

基于全連接的模型與基于CNN的模型對比

我們可以看到CNN和基于Affine層的區(qū)別,CNN中新增了Conv層和Pooling層,連接順序變?yōu)榱薱onvolution-ReLu-(Pooling層有時候會省略)。

卷積層

全連接層存在的問題

全連接層會忽略數(shù)據(jù)的“形狀”,在輸入數(shù)據(jù)時,強行將數(shù)據(jù)拉為一維數(shù)據(jù),從而忽視形狀,無法利用與形狀相關(guān)的信息,而卷積層可以保持形狀不變

CNN中,有時候?qū)⒕矸e層的輸入輸出數(shù)據(jù)稱之為特征圖。

卷積運算

卷積層進行的運算就是卷積運算,卷積運算相當(dāng)于圖像處理中的“濾波器運算”。

卷積運算的例子

如圖所示,卷積運算對輸入數(shù)據(jù)應(yīng)用濾波器,對于輸入數(shù)據(jù),卷積運算以一定間隔滑動濾波器的窗口并應(yīng)用,如圖所示,

卷積運算的計算順序

將各個位置上對應(yīng)濾波器的元素和輸入的對應(yīng)元素進行相乘,然后再求和(乘積累加運算),然后將結(jié)果保存到輸入的對應(yīng)位置。

CNN中也存在偏置,如圖所示,向應(yīng)用了濾波器的結(jié)果數(shù)據(jù)加上了偏置,偏置通常為1×1的數(shù)據(jù),向濾波器的所有元素上加。


卷積運算的偏置

填充

在進行卷積層的處理前,有時候需要向輸入數(shù)據(jù)的周圍填入固定的數(shù)據(jù),稱之為填充,如圖,向輸入數(shù)據(jù)周圍填入0,這樣做主要是為了調(diào)整輸出的大小

填充

步幅

應(yīng)用濾波器之間位置的間隔稱之為步幅,之前的例子都是步幅為1,如圖所示,將步幅設(shè)置為2,


步幅設(shè)置為2的卷積運算

綜上,增大步幅后,輸出大小會變?。辉龃筇畛浜?,輸出大小會變大。

若設(shè)置輸入大小(H,W),輸出大小(OH,OW),濾波器大小(FH,FW),填充P,步幅S,則有


三維數(shù)據(jù)的卷積運算

這里可以看出,以圖像作為比方,圖像都是三通道的,所以我們也采用一個三通道的濾波器,然后按照通道進行輸入數(shù)據(jù)與濾波器之間的卷積運算,并將結(jié)果相加,注意,每一個通道的大小必須相同,通道數(shù)只能設(shè)定為何輸入數(shù)據(jù)相一致的值

三維數(shù)據(jù)的卷積運算示例

三維數(shù)據(jù)的卷積運算過程


基于多個濾波器的卷積運算的例子

卷積運算的處理流

tip:對于其中的偏置,可以使用numpy的廣播功能進行實現(xiàn)。

批處理

在這個批處理版本的數(shù)據(jù)流中,各個數(shù)據(jù)都加了批用的維度,在這里數(shù)據(jù)以4維進行傳輸,網(wǎng)絡(luò)間傳遞的是4維數(shù)據(jù),對這N個數(shù)據(jù)進行了卷積運算,也就是將這N次處理匯總成了1次。

卷積運算的處理流(批處理)

池化層

池化是縮小高、長方向上空間的運算,如圖所示,將一個2×2的區(qū)域縮小成1個元素的處理。

Max池化示例

圖上所示為按照步幅為2的順序,進行2×2范圍的max池化(即為獲取最大值),一般來說,池化的窗口大小會和步幅大小一致。除max池化之外,還有average池化等,在圖像識別領(lǐng)域中主要使用max池化。

池化層有以下特征:

  1. 沒有需要學(xué)習(xí)的參數(shù),池化并不是一個學(xué)習(xí)過程,只是從目標(biāo)區(qū)域中取出所需要的值,最大值或者平均值;
  2. 通道數(shù)不發(fā)生變化,池化是按照通道獨立進行的;
  3. 對微小的位置變化具有魯棒性(健壯性),即輸入數(shù)據(jù)即使發(fā)生微小變化,池化仍會返回相同結(jié)果。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容