深度可分离卷积、空洞卷积、反卷积、感受野计算、上采样

文章目录

  • 输出特征图尺寸的计算
  • Depthwise卷积和Pointwise运算成本比较低
  • 空洞卷积
  • 反卷积
  • 上采样

输出特征图尺寸的计算

深度可分离卷积、空洞卷积、反卷积、感受野计算、上采样_第1张图片

Depthwise卷积和Pointwise运算成本比较低

如何计算?

空洞卷积

https://www.zhihu.com/people/merofine/posts?page=2 这个人博客写得好。
概述

  • atrous convolutions 又名 扩张卷积(dilated convolutions)
  • 利用添加空洞扩大感受野,让原本3x3的卷积核,在相同参数量和计算量下拥有5x5(dilated rate =2)或者更大的感受野,从而无需下采样
    • dilation rate(扩张率),指的是kernel各点之前的间隔数量(正常的convolution 的 dilatation rate为 1

deep cnn 存在的主要问题:
主要问题有:

  • Up-sampling / pooling layer (e.g. bilinear interpolation) is deterministic. (a.k.a. not learnable)
  • 内部数据结构丢失;
  • 空间层级化信息丢失。
  • 小物体信息无法重建 (假设有四个pooling layer 则 任何小于 2^4 = 16 pixel 的物体信息将理论上无法重建。)

而 dilated convolution 的设计就良好的避免了这些问题。

感受野计算公式:
深度可分离卷积、空洞卷积、反卷积、感受野计算、上采样_第2张图片
当层的特征图输出大小:
在这里插入图片描述

优势:

  1. 特征图相同情况下,空洞卷积可以得到更大的感受野,从而获得更加密集的数据

  2. 特征图相同情况下,更大的感受野可以提高在目标检测和语义分割的任务中的小物体识别分割的的效果。

    我们可以显而易见的看到,使用空洞卷积代替下采样/上采样可以很好的保留图像的空间特征,也不会损失图像信息。当网络层需要更大的感受野,但是由于计算资源有限无法提高卷积核数量或大小时,可以考虑使用空洞卷积。

问题:

  1. The Gridding Effect(网格效应),并不是所有的pixel都用来计算了,这样的方式会损失信息的连续性,这对于像素级的任务来说是致命的。
  2. Long-ranged information might be not relevant(远距离信息可能不相关).我们从 dilated convolution 的设计背景来看就能推测出这样的设计是用来获取 long-ranged information。然而光采用大 dilation rate 的信息或许只对一些大物体分割有效果,而对小物体来说可能则有弊无利了。如何同时处理不同大小的物体的关系,则是设计好 dilated convolution 网络的关键。

解决方案:

Hybrid Dilated Convolution (HDC)混合空洞卷积

  1. 叠加卷积的 dilation rate 不能有大于1的公约数,比如 [2, 4, 6] 则不是一个好的三层卷积,依然会出现 gridding effect。
  2. 我们将 dilation rate 设计成 锯齿状结构,例如 [1, 2, 5, 1, 2, 5] 循环结构。
  3. 满足公式具体见
    Atrous Spatial Pyramid Pooling (ASPP)

反卷积

目前使用得最多的deconvolution有2种:
方法1:full卷积, 完整的卷积可以使得原来的定义域变大
方法2:记录pooling index,然后扩大空间,再用卷积填充(可以理解先空洞卷积再做卷积)
反卷积只能恢复尺寸不能恢复数值

它主要用于增大图像尺寸,是upsampling的一种,而空洞卷积并没有做upsampling,空洞卷积是为了增大感受野,可以不改变图像的大小。对于反卷积简单理解就是在输入特征矩阵中插入空白点,再进行卷积,这样卷积后输出的特征矩阵就变大了。

上采样

upsampling(上采样)的三种方式:
Resize,如双线性插值直接缩放,类似于图像缩放;
反卷积(deconvolution & transposed convolution);
反池化(unpooling)。

你可能感兴趣的:(机器深度学习,卷积)