为什么 CNN 中的卷积核半径都是奇数?

为什么CNN中的卷积核一般都是奇数*奇数?
熟悉CNN应该都知道常见的卷积核都是3*3或者5*5等,也就是奇数*奇数,似乎都没看过偶数的,这是为什么呢?

在CNN中,卷积核的大小是3*3或者5*5是最常见的。也就是说我们见到的卷积核几乎都是奇数*奇数的。在LeNet5中两个卷积层的卷积核都是5*5。

而在AlexNet中共有5个卷积层,conv1的卷积核大小是11*11;conv2的卷积核大小是5*5;conv3的卷积核大小是3*3;conv4的卷积核大小是3*3;conv5的卷积核大小是3*3。

看到了吗?都是奇数!这是为什么呢?

解答1:更容易padding!

在卷积时,我们有时候需要卷积前后的尺寸不变。这时候我们就需要用到padding。假设图像的大小,也就是被卷积对象的大小为n*n,卷积核大小为k*k,padding的幅度设为(k-1)/2时,卷积后的输出就为(n-k+2*((k-1)/2))/1+1=n,即卷积输出为n*n,保证了卷积前后尺寸不变。但是如果k是偶数的话,(k-1)/2就不是整数了。

解答2:更容易找到卷积锚点!

在CNN中,进行卷积操作时一般会以卷积核模块的一个位置为基准进行滑动,这个基准通常就是卷积核模块的中心。若卷积核为奇数,卷积锚点很好找,自然就是卷积模块中心,但如果卷积核是偶数,这时候就没有办法确定了,让谁是锚点似乎都不怎么好。

思考

你现在知道为什么CNN中的卷积核一般都是奇数*奇数了吗?对于卷积核还有许多细节值得我们思考!如果您对卷积核有什么问题或者见解,欢迎留言!

发表评论

电子邮件地址不会被公开。 必填项已用*标注