摘要
本文主要介绍反卷积或转置卷积, 并使用 TensorFlow 和 PyTorch 验证其计算方法.
相关
系列文章索引 :
https://blog.youkuaiyun.com/oBrightLamp/article/details/85067981
正文
1. 应用场景
转置卷积 (Transpose Convolution ), 有时候也称为反卷积 (Deconvolution), 是全卷积神经网络 FCN (Fully Convolutional Networks) 的关键组件.
在正常的卷积神经网络中, 卷积用于特征提取, 池化用于缩小尺寸, 这些操作也被成为下采样(down sampling).
将全卷积神经网络用于图片的语义分割任务时, 需要将得到的缩小特征图映射回原输入数据的尺寸.
我们需要某种相当的操作, 将尺寸放大, 将特征图解码至原尺寸.
与卷积操作对应的, 就是转置卷积.
2. 理论原理
考虑到卷积操作可以变换为等价的 Affine 操作, 往前传播得到损失值 e :
Y = X W T    e = f o r w a r d ( Y ) Y = XW^T\\ \;\\ e = forward(Y) Y=XWTe=forward(Y)
损失 e 对 X 的梯度为 :
d e d X = d e d Y W \frac{de}{dX}=\frac{de}{dY}W dXde=dY