针对不同问题所采集的图片数据集往往具有一定规律性:
现有的卷积结构大多 一视同仁 地进行 视野感受:
对整幅图片进行的 无差别卷积 意味着 注意力的平摊 。
设计一种 有差别卷积:
为了避免重新设计框架接口引起的不必要麻烦,可采用 卷积结果 相覆盖 的思路。
先用 大卷积核 对输入的整张 feature map 进行第一轮的常规卷积:
再用稍小的卷积核对 feature map 中心区域 进行 第二轮 更精细的 常规卷积。并用第二轮卷积结果 替换 第一轮卷积结果中心区域 的数据值:
由此即可实现 “差别对待” 的卷积操作。
先用 大卷积核 对输入的整张 feature map 进行第一轮的常规卷积:
再用稍小的卷积核对 feature map 中上部区域 进行 第二轮 更精细的 常规卷积。并用第二轮卷积结果 替换 第一轮卷积结果中上部区域 的数据值:
再用更小的卷积核对 feature map 顶部区域 进行 第三轮 更更精细的 常规卷积。并用第三轮卷积结果 替换 之前卷积结果顶部区域 的数据值:
由此即可实现 “差别对待” 的卷积操作。
该方法仅可适用于前几个网络层。
因为越往深去,每个网络层输入的 feature map 中,单个数值映射到原图像的感受野会越大,乃至大到覆盖大半个原图像。那么这个时候,有差别卷积操作 也就不可行了。
当然,也可以在卷积核滑窗的stride(平移步长)上大做文章。比如在 feature map 的 不重要区域 增大stride 以 减少 低性价比计算 的次数,从而 节省 GPU劳动力 。这里就不赘述了。