简介
- 逆卷积相对于卷积在神经网络结构中的正向和反向传播中做相反的运算
- 逆卷积的叫法并不合适,因为卷积运算的逆运算输出信号完整的的还原为输入信号,而这里的deconvolution操作只是把图像的分辨率还原为输入图像的分辨率,而并没有把全部的像素值还原。所以这里操作更适合称为“转置卷积(Transposed Convolution)”
- 举个例子
4x4的输入,卷积Kernel为3x3, 没有Padding / Stride, 则输出为2x2。
- 输入矩阵可展开为16维向量,记作x
- 输出矩阵可展开为4维向量,记作y
- 卷积运算可表示为y = Cx
- 对应的矩阵运算就如下图所示:
- 上图代表了神经网络的正向传播过程。根据矩阵的运算法则得到(4,1)的矩阵,再转化为(2,2).
- 反向传播的运算:
所以可以知道,转置卷积其实就是在正向传播时左乘,然后在反向传播过程中左乘
对于No zero padding, unit strides, 的卷积来说,转置卷积:
- 其对应关系可以理解为正向卷积为0 padding,那么转置卷积就是full padding=k-1。
- 输出尺寸:output=input+2(k-1)-(k-1)
未完,待补充。
参考:
https://www.zhihu.com/question/43609045
http://deeplearning.net/software/theano_versions/dev/tutorial/conv_arithmetic.html#transposed-convolution-arithmetic
https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/