1. 卷积与反卷积
如上图演示了卷积核反卷积的过程,定义输入矩阵为 I I I( 4 × 4 4\times 4 4×4),卷积核为 K K K( 3 × 3 3\times 3 3×3),输出矩阵为 O O O( 2 × 2 2\times 2 2×2):
- 卷积的过程为: Conv ( I , W ) = O \text{Conv}(I, W)=O Conv(I,W)=O
- 反卷积的过称为: Deconv ( W , O ) = I \text{Deconv}(W,O)=I Deconv(W,O)=I(需要对此时的 O O O 的边缘进行延拓 padding)
2. 步长与重叠
卷积核移动的步长(stride)小于卷积核的边长(一般为正方行)时,变会出现卷积核与原始输入矩阵作用范围在区域上的重叠(overlap),卷积核移动的步长(stride)与卷积核的边长相一致时,不会出现重叠现象。
4 × 4 4\times 4 4×4 的输入矩阵 I I I和 3 × 3 3\times 3 3×3 的卷积核 K K K:
- 在步长(stride)为 1 时,输出的大小为 ( 4 − 3 + 1 ) × ( 4 − 3 + 1 ) \left(4-3+1\right)\times \left(4-3+1\right) (4−3+1)×(4−3+1)
现考虑其逆问题,原始输入矩阵为多大时,其与 3 × 3 3\times 3 3×3 的卷积核 K K K 相卷积得到的输出矩阵的大小为 4 × 4 4\times 4 4×4:
- 步长(stride)为 1 时,
(
x
−
3
+
1
)
×
(
x
−
3
+
1
)
=
4
×
4
\left(x-3+1\right)\times \left(x-3+1\right)=4\times 4
(x−3+1)×(x−3+1)=4×4
- x = 6 x=6 x=6
3. 定量化的计算公式
A Beginner’s Guide To Understanding Convolutional Neural Networks Part 2
-
填充(padding,在原始input的周围进行填充),以保证卷积后的大小与原始 input shape 一致,
z e r o   p a d d i n g = K − 1 2 zero\, padding =\frac{K-1}2 zeropadding=2K−1
K K K 为卷积核的大小,这样如果原始 input 的大小为
w*w
,填充后的大小为(w+k-1)*(w+k-1)
(两端都要填充) -
卷积后的大小:
o = w − k + 2 p s + 1 o=\frac{w-k+2p}{s}+1 o=sw−k+2p+1
- w w w:是 input 的 height/width, k k k:卷积核的 height/width
- p p p:表示填充的大小; s s s:为 stride 步长;
-
举例:
7*7
的 input,3*3
的 kernel,无填充,步长为1,则 o = 7 − 3 1 + 1 = 5 o=\frac{7-3}{1}+1=5 o=17−3+1=5,也即 output size 为5*5
7*7
的 input,3*3
的 kernel,无填充,步长为2,则 o = 7 − 3 2 + 1 = 3 o=\frac{7-3}{2}+1=3 o=27−3+1=3,也即 output size 为3*3