卷積神經網路學習1 卷積層

2021-09-22 17:03:06 字數 3202 閱讀 7362

卷積神經網路常用於計算機視覺當中, 應用在計算機視覺當中, 就要面臨乙個挑戰, 那就是輸入資料非常的大, 假如輸入乙個1000 1000的, 那麼他就有1000 1000 3(的rgb三通道)個資料, 對於300w的資料量, 那麼當我們第乙個隱藏層有1000個神經元進行全連線時, 那麼將會有300w 1000個引數, 要訓練30億的引數, 不僅僅需要大量的, 還需要很好的計算平台來運算, 因此, 提出了卷積這一概念。

這是在網上down的一張**, 他形象的表達了卷積的過程。

計算過程,取原始影象左上3 * 3的矩陣和卷積核進行點乘計算,計算結果再累加求和,18 * 1 + 54 * 0 + 51 * 1 + 55 * 0 + 121 * 1 + 75 * 0 + 35 * 1 + 24 * 0 + 204 * 1 = 429。然後, 原始影象上的3 * 3矩陣向右滑動一格, 同樣和卷積核進行點乘累加求和操作, 得到505, 依次類推。

由上圖的計算可知,6 * 6的影象, 在使用3 * 3的卷積核進行卷積運算之後, 得到了乙個4 * 4的輸出, 當然, 我們可以把4 * 4的矩陣, 看作是一張影象, 那是因為你的3 * 3過濾器在6 * 6矩陣中,只可能有4 * 4種可能的位置。因此,如果我們有乙個n * n的影象,用f * f的卷積核做卷積,那麼輸出的維度就是(n - f + 1) * (n - f + 1)。在這個例子裡是6 - 3 + 1 = 4,因此得到了乙個4 * 4的輸出。

我們這樣做其實並不好, 這樣做有2個缺點。

那麼, 我們怎麼來避免這種事情的發生呢? 於是, 我們採用原始資料邊緣補零操作, 也就是說在原始矩陣的外圍補上一圈0, 那麼6 * 6的矩陣, 就被補成了8 * 8的, 然後再進行卷積運算, 經過3 * 3的卷積核之後, 結果仍然為6 * 6的, 和原始矩陣的大小一樣, 並且, 原始資料的邊緣資料也進行了多次使用, 雖然並不能完全和中間的資料一樣進行多次使用, 但是卻也在一定程度上降低了丟失資料的問題。

接下來, 我們定義一下:

對於補零操作, 有兩種選擇, 當p = 0時(不進行補零), 我們叫它valid卷積, 當p > 0時, 我們叫它same卷積。

因此:卷積核的f為啥總是奇數?

其實, 卷積核的大小, 並不是說不能為偶數, 但是更多情況下我們選擇奇數更為合適。

卷積步長,就是說, 原始影象上的黃色矩陣每次向右移動的距離, 如下圖所示, 步長為2. 此時5 * 5的矩陣, 進過3 * 3的卷積核進行卷積之後, 輸出結果為2* 2的矩陣。

如果你用乙個f×f的過濾器卷積乙個n * n的影象,你的padding為p,步幅為s,在這個例子中p = 0, s=2,你會得到乙個輸出,因為現在你不是一次移動乙個步子,而是一次移動s個步子,輸出於是變為((n + 2p − f) / s + 1) * ((n + 2p − f) / s + 1)

當步長大於1時, 會出現乙個問題, 那就是(n + 2p − f) / s的商可能不是整數, 那麼這種情況下, 我們一般進行向下取整操作, 也就是說, 你的3 * 3的卷積核必須完全處於影象中或者填充之後的影象區域內才輸出相應結果。

上面我們介紹了對2維影象進行卷積, 接下來我們看一下如何對三維影象進行卷積操作。

對於一張彩圖來說, 他有rgb三通道, 因此, 他的大小是n * n * 3, 因此我們要對它進行卷積時, 卷積核就不能再選用f * f的二維卷積核了, 我們需要選用f * f * 3的三維卷積核, 3分別對應rgb三個通道。

假如, 我們的原始影象是乙個6 * 6 * 3的, 我們的卷積核採用3 * 3 * 3的, 如下圖所示:

輸入影象的的左上角的第乙個3 * 3 * 3的立方體,和卷積核進行計算之後, 得到的結果, 就是4 * 4矩陣裡面的第乙個值, 依次類推, 此處應該注意的是, 經過卷積計算之後的結果, 是乙個4 * 4的二維矩陣, 並不是三維。

上面我們看到了, 當我們有乙個6 * 6 * 3的矩陣時, 經過乙個3 * 3 * 3的卷積核進行卷積計算之後, 得到了乙個4 * 4的二維矩陣, 乙個卷積核就相當於乙個神經元, 那麼乙個卷幾層會有多個神經元, 也就是有多個卷積核, 那麼我有多個不同的3 * 3 * 3的卷積核 我就能計算得到多個不同的4 * 4的矩陣.

總結一下: 假如我有一張n * n * d(通道數)的輸入資料, 然後和乙個f * f * d的卷積核進行same卷積,輸出是乙個n * n的二維矩陣, 當我和d2f * f * d的卷積核進行same卷積, 輸出是d2n * n的二維矩陣, 此時我們可以把這d2n * n的二維矩陣進行疊放, 那麼就得到乙個n * n * d2的矩陣, 因此, 每一層卷積神經網路的卷積核的個數, 也就是輸出影象的通道數。

------------------未完---------------

《1。卷積神經網路》

1.簡述卷積的基本操作,並分析其與全連線層的區別 答 具有區域性連線和權值共享的特點。卷積操作能夠在輸出資料中大致保持輸入資料的結構資訊 2.在卷積神經網路中,如何計算各層的感受野大小?答 3.卷積層的輸出尺寸 參數量和計算量 答 輸出尺寸 1.簡述分組卷積及其應用場景 答 分組卷積就是將輸入通道和...

卷積神經網路入門 1 卷積型別

一般kernel size 3,padding取1,這樣feature map取決於stride 參數量 cincoutk k torch.nn.conv2d in channels,out channels,kernel size,stride 1,padding 0,dilation 1,gro...

卷積神經網路 1 1 卷積核

卷積神經網路中卷積核的作用是提取影象更高維的特徵,乙個卷積核代表一種特徵提取方式,對應產生乙個特徵圖,卷積核的尺寸對應感受野的大小。經典的卷積示意圖如下 5 5的影象使用3 3的卷積核進行卷積,結果產生3 3 5 3 1 的特徵影象。卷積核的大小一般是 2n 1 2n 1 的奇數乘奇數大小 n 1 ...