卷積核
卷積核 |
卷積核 就是圖像處理時,給定輸入圖像,輸入圖像中一個小區域中像素>加權平均後成為輸出圖像中的每個對應像素,其中權值由一個函數定義,這個函數稱為卷積核。
基本信息
中文名 卷積核 [1]
外文名 convolution kernel
又稱 濾波器
卷積核的意義
卷積核其實在圖像處理中並不是新事物,Sobel 算子等一系列濾波算子,一直都在被用於邊緣檢測等工作中,只是以前被稱為 Filter。做圖像處理的同學應該有印象。
卷積核具有的一個屬性就是局部性。即它只關注局部特徵,局部的程度取決於卷積核的大小。比如用 Sobel 算子進行邊緣檢測,本質就是比較圖像鄰近像素的相似性。
也可以從另外一個角度理解卷積核的意義。學過信號處理的同學應該記得,時域卷積對應頻域相乘。所以原圖像與卷積核的卷積,其實是對頻域信息進行選擇。比如,圖像中的邊緣和輪廓屬於是高頻信息,圖像中某區域強度的綜合考量屬於低頻信息。在傳統圖像處理里,這是指導設計卷積核的一個重要方面。
CNN中的卷積核
CNN 中的卷積核跟傳統的卷積核本質沒有什麼不同。仍然以圖像為例,卷積核依次與輸入不同位置的圖像塊做卷積,得到輸出。
同時,CNN 有一些它獨特的地方,比如各種定義:
CNN 可以看作是 DNN 的一種簡化形式,即這裡卷積核中的每一個權值就可以看成是 DNN 中的 ,且與 DNN 一樣,會多一個參數偏置。
一個卷積核在與 Input 不同區域做卷積時,它的參數是固定不變的。放在 DNN 的框架中理解,就是對同一層 Layer 中的神經元而言,它們的 和 是相同的,只是所連接的節點在改變。因此在 CNN 里,這叫做 共享權值偏置。
在 CNN 中,卷積核可能是高維的。假如輸入是 維的,那麼一般 卷積核就會選擇為 維,也就是與輸入的 Depth 一致。
最重要的一點,在 CNN 中,卷積核的權值不需要提前設計,而是跟 DNN 一樣利用 GD 來優化,我們只需要初始化。
如上面所說,其實卷積核卷積後得到的會是原圖的某些特徵(如邊緣信息),所以在 CNN 中,卷積核卷積得到的 Layer 稱作特徵圖。
一般 CNN 中兩層之間會含有多個卷積核,目的是學習出 Input 的不同特徵,對應得到多個特徵圖。又由於卷積核中的參數是通過 GD 優化得到而非我們設定的,於是初始化就顯得格外重要了。
參考來源