深度学习简明教程 课件 第5章 卷积神经网络(二)_第1页
深度学习简明教程 课件 第5章 卷积神经网络(二)_第2页
深度学习简明教程 课件 第5章 卷积神经网络(二)_第3页
深度学习简明教程 课件 第5章 卷积神经网络(二)_第4页
深度学习简明教程 课件 第5章 卷积神经网络(二)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章卷积神经网络(二)5.1卷积神经网络的结构和原理5.2几种经典的深度卷积神经网络5.3案例与实践

5.1

卷积神经网络的结构和原理

卷积神经网络(convolutionalneuralnetwork,CNN)是深度学习的经典算法之一,主要用于处理图像、语言等具有网格结构的数据,并在图像处理、视频分析、自然语言处理等领域取得了较好的效果。

深度学习的思想是:通过构建深层网络得到多个层次的特征信息,以增强训练的鲁棒性。深度卷积神经网络通过卷积的运算方法减少了深层网络的内存占用,降低了模型计算的复杂度。卷积神经网络主要由卷积、池化、激活函数等部分构成,下面对每个部分的具体结构及作用做进一步的讲解。

5.1.1卷积运算

卷积运算是卷积神经网络的核心,其本质是一种数学运算,其根本目的是从输入的图片矩阵中提取特征。在高分辨率的图像处理中,过大的计算量会导致运行速度缓慢。卷积运算用一个小方阵在整个图像矩阵上滑动,这个小方阵被称为卷积核。卷积运算的本质是用卷积核与对应的图片矩阵做内积,以学习方阵内的特征信息,其运算过程如图5.1所示。

卷积层还包含步幅和padding填充两个超参数。步幅决定了卷积核每次滑动跨越的距离;padding填充是指为了使卷积核也能提取到边缘信息,有时会在图像边缘补充一圈0值。常用的卷积核大小为1×1、3×3、5×5、7×7等,卷积核大小设置为奇数也是为了方便padding填充取整数值。

图5.1卷积运算的过程

5.1.2

池化操作

池化(pooling)层也是深度卷积神经网络的重要层之一。池化层又被称为下采样层,执行的是下采样的降维操作,同时对特征图像进行压缩,以减少参数个数,降低计算量。

池化层不需要进行权重更新,其运算过程十分简单,主要的池化操作包括最大值池化、随机池化、均值池化、组合池化等。最常见的池化操作就是最大值池化,操作过程如图5.2所示,即将输入的矩阵划分为几个大小相同的矩形区域,对每个矩形区域选取最大值,得到最后的池化输出。同理,平均池化就是对每个子区域求平均值,随机池化就是根据一定的算法选取随机值等。

图5.2最大值池化操作的过程

5.1.3激活函数

激活函数(activationfunction)是在神经网络的神经元上运行的函数,能够对有用的特征信息进行激活,对无用的特征信息进行抑制。引入激活函数的作用是使神经网络模型能够解决更多的非线性问题,增强网络的表达能力。常见的激活函数有Sigmoid函数、tanh函数、ReLU函数等。

5.1.4损失函数

损失函数(lossfunction),通俗来讲就是用于计算模型预测值与真实值之间差异程度的函数,是一个非负实值函数。通常计算得到的损失值越小,模型的性能就越好。

在模型的训练阶段,将训练数据输入模型后,通过前向传播得到预测值,用损失函数计算预测值与真实标签之间的差距,也就是损失值,再将损失值用于后续反向传播,更新模型参数,从而达到使深度神经网络学习的目的。

常见的损失函数大多基于距离度量计算损失,即将预测值和真实值看作特征空间中的两个点,通过计算空间中两个点的距离来计算损失值,如交叉熵损失函数(crossentropyloss)、均方误差损失函数(meansquarederror)等。

5.2几种经典的深度卷积神经网络

5.2.1VGGVGG是2014年由牛津大学的VisualGeometryGroup组提出,可被应用于图像分类、检测等任务中。根据深度的不同VGG可分为VGG13、VGG16和VGG19等。VGG的核心思想是使用较小的卷积核堆叠,在增加网络深度的同时控制参数量,提升网络性能。VGG中ConvNet的具体网络结构如图5.3所示,整个结构由一些3×3和1×1的卷积层与池化层堆叠而成,最后加入了3个全连接层。从A列到E列,添加的层数增加,神经网络的深度不断加深,模型中所含参数的数量也不断增加。

图5.3VGG中ConvNet的网络结构

VGG主要做出了以下贡献:

(1)构造了结构简洁的小卷积核网络。

卷积核几乎全部采用3×3大小(部分使用了1×1大小),小卷积核能在一定程度上增强模型性能,并且用到的参数量相对较少,VGG不同版本的参数量如表5.1所示。从表中可看到,在卷积层数增加时,参数量并没有特别明显地增加。池化核都采用2×2大小,网格结构简洁。

(2)证明了一定程度上越深的网络性能会越好。

VGG几种模型的实验结果如表5.2所示,可以看到A~E网络层数加深时分类错误率降低了,模型精度越来越高,可以证明一定程度上不断加深的网络能够提高性能。

5.2.2GoogLeNet

GoogLeNet是2014年由Google团队提出的,获得了2014年ILSVRC竞赛的第一名。

与基于LeNet基础提出的VGG不同,GoogLeNet采用了一些更大胆的方式。一般提升网络精度最直接、最安全的方法就是增大网络规模,包括网络的深度、宽度、神经元数量等。但是盲目地增大网络规模会引起参数量的暴涨和计算复杂度的增加,从而引起过拟合,大大降低网络性能,特别是当数据集的规模有限时,越深的网络性能反而会越差。因此Google公司提出了一种新的网络———GoogLeNet。GoogLeNet采用Inception方法解决了这一问题,其网络深度达到了22层。

Inception在增加网络的深度和宽度时控制网络的参数量,因此将网络中的全连接改为了稀疏连接,从计算密集矩阵改为计算稀疏矩阵,降低了计算量。

Inceptionv1的两个版本结构如图5.4所示。其中,图5.4(a)中把多个卷积或池化操作并联在一起封装为一个网络模块,设计之后的神经网络是以Inception模块为单位来构造整个网络结构的。图5.4(a)中的模块将三种常用卷积尺寸(1×1、3×3、5×5)以及3×3大小的池化并联(池化操作的作用是减小空间占用,避免过拟合),运算后得到4个尺寸大小相同的特征图,最后级联得到当前模块的输出。

图5.4Inceptionv1的两个版本结构

Inception改变了以前网络结构层与层之间串联的规则,使用并联结构既可以保证结构的整齐性,又可以在模型运算过程中自由选择每层使用卷积或者池化操作的尺寸,从而得到多尺度的信息,增强了模型的泛化能力。如果每一层都要计算上一层的输出,那么卷积层和池化层的输出叠加会使得到的输出量增加,对于5×5的卷积层可能会导致计算量爆炸,因此对图5.4(a)做了一些改进,如图5.4(b)所示,在3×3和5×5的卷积前,以及3×3的池化操作后都添加了1×1的卷积用于降维。我们将这个稍加改进的结构称为Inceptionv1的改进版本。基于Inception构建的GoogLeNet网络结构如表5.3所示。

研究者们在Inceptionv1的基础上又提出了一些改进,提出了Inceptionv2模块,即用多个较小的卷积核替代较大的卷积核(与VGG相似),并在Inceptionv1的基础上增加了批量归一化(batchnormalization,BN)层,用于规范每一层的输入分布,加快网络的训练速度。Inceptionv3还在原有的网络结构中加入了卷积分解的方法,将n×n大小的卷积核分解为1×n和n×1大小,这样做减少了参数数量,降低了计算量。

5.3

案例与实践

5.3.1图像分类Inceptionv3是谷歌提出的Inceptionv1的改进版网络,它在原有的网络结构中加入了卷积分解的方法,在降低了网络计算量的同时提升了网络的性能。Inceptionv3首先用小尺寸卷积核替代大尺寸卷积核,即用3×3和1×1的卷积核替代5×5和7×7的卷积核,将Inceptionv1改写为如图5.5(a)所示的结构,再将卷积核分解为非对称卷积,即将n×n大小的卷积核分解为1×n和n×1大小,分解后的结构如图5.5(b)所示。

图5.5Inceptionv2、Inceptionv3结构图

将Inceptionv3与其他方法用于图像分类,实验分类结果如表5.4所示,Inceptionv3相比于其他方法的实验错误率有了明显的降低。

5.3.2图像分割

DeepLabv1发表于2015年,其模型结构如图5.6所示。首先输入图像到深度卷积神经网络(DCNN)中提取图像特征,这里使用的是VGG16网络。由于池化操作会降低特征图的分辨率,因此文献[4]在操作时跳过了池化层的下采样操作,并且将卷积替换为空洞卷积,通过在卷积核的行列之间补零的方法,扩大感受野的同时实现了稀疏映射,从而降低了模型的计算复杂度。

如图5.6所示,输入图像经过DCNN提取特征后可得到图像粗分割图,然后使用双线性插值(bilinearinterpolation)恢复到输入图像原尺寸,再用全连接CRF(conditionalradomfeild,条件随机场)即可得到最后的分割结果。

图5.6DeepLabv1模型结构图

CRF主要用于处理不光滑的分割问题。每个像素位置i

具有隐变量

xi(指像素的真实类别标签)及对应的观测值

yi

(指像素点对应的颜色值)。以像素为节点,像素与像素间的关系作为边,可构建一个条件随机场(CRF)。通过观测值yi

可预测像素位置i

对应的类别标签xi。条件随机场结构如图5.7所示。

图5.7条件随机场结构示意图

CRF能量函数为

(5.1)

式中:x为对于全局像素点的概率预测分布,xi

为某一个像素点的概率预测分布,θi(xi)为一元势函数,θij

(xi,xj)为二元势函数。模型的优化目标就是最小化能量函数。

如表5.5所示,与PASCALVOC2012“测试”集上的其他先进方法相比,文献提出的DeepLab模型的性能当时是最优的,在测试集上的平均IOU最高达到了71.6%。

5.3.3目标检测

SSD(singleshotmultiBoxdetector)是WeiLiu在ECCV2016上提出的一种目标检测算法,是一种典型的one-stage方法,其主要思路是在图片不同的位置上使用不同比例和尺寸的目标框进行密集采样,再使用backbone提取特征并且直接分类得到结果,因此其计算速度更快。

SSD的主要思想是使用多个特征图进行多尺度的目标位置预测和分类,初始会在图片中设置不同尺度大小和长宽比例的复合型目标框作为先验框。SSD模型结构主要分为三部分,即Backbone、Extra-layers以及Pred-Layer,如图5.8所示。

Backbone的主要作用是提取图像的特征,这里采用了VGG16,并在此基础上做出了一些改进,将VGG的最后两个全连接层替换为卷积层。

Extra-layers用于对VGG输出的图像特征做进一步处理,在VGG16后面增加了4个卷积层,加上VGG后的2个卷积层一共有6层,每一个卷积层的输出一方面送入下一个卷积层继续运算,另一方面与初始化的目标框进行回归与分类操作,且这些层的尺寸逐渐减小,这样的设计可使模型得到多个尺度上的特征。

最后将得到的多种特征图送入Pred-Layer中,从而预测目标框的位置信息、置信度、类别等。

SSD损失函数为位置误差(locatizationloss,lo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论