首頁/ 娛樂/ 正文

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

深度學習能在計算機視覺中取得突破性的發展,要歸功於卷積神經網路(convolutional neural network, CNN),而卷積神經網路的核心是卷積層(convolutional layer)。

1.為什麼卷積神經網路可用於深度學習影象領域?

因為用傳統全連線神經網路處理影象存在明顯的缺點:

a。影象展開為向量會丟失空間資訊;

b。引數過多,效率低下,難以訓練;

c。大量的引數會導致網路過擬合。

而CNN可以很好的解決上述問題。

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

全連線神經網路與卷積神經網路的結構對

2.卷積神經網路的組成有哪些?

CNN的各層中的神經元是3維排列的:寬度、高度和深度。比如一張32x32大小的彩色影象可表示為32x32x3(分別對應寬高深)。

CNN主要組成部分:輸入層、卷積層、啟用層、池化層和全連線層。

3.卷積層為何能使用互相關運算替代卷積運算?

在深度學習的影象領域中,卷積的主要作用是在一個影象(特徵)上滑動一個卷積核(濾波器),透過卷積操作得到一組新的特徵。由於計算卷積的過程中,需要進行卷積核翻轉等操作,所以實際實現上,常會用更加直觀的互相關(cross-correlation)運算來代替卷積操作,從而減少一些不必要的操作。

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

互相關運算順序:從左至右、從上至下。

如上圖所示,對影象中的藍色區域進行cross-correlation運算,有:

output=a*A+b*B+c*C+d*D+e*E+f*F+g*G+h*H+i*I

卷積運算順序:從右至左、從下至上。

如上圖所示,對影象中的藍色區域進行convolution運算,有:

output = i*A+h*B+g*C+f*D+e*E+d*F+c*G+b*H+a*I

由上述公式可知,卷積運算相當於對filter進行了翻轉(從左往右,從上往下),但是在深度學習中,filter是訓練學習得到的,所以兩種運算方式都不影響模型預測輸出。

因此卷積層雖然得名於卷積運算,但實際使用還是用更加直觀的互相關運算。

4.二維互相關運算

在二維卷積層中,一個二維輸陣列和一個二維核(kernel)陣列透過互相關運算輸出一個二維陣列。

如下圖所示:輸入是一個高和寬均為 3 的二維陣列,我們將該陣列的形狀記為 3X3 或(3,3)。核數組的高和寬分別為 2,該陣列在卷積計算中又稱卷積核或過濾器(filter),卷積核視窗(又稱卷積視窗)的形狀取決於卷積核的高和寬,即 2X2。

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

二維互相關運算

陰影部分為第一個輸出元素及其計算所使用的輸入和核陣列元素:0x0+1x1+3x2+4x3=19。

在互相關運算過程中,卷積視窗從輸入陣列的左上方開始,按從左往右、從上到下的順序滑動,每次滑動都會將視窗中的輸入子陣列與核數組按元素相乘再求和,得到輸出陣列中相應位置的元素。

上述運算過程程式碼實現如下:

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

5.CNN簡單應用演示——影象中物體邊緣檢測

下我們來看個卷積層的簡單應用:檢測影象中物體的邊緣,即找到畫素變化的位置。

先我們構造一張6x8的影象(即高和寬分別為6畫素和8畫素的影象)。它中間4列為黑(0),其餘為(1)。

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

我們將從白到黑的邊緣和從黑到白的邊緣分別檢測成了1 和 -1,其餘部分的輸出全是 0,即檢測到了給定影象的邊緣特徵。

由此可知,卷積層可透過重複使用卷積核有效地表徵區域性空間。

6.二維卷積層

實際應用中,二維卷積層是將輸入和卷積核做互相關運算,然後再加上一個標量偏差來得到輸出。即卷積層的模型引數包括:卷積核和標量偏差。在訓練模型的時候,通常先對卷積核隨機初始化,然後不斷迭代卷積核和偏差,對應於我們之前學的神經網路中的權重w和偏置b。

下面我們根據前面自定義的互相關運算函式corr2d再自定義一個二維卷積層:

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

卷積窗形狀為 pxq的卷積層稱為 pxq卷積層。

同樣, pxq卷積或 pxq卷積核說明卷積核的和寬分別為 p和 q。

7.透過資料學習核數組

我們使用上面物體邊緣檢測中的輸入資料X和輸出資料Y來訓練學習我們構造的核陣列K。

首先基於互相關運算構造一個卷積層,將其卷積核初始化為隨機陣列,然後在每一次迭代訓練中,使用平方誤差作為損失函式來比較Y和卷積層的輸出,然後計算梯度來更新權重引數。

*

下面的演示很好的詮釋了CNN模型訓練

*

AI課堂22: CNN初識卷積神經網路核心——二維卷積層

總結

卷積神經網路的核心作用是提取特徵,主要應用於提取影象特徵;

二維卷積層的核心計算是二維互相關運算,即對二維輸入資料和卷積核做互相關運算再加上偏差;

基於CNN模型的訓練實際上是透過資料來學習卷積核。

相關文章

頂部