基于神经网络的目标检测论文之神经网络基础:卷积神经网络和池化

2.2 卷积神经网络的结构

在上一章,我们学习了全连接网络以及反向传播算法。我们有理由相信,若是可以训练深度网络,则能够获得比浅层网络更加强大的能力。全连接网络的优点是每个输入维度上的信息都会传递到后面的每一个节点中,能最大程度上保证每个节点都不会遗失该维度上的信息。但是它的缺点也很明显,由于整个网络都是全连接的,所以参数 和b特别多,这就使得网络的训练过程非常缓慢。对于图像这种输入维度动辄上百万的数据(以像素为维度),全连接网络的性能大打折扣,经过前辈们的研究,针对处理图像数据,出现了卷积神经网络。

卷积神经网络(con-volutional neural network, CNN)这种网络结构专门用来处理网格结构的数据。例如图像数据,因为图像可以看作是二维的像素网格。“卷积神经网络”的由来是因为该网络使用了卷积(convolution)数学运算,卷积是一种特殊的线性运算。卷积网络是指那些在网络中使用卷积运算来替代一般的矩阵乘法运算的神经网络。

2.2.1 卷积运算与卷积核

在通常形式中,卷积是对两个实变函数的一种数学运算。卷积的数学定义为:
(2-12)
在卷积网络的术语中,卷积的第一个参数(在这个例子中,函数x)通常叫做输入(input),第二个参数(函数w)叫做核函数(kernel function)。输出有时被称作特征映射(feature map)。图2-5演示了一个在二维张量上的卷积运算。
在这里插入图片描述
图2-5 一个二维卷积的例子

2.2.2 池化

卷积网络中一个典型复合运算含有三级。在第一级中,这一层并行地计算多个卷积产生一组线性激活响应。在第二级中,每一个线性激活响应将会通过一个非线性的激活函数,例如整流线性激活函数。这一级有时也被称为探测级(detector stage)。在第三级中,我们使用池化函数(pooling function)来再一次调整该层的输出。

池化函数将像素点相邻输出的总体特征来代替在该位置的输出。举个例子,最大池化(max pooling)函数将输出相邻区域内的最大像素点的值,还有一些常用的池化函数包括:平均池化、L2范数和基于中心像素距离的加权平均函数。当在网络中采用各种各样的池化函数后,即使原始输入图像作出微小平移,池化能够帮助输入近似不变。这里所说的平移不变性是指当原始输入图像进行微小平移时,再经过池化函数后大多数输出并不会发生改变。图2-6用了一个例子来说明这是如何实现的。利用池化技术实现的平移不变性是一个相当有用的性质,图像检测只关心某个特征是否出现,但并而不关心它出现的具体位置。例如,检测图像中是否包含汽车时,并不一定知道车轮的精确位置,只要前后相对有两个平行的车轮即可。

使用池化使得这一层学得的特征必须具有对微小平移的不变性。实验证明,池化技术能够最大限度地提高网络的特征提取。算法对空间区域进行池化操作产生了平移不变性。在对分离参数做卷积后得到的输出进行池化时,网络能够学习到应该对于哪种变换具有不变性(如图2-6所示)。
在这里插入图片描述
图2-6 学习不变性的示例

实际应用中,池化操作在处理不同像素的输入时具有至关重要的作用。通常在对不同像素的图像做分类时,Softmax分类层的输入一般是固定的大小,为了保证输入大小固定,最主要的做法就是调整池化层的偏置大小,最终分类层能接收到相同数量的特征而不必理会原始输入的大小。举个例子,网络结构中最后一个池化层假设输出四个统计特征,每个特征对应着图像的一个象限,这就与图像的原始输入大小没有关联。

2.2.3 卷积神经网络结构

CNN经典的结构主要包含三个重要组成:局部感受野,共享权重和池化。

1、局部感受野(local receptive fields):上一节讲到的全连接网络中,网络结构被构造成纵向排列的一层层的神经元。卷积网络与全连接网络不同的是,将输入数据看作是一个个矩形排列的神经元,如图2-7所示。图像每一个方格中的值对应于输入的像素光强度:
在这里插入图片描述
图2-7 局部感受野示例

图2-7中输入图像的阴影区域称为隐藏层的局部感受野,具体点说就是输入像素上的一个小窗口。小窗口上有很多连接,每个连接都要学习一个权重,而且每个隐藏层还要学习一个总的偏置。可以把这个特定的隐藏神经元看作是在学习分析它的局部感受野。

2、共享权重和偏置(shared weights):每一个隐藏层上的全部神经元应该在输入图像的不同位置提取相同的特征。接下来解释为什么要这样做。把权重和偏置设想成隐藏神经元可以挑选的东西,特别是在一个特定的局部感受野的边缘。这种能力在图像的其它位置同样是有用的。因此,在图像中应用相同的特征检测器是非常有用的。卷积网络能保持图像的平移不变性,稍微移动图像中一辆车的位置,它仍然是一辆车的图像。一般情况下,一组共享的权重和偏置被称为一个卷积核(也叫滤波器)。卷积核最大的优点就是极大地减少了参与卷积运算的参数量。

3、池化层(pooling):也就是上一节讲的池化层。池化层一般出现在卷积层之后,它的主要作用是简化输出信息。

综合在一起,就构成了卷积神经网络的特定结构。接下来举一个卷积网络的实例,图(2-8)是一个典型的卷积神经网络LeNet5结构示意图:
在这里插入图片描述
图2-8 LeNet-5的整体模型结构

LeNet-5网络结构配置如表2-1所示:
表2-1 LeNet-5网络模型的具体参数配置
Layer Type Size Params Output
1 Conv 6-5×5 156 28×28
2 Pool — — 14×14
3 Conv 16-5×5 1516 10×10
4 Pool — — 5×5
5 Conv 120-5×5 48120 1×1
6 Full 84 10164 1×1
Output — 10 10×1

这个经典网络被成功应用于手写字体识别数据集MNIST上,达到了惊人的效果,错误率仅为0.95%。网络的的原始输入图像为32×32像素,Conv层后接一个Pooling层来从而降低提取的特征图(Feature Map)的大小,最后接一个Softmax全连接层输出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值