反卷积英文翻译为:Deconvolution 或 Transposed Convolution 或 Fractional-strided
Convolutions。在机器学习中,反卷积是从低分辨率映射到大分辨率的过程,用于扩大图像尺寸。反卷积是一种特殊的正向卷积,而不是卷积的反过程。
本文将从直观的角度,推导反卷积运算输出尺寸的计算公式。
符号约定:
卷积输出尺寸计算
卷积过程示例如图 1 所示,蓝色方块为输入,绿色方块为输出,灰色方块为卷积核。经过卷积计算,输出尺寸计算公式:
(1)
注释:[·] 为取不超过该值的最大整数
图 1:卷积过程示例
- 例 1:卷积运算输出尺寸计算
以图 1 中的卷积过程为例,输入尺寸,卷积核大小,步幅,扩充分别为:
,代入公式(1):
即输出尺寸为 3。
反卷积输出尺寸计算
第一步:对输入进行 stride 变换,如图 2 所示。
反卷积中,stride 可理解为为在输入的相邻元素之间添加
个零元素。变换后的尺寸为:
(2)
图 2:反卷积 Stride 过程
例:图 2 的 stride 过程中,输入和步长分别为
,则
第二步:对 stride 变换后的图片按照卷积形式求解输出尺寸。
即,将式(2)带入式(1):
(3)
注意:由于在第一步中已经将 stride 进行运算,式(3)中的 s 此时恒等于 1,即
。
第三步:求解反卷积输出尺寸。
将式(2)带入式(3),化简得:
(4)
式(4)恒为整数,可将[·]运算符去掉,即得到反卷积输出的尺寸计算公式:
(5)
比较式(5)与式(1)可知,当步长
时,卷积与反卷积输出尺寸计算公式相同。这种情况下反卷积即为卷积,也说明了反卷积是一种特殊的卷积,而非卷积的逆过程。
下面给出反卷积运算输出尺寸的计算示例。
- 例 2:反卷积输出尺寸计算 (s=1)
图 3:反卷积过程示例(s=1)
如图 3 所示,反卷积过程各参数分别为:
,代入式(5)可得:即输出尺寸为 4。
- 例 3:反卷积输出尺寸计算 (s>1)
图 4:反卷积输出尺寸计算示例 (s>1)
如图 4 所示,反卷积过程各参数分别为:
,代入式(5)可得:即输出尺寸为 5。
本分从直观简洁的角度给出了反卷积运算输出尺寸的计算公式,即式 (5)。
注:本文全部以各坐标轴输入尺寸相同,填充相同为例进行计算。对于输入各坐标轴不同的情况,只需按照公式分别计算各坐标轴方向的输出尺寸。
参考资料:A guide to convolution arithmetic for deep learning
(本文可自由转载,须注明出处)
https://zhuanlan.zhihu.com/p/57348649