卷積神經網路四種卷積型別

dicksonjyl560101發表於2018-12-17

卷積神經網路四種卷積型別

 

https://blog.csdn.net/weixin_42137700/article/details/85043644


 

 

一般卷積

首先,我們需要就定義卷積層的一些引數達成一致。

卷積核大小(Kernel Size) :卷積核定義了卷積的大小範圍,二維卷積核最常見的就是 3*3 的卷積核。

步長(Stride) :步長定義了當卷積核在影像上面進行卷積操作的時候,每次卷積跨越的長度。在預設情況下,步長通常為 1,但我們也可以採用步長是 2 的下采樣過程,類似於 MaxPooling 操作。

填充(Padding) :卷積層採用一定數量的輸入通道(I),並且設計特定數量的輸出通道(O)。每一層所需的引數可以透過 I*O*K 來進行計算,其中 K 等於卷積核的數量。

輸入和輸出管道 (Input & Output Channels):卷積層採用一定數量的輸入通道

使用核心大小為3,步長為1和填充的2D卷積

 

擴張的卷積

使用3核心進行2D卷積,擴充套件率為2且無填充

擴張的卷積為卷積層引入另一個引數,稱為 擴張率 。這定義了卷積核中值之間的間距。擴張率為2的3x3核心與5x5核心具有相同的視野,而僅使用9個引數。想象一下,獲取一個5x5核心並刪除每一個第二列和第二行(間隔刪除),就是我們介紹的卷積。

這以相同的計算成本提供了更寬的視野。擴張卷積在實時分割領域中特別受歡迎。如果您需要廣泛的視野並且無法承受多個卷積或更大的核,請使用它們。

 

轉置卷積

(又稱解卷積或分數跨度卷積)

有些訊息來源使用名稱deconvolution,這是不合適的,因為它不是解卷積。為了使事情更糟,確實存在解卷積,但它們在深度學習領域並不常見。實際的反摺積會使卷積過程恢復。想象一下,將影像輸入到單個卷積層中。現在取出輸出,將它扔進一個黑盒子裡然後再出現原始影像。這個黑盒子進行反摺積。它是卷積層的數學逆。

轉置卷積有點類似,因為它產生與假設的反摺積層相同的空間解析度。但是,對值執行的實際數學運算是不同的。轉置卷積層執行常規卷積,但恢復其空間變換。

2D 卷積,沒有填充,步幅為2,核心為3

此時你應該很困惑,讓我們看一個具體的例子。將5×5的影像送入卷積層。步幅設定為2,填充停用,核心為3x3。這導致2x2影像。

如果我們想要反轉這個過程,我們需要逆數學運算,以便從我們輸入的每個畫素生成9個值。然後,我們以2的步幅遍歷輸出影像。這將是反摺積。

轉換2D卷積,沒有填充,步幅為2,核心為3

轉置卷積不會這樣做。唯一的共同點是它保證輸出也是5x5影像,同時仍然執行正常的卷積操作。為此,我們需要在輸入上執行一些花哨的填充。

正如您現在可以想象的那樣,此步驟不會從上面顛倒過程。至少不涉及數值。

它只是從之前重建空間解析度並執行卷積。這可能不是數學逆,但對於編碼器 - 解碼器架構,它仍然非常有用。這樣我們就可以將影像的升級與卷積相結合,而不是進行兩個單獨的處理。

 

可分離的卷積

在可分離的卷積中,我們可以將核心操作分成多個步驟。讓我們將卷積表示為 y = conv(x,k) ,其中 y 是輸出影像, x 是輸入影像, k 是核。簡單。接下來,假設k可以透過以下公式計算: k = k1.dot(k2) 。這將使它成為可分離的卷積,因為我們可以透過用k1和k2進行2個1D卷積來得到相同的結果,而不是用k進行2D卷積。

Sobel X 和Y濾鏡

以Sobel核心為例,它通常用於影像處理。你可以透過乘以向量[1,0,-1]和[1,2,1] .T得到相同的核心。在執行相同操作時,這將需要6個而不是9個引數。上面的例子顯示了所謂的 空間可分卷積 ,據我所知,它不用於深度學習。

編輯:實際上,透過堆疊1xN和Nx1核心層,可以建立與空間可分離卷積非常相似的東西。這最近在一個名為EffNet的架構中使用,顯示了有希望的結果。

在神經網路中,我們通常使用稱為 深度可分離卷積的 東西 這將執行空間卷積,同時保持通道分離,然後進行深度卷積。在我看來,透過一個例子可以最好地理解它。

假設我們在16個輸入通道和32個輸出通道上有一個3x3卷積層。詳細情況是,32個3x3核遍歷16個通道中的每個通道,產生512(16x32)個特徵對映。接下來,我們透過新增它們來合併每個輸入通道中的1個特徵圖。由於我們可以做32次,我們得到了我們想要的32個輸出通道。

對於同一示例中的深度可分離卷積,我們遍歷16個通道,每個通道有1個3x3核心,為我們提供了16個特徵對映。現在,在合併任何東西之前,我們遍歷這16個特徵對映,每個特徵對映有32個1x1卷積,然後才開始將它們加在一起。這導致656(16x3x3 + 16x32x1x1)引數與上面的4608(16x32x3x3)引數相反。

該示例是深度可分離卷積的特定實現,其中所謂的 深度乘數 為1.這是迄今為止這種層的最常見設定。我們這樣做是因為空間和深度資訊可以解耦的假設。看一下Xception模型的表現,這個理論似乎有效。由於其有效使用引數,深度可分離卷積也用於移動裝置。

 

 

 

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2285393/,如需轉載,請註明出處,否則將追究法律責任。

相關文章