什么是转置卷积(Transposed Convolution)
转置卷积,又称反卷积(Deconvolution)或上采样卷积(Upsampling Convolution),是一种卷积操作,通常用于生成式模型或图像处理任务中,以增加特征图的空间分辨率。转置卷积的目的是将低分辨率的特征图还原到较高分辨率,即进行空间上采样。
正常卷积操作回顾
在标准卷积操作中,卷积核在输入特征图上滑动,计算局部区域的加权和,从而生成输出特征图。假设我们有以下参数:
- 输入特征图大小: ( H × W ) (H \times W ) (H×W)
- 卷积核大小: ( K × K ) ( K \times K ) (K×K)
- 步幅:( S )
- 填充:( P )
输出特征图的大小为:
[ H o u t = H − K + 2 P S + 1 ] [ H{out} = \frac{H - K + 2P}{S} + 1 ] [Hout=SH−K+2P+1]
[ W o u t = W − K + 2 P S + 1 ] [ W{out} = \frac{W - K + 2P}{S} + 1 ] [Wout=SW−K+2P+1]
转置卷积的基本原理
转置卷积的操作可以被视为卷积的逆过程。其目的是将小的输入特征图扩展为更大的输出特征图。转置卷积通过插入零元素并使用卷积核计算来实现这一点。
转置卷积的计算步骤:
插入零元素(Zero-Insertions):
在输入特征图的元素之间插入零元素,增加特征图的尺寸。例如,假设步幅为 ( S ),在每个元素之间插入 ( S-1 ) 个零。填充(Padding):
适当填充输入特征图,确保输出特征图具有预期的大小。通常填充策略与卷积核的大小和步幅相关。卷积操作:
使用标准卷积操作在填充后的特征图上应用卷积核,生成输出特征图。
假设我们有以下参数:
- 输入特征图大小: ( H i n × W i n ) ( H{in} \times W{in} ) (Hin×Win)
- 卷积核大小: ( K × K ) ( K \times K ) (K×K)
- 步幅:( S )
- 填充:( P )
输出特征图的大小为:
[ H o u t = ( H i n − 1 ) × S − 2 P + K ] [ H{out} = (H{in} - 1) \times S - 2P + K ] [Hout=(Hin−1)×S−2P+K]
[ W o u t = ( W i n − 1 ) × S − 2 P + K ] [ W{out} = (W{in} - 1) \times S - 2P + K ] [Wout=(Win−1)×S−2P+K]
应用场景
转置卷积广泛应用于以下场景:
- 生成对抗网络(GANs):在生成器中使用转置卷积将低维噪声向量转换为高维图像。
- 图像超分辨率:从低分辨率图像重建高分辨率图像。
- 语义分割:将特征图还原为输入图像的尺寸以生成像素级别的分类图。