卷积与反卷积关系超详细说明及推导(反卷积又称转置卷积、分数步长卷积)

本文是论文《A guide to convolution arithmetic for deep learning》的阅读笔记及思考,对于文章中浅尝则止的部分进行了深入的分析,如步长大于 1 的卷积与池化之间是否存在一种等价的关系,用矩阵的形式表示CNN的前向传播和反向传播。

  以 CNN 为代表的卷积神经网络在图像的相关领域得到了较为长足的发展。在 CNN 中卷积实际分类两大类,一种是卷积,另一种是转置卷积(transposed convolutional ),或者称为分数步长卷积( fractionally strided convolutional layers),亦或者是反卷积(deconvolution)。

  虽然在一些文章中将反卷积与转置卷积认为是等价的,但是 [1] 中的作者表示他们反对使用反卷积来表示转置卷积,他们的依据是在数学中反卷积被定义为卷积的逆,这实际上与转置卷积是不相同的。所以在下面的内容,我都是用转置卷积这个名词。

1.CNN中的卷积

  因为本文主要介绍卷积与转置卷积之间的关系,所以对于卷积相关的知识并没有过多的介绍,如果想详细了解卷积的相关基础知识课参考我的博文《卷积神经网络入门详解》。在这里只是概括性的讲述一些知识点,方便叙述卷积与转置卷积之间的关系。

1.1 卷积与相关滤波间的差别

   卷积运算与相关滤波之间的差别主要在于,相关滤波直接在核所对应的区域进行相乘再相加,而卷积需要先将卷积核旋转 180 度在进行相乘和相加。所以我们平时所接触的卷积实际上不是卷积,而是一种相关滤波。但是当核是可学习的时候,卷积和相关滤波是可以互换的,所以在 CNN 中我们认为两者是等价的,具体原理及计算过程可以参考《图像的复原与重建(4):图像处理中滤波(filtering)与卷积(convolution)的区别》

1.2 卷积输出尺寸计算

  卷积输出尺寸计算公式如下,假设输出数据体在空间上的尺寸 W 2 × H 2 × D 2 W_2 \times H_2 \times D_2 W2×H2×D2 可以通过输入数据体尺寸 W 1 × H 1 × D 1 W_1 \times H_1 \times D_1 W1×H1×D1,卷积层中神经元的感受野尺寸(F),步长(S),滤波器数量(K)和零填充的数量(P)计算输出出来。

W 2 = ( W 1 − F + 2 P ) / S + 1 H 2 = ( H 1 − F + 2 P ) / S + 1 D 2 = K \begin{matrix} W_2=(W_1-F+2P)/S+1 \\ H_2=(H_1-F+2P)/S+1 \\ D_2=K \\ \end{matrix} W2=(W1F+2P)/S+1H2=(H1F+2P)/S+1D2=K

  一般说来,当步长S=1时,零填充的值是P=(F-1)/2,这样就能保证输入和输出数据体有相同的空间尺寸。

  但是这里有一点需要注意,对于某一个 W 1 W_1 W1,如果 W 1 − F + 2 P W_1-F+2P W1F+2P 满足是 s 的整数倍,那么这时将输入增大到 W 3 = W 1 + a , a ∈ ( 0 , 1 , … , s − 1 ) W_3=W_1+a,a\in (0,1,…,s-1) W3=W1+a,a(0,1,,s1),那么都会输出与原来一样大小的 feature map。这个虽然对卷积的影响并不是很大,但是会使得转置卷积的计算变得复杂。

1.3 s>1 的卷积

  假设现在输入的特征图 (input feature map) 的大小是 5 × 5 × 1 5\times5\times1 5×5×1,使用一个大小为 3 × 3 3\times3 3×3 的卷积核进行步长为 s = 2 s=2 s=2 的卷积,将会得到如下图中左侧的结果
在这里插入图片描述
其中蓝色的部分是输入,绿色的部分是输出,所以经过卷积后会产生一个 2 × 2 × 1 2\times2\times1 2×2×1 的 output feature map。步长为 1 的卷积很好理解,对于步长为2的卷积我们可以以内核的增量为 1 ,只有 s = 2 s=2 s=2 的对应部分才会被保留。如上图的右侧所示,用一种比较好理解的方式就是,步长为 2 的卷积,可以理解为在步长为 1 的卷积输出的 feature 上(上图右半部分绿色整体)进行 s = 2 s=2 s=

  • 34
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值