深度学习在图像识别中的应用1CONTENTS图像识别概述1人工神经网络与深度学习2卷积神经网络3LeNet-54结束语5213图像识别•图像识别也就是图像的模式识别,是模式识别技术在图像领域中的具体应用,是对输入的图像信息建立图像识别模型,分析并提取图像的特征,然后建立分类器,根据图像的特征进行分类识别的一种技术。4图像识别•预处理,指将训练或者测试的图像进行一定的处理,使得它更加清晰或者更加适合算法要求。常见的预处理手段包括去噪处理、图像增强、归一化。•特征提取。–分类器无法识别像素级别的浅层信号,只能识别高层信号–从训练数据中提取“有用的”高层信号(特征)•识别分类,指算法通过一定的训练后,形成一个分类标准,可以将测试集中的待识别图像归为某一类的过程。。5图像识别的应用•在军事领域,无人机侦探,导弹精确打击,军事目标锁定,雷达警戒系统等•在公共安全领域,机场安检,恐怖分子搜查,公共交通安全,车牌定位,目标追踪等,•在农业领域,物种识别,产品营养成分分析,农作物病情分析等•在日常生活中,门禁系统的人脸识别、视网膜扫描、指纹扫描等。6图像识别的常用方法•贝叶斯分类法•模板匹配法•核方法•集成学习方法•人工神经网络法(ANN)728人脑识别的过程•人脑是通过分级的、多层网络模型来识别•减少数据量,保留物体的有用信息9ANN的发展史•1943年,Mcculloch和Pitts提出了神经元的数学模型,奠定基础;•1958年,Rosenblatt提出了感知机模型,首次把人工神经网络的研究从理论探讨付诸工程实践;•1969年,Minskyh《感知机》指出当前的网络只能应用于简单的线性问题,却不能有效地应用于多层网络,低潮;•1982年,美国物理学家Hopfield博士提出了Hopfield模型理论,他证明了在一定条件下,网络可以达到稳定的状态。在他的影响下,神经网络得以复兴;•80、90年代,提出BP算法、CNN;•2006年,Hinton提出了一种深度神经网络参数的训练算法,在物体识别、图像分类、语音识别等领域取得了突破性进展,开启了深度学习在学术界和工业界的浪潮。10人工神经网络与深度学习•深度学习的概念源于人工神经网络的研究,是机器学习的分支;•机器学习的发展经历了浅层学习和深度学习两次浪潮–浅层学习,通常包含一层或两层的非线性特征变换,可以看成是具有一层隐含层或者没有隐含层的结构。大多数传统的机器学习和信号处理技术,都是利用浅层结构的架构。例如高斯混合模型(GMMs)、支持向量机(SVMs)等都是浅层结构。–深度学习,主要指超过三层的神经网络模型。11深度学习的现状•深度学习在语音识别、图像识别等领域摧枯拉朽。12•国际会议、期刊等涌现大量深度学习的文章,CNN被引入很多领域。•知名高科技公司都在深度学习领域加大投入。深度学习对图像识别的影响•GoogleBrain项目,用16000个CPUCore的并行计算平台,创建了一个深度神经网络,仅通过YouTube视频学习到“猫”;•2012年Hinton用DNN技术在图像识别方面取得惊人的成功,在著名的ImageNet问题上将错误率从26%降低到了15%,并且输入没有用到其他任何人工特征,仅仅是图像的像素。13深度学习•深度学习是一种高效的特征提取方法•深度是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。•深度学习作为机器学习的一个分支,其学习方法可以分为–无监督学习:深度信念网(DeepBeliefNetwork,DBN)–监督学习:卷积神经网络(ConvolutionalNeuralNerwork,CNN)14315CNN的由来•卷积神经网络(CNN)是人工神经网络的一种,是多层感知机(MLP)的一个变种模型,它是从生物学概念中演化而来的。•Hubel和Wiesel早期对猫的视觉皮层的研究中得知在视觉皮层存在一种细胞的复杂分布,这些细胞对于外界的输入局部是很敏感的,它们被称为“感受野”(细胞),它们以某种方法来覆盖整个视觉域。这些细胞就像一些滤波器一样,够更好地挖掘出自然图像中的目标的空间关系信息。•视觉皮层存在两类相关的细胞,S细胞(SimpleCell)和C(ComplexCell)细胞。S细胞在自身的感受野内最大限度地对图像中类似边缘模式的刺激做出响应,而C细胞具有更大的感受野,它可以对图像中产生刺激的模式的空间位置进行精准地定位。16CNN概述•卷积神经网络已成为当前语音分析和图像识别领域的研究热点。•80年代末,YannLeCun就作为贝尔实验室的研究员提出了卷积网络技术,并展示如何使用它来大幅度提高手写识别能力。•目前来看,在图像识别领域,CNNs已经成为一种高效的识别方法17CNN的三个基本概念•局部感受野(localreceptivefields)•共享权重(sharedweights)•池化(pooling)18局部感受野•图像的空间联系是局部的,就像人通过局部的感受野去感受外界图像一样,每个神经元只感受局部的图像区域,然后在更高层,将这些感受不同局部的神经元综合起来就可以得到全局的信息了。•CNN中相邻层之间是部分连接,也就是某个神经单元的感知区域来自于上层的部分神经单元。19局部感受野20局部感受野21卷积•特征增强,降低噪声•a1=σ(b+w*a0)•卷积核•跨距22共享权重•隐层的参数个数和隐层的神经元个数无关,只和滤波器的大小和滤波器种类的多少有关。23特征图(FeatureMap)•提取不同的特征,需要多个滤波器。每种滤波器的参数不一样,表示它提出输入图像的不同特征。这样每种滤波器去卷积图像就得到对图像的不同特征的反映,我们称之为FeatureMap。•100种卷积核就有100个FeatureMap。这100个FeatureMap就组成了一层神经元。24池化•常见的方法:最大值池化(max-pooling)L2池化(L2pooling)均值池化(MeanPooling)•原理:根据图像局部相关的原理,图像某个邻域内只需要一个像素点就能表达整个区域的信息•也称为混合、下采样25CNN的结构•CNN的网络层分为–卷积层,C*,特征提取层,得到特征图,目的是使原信号特征增强,并且降低噪音;–池化层,S*,特征映射层,将C*层多个像素变为一个像素,目的是在保留有用信息的同时,尽可能减少数据量26卷积和子采样过程:卷积过程包括:用一个可训练的滤波器fx去卷积一个输入的图像(第一阶段是输入的图像,后面的阶段就是卷积特征图了),然后加一个偏置bx,得到卷积层Cx。子采样过程包括:每邻域四个像素求和变为一个像素,然后通过标量Wx+1加权,再增加偏置bx+1,然后通过一个sigmoid激活函数,产生一个大概缩小四倍的特征映射图Sx+1。27光栅化•图像经过池化下采样后,得到的是一系列的特征图,而多层感知器接受的输入是一个向量。因此需要将这些特征图中的像素依次取出,排列成一个向量。28429LeNet-5•YannLecun在1989年发表了论文,“反向传播算法在手写邮政编码上的应用”。他用美国邮政系统提供的近万个手写数字的样本来训练神经网络系统,训练好的系统在独立的测试样本中,错误率只有5%。•进一步运用CNN,开发出LeNet-5用于读取银行支票上的手写数字,这个支票识别系统在九十年代末占据了美国接近20%的市场。30Mnist数据库•MNIST数据分为两个部分。第一部分包含60,000幅用于训练数据的图像,第二部分是10,000幅用于测试数据的图像。•这些图像分别扫描自250人的手写样本,他们中一半人是美国人口普查局的员工,另一半人是高校学生。•这有助于确保我们的系统能识别那些没有看到训练数据的手写的数字。31LeNet-5•共有7层,不包含输入32C1层:输入图片大小:32*32卷积窗大小:5*5卷积窗种类:6输出特征图数量:6输出特征图大小:28*28(32-5+1)神经元数量:4707[(28*28)*6)]可训练参数:156[(5*5+1)*6]连接数:12304[(5*5+1)*(28*28)]*633S2层:输入图片大小:(28*28)*6卷积窗大小:2*2卷积窗种类:6输出下采样图数量:6输出下采样图大小:14*14神经元数量:1176(14*14)*6可训练参数:12(6*2)连接数:5880(4+1)*(14*14)*634C3层:输入图片大小:(14*14)*6卷积窗大小:5*5卷积窗种类:16输出特征图数量:16输出特征图大小:10*10(14-5+1)神经元数量:1600[(10*10)*16)]可训练参数:1516[6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+1*(6*25+1)]连接数:151600{[6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+1*(6*25+1)]*(10*10)}35•X了的表示两者之间有连接•组合•底层的结构构成上层更抽象的结构36S4层:输入图片大小:(10*10)*16卷积窗大小:2*2卷积窗种类:16输出下采样图数量:16输出下采样图大小:5*5神经元数量:400(5*5)*16可训练参数:32(16*2)连接数:2000(4+1)*(5*5)*1637C5层:输入图片大小:(5*5)*16卷积窗大小:5*5卷积窗种类:120输出特征图数量:120输出特征图大小:1*1(5-5+1)神经元数量:120(1*120)连接数:48120[16*25+1]*1*120(全连接)可训练参数:48120[16*25+1]*1*12038F6层:输入图片大小:(1*1)*120卷积窗大小:1*1卷积窗种类:84输出特征图数量:84输出特征图大小:1神经元数量:84连接数:10164(120+1)*84(全连接)可训练参数:10164(120+1)*8439OUTPUT层:输入图片大小:1*84输出特征图数量:1*10输出1000000000,则表明是数字0的分类。40CNN的两个部分41如何训练?训练算法•网络初始化•第一阶段,向前传播阶段:–a)从样本集中取一个样本(X,Yp),将X输入网络;–b)计算相应的实际输出Op。•第二阶段,向后传播阶段–a)算实际输出Op与相应的理想输出Yp的差;–b)按极小化误差的方法反向传播调整权矩阵。42梯度下降法43梯度下降法,又称最速下降法。1847年由著名的数学家柯西Cauchy给出。基本思想假设我们爬山,如果想最快的上到山顶,那么我们应该从山势最陡的地方上山。也就是山势变化最快的地方上山同样,如果从任意一点出发,需要最快搜索到函数最大值,那么我们也应该从函数变化最快的方向搜索。函数变化最快的方向是什么呢?如果函数为一元函数,梯度就是该函数的导数)()('xfxf函数的梯度。梯度下降法44如果为二元函数,梯度定义为:jxyixyxxf2121),(如果需要找的是函数极小点,那么应该从负梯度的方向寻找,该方法称之为梯度下降法。要搜索极小值C点,在A点必须向x增加方向搜索,此时与A点梯度方向相反;在B点必须向x减小方向搜索,此时与B点梯度方向相反。总之,搜索极小值,必须向负梯度方向搜索。梯度下降法的步骤45假设函数只有一个极小点。初始给定参数为。从这个点如何搜索才能找到原函数的极小值点?方法:),,,(21nxxxfy),,,(020100nxxxX1.首先设定一个较小的正数,;2.求当前位置处的各个偏导数:nmxxyxfmmm~1),()('003.修改当前函数的参数值,公式如下:nmxxyxxmmmm~1),(0'4.如果参数变化量小于,退出;否则返回2。bC(ω,b)梯度下降法46代价函数求随机梯度下降•梯度下降法的缺点–在实践中,为了计算梯度∇C,我们需要为每个训练输入x单独地计算梯度值∇Cx,然后求平均值当训练输如的数量过大时会花费很长时间,这样会使学习变得相当缓慢•随机梯度下降–随机选取小量