(PS:本博客仅用于记录个人笔记,所用图片和文字内容大部分来自b站up主:霹雳吧啦Wz,转载或引用请注明up主)
附上原up地址:
转置卷积(transposed convolution):也称为“反卷积”,是卷积的一个逆向过程,可以根据卷积核大小和输出的大小,恢复卷积前的图像尺寸,而不是恢复原始值。
作用:上采样(upsampling)
转置卷积不是卷积的逆运算
转置卷积也是一个卷积过程,只是对原图像和卷积核作出一些变化后,再进行卷积,以达到回复卷积前图像尺寸的目的,但数值与图像的原始值并不相同。
过程和原理:
首先,普通的卷积运算就是简单的矩阵相乘,输入feature map得到一个矩阵,再将卷积核用0扩展为与feature map大小相同的矩阵,进行简单的矩阵相乘,即可输出卷积后的图像矩阵
但是如果将输入的feature map矩阵和卷积核等效矩阵分别展平,转化为列向量后在进行相乘运算,也同样可以得到卷积后图像矩阵的列向量形式
思考:如果已知卷积后的矩阵(O)和卷积核矩阵(C),是否可以通过左右两边同乘以卷积核逆矩阵(C-1),来还原卷积前的图像矩阵(I)呢?即,卷积是否可逆?
答案否定。因为矩阵是否可逆,取决于矩阵是否为方阵。而我们无法保证卷积核等效矩阵展平为列向量后为方阵,因此,一般情况下,卷积不可逆。
但如果只需要得到与原始矩阵大小相同,而数值不做要求的矩阵,则可以通过转置卷积实现。
即:左右两边同时乘以卷积核矩阵的转置矩阵(CT)
得到的行向量经过reshape后,即为与原始矩阵大小相同的矩阵
用普通卷积的运算来实现:主要是将原卷积核转置后的矩阵的每一列写成等效矩阵的形式,再用一个个等效矩阵分别与卷积后的矩阵相乘,从而得到转置卷积后的矩阵。
而在与等效矩阵相乘的过程中可以发现,该过程其实等效于将卷积后的矩阵用0填充后,再用
某一卷积核进行卷积。
而该卷积核就是原卷积核经过上下左右翻转后得到的
由此过程我们可以得到转置卷积的运算步骤:
1.填充
2.将上下左右翻转卷积核
3.进行正常卷积运算(即矩阵相乘):此时不再对矩阵进行额外填充,且步距为1
最后输出的特征图特征值计算方法: