购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 卷积神经网络理论基础

3.2.1 卷积神经网络基本结构

卷积神经网络(Convolutional Neural Networks,CNN),是一类包含卷积计算并且具有深度结构的神经网络,是深度学习领域最具代表性的算法之一,常用于处理计算机视觉和图像处理任务。卷积神经网络具有表征学习的能力,能够按照其层级结构对输入的信息进行平移不变分类,可以进行监督学习和非监督学习,隐藏层的卷积核参数共享以及层间连接的稀疏特性都使得卷积神经网络能够以比较小的计算量对格点化的特征(比如图像像素点)进行特征学习、分析等。

图3.3所示为卷积神经网络的基本结构,包括卷积层、池化层、全连接层以及输出层。从卷积神经网络的整体架构来讲,卷积神经网络是一种多层神经网络,其隐藏层中的卷积层和池化层是实现卷积神经网络特征提取功能的核心,整个网络模型同样可通过参数优化方法最小化损失函数的方式对网络中的权重参数进行逐层反向调节,通过大量的迭代训练来提高整个网络模型的精度。全连接层的输入就是由卷积层和池化层提取到的特征。而最后一层则一般来讲是一个分类器,可以使用逻辑回归、Softmax甚至支持向量机等来对输入实现分类。

图3.3 卷积神经网络基本结构

相较于全连接神经网络,卷积神经网络的主要特征就是参数量大大减少。其主要原因就在于卷积神经网络具备三大特点——局部连接、权重共享、下采样。提到局部连接,就必须了解局部感受野(Local Receptive Fields)的概念。感受野指的是神经网络中每一层输出特征图(Featuremap)上的像素点映射回输入图像上的对应区域。对于全连接神经网络来讲,神经网络往往会将输入图像上的每一个像素点都连接到每一个神经元上,每个神经元对应的感受野大小就是整个输入图像的大小。但是卷积神经网络则不一样,卷积神经网络中的每一个隐藏层的节点,也就是每一个隐藏层的神经元都只会连接到图像中的局部区域。如图3.4所示,对于一张640×480的输入图像,如果用全连接的方式,那么感受野的大小就是640×480,而对应需要更新的参数就会有640×480=307200个;如果采用局部连接的方式,每次连接只取一小块16×16的区域,那么所需要更新的参数就只有256个了,当然能够用局部连接的方式进行处理的原因在于,在进行图像识别的时候,不需要对整个图像都进行处理,一张图像中会有很大一部分区域是无用或者说用处很小的,实际上需要关注的仅仅只是图像中包含关键特征的某些特殊区域,如图3.4中,通过猫鼻子这一块区域就能识别出图片中是猫。

图3.4 局部连接

当然,仅仅靠局部连接减少参数还不够,在卷积神经网络中还采用了权重共享(Shared Weights),如图3.5所示。对于每个神经元来讲,其连接的区域比较小,因此采用多个神经元分别连接一个小区域。合在一起就能够覆盖比较大的区域了。而每个神经元连接的区域基本都是不同的,但是每个神经元的权重参数都设置成一样,这样就可以使用尽可能少的参数覆盖尽可能多的图像区域。

图3.5 权重共享

第三种减少参数量的方法是下采样,形象地理解,下采样就是将图像缩小,如图3.6所示。对图像进行下采样操作并不会对图像中的物体进行实质性的改变,尽管下采样之后的图像尺寸变小了,但是并不会影响度图像中物体的识别。目前使用比较广泛的下采样方式有两种:一种是使用步长(stride)大于1的池化(pooling);另一种是使用步长(stride)大于1的卷积(convolution)。池化实际上提供的是一种非线性变换,池化所提供的非线性变换是固定的,是不可学习的,可以看作是一种先验运算,而这种非线性变换也可以通过一定深度的卷积来实现。当卷积神经网络比较小、网络比较浅的时候,使用池化进行下采样效果可能会更好,而当网络比较深的时候,使用多层叠加的卷积来进行下采样可以学习到池化下采样所提供的非线性变换,甚至能够通过不断的训练学习到比池化更好的非线性变换,因此在网络比较深的时候使用多层卷积来替代池化进行下采样效果可能会更好。

图3.6 下采样 vsmQh2JXqDJH2u7+PqgG1pP/BDD0fMvGv0HmU9tIHU+WeUMHB7gosdbOKE/c2vbV

点击中间区域
呼出菜单
上一章
目录
下一章
×