卷积神经网络基础1(超详细,通俗易懂)

卷积

这一小节将为读者介绍卷积算法的原理和实现方案,并通过具体的案例展示如何使用卷积对图片进行操作,主要涵盖如下内容:
  • 卷积计算
  • 填充(padding)
  • 步幅(stride)
  • 感受野(Receptive Field)
  • 多输入通道、多输出通道和批量操作

卷积计算

卷积是数学分析中的一种积分变换的方法,在图像处理中采用的是卷积的离散形式。这里需要说明的是,在卷积神经网络中,卷积层的实现方式实际上是数学中定义的互相关 (cross-correlation)运算,与数学分析中的卷积定义有所不同,这里跟其他框架和卷积神经网络的教程保持一致,都使用互相关运算作为卷积的定义,具体的计算过程如图所示。
卷积神经网络基础1(超详细,通俗易懂)_第1张图片
说明
卷积核(kernel)也被叫做滤波器(filter),假设卷积核的高和宽分别为kh和kw,则将称为kh×kw卷积,比如3×5卷积,就是指卷积核的高为3, 宽为5。

卷积神经网络基础1(超详细,通俗易懂)_第2张图片

  • 如图(a)所示:左边的图大小是3×3,表示输入数据是一个维度为3×3的二维数组;中间的图大小是2×2,表示一个维度为2×2的二维数组,我们将这个二维数组称为卷积核。先将卷积核的左上角与输入数据的左上角(即:输入数据的(0, 0)位置)对齐,把卷积核的每个元素跟其位置对应的输入数据中的元素相乘,再把所有乘积相加,得到卷积输出的第一个结果:
    0×1+1×2+2×4+3×5=25 (a)

  • 如图(b)所示:将卷积核向右滑动,让卷积核左上角与输入数据中的(0,1)位置对齐,同样将卷积核的每个元素跟其位置对应的输入数据中的元素相乘,再把这4个乘积相加,得到卷积输出的第二个结果:
    0×2+1×3+2×5+3×6=31 (b)

  • 如图(c)所示:将卷积核向下滑动,让卷积核左上角与输入数据中的(1, 0)位置对齐,可以计算得到卷积输出的第三个结果:
    0×4+1×5+2×7+3×8=43 ©

  • 如图(d)所示:将卷积核向右滑动,让卷积核左上角与输入数据中的(1, 1)位置对齐,可以计算得到卷积输出的第四个结果:
    0×5+1×6+2×8+3×9=49 (d)

卷积核的计算过程可以用下面的数学公式表示,其中 a代表输入图片, b代表输出特征图,w 是卷积核参数,它们都是二维数组,表示对卷积核参数进行遍历并求和。在这里插入图片描述
举例说明,假如上图中卷积核大小是2×2,则u可以取0和1,v也可以取0和1,也就是说:
在这里插入图片描述
其它说明

在卷积神经网络中,一个卷积算子除了上面描述的卷积过程之外,还包括加上偏置项的操作。例如假设偏置为1,则上面卷积计算的结果为:

0×1+1×2+2×4+3×5 +1=26
0×2+1×3+2×5+3×6 +1=32
0×4+1×5+2×7+3×8 +1=44
0×5+1×6+2×8+3×9 +1=50

填充(padding)

在上面的例子中,输入图片尺寸为3×3,输出图片尺寸为2×2,经过一次卷积之后,图片尺寸变小。卷积输出特征图的尺寸计算方法如下(卷积核的高和宽分别为kh和kw):

Hout=H−kh+1
Wout=W−kw+1
如果输入尺寸为4,卷积核大小为3时,输出尺寸为4−3+1=24-3+1=24−3+1=2。
当卷积核尺寸大于1时,输出特征图的尺寸会小于输入图片尺寸。如果经过多次卷积,输出图片尺寸会不断减小。为了避免卷积之后图片尺寸变小,通常会在图片的外围进行填充(padding),如图所示。
卷积神经网络基础1(超详细,通俗易懂)_第3张图片

  • 如图(a)所示:填充的大小为1,填充值为0。填充之后,输入图片尺寸从4×4变成了6×6,使用3×3的卷积核,输出图片尺寸为4×4。

  • 如图(b)所示:填充的大小为2,填充值为0。填充之后,输入图片尺寸从4×4变成了8×8,使用3×3的卷积核,输出图片尺寸为6×6。

其余内容下篇文章分享~

你可能感兴趣的:(卷积神经网络,cnn,深度学习,神经网络,卷积神经网络,算法)