一文了解各種卷積結構原理及優劣

2020-12-04 量子位

王小新 編譯自 Medium

量子位 出品 | 公眾號 QbitAI

卷積神經網絡作為深度學習的典型網絡,在圖像處理和計算機視覺等多個領域都取得了很好的效果。

Paul-Louis Prve在Medium上通過這篇文章快速地介紹了不同類型的卷積結構(Convolution)及優勢。為了簡單起見,本文僅探討二維卷積結構。

卷積

首先,定義下卷積層的結構參數。

卷積核為3、步幅為1和帶有邊界擴充的二維卷積結構

卷積核大小(Kernel Size):定義了卷積操作的感受野。在二維卷積中,通常設置為3,即卷積核大小為3×3。

步幅(Stride):定義了卷積核遍歷圖像時的步幅大小。其默認值通常設置為1,也可將步幅設置為2後對圖像進行下採樣,這種方式與最大池化類似。

邊界擴充(Padding):定義了網絡層處理樣本邊界的方式。當卷積核大於1且不進行邊界擴充,輸出尺寸將相應縮小;當卷積核以標準方式進行邊界擴充,則輸出數據的空間尺寸將與輸入相等。

輸入與輸出通道(Channels):構建卷積層時需定義輸入通道I,並由此確定輸出通道O。這樣,可算出每個網絡層的參數量為I×O×K,其中K為卷積核的參數個數。例,某個網絡層有64個大小為3×3的卷積核,則對應K值為 3×3 =9。

空洞卷積

空洞卷積(atrous convolutions)又名擴張卷積(dilated convolutions),向卷積層引入了一個稱為 「擴張率(dilation rate)」的新參數,該參數定義了卷積核處理數據時各值的間距。

卷積核為3、擴張率為2和無邊界擴充的二維空洞卷積

一個擴張率為2的3×3卷積核,感受野與5×5的卷積核相同,而且僅需要9個參數。你可以把它想像成一個5×5的卷積核,每隔一行或一列刪除一行或一列。

在相同的計算條件下,空洞卷積提供了更大的感受野。空洞卷積經常用在實時圖像分割中。當網絡層需要較大的感受野,但計算資源有限而無法提高卷積核數量或大小時,可以考慮空洞卷積。

轉置卷積

轉置卷積(transposed Convolutions)又名反卷積(deconvolution)或是分數步長卷積(fractially straced convolutions)。

反卷積(deconvolutions)這種叫法是不合適的,因為它不符合反卷積的概念。在深度學習中,反卷積確實存在,但是並不常用。實際上,反卷積是卷積操作的逆過程。你可以這麼理解這個過程,將某個圖像輸入到單個卷積層,取卷積層的輸出傳遞到一個黑盒子中,這個黑盒子輸出了原始圖像。那麼可以說,這個黑盒子完成了一個反卷積操作,也就是卷積操作的數學逆過程。

轉置卷積與真正的反卷積有點相似,因為兩者產生了相同的空間解析度。然而,這兩種卷積對輸入數據執行的實際數學運算是不同的。轉置卷積層只執行了常規的卷積操作,但是恢復了其空間解析度。

卷積核為3、步幅為2和無邊界擴充的二維卷積結構

舉個例子,假如將一張5×5大小的圖像輸入到卷積層,其中步幅為2,卷積核為3×3,無邊界擴充。則卷積層會輸出2×2的圖像。

若要實現其逆過程,需要相應的數學逆運算,能根據每個輸入像素來生成對應的9個值。然後,將步幅設為2,遍歷輸出圖像,這就是反卷積操作。

卷積核為3×3、步幅為2和無邊界擴充的二維轉置卷積

轉置卷積和反卷積的唯一共同點在於兩者輸出都為5×5大小的圖像,不過轉置卷積執行的仍是常規的卷積操作。為了實現擴充目的,需要對輸入以某種方式進行填充。

你可以理解成,至少在數值方面上,轉置卷積不能實現卷積操作的逆過程。

轉置卷積只是為了重建先前的空間解析度,執行了卷積操作。這不是卷積的數學逆過程,但是用於編碼器-解碼器結構中,效果仍然很好。這樣,轉置卷積可以同時實現圖像的粗粒化和卷積操作,而不是通過兩個單獨過程來完成。

可分離卷積

在可分離卷積(separable convolution)中,可將卷積核操作拆分成多個步驟。卷積操作用y=conv(x, k)來表示,其中輸出圖像為y,輸入圖像為x,卷積核為k。接著,假設k可以由下式計算得出:k=k1.dot(k2)。這就實現了一個可分離卷積操作,因為不用k執行二維卷積操作,而是通過k1和k2分別實現兩次一維卷積來取得相同效果。

X、Y方向上的Sobel濾波器

Sobel算子通常被用於圖像處理中,這裡以它為例。你可以分別乘以矢量[1,0,-1]和[1,2,1]的轉置矢量後得到相同的濾波器。完成這個操作,只需要6個參數,而不是二維卷積中的9個參數。

這個例子說明了什麼叫做空間可分離卷積,這種方法並不應用在深度學習中,只是用來幫你理解這種結構。

在神經網絡中,我們通常會使用深度可分離卷積結構(depthwise separable convolution)。

這種方法在保持通道分離的前提下,接上一個深度卷積結構,即可實現空間卷積。接下來通過一個例子讓大家更好地理解。

假設有一個3×3大小的卷積層,其輸入通道為16、輸出通道為32。具體為,32個3×3大小的卷積核會遍歷16個通道中的每個數據,從而產生16×32=512個特徵圖譜。進而通過疊加每個輸入通道對應的特徵圖譜後融合得到1個特徵圖譜。最後可得到所需的32個輸出通道。

針對這個例子應用深度可分離卷積,用1個3×3大小的卷積核遍歷16通道的數據,得到了16個特徵圖譜。在融合操作之前,接著用32個1×1大小的卷積核遍歷這16個特徵圖譜,進行相加融合。這個過程使用了16×3×3+16×32×1×1=656個參數,遠少於上面的16×32×3×3=4608個參數。

這個例子就是深度可分離卷積的具體操作,其中上面的深度乘數(depth multiplier)設為1,這也是目前這類網絡層的通用參數。

這麼做是為了對空間信息和深度信息進行去耦。從Xception模型的效果可以看出,這種方法是比較有效的。由於能夠有效利用參數,因此深度可分離卷積也可以用於行動裝置中。

相關閱讀

原文:https://medium.com/towards-data-science/types-of-convolutions-in-deep-learning-717013397f4d

更多卷積動畫:https://github.com/vdumoulin/conv_arithmetic

【完】

相關焦點

  • 一文了解空氣淨化器的結構及原理
    打開APP 一文了解空氣淨化器的結構及原理 工程師之餘 發表於 2018-11-07 09:59:28 空氣淨化器的工作原理如下:機器內的微風扇(又稱通風機)使室內空氣循環流動,汙染的空氣通過機內的空氣過濾器(兩次過濾)後將各種汙染物清除或吸附,然後經過裝在出風口的負離子發生器(工作時負離子發生器中的高壓產生直流負高壓),將空氣不斷電離,產生大量負離子,被微風扇送出,形成負離子氣流,達到清潔、淨化空氣的目的。
  • 一文了解卷積神經網絡基礎,建議收藏
    今天給大家講一下卷積神經網絡,主要包括四個部分:卷積神經網絡的歷史、全連接層、卷積層和池化層。CNN的英文全稱是Convolutional Neural Network,雛形是LeCun在1998年發明的LeNet網絡結構。
  • 深度| 一文概覽圖卷積網絡基本結構和最新進展
    選自tkipf.github作者:Thomas Kipf機器之心編譯參與:李詩萌、劉曉坤本文介紹了圖卷積網絡的基本結構,和最新的研究進展,並指出了當前模型的優缺點。通過對半監督學習應用 GCN 證明三層 GCN 模型不需要節點的任何特徵描述就可以對只有一個標籤實例的類進行線性分離。
  • 一文讓你徹底了解卷積神經網絡
    藍色方塊是在原始輸入上進行卷積操作,使用了6個filter得到了6個提取特徵圖。綠色方塊還能對藍色方塊進行卷積操作,使用了10個filter得到了10個特徵圖。每一個filter的深度必須與上一層輸入的深度相等。
  • 萬字長文帶你看盡深度學習中的各種卷積網絡(上篇)
    雷鋒網 AI 科技評論按:深度學習中的各種卷積網絡大家知多少?對於那些聽說過卻又對它們沒有特別清晰的認識的小夥伴們,Kunlun Bai 這篇文章非常值得一讀。Kunlun Bai 是一位人工智慧、機器學習、物體學以及工程學領域的研究型科學家,在本文中,他詳細地介紹了 2D、3D、1x1 、轉置 、空洞(擴張)、空間可分離、深度可分離、扁平化、 分組等十多種卷積網絡類型。
  • 深度卷積神經網絡演化歷史及結構改進脈絡-40頁長文全面解讀
    原標題:深度卷積神經網絡演化歷史及結構改進脈絡-40頁長文全面解讀 自2012年AlexNet網絡出現之後,最近6年以來,卷積神經網絡得到了急速發展,在很多問題上取得了當前最好的結果,是各種深度學習技術中用途最廣泛的一種。在本文中將為大家回顧和總結卷積神經網絡的整個發展過程。
  • 第一性原理之美:從平移對稱性導出卷積
    譯者 | 陳彩嫻校對 | 青 暮卷積的概念無處不在。它究竟有什麼特別之處呢?在本文中,作者從第一性原理中推導出卷積,並表明它自然地來自平移對稱性。在閱讀卷積的起源與歷史的過程中,讀者有機會了解到卷積概念和卷積運算符的發展歷史。
  • 刷臉背後:卷積神經網絡的數學原理
    計算機視覺技術在日常生活中有著非常普遍的應用:發朋友圈之前自動修圖、網上購物時刷臉支付……在這一系列成功的應用背後,卷積神經網絡功不可沒。本文將介紹卷積神經網絡背後的數學原理。
  • 重新發現語義分割,一文簡述全卷積網絡
    全卷積網絡自 2012 年出現以來,在圖像分類和圖像檢測領域取得了巨大成功。本文利用筆記本電腦構建了一個小型全卷積網絡,詳細介紹了全卷積網絡的思路、過程等等,值得一看語義分割是一種學習如何識別圖像中對象範圍的機器學習技術。語義分割賦予機器學習系統與人類相似的理解圖像內容的能力。
  • 從全卷積網絡到大型卷積核:深度學習的語義分割全指南
    U-Net:一種編碼器-解碼器結構  第二種方法使用空洞/帶孔卷積(dilated/atrousconvolutions)結構,來去除池化層。    Dilated/atrous卷積,rate=1是典型的卷積結構  條件隨機場(CRF)預處理通常用於改善分割效果。
  • 一文了解高斯濾波器,附原理及實現過程
    其作用原理和均值濾波器類似,都是取濾波器窗口內的像素的均值作為輸出。其窗口模板的係數和均值濾波器不同,均值濾波器的模板係數都是相同的為1;而高斯濾波器的模板係數,則隨著距離模板中心的增大而係數減小。所以,高斯濾波器相比於均值濾波器對圖像個模糊程度較小。
  • 萬字長文|如何直觀解釋卷積神經網絡的工作原理?
    作者:YJango 日本會津大學|人機互動實驗室博士生 量子位 已獲授權編輯發布 該文是對卷積神經網絡的介紹,並假設你理解前饋神經網絡。 如果不是,強烈建議讀完《如何簡單形象又有趣地講解神經網絡是什麼?》
  • 深入理解卷積網絡的卷積
    卷積神經網絡是一種特殊的神經網絡結構,是自動駕駛汽車、人臉識別系統等計算機視覺應用的基礎,其中基本的矩陣乘法運算被卷積運算取代。它們專門處理具有網格狀拓撲結構的數據。例如,時間序列數據和圖像數據可以看作是一個二維像素網格。
  • 圖像處理中的數學原理詳解17——卷積定理及其證明
    1.4.5 卷積定理及其證明本文引用地址:http://www.eepw.com.cn/article/201705/358650.htm  卷積定理是傅立葉變換滿足的一個重要性質。
  • 神奇GIF動畫讓你秒懂各種深度學習卷積神經網絡操作原理
    打開APP 神奇GIF動畫讓你秒懂各種深度學習卷積神經網絡操作原理 深度學習思考者 發表於 2017-11-15 18:58:34
  • 一文看懂各種流量計工作原理及優缺點!
    流量測量技術日新月異,為了適應各種用途,各種類型的流量計相繼問世,目前已投入使用的流量計已超過 100 種。流量計每種產品都有它特定的適用性,也都有它的局限性。按測量原理分為力學原理、熱學原理、聲學原理、電學原理、光學原理、原子物理學原理等。
  • 了解CNN這一篇就夠了:卷積神經網絡技術及發展
    日前,南洋理工大學研究人員梳理CNN發展歷史,從基礎組成部分講起,介紹並探討CNN在視覺識別方面的原理及應用,是系統深入理解CNN的好文。從結構看,CNN 發展的一個方向就是層數變得更多,ILSVRC 2015 冠軍 ResNet 是 AlexNet 的20 多倍,是 VGGNet 的8 倍多。通過增加深度,網絡便能夠利用增加的非線性得出目標函數的近似結構,同時得出更好的特性表徵。但是,這樣做同時也增加了網絡的整體複雜程度,使網絡變得難以優化,很容易過擬合。   研究人員提出了很多方法來解決這一問題。
  • 入門| 一文了解什麼是語義分割及常用的語義分割方法有哪些
    與圖像分類或目標檢測相比,語義分割使我們對圖像有更加細緻的了解。這種了解在諸如自動駕駛、機器人以及圖像搜尋引擎等許多領域都是非常重要的。因此,本文討論的主題是使用深度學習方法進行有監督的語義分割。卷積層可以有效地捕捉圖像中的局部特徵,並以層級的方式將許多這樣的模塊嵌套在一起,這樣 CNN 就可以試著提取更大的結構了。通過一系列卷積捕捉圖像的複雜特徵,CNN 可以將一張圖的內容編碼為緊湊表徵。但為了將單獨的像素映射給標籤,我們需要將標準 CNN 編碼器擴展為編碼器-解碼器架構。
  • 要想了解卷積神經網絡,首先需要了解三種基本架構
    卷積網絡是研究關於圖像(紋理,圖像尺度等)的抽象層面的一種網絡,跟傳統網絡不同的是,它不僅可以根據一個固定尺寸圖像生成物體識別數據,還可以對圖像其他部分進行其他操作。卷積可以有多個,它的作用是「放大」和「增強」圖像的抽象空間。那麼卷積可以用於哪些場景呢?
  • 消滅蟑螂各種有效方法的優劣之處
    這是到現在為止最熱門兒的殺蟑螂辦法,也是能從根本上消除的蟑螂藥,這種蟑螂藥我在這處極力引薦,一是:安全。二是:環保 三是:高效 四是:對人,寵物,孺子 沒有損害力; 眾多人對一點殺蟑螂的辦法沒有辦法做到真正的意識,對蟑螂的知識可謂是比較少,並不是很各個方面。