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

下载本文档

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

文档简介

第4章卷积神经网络(一)4.1结构和学习算法4.2两种经典的卷积神经网络4.3案例与实践

4.1结构和学习算法

4.1.1卷积神经网络的结构目前有许多CNN架构的变体,但它们的基本结构非常相似。CNN的基本体系结构通常由三种层构成,分别是卷积层、池化层和全连接层,如图4.1所示。图4.1CNN结构示意图

卷积层由几个特征图(featuremaps)组成。一个特征图的每个神经元与它前一层的邻近神经元相连,这样的一个邻近区域叫作该神经元在前一层的局部感知野。视觉皮层的神经元就是用来局部接收信息的(这些神经元只响应某些特定区域的刺激)。神经元区域响应如图4.2所示。

在图4.2(a)中,假如每个神经元只和它前一层邻近的10×10个像素值相连,那么权值数据为1000000×100个参数,减少为原来的万分之一。而那10×10个像素值对应的10×10个参数,其实就相当于卷积操作。

图4.2神经元区域响应图

为了计算一个新的特征图,输入特征图首先与一个学习好的卷积核(也被称为滤波器、特征检测器)做卷积,然后将结果传递给一个非线性激活函数。通过应用不同的卷积核可以得到新的特征图。激活函数可描述CNN的非线性度,对多层网络检测非线性特征十分理想。典型的激活函数有Sigmoid、tanh和ReLU。

池化层旨在通过降低特征图的分辨率实现空间不变性。它通常位于两个卷积层之间。每个池化层的特征图和它相应的前一卷积层的特征图相连,因此它们的特征图数量相同。典型的池化操作是平均池化和最大池化。通过叠加几个卷积层和池化层,可以提取更抽象的特征表示。例如,人们可以计算图像一个区域上某个特定特征的平均值(或最大值)。这些概要统计特征不仅具有低得多的维度(相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合操作就叫作池化(pooling),有时也称为平均池化或者最大池化(取决于计算池化的方法)。

最大池化操作如图4.3所示。

图4.3最大池化操作示意图

形式上,在获取到卷积特征后,还要确定池化区域的大小(假定为m×n),以池化卷积特征。把卷积特征划分到数个大小为m×n的不相交区域上,然后用这些区域的平均(或最大)特征来获取池化后的卷积特征,这些池化后的卷积特征便可以用来做分类。

经过几个卷积层和池化层之后,通常有一个或多个全连接层。它们将前一层所有的神经元与当前层的每个神经元相连接。全连接层不保存空间信息。卷积神经网络中全连接层如图4.4所示。

图4.4卷积神经网络中全连接层示意图

最后的全连接层的输出传递到输出层。对于分类任务,softmax回归由于可以生成输出的well-formed概率分布而被普遍使用。给定训练集

其中x(i)是第i个输入图像块,y(i)是它的类标签,第i个输入属于第j

类的预测值a(i)

j

可以用如下的softmax函数转换:

4.1.2卷积神经网络的学习算法

卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入到输出的映射关系,而不需要任何输入和输出之间精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就会具有输入到输出的映射能力。卷积网络执行的是有导师训练,所以其样本集是由形如(输入向量,理想输出向量)的向量对构成的,所有这些向量对都应该是来源于网络,即模拟的系统的实际“运行”结果,它们可以是从实际运行系统中采集来的。在开始训练前,所有的权都应该用一些不同的小随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可以正常地学习。

训练算法主要包括4步,这4步又被分为两个阶段。

第一阶段,向前传播阶段。

(1)从样本集中取一个样本(X,Yp),将X输入网络;

(2)计算相应的实际输出Op。

在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。

第二阶段,向后传播阶段。

(1)计算实际输出Op与相应的理想输出Yp的差;

(2)按极小化误差的方法调整权矩阵。

这两个阶段的工作一般应受精度要求的控制。

4.2两种经典的卷积神经网络

4.2.1LeNet

LeNet-5卷积神经网络算法可广泛应用于数字识别、图像识别领域。不包括输入层,LeNet-5共有7层:

3个卷积层、2个池化层、1个全连接层和1个输出层。其中C1、C3层为5×5的卷积层,S2、S4层为池化层,F6层是全连接层,其网络结构如图4.5所示。

图4.5LeNet-5网络结构

由图4.5可以看出,输入的图像的大小为32×32。经过6个5×5的卷积核进行卷积操作后,得到了6个28×28特征图的C1卷积层。接着S2池化层进行下采样,得到6个14×14的特征图,其运算方式是每个特征图的单元都与C1卷积层中的每个特征图的2×2像素的区域相连。C3卷积层有16张特征图,每个特征图均通过5×5的卷积核与S2池化层中的某几个或全部特征图进行卷积操作,S2与C3的连接方式如表4.1所示。S4池化层通过对C3层下采样得到16个5×5的特征图。C5卷积层的120个特征图是通过对S4层进行5×5的卷积操作得到的,特征图的大小为1×1。F6全连接层共有84个单元,并且F6层与C5层是全连接的。输出层采用的是欧氏径向基函数(RBF)。RBF的计算方式如下:

式中:xj为全连接层中第j个神经元,yi为输出层第i

个神经元,wij为全连接层第j个神经元与输出层第i

个神经元之间的权值。

4.2.2AlexNet

AlexNet在模型训练中加入了LRN(localresponsenormalization)局部响应归一化、ReLU激活函数、Dropout、GPU加速等新的技术点,成功地推动了神经网络的发展。由于AlexNet在BP神经网络和LeNet-5的基础上提出了更深更宽的神经网络,因此它具备两者的优点,并对某些数据局部特征变形或扭曲具有一定的鲁棒性。

AlexNet模型共八层,前五层为卷积层和池化层,后三层为全连接层。全连接层后接softmax分类器进行分类,其结构如图4.6所示。AlexNet具有以下四个方面的特点:

(1)使用ReLU激活,使得计算量大大减少。由于ReLU激活函数为线性函数,其导数为1,因此减少了模型训练的计算量。正是因为激活函数导数不为0,所以梯度在反向传播过程中不会出现逐渐衰减的现象,且在网络层数加深时梯度不会消失。

(2)AlexNet在全连接层中使用了Dropout,在训练时随机忽略部分神经元,被“丢弃”的神经元不参与训练,输入和输出该神经元的权重系数也不做更新,从而有效地解决了过拟合问题。

(3)局部响应归一化层(LRN)借鉴侧抑制的思想来实现局部抑制,创建了局部神经元的竞争机制,使响应大的值更大并且抑制响应小的值,增强了模型的泛化能力。

(4)AlexNet采用GPU并行训练,提高了模型的训练速度。

图4.6AlexNet结构

4.3案例与实践

4.3.1图像语义分割

图像语义分割就是逐像素分类的过程。Linknet[5]是一种进行语义分割的轻量型深度神经网络结构,可用于完成无人驾驶、增强现实等任务。它能够在GPU和NVIDIATX1等嵌入式设备上提供实时性能。Linknet可以在TX1和TitanX上分别以2f/s和19f/s的速率处理分辨率为1280×720的输入图像,其架构如图4.7所示。

图4.7LinkNet架构

LinkNet架构类似Unet的网络架构,编码器的特征图和对应解码器上采样后的特征图级联,conv为卷积操作,full-conv为全卷积,/2代表下采样的步长是2,*2代表上采样的因子是2。卷积层后加BN(batchnormalization)与ReLU操作。图4.7的左半部分为编码器,使用ResNet-18进行编码,使得模型更加轻量化且效果较好;图4.7的右半部分为解码器。

LinkNet中的模块如图4.8所示。

图4.8LinkNet中的模块

表4.2包含了整个LinkNet中每个模块使用的特征图信息。

4.3.2目标检测

目标检测就是在给定的场景中确定目标的位置和类别,然而尺寸、姿态、光照、遮挡等因素的干扰,给目标检测增加了一定的难度。传统的目标检测采用模板匹配的方法。而基

于卷积神经网络的目标检测算法一般可分为两类:one-stage算法与two-stage算法。最具代表性的one-stage算法包括SSD、YOLO等变体;

two-stage算法主要以R-CNN、FastR-CNN、FasterR-CNN及基于R-CNN的变体算法为主。本节主要介绍two-stage算法中FasterR-CNN。

FasterR-CNN在FastR-CNN的基础上将selectivesearch的搜索方法换成RPN(regionproposalnetwork),同时引入anchorbox解决了目标形变,因此FasterR-CNN能够将特征提取、proposal提取、目标框回归与分类整合在一个网络中,其结构如图4.9所示,主要包括以下四个部分:

卷积:采用卷积、ReLU及池化操作提取输入图像的特征图,特征图被RPN和全连接层所共享。

RPN:首先判断anchors属于前景还是背景,再利用回归修正anchors获得精确的区域。

ROI池化:利用卷积层输出的特征图和RPN网络产生的区域提取区域的特征,将特征输入全连接层。

分类:利用提取区域的特征计算区域的类别,并采用目标框回归获得最终目标框的精确位置。

图4.9FasterR-CNN网络结构

RPN网络结构如图4.10所示。在特征图上滑动窗口能够得到目标的粗略位置,同时由于anchorsbox的比例不同,因此能够适应不同尺寸与分辨率的目标。之后进行目标分类和边界框回归:通过目标分类可以得到检测目标是前景还是背景;利用边界框回归通过计算边界框的偏移量,以获得更精确的目标框位置。

图4.10RPN网络结构

ROI池化操作将不同大小的ROI转换为固定大小的ROI,从而提高处理速度。其主要步骤如下:

(1)根据输入图像将ROI映射到特征图对应的位置。

(2)将映射后的区域划分为相同大小的sections,其数量与输出的维度保持一致。

(3)对每个section进行最大池化操作。

FasterR-CNN的损失函数为

(4.2)

式中:

i

为anchor在一个小batch里的索引;pi

为anchor预测为目标的概率;p*i

为标签值,当标签值为正时,p*i

=1,当标签值为负时,p*i

=0;

ti={tx

,ty

,tw,th}是预测边界框的坐标向量;t*i

为对应的groundtruth;Lcls(pi,p*i)是两个类别的对数损失;Lreg(ti,t*i)为回归损失,这里采用smoothL1来计算;p*i

Lreg(ti,t*i)代表只有前景才能计入损失,背景不参加。有关该算法更多的细节可以查看本章参考文献。

R-CNN、FastR-CNN、FasterR-CNN算法的简要对比如表4.3所示。

4.3.3目标跟踪

SiameseFC算法通过模板匹配的方法进行相似性度量,计算出模板图像和待检测图像各位置的相似度,相似度最高的点即为目标中心位置,这样不仅跟踪效果好,且效率高。

该算法采用ILSVRC15数据库中用于目标检测的视频进行离线模型训练,同时不更新模型,保证了算法速度。SiameseFC算法凭借其优势成为很多变体(如CFNet、DCFNet)的基线,其流程如图4.11所示。

图4.11SiameseFC算法流程图

温馨提示

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

评论

0/150

提交评论