對深度學習卷積操作的理解

本文介紹對了對卷積核、濾波器、通道等概念的理解。

二維卷積

二維卷積就是卷積核(指的是一個小的權值矩陣)在二維輸入數據上滑動遍歷整張圖片,對當前輸入的部分元素進行矩陣乘法,將一個二維矩陣轉換爲另一個二維矩陣,然後將結果輸出,輸出特徵實際上是在輸入數據相同位置上的加權和。下圖是一個標準的卷積:
這裏寫圖片描述
從上面的描述可知,卷積核的尺寸直接決定了生成新的特徵是匯合了多少個輸入特徵,在上圖中,我們輸入的特徵爲5*5, 輸出數據爲(5-3+1)*(5-3+1)=3*3. 如果我們使用標準的全連接層,就會產生一個25*9=225 個參數的權值矩陣,每個輸出都是所有輸入數據的加權求和。使用卷積操作我們只用9個參數來實現這個變換,每個輸出特性不用查看每個輸入特徵,而只是查看大致相同位置的輸入特徵。

常用的卷積技術

  1. Padding
    在下面的動畫中可以看到卷積核在滑動過程中邊緣基本上會被裁剪掉,因爲邊緣上的像素永遠不在卷積核的中心,但是我們通常需要讓輸出尺寸等於輸入尺寸,所以邊緣被裁減掉會使輸入尺寸丟失。爲了解決這個問題,padding使用一些假像素(通常是0)來填充邊緣,同事延伸到邊緣外的假像素,從而產生與輸入相同大小的輸出。
    這裏寫圖片描述
  2. Striding
    在運行卷積層時我們通常希望輸出尺寸比輸入尺寸更低,在增加信道數量的同時將空間尺寸減小。其中一種方法是使用池化層,例如使用2*2的網格的平均值、最大值、最小值將空間維度減小。還有一種方式是striding,基本思想是改變卷積核移動的歩長跳過一些像素。Stride是1表示的是一個標準卷積模式,stride是2表示卷積核移動的歩長是2,跳過相鄰像素,圖像縮小爲原來的1/2,stride是3表示卷積核移動的歩長是3,跳過兩個相鄰像素,圖像縮小爲原來的1/3。下面圖片描述的是一個歩長爲2的卷積操作。
    這裏寫圖片描述

多通道版本

上面圖像中描述的都是單通道的圖像,在實際應用中大多數輸入圖像都是3通道的,通道數只會增加網絡深度,通常會將圖像的通道視作一個整體,強調其整體的一面而不關注各自的差異。
這裏寫圖片描述
濾波器和卷積核的區別:僅在1通道的情況下,濾波器和卷積核是等價的,但是在一般情況下,這兩個概念是不同的。每個濾波器是卷積核的集合,圖層的每個輸入通道都有一個唯一的卷積核,卷積層中的每個濾波器都只輸出一個通道,他們是這樣實現的:濾波器的每個卷積核在各自的輸入通道上滑動,產生各自的計算結果,一些內核可能比其他內核具有更大的權重,以便某些內核更強調某些輸入通道。例如,濾波器的紅色通道卷積核可能比其他通道的卷積核有更大的權重,因此紅色通道特徵的反應要強於其他通道。
這裏寫圖片描述
做完卷積操作後濾波器的卷積核各自產生一個對應的通道輸出,然後每個通道處理的結果彙總在一起形成一個通道,最後整個濾波器產生一個總的輸出通道。
這裏寫圖片描述
在實際應用過程中通常需要對每個輸出濾波器增加偏置以便產生最終的輸出通道。
這裏寫圖片描述
其他數量濾波器的生成都和單濾波器相同:每個濾波器使用不同的卷積核集合和具有上述過程的標量偏差項來處理輸入數據,最終產生一個輸出通道。然後將它們連接在一起以產生總輸出,其中輸出通道的數量是過濾器的數量。在輸出數據送入另一個卷積層之前,通常還要應用非線性激活函數。重複上述操作即可完成網絡的搭建。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章