版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章深度学习:智能网络目标识别技术智能网络目标识别发展概述01目标识别技术目标识别的基本概念与原理目标识别是指将一个特殊目标(或一种类型的目标)从其他目标(或其他类型的目标)中区分出来的过程。它既包括两个同类型相似目标的识别,也包括不同类型目标的识别。在计算机视觉领域,它被大量用于识别图像或视频中的目标,是深度学习和机器学习算法的关键应用之一。当人们看照片或视频时,很容易就能识别出人、物体、场景等。目标识别的目的是教会计算机去做对人类而言自然而然的事情,对图像所含内容获得一定程度的理解。目标识别是无人驾驶汽车背后的关键技术,使它们能够识别停车标志或区分行人与路灯等。目标识别在生物成像中的疾病鉴定、工业检测和机器人视觉等诸多应用中也发挥重要作用。在计算机视觉领域,目标识别是目标分类和目标检测两个任务的合体,首先需要对图像进行目标检测(如人脸),找出目标的位置及类别,然后在确定类别的基础上进一步识别目标(是谁的人脸)。若不区分细粒度类别信息,则目标识别和目标检测在一定程度上表示的任务是一致的。目标识别的基本概念与原理目标识别的工作流程通常分为训练和分类/测试。基于给定有限训练数据(TrainingData)集合,假设数据独立同分布,待学习模型属于某个假设空间(HypothesisSpace)。模型学习定义为基于特定评价准则(EvaluationCriterion),从假设空间中训练学习得到一个最优模型,使它在给定的评价准则下对已知的训练数据及未知的测试数据(TestData)有最优预测性能。目标识别包含了以下三个基本过程(见图1-1):(1)数据采集与预处理,主要目的在于移除噪声干扰,统一数据格式输入;(2)特征提取,主要目的在于挖掘数据的显著性特征,供后续分类器学习与预测;(3)分类,设计有效的分类器,对提取的特征进行有效训练与预测,判断出数据所属的类别和模式。目标识别的基本概念与原理目标识别的基本概念与原理目标识别最早出现在1966年,人工智能先驱MarvinMinsky带着一位本科生GeraldJaySussman,花了一个暑假时间将几块砖放在相机下让计算机识别,这是目标识别的雏形。到了1973年,Fischler和Elschlager提出构建人脸模板[1],并提出了一种模板匹配模型,用于检测人脸。基于此模型,大量的论文相继发表。20世纪80年代,人工智能的“寒冬”来临,计算机视觉研究转向基础理论。在此阶段,人工神经网络(ArtificialNeuralNetwork,ANN,简称神经网络)的“连接主义”学习反而取得了巨大进展,特别是著名的反向传播(BackPropagation,BP)算法的提出及1989年LeNet网络在手写体字符识别领域的应用[2]。20世纪90年代,大量边缘检测算子相继被提出,特别是局部二值模式算子(LocalBinaryPattern,LBP)[3]及SIFT[4]的提出大大促进了目标识别乃至计算机视觉领域的发展。与此同时,统计学习理论兴起,特别是SVM相关理论研究为目标识别分类器设计奠定了坚实的基础。21世纪初期,人工设计特征得到了跨越式发展。目标识别的基本概念与原理提出了大量对特定目标极其有效的特征,包括Haar[5]、HOG[6]、DPM[7]等,将这些特征应用于人脸、行人检测,取得了巨大突破。与此同时,也大量出现通用多目标数据集,例如VOC2007数据集、ImageNet大规模图像数据集,为后期智能网络目标识别的发展奠定了坚实的数据基础。2012年,大量研究工作表明,传统目标识别方法应用于ImageNet数据集时,识别效果提升有限。为此,Hinton等人于2012年提出了AlexNet[8],大幅提高了目标识别性能,从此打开了智能目标识别的大门,并进入深度学习时代。2014年,R-CNN目标检测框架[9]被提出,多阶段智能目标检测技术崭露头角,并涌现出了多样化的目标检测框架。直到现在,该类研究依然是行业研究热点。深度网络目标识别将在后面章节中重点介绍,这里不再赘述。02传统目标识别技术经典的特征提取原理01Haar特征与积分图Haar特征是一种较为简单的矩形特征,非常适合用于提取人脸相关结构特征。文献[5]中定义了4种不同模板的Haar特征提取。如图1-2所示,在图像任意位置上计算矩形框中白色区域像素和减去黑色区域像素和,输出一个整数结果。这样的简单操作能很好地捕捉图像边缘、线条、颜色及一些简单的图像模式。另外,各个模板会缩放到各个可能的尺寸依次滑动窗口求特征,从而产生大量的特征。在大小为24像素×24像素的图像块中,就能提取出16万多个整数特征,其量级远远大于原始像素个数(原始像素个数为576)。经典的特征提取原理01Haar特征与积分图如图1-3所示,我们很直观地看出Haar特征非常适合人脸结构。例如,眼睛这块区域有着显著的对比度差异,利用Haar特征模板,模型很容易学会眼睛这块区域的特征,从而有效区分是否存在人脸。经典的特征提取原理01Haar特征与积分图若直接计算数量如此庞大的Haar特征,将会严重影响计算速度。为了更快速计算Haar特征,文献[5]提出了积分图(IntegralImage)。首先定义图像中(x,y)位置的积分图为该点(包括该点)整个左上区域的像素和,具体公式如下:式中,i、ii分别表示原图的像素和积分图;(x′,y′)为左上区域各点的坐标。在实际计算过程中,使用了动态规划的思想,引入中间量s(x,y)作为行的累计积分结果。按以下公式在原图上迭代一遍,即可得到积分图ii:式中,初始化s(x,−1)=ii(−1,y)=0。经典的特征提取原理02SIFT特征①尺度空间的生成尺度空间的主要作用是提取具有尺度不变特性的图像特征,主要手段是利用一个带参数的尺度函数对原始图像进行变换,从而得到不同尺度下的图像空间。在SIFT特征提取的过程中,尺度空间的生成是利用高斯平滑滤波和降采样的操作来实现的。假设一张图像的尺度空间用函数L(x,y,σ)来表示,利用不同的高斯核函数G(x,y,σ)与图像I(x,y)进行卷积可得到:经典的特征提取原理02SIFT特征①尺度空间的生成式中,⊗表示高斯核函数与图像在x与y两个方向上进行卷积操作。高斯核函数G(x,y,σ)的定义如下:式中,σ表示尺度因子,其值决定了卷积操作中高斯核函数作用域的大小。σ值越大,高斯平滑滤波后得到的图像越模糊。因此,较小的σ值对应着图像的细节特征,较大的σ值对应着图像的概貌特征。经典的特征提取原理02SIFT特征①尺度空间的生成如图1-5所示,首先建立高斯拉普拉斯(LaplacianofGaussian,LoG)空间,在此基础上建立高斯差分(DifferenceofGaussian,DoG)空间。在LoG空间,对图像I(x,y)建立不同尺度下的图像,取名为子八度(octave)。其中,最下面一层子八度的尺度为原图的大小,上面每层子八度的尺度均为下一层子八度降采样的结果。在第l层子八度的内部,σ值逐渐增大,从下至上分别取值为lσ、lkσ、lk2σ、lk3σ、lk4σ。然后,通过将LoG空间中相邻的两个尺度空间L(x,y,kσ)与L(x,y,σ)进行差分,可以得到DoG空间D(x,y,σ),在此空间中更适合寻找图像的特征点。DoG空间的具体计算公式为①尺度空间的生成经典的特征提取原理02SIFT特征经典的特征提取原理02SIFT特征②特征点搜索在生成DoG空间后,需要在此空间中搜索特征点。如图1-6所示,首先寻找DoG空间中的极大值和极小值像素点。扫描每个像素点,检测其在3像素×3像素×3像素的空间邻域内是否为极值点。如果像素点X的像素值在该空间邻域内最大或最小,则X被标记为极值点。以同样的方式遍历DoG空间中所有具有3像素×3像素×3像素空间邻域的像素点,即可以标记好所有极值点的位置。经典的特征提取原理02SIFT特征②特征点搜索然后,寻找子像素级的极大值和极小值像素点,通过拟合三维二次函数来精确确定特征点的位置。具体可分为以下两个步骤。计算空间尺度函数的泰勒展开式对D(x)求导并令其等于0,可解得极值点b.利用空间尺度函数的泰勒展开式,可得DoG空间中极值点处的取值为若D(xˆ)≥0.03,则保留该极值点,记为特征点。经典的特征提取原理02SIFT特征③边界与低对比度特征点的消除对上一步骤中存在的边界特征点和对比度较低的特征点进行消除。DoG空间中亮度较小的点即为LoG空间中对比度较低的点,去除DoG空间中亮度较小的点即可消除LoG空间中对比度较低的点。此外,边界特征点的消除操作需要计算特征点和附近模糊图像的梯度,依据梯度的大小将特征点分为三类:平坦特征点、边界特征点和直角特征点,从中去除平坦特征点和边界特征点。经典的特征提取原理02SIFT特征④特征点方向的建立经过上述步骤的处理,已经得到了所有稳定特征点的位置。为了使特征点具有旋转不变性,可以利用特征点邻域像素的梯度方向分布特性为每个特征点指定方向。首先计算特征点在(x,y)处梯度的模值:然后计算特征点在(x,y)处梯度的方向:经典的特征提取原理02SIFT特征⑤SIFT特征描述子的建立如图1-7所示,以特征点所处的位置为中心,取8像素×8像素的邻域,接着将该邻域分为4个4像素×4像素的小块,在4个4像素×4像素的小块中分别计算梯度大小和方向,并利用4个方向的HOG来统计子窗口的平均方向。经典的特征提取原理03HOG特征HOG特征由Dalal等人[6]在CVPR2005中首次提出,通过计算图像局部梯度的方向和梯度幅值对行人特征进行有效提取。HOG特征的提取步骤如图1-8所示。经典目标检测器01VJ检测器该检测器的主要检测步骤包括图像预处理、Haar特征提取及预处理、滑动窗口检测、利用级联结构进行图像检测、对多个正窗口进行合并,消除错误结果。该检测器采用滑动窗口方式检查目标是否存在于窗口之中,看起来似乎很简单稳定,但由于计算量庞大,其时间复杂度极高。为了解决该问题,VJ检测器通过合并三项技术,极大提高了检测速度。这三项技术分别是特征的快速计算方法—积分图、有效的分类器学习方法—AdaBoost、高效的分类策略—级联结构的设计。如图1-12所示,利用级联结构进行图像检测的核心思想是对于明显不是目标的子窗口(Sub-Windows)立即拒绝(Reject),即将其标记为F,将可能是目的子窗口标记为T,分配更多层级和资源进行检测与处理(Processing)。经典目标检测器02HOG检测器SVM的核心原理是通过寻找一个最优超平面来分割不同类别的数据,并最大化分类间隔,从而提高模型的泛化能力。基于HOG特征的行人检测流程如图1-13所示。经典目标检测器03DPM检测器作为VOC2007—2009目标检测挑战赛的冠军,DPM是传统目标检测算法中当之无愧的最先进(StateOfTheArt,SOTA)算法。该算法于2008年被提出,相比于HOG算法,DPM进行了许多改进,因此该算法可以看作HOG算法的延伸算法。DPM检测器采用传统的滑动窗口检测方式,通过构建尺度金字塔来实现各个尺度的搜索。图1-14所示为某一尺度下的行人检测流程,即行人模型的匹配过程。根模型/部件模型在坐标(x,y)处的响应得分为该模型与以该坐标为针点(左上角坐标)的子窗口区域内的特征的内积。可以将模型看作一个滤波算子,响应得分为特征与模型的相似程度,相似程度越高,则响应得分越高。图1-14的左半部分为根模型的检测流程,在滤波后得到的图中,越亮的区域代表响应得分越高。图1-14的右半部分为各部件模型的检测流程。首先计算模型和特征图的相似性,使用模型对特征图进行滤波得到响应图;然后进行响应变换,以针点为参考位置,综合部件模型与特征图的相似性和部件模型相对其理想位置的偏离损失,得到最优的部件模型位置和响应得分。经典目标检测器03DPM检测器03智能网络目标识别技术基于锚框的智能网络目标识别技术01双阶段目标检测器包括区域候选框的生成和深度卷积目标检测网络两部分。卷积神经网络(ConvolutionalNeuralNetwork,CNN)负责提取图像特征,一系列区域候选框用以对图像中待检测目标的位置进行更好的确定与回归。双阶段目标检测器相较于单阶段目标检测器,精度较高但速度较慢,如R-CNN[16]、SPP-Net[17]、FastR-CNN[18]、FasterR-CNN[19]等。作为多阶段目标检测器的开山之作,R-CNN首先从图像中选取若干候选区域,然后通过CNN提取特征,利用SVM等分类器基于特征进行分类,基于区域候选框利用线性回归的方式对目标进行定位,从而分别实现分类和定位的要求;SPP-Net则提出了空间金字塔池化层,从而可以很好地关注到图像中不同大小的区域;FastR-CNN对R-CNN结构进行了改进,用ROI(RegionOfInterest,感兴趣区)池化层替代了区域候选框的选择过程,使得区域的分类与回归过程可以同时进行,且压缩全连接层规模,提升模型效率;FasterR-CNN引入了区域候选网络(RegionProposalNetwork,RPN)直接生成候选区域,可进一步提高模型精度与运行效率。为了使RPN更好地收敛,FasterR-CNN提出了锚框的概念。基于锚框的智能网络目标识别技术01双阶段目标检测器锚框是根据数据集的先验知识而人工设计的一组具有不同形状和大小的矩形框。骨干网络生成的特征图上的每一个像素点都被赋予一组锚框,当这些锚框和被标记的目标重合度较高时,该像素点被认为是正例,其位置参与损失函数的计算;重合度较低的像素点被认为是背景,其类别参与损失函数的计算。FasterR-CNN不论是在速度上还是在精度上,都大大超越了FastR-CNN,成为多阶段目标检测器的基石。自此之后,基于深度学习的目标检测器几乎都摒弃了用传统算法提取特征的方法,转而用CNN来提取特征。在此基础上,CascadeR-CNN[20]提出了一个多阶段的目标检测模型,在FasterR-CNN的基础上进行了多次迭代。其核心是利用不断提高的阈值,在保证样本数不减少的情况下训练出高质量的目标检测器,通过级联检测网络来达到优于预测结果的目的,大幅提高了目标检测的精度。基于锚框的智能网络目标识别技术02单阶段目标检测器直接对目标框的类别概率和位置坐标进行回归,而不需要事先生成区域候选框。与双阶段目标检测器相比,单阶段目标检测器的精度相对较低,但速度和效率大大提升。较为经典的单阶段目标检测器包括SSD[21]、YOLOv1[22]、YOLOv2[23]、YOLOv3[24]、Retina-Net[25]等。其中,YOLOv1将输入图像划分为一定数量的网格,直接对网格中的目标框进行类别概率与位置坐标的回归,使得每个网格最终分别输出一个边界框;YOLOv2则在YOLOv1的基础上进行改进,采用ImageNet数据集进行预训练,提高模型的收敛能力,引入批归一化[26](BatchNormalization,BN)及图像尺寸随机调整等数据处理方法,提升检测效果;YOLOv3则将网络中的所有池化层和全连接层用一定步长的卷积层进行替换,从而减少了特征提取过程中的信息损失,其还从不同层级的网络结构中输出特征,因此其对不同尺度的物体具有更优的检测性能;SSD也从不同尺度的卷积层中提取特征,并且将锚框的思想引入检测过程,进一步提高了检测精度。基于锚框的智能网络目标识别技术上述智能网络目标识别技术主要采用了基于锚框的方法,具有以下局限性。①②锚框的大小、数量、长宽比对检测性能的影响很大,因此基于锚框的智能网络目标识别技术的检测性能对锚框的大小、数量和长宽比都非常敏感。固定的锚框极大地损害了目标检测器的普适性,导致对于不同任务,其锚框都必须重新设置大小和长宽比。③④为了匹配真实框,需要生成大量的锚框,但是大部分的锚框在训练时被标记为负样本,容易造成样本极度不均衡。在训练中,深度卷积目标检测网络需要计算所有锚框与真实框的IoU,这样会消耗大量内存和时间。无锚框的智能网络目标识别技术基于锚框的目标识别问题通常被建模成对一些候选区域进行分类和回归的问题。在单阶段目标检测器中,这些候选区域就是通过滑动窗口方式产生的锚框;而在多阶段目标检测器中,候选区域是RPN生成的区域候选框,但是RPN本身仍然是对滑动窗口方式产生的锚框进行分类和回归。基于锚框的目标检测算法由于锚框太多而计算复杂,其带来的大量超参数也会影响模型性能。近年来,无锚框的智能网络目标识别技术摒弃了锚框,通过确定关键点的方式来完成检测,大大减少了超参数的数量。CornerNet[31]和ExtremeNet[32]直接采用自底向上的方法来完成目标检测任务。它们首先预测所有关于关键点的热力图,选出关键点,然后根据嵌入向量的距离或几何关系来进行配对,最终得出多个物体的检测结果。而另一类方法,如FCOS[33]、ATSS[34]等,与基于锚框的目标检测方法的思路一样,是从训练集中的标注框出发,直接从物体角度来进行预测。因为没有了锚框,它们直接选择标注框中一定区域内的像素点作为正样本进行回归。04数据集及模型评估指标目标分类任务的公开数据集和模型评估指标01目标分类任务的公开数据集MNIST数据集是手写字符分类任务中广泛使用的数据集,如图1-15所示。1998年,该数据集被公开,作为字符识别算法评测的公共数据集。该数据集中包含来自10个类别(手写数字0~9)、大小为28像素×28像素的手写字符灰度图,总计有60k张训练图像和10k张测试图像。①MNIST数据集目标分类任务的公开数据集和模型评估指标01目标分类任务的公开数据集CIFAR数据集是用于分类小图像的数据集,它是80MTinyImage数据集的子集。2009年,该数据集被公开,作为分类小型彩色图像算法评测的公共数据集。CIFAR数据集有两个版本,分别为CIFAR-10数据集(图像示例见图1-16)和CIFAR-100数据集,包含了大小为32像素×32像素的自然彩色图像。CIFAR-10数据集中的图像有10个类别,总计有50k张训练图像(每类5k张)和10k张测试图像(每类1k张)。CIFAR-100数据集中包含100个类别的图像,总计有50k张训练图像(每类500张)和10k张测试图像(每类100张)。②CIFAR-10/100数据集目标分类任务的公开数据集和模型评估指标01目标分类任务的公开数据集如图1-17所示,ImageNetILSVRC2012数据集是一个大尺度图像数据集。其于2009年首次被提出,并在2012年得到稳定使用。该数据集包含1000个类别的彩色图像,且一般先缩放至256像素×256像素大小。不同于以上两种数据集,该数据集的类别标签可用字网络(WordNet)表示,即由主类别标签词表示并包含相同目标的近义词,相当于词汇的分层结构。该数据集总计约有1.3M张训练图像(每个类别的图像数量在732张到1300张之间)、100k张测试图像(每类100张)和50k张验证图像(每类50张)。由于测试集标签未公开,因此一般情况下,测试模型在该数据集上的性能时,以验证集上的性能为依据。③ImageNetILSVRC2012数据集目标分类任务的公开数据集和模型评估指标02目标分类任务的模型评估指标①Top-1分类准确率Top-1指的是得分最高的类别刚好是标签类别时,分类正确。作为评估指标,Top-1分类准确率广泛应用于所有目标识别任务。②Top-5分类准确率Top-5指的是得分前5的类别中包含正确标签时,分类正确,通常只用于评测ImageNet数据集上模型的性能。0102目标检测任务的公开数据集和模型评估指标01目标检测任务的公开数据集①VOC数据集VOC数据集的全称为PatternAnalysis,StatisticalmodellingandComputAtionalLearning(PASCAL)VisualObjectClasses(VOC)数据集,简称VOC数据集,从2005年到2012年,国际上每年都会举办关于该数据集的比赛,包括分类、检测和分割等。现如今,VOC数据集已成为目标检测领域一个重要的基准。VOC数据集中包含20个物体类别,如人、鸟、汽车、椅子等生活中常见的物体。每一个目标都有目标检测任务需要的标注,即检测框位置和物体类别,且其中有一部分物体有分割标注。目前,业界最常用的VOC数据集是VOC2007和VOC2012。其中,VOC2007数据集包含9963张图像,每张图像都有标注,共有24640个目标物体。这些图像被分成训练集、验证集和测试集,测试集的标签已经公布。VOC2007数据集的图像示例如图1-18所示。VOC2012数据集相较于VOC2007数据集拥有更多的图像,共11540张,包含27450个目标物体。对于目标检测任务,它包含VOC2008~VOC2011数据集的所有图像。目标检测任务的公开数据集和模型评估指标01目标检测任务的公开数据集②SUN数据集目标类别最丰富的数据集是SUN数据集,其一共包含131067张图像、908个场景类别、313844个分割实例及4479个物体类别。目标检测任务的公开数据集和模型评估指标01目标检测任务的公开数据集③MSCOCO数据集该数据集被认为是当前最复杂的数据集,共包含约328000张图像,且由于数据集中每张图像包含的平均物体数量较多、数据集拥有80个类别,因此为目标检测器正确检测物体带来了较大的挑战,但该数据集为研究图像中目标对象的上下文关系提供了帮助。图1-19所示为MSCOCO数据集的图像示例。目标检测任务的公开数据集和模型评估指标02目标检测任务的模型评估指标针对目标检测性能好坏的评估问题,国际上通常使用mAP(meanAveragePrecision)作为评判目标检测算法的指标。具体来说,对于每种类别,均可以绘制出一条召回率-精确率曲线(Recall-PrecisionCurve)。其中,精确率(Precision)被定义为检测到的目标中检测正确的数量,其表征的是目标检测算法的查准率;而召回率(Recall)则是指检测到的目标与所有真实目标的比值,即真实目标有多少被检测到了,其表征的是目标检测算法的查全率。二者的定义分别如下:①mAP目标检测任务的公开数据集和模型评估指标02目标检测任务的模型评估指标式中,TP(TruePositive)表示真实为正样本、被模型检测为正样本的样本个数;FP(FalsePositive)表示真实为负样本、被模型检测为正样本的样本个数;FN(FalseNegative)表示真实为正样本、被模型检测为负样本的样本个数。除此之外,通常用TN(TrueNegative)表示真实为负样本且被模型检测为负样本的样本个数。理想情况是精确率和召回率同时保持在较高的比例上,但实际算法中二者往往很难兼顾。因此采用AP(AveragePrecision),即将召回率-精确率曲线下的面积作为衡量算法对于该类别分类效果的指标;而mAP是对所有类别的AP求取平均值得到的,作为算法总的评估指标。①mAP目标检测任务的公开数据集和模型评估指标02目标检测任务的模型评估指标目标检测是一个回归和分类过程。为了评估回归定位精度,需要计算IoU,即预测框和真实框之间的交集面积与二者并集面积的比值。IoU值越高,说明模型预测的检测框位置与真实框的位置越接近。通常我们将IoU大于某个阈值(如0.5)的样本归为TP样本,否则归为FP样本。这里要说明的是,实际应用中也会根据特定需求用到其他数据集和模型评估指标。②IoU05总结本章对目标识别相关内容做了简要介绍,根据是否采用人工设计特征区分传统目标识别技术与智能网络目标识别技术,并简要介绍了目标识别的发展历程。针对传统目标识别技术,简要介绍了三种特征提取原理及经典的目标识别方法,并分析了传统算法的局限性。针对智能网络目标识别技术,主要介绍了基于锚框和无锚框的智能网络目标识别技术的发展情况,并分析了它们的局限性。最后,介绍了常用的公开数据集及模型评估指标。感谢观看深度学习:智能网络目标识别技术第2章深度学习:智能网络目标识别技术智能网络目标识别基础01深度学习技术原理深度学习的起源可以追溯到20世纪80年代,当时神经网络的研究已经取得了一定的进展。然而,由于神经网络参数过多,训练难度大,其应用受到了一定的限制。随着计算机技术的发展,特别是图形处理单元(GraphicsProcessingUnit,GPU)的出现及大数据的积累,深度学习在21世纪初开始得到快速发展和应用。特别是Hinton等人于2006年提出的深度自编码器(DeepAuto-Encoder)对传统的神经网络进行了改进,通过模仿人脑处理信号时的多层抽象机制来完成对数据的识别分类,并在数据降维、特征学习、数据重构等方面广泛应用。深度学习中的“深度”指的是神经网络多层结构。之所以称为深度,是因为神经网络的结构由多个输入、输出和隐藏层构成。每层包含的单元可将输入数据转换为信息,提取最后一层特征用于特定的预测任务。深度学习的数据处理流程[1]是通过将多层特征进行转换,把原始数据变成更高层次、更抽象的表示,如图2-2所示。这些学习到的表示可以替代人工设计特征,从而避免“特征工程”。深度学习是机器学习的一个子集,其主要目的是从数据中自动学习到有效的特征表示,通常要求从数据中学习一个“深度模型”,通过将数据变换得到的特征表示输入预测函数来得到最终结果。其技术原理是通过将深度模型与预测函数进行联合,利用端到端学习(端到端训练)解决贡献度分配问题(CreditAssignmentProblem,CAP),即一个系统中不同的组件或其参数对最终结果的贡献或影响。不同于传统的多阶段或子模块分开学习,端到端学习是指在学习过程中直接优化任务的总体目标。一般地,该学习过程不需要明确地给出不同子模块或阶段的功能,中间过程不需要人为干预。端到端学习的训练数据为输入-输出对的形式,无须提供其他额外信息。因此,端到端学习作为深度学习的有效学习范式,采用反向传播算法,能够自动学习深度模型和预测函数的参数。除了优化方法,深度学习的核心任务是构建深度神经网络,即使用多层神经网络从原始数据中逐步提取更高层次的特征。但是到底多少层才算“深”,并没有一个很确切的定论,只有一两层隐藏层的神经网络通常被认为是浅层神经网络。论文VisualizingandUnderstandingConvolutionalNetworks[2]介绍了深度神经网络每一层到底“学习”到了什么类型特征。如图2-3所示,在第1层,得到的多数是底层的图像边缘信息;在第2层,得到了一些底层特征的组合信息;在第3层,得到了更多的组合特征,这层能够得到图像的大致轮廓特征;在第4层,得到了更复杂的特征,此时得到的不仅仅是轮廓特征,虽然同类对象的大小、方向不同,但是得到的特征很相似;在第5层,得到了比第4层更高级的特征,此时的特征比第4层更加“鲁棒”,相似对象的特征更加相似。02神经网络感知机感知机是美国学者罗森勃拉特(Rosenbaltt)为研究大脑的存储、学习和认知过程,在1957年提出的一类具有自学习能力的神经网络模型,它把神经网络的研究从纯理论探讨引向了工程上的实现。如图2-4所示,感知机是一个双层神经网络模型:一层为输入层;另一层具有计算单元,可以通过监督学习获得模式判别的能力。另外,感知机是一种简单的线性二分类模型,其分类准则为式中,x为输入(特征向量);w为感知机学习参数(包含偏置项θ);yˆ为预测输出。给定N个样本的训练集:
,其中yi∈{+1,−1},感知机的学习算法试图找到一组参数w*,使得对于每个样本(xi,yi)有感知机感知机的学习算法是一种错误驱动的在线学习算法,先初始化由一组参数构成的权重向量w←0(通常是全零向量),然后每当分错一个样本(x,y),即ywxT<0时,就用这个样本来更新权重。根据感知机的学习算法,可以反推出感知机的损失函数为感知机的损失函数希望误分类的点到分类超平面[式(2.1)]上的距离最短。那么,采用随机梯度下降法,其每次更新的梯度为感知机式(2.5)表示的含义和式(2.3)完全一致。二分类感知机的学习算法如下。感知机的学习过程与求解线性判别函数的过程是等价的,此处只指出感知机的一些特性:①两层感知机只能用于解决线性可分问题;②学习过程的收敛速度很快,且与初始值无关。单层感知机不能解决的问题称为线性不可分问题。感知机1969年,Minsky证明了“异或(XOR)”问题是线性不可分问题。异或运算的定义为异或运算的真值表如表2-1所示。感知机如果异或问题能用单层感知机解决,则由异或运算的真值表可知,w1、w2和θ必须满足以下方程组:显然,该方程组是无解的,这就说明单层感知机是无法解决异或问题的。异或问题是一个只有两个输入和一个输出,且输入、输出都只取1和0两个值的问题,分析起来比较简单。对于比较复杂的多输入函数来说,到底有多少是线性可分的,多少是线性不可分的呢?相关研究表明,线性不可分函数的数量随着输入个数的增加而快速增加,甚至远远超过了线性可分函数的数量。也就是说,单层感知机不能解决的问题数量远远超过了它所能解决的问题数量。这也是当Minsky给出单层感知机的这一致命缺陷时,会使神经网络的研究进入漫长黑暗期的原因。前馈神经网络深度学习是机器学习的一个子集,其主要目的是从数据中自动学习到有效的特征表示,通常要求从数据中学习一个“深度模型”,通过将数据变换得到的特征表示输入预测函数来得到最终结果。其技术原理是通过将深度模型与预测函数进行联合,利用端到端学习(端到端训练)解决贡献度分配问题(CreditAssignmentProblem,CAP),即一个系统中不同的组件或其参数对最终结果的贡献或影响。不同于传统的多阶段或子模块分开学习,端到端学习是指在学习过程中直接优化任务的总体目标。一般地,该学习过程不需要明确地给出不同子模块或阶段的功能,中间过程不需要人为干预。端到端学习的训练数据为输入-输出对的形式,无须提供其他额外信息。因此,端到端学习作为深度学习的有效学习范式,采用反向传播算法,能够自动学习深度模型和预测函数的参数。前馈神经网络构成前馈神经网络的各神经元接收前一级输入,并输出到下一级,无反馈,可用有向无环图表示。图的节点分为两类,即输入节点与计算单元。每个计算单元可有任意个输入,但只有一个输出,而输出可耦合到任意个其他节点的输入。前馈神经网络通常分为不同的层,第i层的输入只与第i-1层的输出相连,这里认为输入节点为第1层,因此所谓的具有单层计算单元的网络实际上是一个两层网络。由于输入层和输出层可与外界相连,直接受环境影响,因此称为可见层,而其他的中间层则称为隐藏层(也称为隐层、隐含层),如图2-5所示。前馈神经网络下面我们将用数学公式描述前馈神经网络的前向传播(Feed-ForwardPropagation)计算过程。令a(0)=x,前馈神经网络通过不断迭代下面的公式进行信息传播:式中,W(l)和b(l)分别表示第l层的连接权重和偏置;a(l−1)表示第l-1层神经元的激活值;z(l)表示第l层神经元的净激活值;fl(⋅)表示激活函数。式中,W(l)和b(l)分别表示第l层的连接权重和偏置;a(l−1)表示第l-1层神经元的激活值;z(l)表示第l层神经元的净激活值;fl(⋅)表示激活函数。上式可理解为:首先根据第l−1层神经元的激活值a(l−1)计算出第l层神经元的净激活值z(l);然后经过一个激活函数fl(⋅)(激活函数将在2.3节详细介绍)得到第l层神经元的激活值。前馈神经网络因此,我们可以把每层看作一个仿射变换(AffineTransformation)和一个非线性变换。上式也可以合并写为这样,通过逐层的信息传递得到前馈神经网络最后的输出a(L)。整个前馈神经网络可以看作一个复合函数φ(x;W,b),将向量x作为第1层的输入a(0)
,将第L层(最后一层)的输出a(L)作为整个函数的输出:或者式中,W、b分别表示前馈神经网络中所有层的连接权重和偏置。反向传播算法Sigmoid函数可将任意实数映射到(0,1)区间,表现为“S”形曲线。当神经元的输出函数为Sigmoid函数时,在很宽松的条件下,三层前馈神经网络可以逼近任意的多元非线性函数,突破了两层前馈神经网络线性可分的限制。这种三层或三层以上的前馈神经网络通常又被叫作多层感知机(Multi-LayerPerceptron,MLP)。三层前馈神经网络的适用范围大大超过了两层前馈神经网络,但学习算法较为复杂,主要困难是中间的隐藏层不直接与外界连接,无法直接计算其误差。为解决这一问题,反向传播算法被提出,其主要思想是从后向前(反向)逐层传播输出层的误差,以间接算出隐藏层误差。反向传播算法分为两个阶段:第一阶段为前向传播过程,将输入信息从输入层经隐藏层逐层传播,计算各神经元的输出值;第二阶段为反向传播过程,将输出误差逐层向前传播,计算出隐藏层各神经元的误差,并用此误差修正前一层的连接权重。反向传播算法具体来说,反向传播算法的基本思想是对于样本集
,逐一地根据样本(xi,yi)计算出实际输出Oi和误差测度Ei
,用输出层的误差调整输出层权重矩阵,传递此误差并估计出前一层的误差,以此获得所有其他各层的误差估计,用这些估计实现对权重矩阵的修正,形成将输出层的误差沿着与输入信号相反的方向逐层向输入层传递的过程,即对各做一次调整,重复这个循环,直到。反向传播算法通常采用梯度法修正权重,为此要求输出函数可微,通常采用Sigmoid函数作为输出函数,如图2-6所示。反向传播算法假设图2-7所示为一个简单的前向传播网络,用反向传播算法确定其中的各连接权重时,其具体过程可做如下阐述。首先,由图2-7可知:反向传播算法式中,I3、I4、I5分别为图2-7中节点3、4、5的净激活值;Q3、Q4、Q5分别为I3、I4、I5经过函数f变换后的激活值;e为输出与真实值之间的误差。反向传播时计算如下。计算反向传播算法计算由式(2.14)可知,δ3的计算要依赖于与它相邻的上层节点的δ4和δ5的计算,三层前馈神经网络的输出层与输入层神经元数是由问题本身决定的。当前馈神经网络用于模式判别时,输入神经元数是特征维数,输出神经元数是类数。但中间隐藏层的神经元数如何确定则缺乏有效的方法。一般来说,问题越复杂,需要的隐藏层神经元越多,或者说同样的问题,隐藏层神经元越多越容易收敛。但是隐藏层神经元数过多会增加使用时的计算量,而且会产生“过学习”效果,使对未出现过的样本的推广能力变差。对于多类的模式识别问题来说,要求前馈神经网络输出把特征空间划分成一些不同的类区(对应不同的类别),每一隐藏层神经元可形成一个超平面。我们知道,N个超平面可将d维空间划分成的区域数为反向传播算法式中,Ni为第i维空间的区域个数。当N<d时,M=2N。设有P个样本,我们不知道它们实际上应分成多少类,为保险起见,可假设M=P,这样,当N<d时,可选隐藏层神经元数N=log2P作为参考数,因为所需隐藏层神经元数主要取决于问题复杂程度而非样本数,只是复杂的问题确实需要大量样本。当隐藏层神经元数难以确定时,可以先选较多的隐藏层神经元数,待学习完成后,再逐步删除一些隐藏层神经元,使前馈神经网络更为精简。删除的依据可以是某一隐藏层神经元的贡献。例如,其输出端各权重绝对值大小,或输入端的权重向量是否与其他神经元相近。更直接的方法是删除某个隐藏层神经元,继续运行一段学习算法,如果前馈神经网络的性能明显变坏,则恢复原状;如果前馈神经网络的性能没有明显变坏,则继续删除一个隐藏层神经元。逐个测试各隐藏层神经元的贡献,把不必要的隐藏层神经元删去。从原理上讲,反向传播算法完全可以用于四层或更多层的前馈神经网络。三层前馈神经网络可以解决任何问题,但对于较复杂的问题,更多层的前馈神经网络有可能获得更精简的结果。遗憾的是,反向传播算法直接用于三层以上的前馈神经网络时,陷入局部极小点而不收敛的可能性很大。此时需要运用更多的先验知识缩小搜索范围或者找出一些原则来逐层构筑隐藏层。反向传播算法的理论基础牢固、推导过程严谨、物理概念清晰、通用性好,所以它是目前用来训练多层前馈神经网络较好的算法。但是,该算法的收敛速度慢,网络中隐藏层神经元个数的选取尚无理论上的指导,而且从数学角度看,反向传播算法是一种梯度最速下降法,这就可能出现局部极小点。当出现局部极小点时,从表面上看误差符合要求,但这时所得到的解并不一定是问题的真正解,所以反向传播算法是不完备的。03深度学习算法、模型与优化深度学习算法的组成深度学习算法的组成01数据集通常情况下,整个数据集被划分为训练集、验证集和测试集三部分,一般采用7:1:2的比例划分。其中,训练集用于训练优化神经网络模型;验证集用于评估当前模型结果;测试集用于最终的模型性能测试。02神经网络模型神经网络模型一般由卷积、池化(或降采样)、全连接等单元组成,可根据所需要处理的数据和实际任务来设计、调整神经网络模型的结构和隐藏层的数量(n和m)。通过调整神经网络模型的深度或宽度、采用跳跃连接及密集连接(DenseConnectivity)等操作,实现对神经网络模型结构的调整。深度学习算法的组成03学习优化过程神经网络模型的训练过程即为学习优化过程,模型优化最直接的目的是通过多次迭代更新来寻找使得损失函数尽可能小的最优模型参数。通常神经网络模型的优化过程可以分为两个阶段:第一阶段是通过前向传播得到模型的预测值,并将预测值与真值标签进行比对,将两者之间的差异作为损失值;第二阶段是通过反向传播来计算损失函数对每个参数的梯度,根据预设的学习率和动量来更新每个参数的值。04深度学习的工作原理深度学习的工作原理一般可概括如下:首先,确定神经网络模型,然后将训练集送入搭建好的神经网络模型中,由神经网络模型对输入数据进行多次非线性映射,从而将输入数据变换至高维抽象特征空间中,并且将预测值与真值标签进行比对,计算损失值;然后,通过梯度反传进行迭代调优,使得神经网络模型能够正确分析和拟合数据的特性规律,每k次迭代之后,由验证集对当前模型性能进行评估,进而辅助模型调参;最后,当迭代优化完成之后,将训练好的神经网络模型在测试集上进行预测。深度模型的核心部件01激活函数激活函数是深度学习能学习到非线性特征的一个重要原因,没有激活函数的神经网络只是一些线性映射层的多层堆叠,无论怎么增加层数,也很难从数据中学习到表达能力强的特征。这与生物神经系统的激活机制十分类似,生物神经元在接受其他生物神经元释放的神经递质时,只有当刺激达到一定强度时才会将信号进行传递。深度模型的核心部件02卷积层卷积层是CNN的核心组成部分,也是CNN能够提取非线性特征的重要依据。卷积的过程是卷积核与输入图像进行运算的过程。如图2-12所示,卷积核通常为一个正方形矩阵,也称为滤波器或者卷积模板。将卷积核在输入图像上沿高度或者宽度方向滑动,输入图像在卷积窗口内的每个元素与卷积核上对应位置的元素相乘求和,便得到了该卷积窗口内的卷积输出。这个卷积输出就是该局部邻域内的特征,卷积核的大小称为感受野。深度模型的核心部件02卷积层填充是指在输入图像的四周填充元素(通常为0),填充0的行数或者列数由卷积核的大小决定。如图2-13所示,当卷积核大小为3×3时,只需要在输入图像的四周填充一行或者一列0元素,就能保证卷积后输出的特征图与输入图像的尺寸一致。深度模型的核心部件02卷积层卷积的时候将卷积核从输入图像的左上角开始滑动,这个滑动的步长是可以人为定义的,称之为步幅。当步幅为1时,卷积核每完成一次卷积将向右移动一个像素(1列);完成该行的卷积后,卷积核返回最左端并向下平移一个像素(1行)。有时为了满足某些特定任务的需求,也可以分别设置宽和高上的步幅。池化层往往在神经网络的卷积层之间出现,其最直观的功能是缩小特征图的尺寸,这样一方面可以压缩参数量,简化神经网络的计算;另一方面还能聚合特征,使神经网络提取到不同尺度的信息。池化操作都是在一个池化窗口(大小一般为2像素×2像素)中进行计算的,这一点与卷积类似,只是不像卷积核一样需要优化参数。常用的池化有最大池化与平均池化。最大池化便是在池化窗口中取最大值,平均池化则是在池化窗口中取平均值。图2-14所示为池化过程。深度模型的核心部件03全连接层全连接层往往位于神经网络的末端,其作用是将前面卷积层输出的特征图展开成一个一维向量,即输入图像包含高级语义信息的特征向量。如果是目标分类任务,则往往在多个全连接层后得到一个维数等于类别数的特征向量,该向量的每一维即为某个类别的概率。04归一化层归一化的主要目的是归一化网络激活值分布,加速训练过程、提高模型稳定性和性能。常见的归一化方法有批归一化、层归一化(LayerNormalization,LN)、实例归一化(InstanceNormalization,IN)、组归一化(GroupNormalization,GN)等,如图2-15所示。深度模型的核心部件04归一化层批归一化是对每一批数据进行归一化,使得每一层的输入分布更加稳定。批归一化使得训练较深的神经网络成为可能,并且使神经网络可以更好、更迅速地收敛。数据在被送入神经网络时,都是成批输入的,但如果不同批次数据的分布差异较大或者训练集与测试集数据的分布差异较大,就会导致神经网络的性能降低,变得难以训练或者产生过拟合现象。批归一化操作一般在卷积层之后、激活函数之前,对输入的一个批次特征图中的每个通道求解均值和方差,即对每个通道在这一批样本中做归一化操作。这样不仅会使整个神经网络在不同层的数值都相对稳定,还可以减少训练时梯度爆炸等情况的发生。值得注意的一点是,在使用批归一化训练时,往往希望批尽可能大一些,这样可以让一个批内的均值和方差更准确。但在测试时,单个样本的输出不应该依赖于某个批的分布,这时可以使用整个训练集的均值和方差来处理测试集的每个批。具体来说,对测试样本进行归一化时的均值,可以通过直接计算训练集中所有批的平均值来求得,方差则可以使用训练集中每个批方差的无偏估计。深度模型的核心部件04归一化层层归一化是对每一层的输出进行归一化,适用于小批量或序列数据,具体的是在特征图的通道、长与宽的维度上进行标准化,每个样本都计算独立的均值和方差。层归一化不依赖批大小的特点使得其适合处理序列化的数据,如自然语处理中的RNN(RecurrentNeuralNetwork,循环神经网络),但其在CNN中的表现不如批归一化等方法。实例归一化是对每个样本的每个通道进行归一化,常用于图像生成任务。其将统计范围进一步缩小至单个通道的特征图,在特征图的每一通道上计算均值和方差,与批大小和特征图的通道数都无关。批归一化能将方差较大的一批数据归一化到较为相似的分布,但也会给训练带来额外的噪声,使得某一样本的输出依赖于其他样本。同时,批归一化不适合批较小的任务,此时应用实例归一化往往会有更佳的效果。组归一化是将通道分组后进行归一化,适用于小批量数据。其统计方式介于层归一化与实例归一化之间,先将某一特征图的不同通道分为多个组,然后对每个组进行归一化。其也可以避免批大小对训练的影响,在计算机视觉任务中有着不错的表现。代表性的网络模型01CNN模型代表性的网络模型01CNN模型代表性的网络模型02RNN模型代表性的网络模型03自编码器自编码器(Auto-Encoder,AE)通过无监督的方式来学习一组数据的特征表示。假设有一组d维的样本xn∈Rd,1≤n≤N,自编码器将这组数据映射到特征空间,得到每个样本的编码zn∈RM,1≤n≤N,并且希望这组编码可以重构出原来的样本。自编码器的结构可分为两部分:①编码器(Encoder)f:Rd→RM。②解码器(Decoder)g:RM→Rd。自编码器的学习目标是最小化重构错误(ReconstructionError):代表性的网络模型04Transformer模型在计算机视觉领域,由于CNN在各项任务中均表现出非常出色的性能与优势,因此一直以来其都占据着主流地位。然而,尽管CNN能够利用卷积等操作来获取更加高级的抽象特征,但是为了捕获全局特征而不断堆叠加深隐藏层的数量也势必会造成模型计算量的急剧增加,不符合模型设计的初衷。因此,如何有效实现CNN在以较少模型计算量的前提下捕获全局上下文信息,成为现阶段急需攻克的一个技术难题。早在2017年,由谷歌提出的Transformer模型就在自然语言处理任务当中取得了新的突破,极大地彰显了其强大的特征表示能力。受此启发,研究者将Transformer模型扩展到了计算机视觉领域,令人惊讶的是其在多个视觉任务中表现出极大的优势与潜力。目前,基于Transformer的模型正如雨后春笋般不断出现并改善各个视觉任务的性能。代表性的网络模型04Transformer模型Transformer模型的核心机制为自注意力。在自注意力机制中,输入包括三个部分,分别是查询(Query)、键(Key)和值(Value),其中键和值配对出现。自注意力机制通过查询与键的运算获取注意力图(AttentionMap),并将其用于值的加权计算,从而得到最终的输出。Transformer模型通过图2-21所示的多头注意力(Multi-HeadAttention)模块来计算自注意力的输出。多头注意力模块将输入映射为h组不同的子空间表示,并分别计算自注意力输出,最后合并结果。代表性的网络模型04Transformer模型Transformer模型的主要技术优势包含两个方面:一是采用自注意力的方式来捕获全局上下文信息,从而建模目标的长距离依赖关系,提取出更为鲁棒的特征;二是采用并行化的处理方式,能够在同一时刻分析和处理不同空间位置与时间上下文特征之间的相互关系,有效平衡了模型的性能与复杂度。在处理视觉任务时,研究者通常采用Transformer模型的堆叠编码器作为骨干网络,并在其末端串联其他网络以执行不同的下游任务。代表性的网络模型05MLP模型MLP(多层感知机)是一种能够与CNN、Transformer模型比肩的神经网络模型,也被人们称为神经网络。最简单的MLP模型可以仅包含三个层,分别为输入层、隐藏层和输出层。其中,输入层用来接收外界的输入信号;隐藏层用来对输入信号进行加工变换;输出层用来输出处理后的结果。MLP模型的网络结构如图2-23所示,第一层为输入层,最后一层为输出层,介于两者之间的其他层为隐藏层。图2-23中,输入层的神经元有4个,输出层的神经元有3个,隐藏层的神经元有5个。每个相邻层之间的神经元都是完全连接的,而且隐藏层的数量需要根据实际任务需求来确定。当隐藏层的数量多于两层时,也被称为深度神经网络。深度模型的优化算法深度模型的训练往往依赖于训练样本,训练样本的数量与多样性会直接影响模型最终的性能。如果训练样本太少或者模型过于复杂,则容易出现过拟合现象,导致模型的鲁棒性和泛化能力变差。同时,深度模型通常是一种非线性的神经网络模型,其所采用的损失函数是一个非凸函数。在模型迭代优化过程中,最小化损失函数在本质上可以看作一种非凸优化问题,因此会存在许多局部最优解。当深层神经网络进行梯度反传时,损失误差在经过每一层的传递时都会不断衰减,有可能出现梯度消失问题。深度模型一般具有很大的参数量,也为模型的优化训练带来了巨大挑战。为了克服深度模型在训练过程中难以优化的问题,通常会引入多种训练优化技巧来分别解决模型过拟合、梯度弥散、参数量大等问题。下面介绍几种在训练中常用的方法,包括丢弃法、权重衰减(WeightDecay)及参数初始化(WeightsInitialization)。深度模型的优化算法丢弃法主要解决深度模型在训练过程中容易出现的过拟合问题。当模型参数较多,训练样本较少时,训练得到的模型往往会过度拟合数据,从而导致在训练集和验证集上的预测准确率很高,但在测试集上的表现却很差。丢弃法的作用是在模型训练过程中,每次前向传播和梯度反传时只有输入层、输出层及部分隐藏层神经元被激活,其他隐藏层神经元被暂时丢弃。如图2-24所示,在整个迭代优化过程中,丢弃法选择的神经元都是随机的,即每个隐藏层神经元权重都有一定的概率不进行更新。由于丢弃法在每次迭代优化时按照一定概率选择部分神经元进行激活,将另一部分神经元从网络中暂时丢弃,所以能够有效降低模型的计算量,而且可以缓解模型的过拟合,达到一定的正则化效果。深度模型的优化算法04典型智能网络目标识别算法FasterR-CNNFasterR-CNN01特征提取特征提取网络可使用CNN,如VGG16、ResNet等,对输入图像I提取输出层特征F:02候选区域生成RPN为FasterR-CNN目标检测框架的核心组件,致力于从输入图像中高效地生成高质量的候选区域。其采用全卷积网络架构,可在任意尺寸的输入图像上滑动窗口,生成一组矩形候选区域及其对象得分。在每个位置上,根据多种预定义的尺度和宽高比生成锚框,这些锚框作为参考框,用于捕捉各种形状和大小的目标。FasterR-CNN03ROI池化由于特征图的大小会根据输入图像的尺寸和网络架构的深度而变化,因此目标的尺寸和位置在图像中是不固定的,直接在这些大小变化的特征图上应用全连接层进行分类或回归是不可行的。为了解决这一问题,ROI池化通过将来自不同区域的特征图规范化为预定义的固定大小,使得网络能够有效地处理大小不同的特征图。对于每个ROI,该区域通过一个四元组
定义,其中
(rx
,ry)是区域左上角的坐标,rw和
rh分别是区域的宽度和高度。每个ROI被分割成H×W个网格,其中H和W是预定义的池化层输出尺寸。该步骤将不同大小的ROI转换为具有相同空间维度(H×W)的特征块。在每个网格单元内进行池化操作(通常是最大池化),选取该网格单元覆盖区域中的最大值作为该单元的输出。通过这种方式,每个ROI生成了一个固定大小的H×W特征图。池化操作的尺寸大小可以通过以下方式计算,确保从原始ROI中均匀采样:FasterR-CNN04目标分类及边界框回归经过ROI池化步骤后,得到了大小固定的特征图,这些特征图接下来将用于两个关键任务:目标分类和边界框回归。目标分类旨在确定每个ROI中包含的对象类别,通常通过一个或多个全连接层实现,最后一个全连接层的输出通过Softmax函数进行归一化,以获得每个类别的概率分布。对于第i个ROI,设其特征向量为Fi,通过全连接层后得到的对象得分向量为Ci
,则分类的概率Pi可以通过Softmax函数计算得到:YOLO单阶段目标检测器中最为重要的两个检测器是YOLO[22]和SSD[23],它们都没有RPN这一结构,而是直接将图像特征送入全卷积网络,预测最终结果,其网络结构如图2-27所示。这两个检测器也是基于锚框机制的,将锚框与真实框重合度高的像素点作为正样本,直接一步输出预测的偏移量和物体类别,而不再进行额外的精修。FPNFasterR-CNN、SSD和YOLO都是使用最后一层输出的特征图来进行目标检测的。而在最后一层输出的特征图中,每个像素的感受野都较大,且大小都是基本一致的(不考虑边界情况),因此难以适应不同尺度的目标。为解决这一问题,研究者想到提取不同分辨率的特征图来进行目标检测,这部分网络可称为特征融合网络。它并不一定是严格意义上的网络,有可能只是对已有特征图的某种融合。FPN[24](FeaturePyramidNetwork,特征金字塔网络)就是其中一个典型代表。CenterNetFasterR-CNN和YOLO采用了锚框设计,需要大量人为设定的超参数,并附带了许多包括IoU阈值在内的其他超参数。另外,基于锚框的目标检测器中使用的非极大值抑制会影响算法整体的检测速度。因此,基于锚框的目标检测器大大降低了网络的智能性和自主性。许多研究者抛弃了锚框机制,直接预测物体的位置,提出了许多优秀的算法。CenterNet[25]作为无锚框目标检测器的典型代表之一,与之前的单阶段和双阶段目标检测器相比,具有以下优势。(1)通过直接在热图(Heatmap)上过滤,省略了使用锚框和用于处理候选区域的非极大值抑制操作,提升了算法的整体检测速度。(2)CenterNet不仅可以用于2D目标检测,经过简单的修改后还能用于3D目标检测和姿态检测,相比其他单阶段和双阶段目标检测器具有较好的通用性。CenterNet如图2-29所示,CenterNet会将输入图像缩放到512像素×512像素的尺寸,对于输入图像的短边会进行补0操作。主干网络可使用ResNet、Hourglass和DLA,其中,使用ResNet的模型检测速度最快,而使用Hourglass的模型检测精度最高。图2-29右侧为CenterNet的预测单元,可分为三部分,分别是热图、偏移量、宽和高。其中,热图用于表示目标的中心点(关键点)的概率分布;偏移量用于补偿下采样造成的误差;宽和高用于预测目标边界框的尺寸。DETRDETR[27]旨在解决计算机视觉领域中目标检测任务的复杂性和烦琐性问题。通过引入Transformer架构,DETR成功地简化了目标检测的流程,消除了对人工设计特征、锚框及复杂后续处理步骤(如非极大值抑制)的依赖。其核心创新包括使用Transformer模型直接对图像进行序列到序列的预测,利用全局损失函数(结合匈牙利算法)实现预测与真实标注(GroundTruth)之间的最优一对一匹配。05总结深度学习是具有多级表示的表征学习方法,与传统机器学习方法相比,深度学习更加复杂,能够学习到更加抽象的模式和特征,也因此在计算机视觉领域得到了广泛的应用。本章从深度学习技术原理出发,依次介绍了神经网络和深度学习算法、模型与优化,并深入介绍了典型的智能网络目标识别算法,为后续章节提供了基础理论和技术指导。感谢观看深度学习:智能网络目标识别技术第3章深度学习:智能网络目标识别技术新型注意力机制深度目标识别方法01概述 人类视觉系统可以迅速、高效地找到复杂场景中的重要区域,受这种现象启发,注意力机制被引入计算机视觉系统中。注意力机制已经在各种计算机视觉任务(如图像识别、目标检测、语义分割、动作识别、图像生成、三维视觉等)中取得了巨大成功。注意力机制可以理解为,计算机视觉系统在模拟人类视觉系统可以迅速、高效地关注到重点区域的特性。对于计算机视觉系统来说,上述过程可以抽象成以下公式:式中,g(x)表示对输入特征进行处理并产生注意力的过程;f(g(x),x)表示结合注意力对输入特征进行处理的过程。广泛应用的SE(SqueezeandExcitation,压缩与激励)注意力及Transformer自注意力可根据式(3.1)进行显性构建。例如,SE注意力可具体化为式中,GAP和MLP分别表示全局平均池化操作和多层感知机操Transformer的自注意力可具体化为式中,Q、K、V分别表示查询、键、值。明显地,注意力的学习过程实际上是明确g过程和f过程,并学习对应的权重参数。基于上述注意力机制原理,涌现出了多种注意力构建方法,并呈现出了一定的发展模式。如图3-1所示,计算机视觉任务的注意力机制经历了以下过程:首先,递归注意力模型(RecurrentAttentionModel,RAM)开创性地将深度神经网络与注意力机制进行结合,递归预测重要区域并借助强化学习的策略梯度进行端到端训练,更新整个网络,在此阶段中,递归神经网络是注意力机制的主要工具;其次,Jaderberg等人提出空间Transformer网络(SpatialTransformerNetworks,STN),通过引入子网络预测仿射变换参数,用于自适应选择输入的重要区域,显性预测判别性输入特征是此阶段注意力的主要特点;再次,SENet作为代表性的注意力模型,提出了一种新颖的通道注意力网络,用于隐性和自适应预测潜在的关键特征,随后大量的空间自注意力CBAM、高效的通道注意力网络ECA-Net等方法相继被提出,有效增强了特征聚合效果;目前,自注意力机制快速发展Transformer自注意力机制广泛应用于自然语言处理、视频理解、目标识别等众多任务中,并衍生了多种自注意力模型,例如T2TViT、Swin、Transformer、DETR等。02引入反馈机制的特征优化检测器IFF模块为进一步分析单阶段目标检测器特征图中存在的具体问题,本节使用在VOC数据集上训练好的SSD检测器对一些图像进行预测,并取出骨干网络提取的特征图,对特征图和检测结果进行可视化,如图3-2所示。在图3-2中,第一行为输入图像,第二行为对应的骨干网络的输出,即特征图,第三行为检测结果。为了看起来更加直观,这里将特征图转化成了热力图,其中红色为激活程度高的区域,蓝色为激活程度低的区域。将输入图像和特征图进行对比,不难发现,有许多实际上是背景的地方被错误激活(特征图中红圈中的位置)了。特别是在较为复杂的背景中,这样的背景噪声会导致许多被错误激活的区域。CNN是通过特征来做出相应预测的,错误的激活会使CNN捕捉的特征与真实物体的特征产生较大的差异,进而使目标检测器做出错误的预测,降低检测的准确度。在图3-2的第三行中,可以看到均出现了漏检的情况(红色框代表检测结果,绿色框代表漏检)。IFF模块IFF模块图3-3中的加号表示逐点相加,NMS表示非极大值抑制,ReLU为激活函数。其中,红色路线表示原检测的运算路径。假设对于一张特定的输入图像来说,其骨干网络提取的特征图记为x[0],合理地,可以假定其存在一张理想的特征图n,n可以完美地表示该输入图像的特征,并能使后续的检测头网络做出精准的预测,则实际特征图x[0]和理想特征图n之间必然存在噪声,记为δ,则有:IFF模块为了利用第一次不精确的预测结果来优化特征,我们将第一次预测结果(记为
y[0])作为启发信息返回给特征图,则有式中,w1为原检测头网络的卷积核;w2为新加入的反馈结构中的卷积核;*代表卷积运算。式(3.5)表示的过程可以多次重复进行,依次类推,可以得到第k次迭代的表达式为IFF模块式中,x[k]和
y[k]分别代表第k次迭代过程中的特征图和预测结果。对式(3.7)和式(3.8)应用傅里叶变换,可得式中,
表示逐点相乘;h(⋅)表示ReLU函数(本节中的ReLU函数均采用LeakyReLU);F(⋅)表示傅里叶变换;所有大写字母表示对应小写字母傅里叶变换后的形式。若检测头网络可以进行无限次迭代,则系统表示如下:可得其传递函数为IFF模块原目标检测器只进行一次前向传播便得到最终的预测结果,而IFF模块不断引入预测信息,将其作为启发信息反馈给特征图,经过多次迭代后给出预测结果。IFF模块具备以下两点优势。一是去噪。如图3-2所示,原特征图会因为背景噪声而存在许多被错误激活的区域,这些错误的特征会削弱目标检测器的性能。IFF模块的引入使得特征图可以根据对物体的粗定位信息和类别判断而得到优化,以此来增强前景、抑制背景,从而得到更高质量的特征图和更加精准的预测结果。二是发掘高层语义信息。现有目标检测器的检测头网络有两个分支,即回归分支和分类分支。这两个分支独立于彼此,没有交集。然而,根据先验知识,我们有理由推断边界框的形状、大小与类别存在着明显的耦合关系。例如,人的边界框往往是细长的,而汽车的边界框往往是扁平的;在同一张图中,大象的边界框大概率要比猫的边界框大。因此,IFF模块中的反馈结构使得边界框的位置和类别融合,相互约束,有利于发掘出更高层次的语义信息。IFF模块稳定性证明1深度学习框架介绍本节使用目前应用最广泛的深度学习框架之一——PyTorch来实现设计的算法。PyTorch是一个基于Torch库的开源深度学习框架,在计算机视觉和自然语言处理领域有着广泛的应用。尽管PyTorch的开发重点是Python接口,但其实际上也拥有C++接口。很多深度学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业多项目管理标准化模板
- 物流配送中心作业规范与自动化操作指南
- 人工智能在农业领域的智能种植解决方案
- 室内装饰设计灵感指导书
- 品质家居品牌承诺书8篇范文
- 企业项目风险管理实施流程指南
- 项目验收报告提交与反馈的催办函(6篇)范文
- 无人机驾驶培训规范承诺书范文4篇
- 农业产业化龙头企业生产管理手册
- 2026-2030中国薯条市场营销模式建议与未来销售前景规划研究报告
- 《分析人类活动对生态环境的影响》生物教学课件
- 2026中国背景音乐系统行业应用态势与盈利前景预测报告
- 义务教育均衡发展质量监测八年级综合试卷(附答案)
- 珍珠的漂白处理 2
- 某工程甘肃段地质灾害危险性评估报告
- 河北大学版小学五年级信息技术教案
- 节后复工复产安全隐患排查表
- GB/T 2828.10-2010计数抽样检验程序第10部分:GB/T 2828计数抽样检验系列标准导则
- 出版物发行员考试题库及答案
- 内部控制自我评估CSA技术与应用课件
- 常用电气设备元件课件
评论
0/150
提交评论