转置卷积
1.转置卷积
- 转置卷积是一种卷积
- 它将输入和核进行了重新排列
- 同卷积一般是做下采样不同,它通常是用作上采样
- 如果卷积将输入从(h, w)变成了 ( h 1 , w 1 ) (h_1,w_1) (h1,w1),同样超参数下它将从 ( h 1 , w 1 ) (h_1,w_1) (h1,w1)变成(h, w).
2.重新排列输入和核
- 当填充为0步幅为1时
- 将输入填充 k − 1 k-1 k−1(上下、左右,k 是核窗口)
- 将核矩阵上下、左右翻转
- 然后做正常卷积(填充0、步幅1)
-
当填充为p步幅为1时
-
将输入填充 k − p − 1 k-p-1 k−p−1(k是核窗口的大小)(下图p=1)
-
将核矩阵上下、左右翻转
-
然后做正常卷积(填充0、步幅1)
-
-
当填充为p步幅为s时(下图p=1,s=2)
-
在行和列之间插入s-1行或列
-
将输入填充 k − p − 1 k-p-1 k−p−1(k是核窗口)
-
将核矩阵上下、左右翻转
-
然后做正常卷积(填充为0、步幅为1)
-
3. 形状换算
- 输入高(宽)为n,核k,填充p,步幅s
- 转置卷积: n ′ = s n + k − 2 p − s n^{'}=sn + k - 2p -s n′=sn+k−2p−s
- 卷积: n ′ = ⌊ ( n − k − 2 p + s ) / s ⌋ → n ≥ s n ′ + k − 2 p − s n^{'} = \lfloor (n-k-2p+s)/s\rfloor \rightarrow n \ge sn^{'}+k-2p-s n′=⌊(n−k−2p+s)/s⌋→n≥sn′+k−2p−s(向下取整)
- 可以看出:当卷积满足刚好整除的情况,(n取每一组里最小的值),此时卷积与转置卷积刚好运算公式相反。
- 如果让高宽成倍增高,那么 k = 2 p + s k=2p+s k=2p+s
4. 同反卷积的关系
-
数学上的反卷积(deconvolution)是指卷积的逆运算
- 如果 Y = c o n v ( X , K ) Y=conv(X,K) Y=conv(X,K),那么 X = d e c o n v ( Y , K ) X=deconv(Y,K) X=deconv(Y,K)
-
反卷积很少用在深度学习中
- 我们说的反卷积神经网络指用了转置卷积神经网络