1. 反池化和反卷积
以下是DeconvNet的整体架构:
unpooling:
(Unpooling操作需要依据max pooling记录的位置,将每个pooling区域还原回去。在进行max pooling时,我们记录下每个pooling区域的最大激活值所在的位置坐标,在unpooling时就可以依据这些坐标,把激活值放回对应的位置,从而实现反池化的目的。 Unpooling的目的是进行上采样,恢复更高分辨率的特征图。)
Deconvolution
反卷积只是将输入转换回更大的尺寸。在转置卷积中,您尝试将一些特征来升级为接近图像。转置卷积具有可学习的特性,可以使用反向传播来学习。
反卷积层是一个非常不幸的名称,应该称为转置卷积层。
用一个滤波器(filter)对输入图片进行反卷积操作的过程。反卷积是一种用于上采样的操作,即将低分辨率的输入转换为高分辨率的输出。反卷积并不是卷积的逆过程,而是一种特殊的卷积,其卷积核是转置的,并且在输入中插入了一些零同时把步长变成1、1/2、1/3或1/4从而增大feature map的面积。
Visually, for a transposed convolution with stride one and no padding, we just pad the original input (blue entries) with zeroes (white entries) (Figure 1).
In case of stride two and padding, the transposed convolution would look like this (Figure 2):
上图是一个例子。(b) 是 14×14 反卷积层的输出。(c)是unpooling后的输出,依此类推。我们可以在(j)中看到自行车可以在最后一个 224×224 反卷积层重建,这表明学习的过滤器可以捕获特定于类别的形状信息。