百度AI Studio——卷积神经网络基础

很早以前就想写博客记录学习状态,一直拖着,感觉错过了很多,甚是后悔,下定决心开始写。

这是百度AI Studio上的课程卷积神经网络的笔记。课程链接:百度AI Studio

卷积神经网络


卷积神经网络是目前计算机视觉中使用最普遍的模型结构。基础模块主要包括:

  • 卷积(Convolution)
  • 池化(Pooling)
  • ReLU激活函数
  • 批归一化(Batch Normalization)
  • 丢弃法(Dropout)

在手写数字识别中,应用的是全连接层的特征提取,即将一张图片上的所有像素点展开成一个1维向量输入网络,存在如下两个问题:

  1. 输入数据的空间信息被丢失。
  2. 模型参数过多,容易发生过拟合。

为了解决上述问题,我们引入卷积神经网络进行特征提取,既能提取到像相邻素点之间的特征模式,又能保证参数的个数不随图片尺寸变化。图3 是一个典型的卷积神经网络结构,多层卷积和池化层组合作用在输入图片上,在网络的最后通常会加入一系列全连接层,ReLU激活函数一般加在卷积或者全连接层的输出上,网络中通常还会加入Dropout来防止过拟合。

在这里插入图片描述


说明:
在卷积神经网络中,计算范围是在像素点的空间邻域内进行的,卷积核参数的数目也远小于全连接层。卷积核本身与输入图片大小无关,它代表了对空间临域内某种特征模式的提取。比如,有些卷积核提取物体边缘特征,有些卷积核提取物体拐角处的特征,图像上不同区域共享同一个卷积核。当输入图片大小不一样时,仍然可以使用同一个卷积核进行操作。


卷积(Convolution)

卷积计算

卷积是数学分析中的一种积分变化的方法,在图像处理中采用的是卷积的离散形式。在卷积神经网络中,卷积层的实现方式实际上是数学中定义的互相关 (cross-correlation)运算,与数学分析中的卷积定义有所不同。

具体计算过程:
卷积计算


说明:

卷积核(kernel)也被叫做滤波器(filter),假设卷积核的高和宽分别为 k h k_h kh​和 k w k_w kw​,则将称为 k h × k w k_h\times k_w kh×kw​卷积,比如 3 × 53 × 53 × 5 3×53\times53×5 3×53×53×5卷积,就是指卷积核的高为3, 宽为5。


在卷积神经网络中,一个卷积算子除了上面描述的卷积过程之外,还包括加上偏置项的操作。例如假设偏置为1,则上面卷积计算的结果为:
0 × 1 + 1 × 2 + 2 × 4 + 3 × 5 + 1 = 26 0×1+1×2+2×4+3×5 +1=26 0×1+1×2+2×4+3×5+1=26
0 × 2 + 1 × 3 + 2 × 5 + 3 × 6 + 1 = 32 0×2+1×3+2×5+3×6+1=32 0×2+1×3+2×5+3×6+1=32
0 × 4 + 1 × 5 + 2 × 7 + 3 × 8 + 1 = 44 0×4+1×5+2×7+3×8+1=44 0×4+1×5+2×7+3×8+1=44
0 × 5 + 1 × 6 + 2 × 8 + 3 × 9 + 1 = 50 0×5+1×6+2×8+3×9+1=50 0×5+1×6+2×8+3×9+1=50


填充(padding)

在上面的例子中,输入图片尺寸为 3 × 3 3\times3 3×3,输出图片尺寸为 2 × 2 2\times2 2×2,经过一次卷积之后,图片尺寸变小。卷积输出特征图的尺寸计算方法如下:
H o u t ​ = H − k h ​ + 1 H_{out}​=H−k_h​+1 Hout=Hkh+1 W o u t ​ = W − w h ​ + 1 W_{out}​=W−w_h​+1 Wout=Wwh+1

当卷积核尺寸大于1时,输出特征图的尺寸会小于输入图片尺寸。说明经过多次卷积之后尺寸会不断减小。为了避免卷积之后图片尺寸变小,通常会在图片的外围进行填充(padding),如 图5 所示。

填充

  • 如图5(a)所示:填充的大小为1,填充值为0。填充之后,输入图片尺寸从 4 × 4 4\times4 4×4变成了 6 × 6 6\times6 6×6
  • 如图5(b)所示:填充的大小为2,填充值为0。填充之后,输入图片尺寸从 4 × 4 4\times4 4×4变成了 8 × 8 8\times8 8×8

如果在图片高度方向,在第一行之前填充 p h 1 p_{h1} ph1​行,在最后一行之后填充 p h 2 p_{h2} ph2​行;在图片的宽度方向,在第1列之前填充 p w 1 p_{w1} pw1列,在最后1列之后填充 p w 2 p_{w2} pw2​列;则填充之后的图片尺寸为 ( H + p h 1 + p h 2 ) × ( W + p w 1 + p w 2 ) (H+ph1+ph2)×(W+pw1+pw2) (H+ph1+ph2)×(W+pw1+pw2)。经过大小为 k h × k w k_h\times k_w kh×kw​的卷积核操作之后,输出图片的尺寸为:
H o u t ​ = H + 2 p h − k h ​ + 1 H_{out}​=H+2p_{h}−k_h​+1 Hout=H+2phkh+1 W o u t ​ = W + 2 p w − w h ​ + 1 W_{out}​=W+2p_{w}−w_h​+1 Wout=W+2pwwh+1
卷积核大小通常使用1,3,5,7这样的奇数,如果使用的填充大小为 p h = ( k h − 1 ) / 2 p_h=(k_h−1)/2 ph=(kh1)/2 p w = ( k w − 1 ) / 2 p_w=(k_w−1)/2 pw=(kw1)/2,则卷积之后图像尺寸不变。例如当卷积核大小为3时,padding大小为1,卷积之后图像尺寸不变;同理,如果卷积核大小为5,使用padding的大小为2,也能保持图像尺寸不变。


步幅(stride)

图5 中卷积核每次滑动一个像素点,这是步幅为1的特殊情况。图6 是步幅为2的卷积过程,卷积核在图片上移动时,每次移动大小为2个像素点。
在这里插入图片描述当宽和高方向的步幅分别为 s h s_h sh​和 s w s_w sw​时,输出特征图尺寸的计算公式是:
在这里插入图片描述

感受野(Receptive Field)

输出特征图上每个点的数值,是由输入图片上大小为 k h × k w k_h\times k_w kh×kw的区域的元素与卷积核每个元素相乘再相加得到的,所以输入图像上 k h × k w k_h\times k_w kh×kw​区域内每个元素数值的改变,都会影响输出点的像素值。我们将这个区域叫做输出特征图上对应点的感受野。感受野内每个元素数值的变动,都会影响输出点的数值变化。比如 3 × 3 3\times3 3×3卷积对应的感受野大小就是 3 × 3 3\times3 3×3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值