卷积与反卷积、步长(stride)与重叠(overlap)及 output 的大小

这里写图片描述

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) (43+1)×(43+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 (x3+1)×(x3+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 一致,

    卷积与反卷积、步长(stride)与重叠(overlap)及 output 的大小_第1张图片

    z e r o   p a d d i n g = K − 1 2 zero\, padding =\frac{K-1}2 zeropadding=2K1

    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=swk+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=173+1=5,也即 output size 为 5*5

    卷积与反卷积、步长(stride)与重叠(overlap)及 output 的大小_第2张图片

    • 7*7 的 input,3*3 的 kernel,无填充,步长为2,则 o = 7 − 3 2 + 1 = 3 o=\frac{7-3}{2}+1=3 o=273+1=3,也即 output size 为 3*3

    卷积与反卷积、步长(stride)与重叠(overlap)及 output 的大小_第3张图片

你可能感兴趣的:(机器学习实战,卷积,反卷积,步长,重叠)