為什么CNN中的卷積核一般都是奇數


為什么CNN中的卷積核一般都是奇數
 

為什么CNN中的卷積核一般都是奇奇數*奇數,沒有偶數*偶數的?

咱們經常見到的多為 3 * 3、5*5;怎么從來沒有見過 4*4,6*6 之類的卷積核?無論奇數 or 偶數,都是能夠做卷積的呀

之前學習的時候真的沒有想過這些問題,再復習時,覺得全是 Why?說明之前還是沒有搞明白

從AlexNet模型的11*11、5*5、3*3,還有VGG開始統一卷積核為3*3,再到之后的模型,都沒有用過 偶數*偶數的卷積核,說明它是有問題的,或者是沒有 奇數*奇數的方便

這一串的問題,原因有兩個:

1.保證了 錨點 剛好在中間

       錨點也就是卷積核滑動時的一個參考點(相對於圖像來說,自己理解的,不保證正確,沒找到相關資料)。奇數過濾器的錨點正好在中心位置,避免了位置信息發生偏移,如果卷積核是偶數*偶數時,這時候就沒有辦法確定了錨點了。讓誰是錨點,卷積核上下左右移動之后,位置信息都會發生偏移。

2. same convolution,偶數卷積核會出現問題

       說點題外話

       做卷積時會出現兩種問題

          1)圖像越來越小;

          2)圖像邊界信息丟失,即有些圖像角落和邊界的信息發揮作用較少

       所以有時候我們會在圖像的周圍填補 0 ,一來減緩圖像變小的速度,二來,保證邊界信息不丟失。甚至有時候會讓輸入輸出的大小一樣,也就是 same convolution 比如下圖的VGG模型,卷積時輸入輸出的大小是保持不變的,只有在池化層是才會縮減一半。

 卷積之后的尺寸大小計算公式為:

輸入圖片大小 W×W
Filter大小 F×F
步長strides  S
padding的像素數 P
輸出大小為NxN
於是我們可以得出

                                                                     

這里寫一下我的理解:公式中Padding 為啥要乘以 2 ,我的理解為 在周圍填 0 的話,左右(上下)兩邊都填補 0 才有意義,保證是對稱的

做same convolution,步長S=1  Padding  P = (F-1)/ 2,也即是:需要在原圖邊長基礎上padding F-1個 0 (這個應該很好理解),當卷積核為偶數時,P就不能保證平均分配到卷積兩邊  。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM