文章目录
- 转置卷积
- Convolution as matrix operation
- Transposed convolution
- 理解
GAN涉及到转置卷积,这里mark一下忘记了再回来看下。
转置卷积
转置卷积源于与卷积方向相反的愿望,即从卷积的output形状到input形状,同时保持与卷积相兼容的一种模式。转置卷积可以作为卷积编码器的解码器(decode)的转换,或者将当前特征映射到一个高维度的空间。
Convolution as matrix operation
要理解转置卷积,先从卷积开始。
我们先从2D卷积运算,kernel=3,input=4x4,stride=1,output=2x2,padding=valid。
我们将卷积运算转化为矩阵运算,将kernel转化为矩阵
的,将input转化为矩阵
,通过两个矩阵的相乘获取的
矩阵reshape为2X2的卷积结果。即
我们以C的第一行为例,第一行要完成与input[:3,:3]乘加,其他不需要乘的对应权重则在这一行置为0。也可以这样理解,这一行的每一个元素都与X的每一个元素相对应,不需要乘的记为0即可。最终获得C矩阵如下图。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQDOxEzX3xCZlhXam9VbsUmepNXZy9CXwJWZ3xCdh1mcvZ2Lc1zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwIzX39GZhh2csATMflHLwEzX4xSZz91ZsAzMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5kjMzQGOmV2MiV2Y5kDOzYzX3IjNzQTMyAzLcJTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
Transposed convolution
我们再来考虑另一个方向,将2x2作为输入转化为4x4,按照卷积步骤,并将C转置。
上述称之为转置卷积。kernel定义卷积和转置卷积,卷积和转置卷积取决于前向和后向运算。对于卷积而言,前向和反向通过
。对于转置卷积而言,其前向和反向通过