卷積核就是圖像處理時(shí),給定輸入圖像,在輸出圖像中每一個(gè)像素是輸入圖像中一個(gè)小區(qū)域中像素的加權(quán)平均,其中權(quán)值由一個(gè)函數(shù)定義,這個(gè)函數(shù)稱為卷積核。
卷積核的意義卷積核其實(shí)在圖像處理中并不是新事物,Sobel 算子等一系列濾波算子,一直都在被用于邊緣檢測(cè)等工作中,只是以前被稱為 Filter。做圖像處理的同學(xué)應(yīng)該有印象。
卷積核具有的一個(gè)屬性就是局部性。即它只關(guān)注局部特征,局部的程度取決于卷積核的大小。比如用 Sobel 算子進(jìn)行邊緣檢測(cè),本質(zhì)就是比較圖像鄰近像素的相似性。
也可以從另外一個(gè)角度理解卷積核的意義。學(xué)過(guò)信號(hào)處理的同學(xué)應(yīng)該記得,時(shí)域卷積對(duì)應(yīng)頻域相乘。所以原圖像與卷積核的卷積,其實(shí)是對(duì)頻域信息進(jìn)行選擇。比如,圖像中的邊緣和輪廓屬于是高頻信息,圖像中某區(qū)域強(qiáng)度的綜合考量屬于低頻信息。在傳統(tǒng)圖像處理里,這是指導(dǎo)設(shè)計(jì)卷積核的一個(gè)重要方面。
CNN中的卷積核CNN 中的卷積核跟傳統(tǒng)的卷積核本質(zhì)沒(méi)有什么不同。仍然以圖像為例,卷積核依次與輸入不同位置的圖像塊做卷積,得到輸出,如圖一。
同時(shí),CNN 有一些它獨(dú)特的地方,比如各種定義:
CNN 可以看作是 DNN 的一種簡(jiǎn)化形式,即這里卷積核中的每一個(gè)權(quán)值就可以看成是 DNN 中的 ,且與 DNN 一樣,會(huì)多一個(gè)參數(shù)偏置。
一個(gè)卷積核在與 Input 不同區(qū)域做卷積時(shí),它的參數(shù)是固定不變的。放在 DNN 的框架中理解,就是對(duì)同一層 Layer 中的神經(jīng)元而言,它們的 和 是相同的,只是所連接的節(jié)點(diǎn)在改變。因此在 CNN 里,這叫做 共享權(quán)值偏置。
在 CNN 中,卷積核可能是高維的。假如輸入是 維的,那么一般 卷積核就會(huì)選擇為 維,也就是與輸入的 Depth 一致。
最重要的一點(diǎn),在 CNN 中,卷積核的權(quán)值不需要提前設(shè)計(jì),而是跟 DNN 一樣利用 GD 來(lái)優(yōu)化,我們只需要初始化。
如上面所說(shuō),其實(shí)卷積核卷積后得到的會(huì)是原圖的某些特征(如邊緣信息),所以在 CNN 中,卷積核卷積得到的 Layer 稱作特征圖。
一般 CNN 中兩層之間會(huì)含有多個(gè)卷積核,目的是學(xué)習(xí)出 Input 的不同特征,對(duì)應(yīng)得到多個(gè)特征圖。又由于卷積核中的參數(shù)是通過(guò) GD 優(yōu)化得到而非我們?cè)O(shè)定的,于是初始化就顯得格外重要了。1
本詞條內(nèi)容貢獻(xiàn)者為:
李嘉騫 - 博士 - 同濟(jì)大學(xué)