阅读本文的基础,是默认已经理解了图像处理中正向卷积的过程(卷积特征提取 - UFLDL)。
什么是反卷积?
- 上采样(Upsample)
在应用在计算机视觉的深度学习领域,由于输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(e.g.:图像的语义分割),这个采用扩大图像尺寸,实现图像由小分辨率到大分辨率的映射的操作,叫做上采样(Upsample)。
- 反卷积(Transposed Convolution)
上采样有3种常见的方法:双线性插值(bilinear),反卷积(Transposed Convolution),反池化(Unpooling),我们这里只讨论反卷积。这里指的反卷积,也叫转置卷积,它并不是正向卷积的完全逆过程,用一句话来解释:
反卷积是一种特殊的正向卷积,先按照一定的比例通过补来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。
反卷积的数学推导
- 正向卷积的实现过程
假设输入图像
尺寸为
,元素矩阵为:
卷积核
尺寸为
,元素矩阵为:
步长
,填充
,即
,
则按照卷积计算公式
,输出图像
的尺寸为
。
- 用矩阵乘法描述卷积
把
的元素矩阵展开成一个列向量
:
把输出图像
的元素矩阵展开成一个列向量
:
对于输入的元素矩阵
和 输出的元素矩阵