• 为什么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就不能保证平均分配到卷积两边  。



  • 相关阅读:
    02-09 对数线性回归(波士顿房价预测)
    02-02 感知机原始形式(鸢尾花分类)
    02-19 k近邻算法(鸢尾花分类)
    02-21 决策树ID3算法
    A-02 梯度下降法
    09-01 Tensorflow1基本使用
    02-34 非线性支持向量机(鸢尾花分类)+自定义数据分类
    [Python]网络爬虫(四):Opener与Handler的介绍和实例应用(转)
    Eclipse+PyDev 安装和配置(转)
    [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容(转)
  • 原文地址:https://www.cnblogs.com/yumoye/p/12153521.html
Copyright © 2020-2023  润新知