搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里。

先来规范表达

  • 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核形状都为正方形,x和y轴方向的padding相同,stride也相同。
  • 记号: 
     

推翻错误的理解

第一次看到deconv这个词,以为deconv的结果就是卷积的逆,觉得神奇,不禁产生了“哦?转置的卷积就可以求逆了吗?”这样的想法,然后在matlab里面实验求证,我还记得当时以为反卷积能够求逆,考虑到图片进行常规卷积操作输出大小又不可能变大(same/valid),于是我还假设反卷积输出大小不变,用了same padding和原核的转置作为反卷积配置,结果发现根本不是那么一回事好吗。 
其实DL中的deconv,是一种上采样过程,举个比方:输入

深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv 卷积  o=2 反卷积 o=4

注意图中蓝色(下面)是输入,绿色(上面)是输出,卷积和反卷积在

反卷积以及反向传播的过程

卷积和反卷积的过程在arXiv-A guide to convolution arithmetic for deep learning