车牌定位车牌识别图像处理卷积神经网络计算机专业_第1页
车牌定位车牌识别图像处理卷积神经网络计算机专业_第2页
车牌定位车牌识别图像处理卷积神经网络计算机专业_第3页
车牌定位车牌识别图像处理卷积神经网络计算机专业_第4页
车牌定位车牌识别图像处理卷积神经网络计算机专业_第5页
免费预览已结束,剩余71页可下载查看

下载本文档

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

文档简介

1、摘要摘 要车牌识别技术是指能够检测到路面的车辆并自动提取车辆牌照信息然后进行处理的技术。作为智能化交通管理体系中的重要核心,车牌自动识别系统目前已在停车场管理、高速公路不停车收费以及城市交通等领域以及有着广泛应用。车牌识别系统的关键是车牌识别算法。传统车牌识别算法将整个车牌识别流程分为四个模块:车牌定位、车牌分割提取、字符切分和字符识别,这种算法设计的好处是可以为每个模块单独设计算法,从而降低整体算法设计复杂度。但其缺点是模块间的误差积累容易导致最后车牌识别的准确率降低。基于此,本文将传统车牌识别算法进行改进,从原来拥有四个模块减少到只有车牌检测与车牌识别两个部分的车牌识别算法。最近几年,深度

2、学习技术的崛起颠覆了传统图像分类、文本语义理解、语音识别以及模式识别和计算机视觉等诸多领域的算法设计思路,相较以往的模块化设计思想,如今的算法设计思路更偏好于依靠超大规模的数据,通过构建一个端到端的模型来获得最终结果。这不仅大大简化了算法设计流程,而且因为深度学习技术中使用的深度神经网络其每一层都能针对识别目标调整自己,达到各层之间的无缝衔接,最终实现通力合作,进而大大提高目标识别的准确率。卷积神经网络是深度学习技术中经典的网络结构类型之一,其在图像分类识别领域取得了前所未有的成功。目前,卷积神经网络在OCR(Optical Character Recognition,光学字符识别)领域的表现

3、让其在深度学习模型中独占鳌头。车牌识别系统从满足一般应用需求到向智能化迈进的过程中,需要持续地对识别算法进行改进,以满足更高的性能要求。本文在研究分析深度学习技术的基础上,将其中的卷积神经网络应用在车牌识别算法中,实现对车牌字符的无分割识别。本文在大量研究各种经典的卷积神经网络基础上,针对车牌识别具体的技术需求,选择经典的卷积神经网络结构AlexNet并对其改造,用于车牌识别算法中的识别部分。经过大量测试数据验证,本文提出的车牌识别算法在复杂环境下拥有较强的识别准确率,为传统车牌识别算法的改进提供了新的思路,具有较强的现实意义。关键词:车牌定位,车牌识别,图像处理,卷积神经网络ABSTRACT

4、License plate recognition technology refers to technology that can monitor the vehicle on the road and automatically extract vehicle license plate information and then process it. As an important core in the intelligent traffic management system, the license plate automatic recognition system has be

5、en widely applied in the fields of parking lot management, free parking fees, and urban traffic. The key of license plate recognition system is license plate recognition algorithm. The traditional license plate recognition algorithm divides the entire license plate recognition process into four modu

6、les: license plate location, license plate extraction, character segmentation, and character recognition. The advantage of this algorithm design is that the algorithm can be designed separately for each module, thereby reducing the overall algorithm design complexity. However, the disadvantage is th

7、at the accumulation of errors between modules can easily lead to a reduction in the accuracy of the final license plate recognition. Based on this, the conventional license plate recognition algorithm is improved, The number of modules has been decreased from four modules to two parts which includin

8、g license plate detection and license plate recognition. In recent years, the rise of deep learning technology has overturned the traditional algorithms for image classification, text semantic understanding, speech recognition, pattern recognition, and computer vision. Different from the past, the i

9、dea of modular algorithm design gradually formed a new model from the huge amount of training data, through an end-to-end model, and finally get the final result. This not only greatly simplifies the algorithm design process, moreover, because of the deep neural network used in deep learning technol

10、ogy, each layer of the deep neural network can adjust itself to the recognition target, achieve seamless connection between the layers, and finally achieve full cooperation, thereby greatly improving the accuracy of the target recognition. Convolutional neural network is one of the classical network

11、 structure types in deep learning technology. It has achieved unprecedented success in the field of image classification and recognition. At present, the performance of convolutional neural networks in the field of OCR (Optical Character Recognition) makes it unique in deep learning models. The lice

12、nse plate recognition system needs to continuously improve the recognition algorithm to meet the higher performance requirements from the satisfaction of the general application requirements to the progress toward intelligence. Based on the research and analysis of deep learning technology, this pap

13、er applies the convolutional neural network in the license plate recognition algorithm to realize the undivided recognition of license plate characters. Based on a large number of classic convolutional neural networks, this paper proposes a classic convolutional neural network AlexNet and reconstruc

14、ts it for the license plate recognition algorithm. After a lot of test data verification, the license plate recognition algorithm presented in this III第一章 绪论第一章 绪论1.1 研究背景随着我国城市化进程的推进,特别是最近几年来我国汽车制造业水平的提高,使得越来越多的车辆进入寻常百姓家。但另一方面,车辆数目的增加给我国城市交通带来了巨大的压力。为了缓解城市交通的巨大压力,我国很多城市采用尾号限行等措施。但大多数这类措施都属于短期措施,随着我

15、国社会经济的持续发展,交通压力将不可避免的再次增大,但因为道路等硬件设施的限制,在不扩宽城市道路和新修辅道的情况下,交通压力很难在短时间内得到解决。因此,加强交通管理的重要性不言而喻。汽车牌照的重要性不亚于人的的身份证,现实生活中需要通过车牌的自动识别系统对车辆进行有效管理,可见车牌识别系统在智能交通管理中具有举足轻重的作用。得益于近年来模式识别和机器视觉技术的快速发展,车牌识别系统已被广泛应用于各种交通场合,成为我国大力发展的智能交通系统关键部分。目前,车牌识别系统不仅在交通管理、道路流量监控、交通违章抓拍处理、高速公路收费系统以及停车场管理等交通场合有着广泛的应用,而且逐步向社会治安监控、

16、犯罪追踪和电子警察等公共安全领域的应用扩展。随着计算机CPU计算能力的增强,利用时下新技术、新的科研成果的转移应用在对车牌识别系统进行持续研究和改进具有重要的现实意义。从宏观上讲,车牌识别系统主要是利用模式识别、数字图像处理及机器视觉方面的相关技术对由摄像机捕获的数字图像中自动检测识别出车牌号的系统,其关键技术在于对图像的分析处理以及识别上。不管是当今各种交通场合,还是公共安全管理体系,抑或未来无人汽车、无人驾驶领域,车牌识别系统都是一个不可或缺的平台,给城市健康有序管理带来了诸多便捷。虽然车牌识别系统已得到广泛应用,但是,目前车牌识别技术仍然存在诸多难点,各方面性能还有很大的改进空间。特别地

17、,相比国外的汽车牌照,我国的车牌又有其特殊性:我国车牌除了阿拉伯数字和英文字母外,还含有中文字符,而且还存在车牌前景、背景颜色不一,单、双行车牌,各种特殊用途车牌如使领馆警用车牌等。因此,我国的车牌识别系统不能简单移植国外的技术,只能自主研发创新。另外,由于在复杂背景、车牌被污染或者缺损状态下,现有的车牌识别系统识别效果将会大打折扣。随着近年来深度学习技术的迅猛发展以及计算机数据处理能力的不断提升,深度学习技术给传统的模式识别及机器视觉领域开拓了新思路,并利用深度学习技术在上述领域取得了诸多重大突破。例如,在图像识别领域取得巨大突破的卷积神经网络(Convolutional Neural Ne

18、twork,CNN)在一年一度的ImageNet ILSVRC(大规模视觉识别挑战赛)中不断刷新历年纪录,如图1-1所示 ImageNet是一个用于对象识别检索的大型视觉数据库,截至2016年其已经对超过1千万张标注图像。top-5错误率是指预测的概率向量中最大的前5个均不包含正确结果的统计结果。可以看出深度学习技术从2012年取得重要突破,并在之后的几年里迅速得到发展,网络层数逐渐增加,错误率也随之降低。图1-1 2010年2015年ImageNet ILSVRC大赛情况与传统车牌识别方法相比,深度学习技术拥有很强的错误兼容性,能够自己调整学习过程,可以省略大量的数学建模和数据分析工作。针对

19、目前传统车牌识别算法中暴露出的种种问题,本文在大量调研各种车牌识别算法的基础上,将深度学习技术应用到车牌识别算法中。1.2 车牌识别的研究现状1.2.1 国外研究现状在上世纪80年代初,由于西方发达国家的汽车数量增加,出现了车辆难以管理的问题,政府交管部门逐渐意识到借助机器对车辆进行有效管控的重要意义,因此很多高校及企业研究部门开始着手对车牌识别系统进行研究。并在之后的几年内,逐渐有一些较为简单的数字图像处理算法被应用于车牌识别系统上,但由于当时技术条件的限制、计算机处理能力的瓶颈和理论基础研究的局限,这个阶段的研究大多采用最基础的图像处理方法,并且停留在实验室,并未有体系化的研究成果。经过一

20、段时间的技术积累,在上世纪80年代后期,车牌识别技术的研究才慢慢现出雏形,系统化的研究也在此阶段逐渐开始。例如,大量研究认识到车牌识别系统由特征提取、图片分析、模板构造以及字符识别等多个模块组成。相比80年代刚起步的时期,这个阶段对汽车牌照自动识别技术的研究有一定进展,但依然只是利用基础的图像处理技术,在人工干预的情况下,可以进行一些场景极为简单、背景单一且图像质量较好的车牌图像。因此,此阶段的研究还远远为能满足投入真实场景进行自动车牌识别的程度。20世纪90年代后,由于国外发达国家计算机技术和图像处理基础理论的进一步发展,以及前期对车牌识别系统的研究沉淀,车牌识别技术发展迅猛,陆续有公司和科

21、研机构研究出能在特定条件下进行简单识别的车牌系统并投入市场,但此阶段的车牌识别系统由于当时的图像采集设备等硬件条件的限制,经系统获取的图片大多质量不高,因此对识别场景的光照条件、车牌完整性以及车牌污损情况等都较为敏感,识别条件也较苛刻。对于车牌有倾斜、车牌模糊和天气稍差的情况,车牌识别系统的识别速度以及精度都会受到极大的影响。经过多年的发展,目前,在国外的发达国家中,车牌识别系统已经被广泛应用于市场,而且在一般场景下,都达到了较高的识别准确率。例如,以色列的See-Car System由Hi-tech公司研发生产的适用于以色列本国的车牌识别系统,新加坡的VLPRS由Optasla公司研发生产以

22、及其他国家也涌现了很多车牌识别系统方面的产品。1.2.2 国内研究现状在车牌识别领域,国内的研究相对较晚,大概开始于90年代。正如哲学上所说:“任何真理都是具体的,有条件的”,由于我国车牌的特殊性,国外的车牌识别系统并不适用于国内,也不能对国外的研究成果进行简单的技术移植。原因在于,我国的车牌底色、前景不一(蓝底白字、黄底黑字、白底黑字以及刚推出的新能源车牌的绿底黑字),而且最为重要的是,我国车牌是汉字、英文字母以及阿拉伯数字的组合,如果还要考虑车型的原因则还要区分小轿车和货车的单排、双排车牌问题。上述种种原因决定了针对我国车牌的车牌识别系统的研发难度远远大于国外车牌,只能在数字和英文字符的识

23、别上借鉴国外的研究方法。虽然国内针对车牌识别的研究稍晚,但由于巨大的市场需求的推动,发展也相当迅速。经过一个阶段的研究,目前已有很多成熟的车牌识别系统投入市场,但是各个公司的车牌识别系统具有各自的侧重点和优势。例如来自中科院自动化所的“汉王眼”;深圳锐方达科技有限公司的车牌识别系统;来自成都臻识科技发展有限公司自主研发的一款车牌识别系统“火眼臻睛”,其号称能适应各种极端情形;来自北京文通科技有限公司的“文通车牌识别”已经能实现在Android移动端进行车牌自动识别。即便有如此多的产品已经投入市场,识别率一般都超过95%,但这些产品大多与高清图像采集设备作了集成,并且采用补光等辅助措施降低外界环

24、境的影响,一旦图像质量降低,识别准确率将受到影响,而且对于车牌倾斜角度过大、有污损或者天气恶劣等复杂情况时,识别难度将大大增大。因此,现有的车牌识别技术依然有较大的提升空间。伴随着新一波深度学习技术热潮的兴起,各大企业、国内外的高校及研究所正在对车牌识别技术进行更深层、更前沿的研究。1.3车牌识别技术难点目前,现有的车牌识别系统在一般条件下能获得较好的识别效果,但仍然存在如下挑战:(1)图像质量问题。需要集成高清图像采集设备,如果图像采集设备所采集的图片分辨率达不到要求或者由于天气、背景噪声等影响较大的情况,系统的识别准确率会大打折扣。(2)车牌倾斜问题。对图像采集设备的抓拍角度有固定的限制,

25、如果获取的图像中车牌倾斜角度过大,将会严重降低系统的识别准确率和识别速度。(3)通用性和扩展性差。一方面车牌识别系统的各种参数需要根据特定场景进行最优化调整,大大降低车牌识别系统的通用性;另一方面现有的车牌识别系统几乎只能识别7字符的车牌,对于新推出的8字符新能源车牌以及未来可能推出的无人驾驶车牌等需要重新设计一套算法,扩展性大大降低。(4)汉字识别难问题。相较于国外车牌,我国车牌中识别难度最大的无疑是车牌序列包含汉字,由于汉字相较于数字、英文字母而言,其本身的结构更为复杂,因此大大提高了识别难度。(5)需要进行字符分割。目前已有的车牌识别系统核心算法基本都需要对提取出来的车牌进行字符切分,然

26、后再进行单个字符识别。由于字符识别的准确率严重依赖字符分割的效果,而字符分割又受到车牌倾斜、污损、模糊等的影响,因此导致传统车牌识别算法每个环节的误差叠加,最后识别准确率难以取得突破。1.4课题研究内容及本人主要工作本课题在深入调研传统车牌识别算法的基础上,对目前的车牌识别算法进行实现并测试,发现传统车牌识别算法的缺点和面临的各种挑战。并从目前传统的车牌识别算法存在本文1.3节所述的各种难点出发,提出应用时下在图像分类、机器视觉、语音识别和图像识别领域表现相当出色的深度学习技术为基础,尝试设计出在复杂环境下有较强识别能力的车牌识别算法。课题主要针对以下几个方面展开研究:(1)对目前已有的车牌识

27、别算法算法进行调研,并对车牌识别技术的发展和概况进行综述。(2)对传统的车牌识别算法流程进行深入研究,综合分析上述各模块算法的优缺点以及影响目前车牌识别算法的主要因素,提出了无需进行字符分割的车牌识别算法。(3)在对深度卷积神经网络AlexNet进行改造的基础上设计了本文的车牌识别网络结构,并在大量样本数据集上进行了长时间的训练,最后通过测试数据验证了本文所提出的车牌识别算法在复杂环境下的车牌识别准确率在同等条件下优于传统车牌识别算法。1.5文章结构本文总共分为六章,各章节主要内容为:第一章为绪论。本章主要介绍了车牌识别的发展历程、国内外对车牌识别技术的研究现状以及目前传统车牌识别技术的难点和

28、挑战。第二章为深度学习技术的理论阐述。本章对深度学习的理论基础及其近年来典型的网络模型进行简要介绍,并在此基础上着重介绍了深度学习技术中在图像分类识别领域表现极为出色的卷积神经网络模型进行重点详细地介绍。第三章为车牌定位算法的介绍。本章对传统的车牌定位算法进行阐述,并对本文设计的车牌定位算法流程进行详细介绍。第四章为传统的车牌字符分割、字符识别算法的介绍和实现。本章在大量调研传统车牌字符分割、识别算法的基础上,对基于垂直投影的字符分割方法进行了改进,最后应用了模板匹配的方法对车牌字符进行识别。第五章为基于深度学习技术的车牌识别算法的研究。本章主要从深度学习研究的一般流程如数据集获取、数据预处理

29、和实验环境搭建和网络训练等出发,对车牌识别算法设计及实验流程进行阐述。通过实验数据,综合分析对比了本文提出的算法与传统车牌识别算法的表现。第六章为对课题研究的总结与展望。本章回顾总结了全文所作的工作与获得的成果,最后指出了本文设计的算法实现过程中的一些不足和对后续车牌识别研究工作的展望。7第二章 深度学习概述第2章 深度学习概述深度学习是机器学习的子类,两者均属于人工智能的范畴。深度学习的思想是指通过对大量训练数据进行学习,对输入数据进行由低维到高维的特征提取,最终获得数据的底层信息与高层语义的关系映射。随着深度学习技术的不断创新和发展,其研究潜力和应用价值正被不断挖掘,可以毫不夸张地讲,深度

30、学习技术是机器学习领域近十年来取得的最成功的突破。本章从深度学习的背景出发,简单分析了深度学习在当今取得巨大突破的原因,然后深度学习技术中涉及到的一些基础概念及理论知识作了阐述,最后详细介绍了在图像识别领域获得巨大成功地卷积神经网络。2.1 深度学习的背景对于深度学习和机器学习中的“学习”,Mitchell (1997)提供了一个简洁的定义:“对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由性能度量P衡量的性能有所提升。”通俗地讲,机器学习就是通过人工设计的算法,让机器能够从大量样本数据集中学习规律得出模型,然后利用该模型对未来的数据作出

31、预测。深度学习之所以“深”,是因为其网络层数明显多于简单的浅层学习,多数回归、分类等学习算法等均属于浅层神经网络结构的简单学习的范畴。浅层神经网络结构通常只包含1至2层的特征转换层。典型的浅层结构有逻辑回归(Logistic Regression,LR)、支持向量机(support vector machine,SVM)以及多层感知机(multi layer perceptron,MLP)等。浅层模型的局限性是其在复杂函数问题上只具有有限的表示能力,这一定程度上制约了它在复杂分类问题上的泛化能力,例如其无法解决诸如人类语音和自然信号处理等相对复杂的问题。而深度学习以其较多的网络层数可以实现复杂

32、函数的逼近,相比浅层结构拥有明显优势。深度学习模型与是在传统浅层神经网络结构上的扩展,两者在网络结构上都采用了分层的思想,整体上均由输入层、隐藏层和输出层构成。只有相邻层的神经元(又称结点)之间有连接,而同一层及跨层神经元之间并无连接。两者的对比如图2-1所示。图2-1 传统神经网络与深度学习模型深度学习技术之所以在最近几年飞速发展,其原因在于:(1)机器学习站在大数据时代的肩膀上。数据量的增加使得大量算法拥有了成功训练的资源。一方面,由于我们的活动越来越发生在计算机上,而计算机会很容易记录下我们的;另一方面,由于大量的计算机通过互联网联结在一起,这些“足迹”更容易被整理成适用于机器学习训练所

33、需的数据集。(2)计算机数据处理能力的大幅增强。以前,神经网络难以取得成功的障碍之一是计算机计算资源的限制。而现在,计算机处理能力的大大增强(特别是得益于GPU的应用)使得我们可以在模型中引入更多神经元,网络层数也按需求增加,更深层的网络为提高复杂任务的精度提供了更多可能。(3)深度学习的成功应用。最早的网络只能识别两种对象,而现在的深度神经网络可以轻易识别1000个不同种类的对象。随着深度学习技术在每年举行的ImageNet大型视觉识别挑战中接连胜出,在语音识别领域的惊人表现以及在行人检测、人脸识别领域取得的巨大成功等,所有这些推动了深度学习取得前所未有的发展。2.2 深度学习基础2.2.1

34、线性回归线性回归(linear regression)是解决回归问题的一种方法,具体地讲,其目标是是建立一个将向量作为输入,把标量作为输出的系统,其中是关于的线性函数。令表示模型预测应该取的值,定义输出为(2-1)其中,为参数向量。参数的作用是控制系统行为,也称为权重(weight),它决定了每个特征影响最终预测结果的程度。若将输入特征设为,相应的参数向量为,则预测的值为(2-2)然后需要用测试集(test set)对系统的性能进行评估,评估系统的性能地量可以是均方误差(mean squared error)和交叉熵(cross entropy)等。令表示模型在个测试集上的预测结果,目标预测结

35、果为,此时,若用均方误差对系统性能进行度量,则有(2-3)由式(2-3)可以看出,当=时,误差变为0。实践应用中,术语线性回归所指的模型通常会加上偏置项(bias),其模型为(2-4)其效果是模型预测的曲线不再经过远点,偏置项代表了输出在没有任何输入时会偏移b。图2-2 线性回归模型示例2.2.2逻辑回归线性回归主要用于对输入进行拟合,而逻辑回归(Logistic Regression,LR)主要用于对样本进行分类。在线性回归中,输入和输出一般是连续的,且两者的范围都可以是;但在逻辑回归中,输出一般是离散的有限个值,两者的相同点是均基于。例如,对于二分类问题,输出只有0和1两个取值,其表示对样

36、本的某种属性的分类,这即为常见的二分类模型。例如利用sigmoid函数对输入进行压缩映射在01之间。如图2-2所示,经过sigmoid函数的作用,将输入的输出限制在了0, 1上。图2-3 逻辑回归示例2.2.3 学习算法2.2.3.1 无监督学习与监督学习机器学习算法按学习过程中的不同经验可以被分为无监督学习算法和监督学习算法两类。无监督学习算法(unsupervised learning algorithm)是指训练含有很多特征的数据集,然后学习出这个数据集上有用的特征性质。在深度学习训练中,一般需要学习生成数据集的概率分布如密度估计、合成或去噪。还有一些其他类型的无监督学习任务,例如聚类是

37、将数据集分成相似样本的集合。监督学习算法(supervised learning algorithm)与无监督学习不同的是,监督学习的训练数据集中的每个样本都有一个标签(label),机器学习算法根据这些预先设置的标签学习出一个能够进行正确预测的模型。概括的说,监督学习算法是给定一组输入和输出的训练集,然后让机器学习如何关联和,一般情况下,输出y很难被自动收集,因此需要由人来“监督”。监督学习和无监督学习并没有清晰的界限,两者也并非是完全没有交集的概念。大致来说无监督学习试图从随机向量的样本中显式或隐式地学习出概率分布,或者存在于该分布中的某些“有意思”的性质;而监督学习包含观察随机向量及其相

38、关联的值或向量,然后从预测,通常是估计。根据概率论,对于向量,可以分解为(2-5)这就意味着表面上的无监督学习可以被拆分为个监督学习问题。而由(2-6)可知能用无监督学习方式学习出联合分布,然后由其推出。2.2.3.2 支持向量机支持向量机(Support Vector Machine,SVM)是监督学习中最有影响力的方法之一,其核心思想是构造一个分割平面(在二维中为一条直线)将数据进行分离。与逻辑回归类似,该模型也基于线性,不同点是SVM只输出类别,而不像逻辑回归一样输出概率。根据取值的正负分别输出正类和负类。支持向量机创新地将线性函数重写为点积的形式:(2-7)其中为训练样本,为系数向量。

39、这种形式的重写允许我们将替换为特征函数的输出,将点积替换为(2-8)其中称为核函数,“”表示点积运算。替换之后,预测函数变为(2-9)这样一来,虽然关于是非线性的,但关于是线性的,核函数等价于用对输入进行预处理,然后转换到高维空间学习线性模型。其中最常用的核函数为径向基函数(Radial Basis Function,RBF)核,若将RBF核看作执行一种模板匹配(template matching),当核响应很大时,表明测试点与模板相似程度较大,此时模型赋予相应的训练标签很大的权重。所谓支持向量(support vector),是指在算法求解过程中,发现可以只根据部分边界数据即可确定分类器,而

40、这部分数据就称为支持向量。图2-4 SVM分类器示例2.2.4 代价函数代价函数(cost function)又称损失函数(loss function),其在深度学习算法中扮演了重要角色,因为总体上讲在深度学习训练模型的过程所作的工作正是不断优化代价函数的过程。梯度下降(gradient descent)算法中的梯度即为代价函数对每个参数的偏导数。假设有输入,对应的输出为,我们希望输出可以拟合所有训练输入,然后假设实际输出的值为,因此我们可以定义一个函数来评价拟合输出与实际的差距,这个函数就是代价函数。代价函数可以用来评价模型的好坏,一个模型的代价函数越小,说明模型和参数选择越接近训练样本。当

41、模型确定之后,剩下的工作的本质就是不断改变来获得最小的过程。参数的个数不定,两个参数的代价函数图像如图2-5所示。特别的,当值为0时,表示模型完美的拟合了训练样本数据,不存在任何误差,当然这只是理想状态。均方误差(mean squared error)和交叉熵(cross entropy)是常见的两种代价函数形式,其中均方误差代价函数常用于线性回归中,而交叉熵代价函数主要应用在逻辑回归领域。图2-5 代价函数三维图示例2.2.4.1 均方误差均方误差(mean squared error)代价函数的具体形式为(2-10)其中,为训练样本个数,为用参数和预测出来的值,为原训练样本中的值,也就是标

42、准值,角标表示第个样本。2.2.4.2 交叉熵交叉熵(cross entropy)是一个主要用于度量两个概率分布间的差异性的量,它来源于Shannon信息论。交叉熵被深度学习引入作为一个代价函数,其作用是衡量真实标记分布与训练所得模型的预测标记分布的相似程度。其具体形式为(2-11)其中,为训练样本个数,为用参数和预测出来的值,为原训练样本中的值,也就是标准值,角标表示第个样本。例如,一个包含若干输入的神经元,假设对应的权重为,偏置为b,如图2-6所示。则这个神经元的交叉熵代价函数为(2-12)其中,为神经元的输出,为输入的线性输出,为对应的目标输出。图2-6 一个有特定输入、权重和偏置的神经

43、元2.2.5 随机梯度下降在深度学习中有一个应用最广泛的算法:随机梯度下降(Stochastic Gradient Descent,SGD)算法。通常情况下,深度学习中的代价函数可以分解为每个样本代价函数的总和。如样本训练数据的附条件对数似然(2-13)其中为每个样本的损失。而梯度下降需要计算(2-14)由于式(2-14)运算的复杂度为,因此随着训练集数据量规模的增大,计算一步梯度的时间代价也相当巨大。梯度下降的核心是:梯度是一个具有期望属性的概念,而期望能使用小规模的训练样本数据进行估计。因此,在算法的每一步,可以从训练集中均匀抽出一小批量(minibatch)样本,其中是一个相对较小的数,

44、表示小批量中的样本数目。通常情况下,并不随样本训练集大小增长而变大,通常是固定值。然后,梯度的估计可以使用样本来估计(见式2-15)。(2-15)如此一来,当需要拟合数十亿的样本数据时,每次更新计算只用到几百个样本,大大减小了运算代价。随机梯度下降算法在梯度下降算法基础上进行了优化,引入了学习率这个参量,其估计方法为(2-16)其中代表学习率。虽然优化的梯度下降算法不能保证在合理的时间内达到一个极值,但通常情况下它能及时地找出代价函数一个很小的值。由图2-7可以看出,沿着函数的负梯度方向运动就能得到函数的局部最小值。图2-7 梯度下降示意图2.2.6 激活函数激活函数是在人工神经网络中提供非线

45、性建模能力的一类函数,其在深度学习中至关重要。一般而言,用作激活函数的那些函数都是非线性的。不含激活函数的神经网络通常只能处理线性问题,对于线性不可分的数据将难以得到解决。下文就几种常见的激活函数的定义和性质作简单介绍。(1)sigmoid函数sigmoid函数的表达式为(2-17)其函数图像如图2-8所示。sigmoid类似指数函数形状的图像在物理意义上最接近生物神经元(激励或抑制的程度)。此外,由于其输出在(0,1)之间,还被经常用来表示概率,或者输出的归一化。图2-8 sigmoid函数图像由图2-4可以看出(2-18)这种性质称为软饱和性,正是这个特点导致了Sigmoid激活函数的缺陷

46、,在神经网络后向传递过程中权重的更新越来越慢,网络参数因此很难得到训练,这种情况也称为梯度消失。与软饱和性对应的是硬饱和性,当某个函数具有式(2-11)所示性质时,我们称其具有硬饱和性。(2-19)硬饱和与软饱和一样也分为左饱和和右饱和。常见的ReLU函数(图像见图2-6)就属于左饱和函数。(2) tanh函数tanh函数的表达式为(2-20)其函数图像为图2-9所示。tanh也是常用的激活函数之一,与sigmoid相比,它的输出均值是0,使得其收敛速度要比sigmoid快,减少迭代次数。然而,从其函数图像不难看出,tanh函数也具有软饱和性,同样会导致梯度消失现象。图2-9 tanh函数图像

47、(3)ReLU,Leaky-ReLU,P-ReLU函数线性整流函数(Rectified Linear Unit,ReLU),ReLU与传统的sigmoid函数和tanh函数相比,可以对梯度消失问题有一定缓解。式(2-21)为ReLU的表达式。(2-21)其函数图像见图2-10。结合其函数图像可以明显的观察到ReLU的函数值在时的值恒为0,由上文对饱和性的定义可知,其具有硬饱和性。由于时,ReLU函数的导数为1,因此,其可以保持梯度在时不衰减,从而可以在一定程度上缓解深度学习训练中的梯度消失问题图2-10 ReLU函数图像针对当x<0的硬饱和问题,对ReLU做出相应的改进,使得(2-22)

48、式2-22即为Leaky-ReLU的定义,而P-ReLU认为,也可以作为一个参数来学习。2.2.7 反向传播算法误差反向传播算法,又叫BP(Back Propagation)算法,它是建立在梯度下降法的基础上,适合于多层神经元网络的一种学习算法。当使用前馈神经网络接收输入并产生输出时,信息通过网络前向流动,直到得到输出与期望的代价函数,这称为前向传播(Foward Propagation)。反向传播算法允许来自代价函数的信息通过网络向后流动以便计算梯度。计算梯度的表达式虽然直观,但如果要数值化地求解这样的表达式,其代价可能会很大。引入反向传播算法使得求解过程变得相对简单和廉价。学习算法的过程即

49、是这前向传播反向传播反复迭代,网络的学习在不断修改中完成,直至网络达到收敛条件。反向传播仅指用于计算梯度的方法,而另一种算法,例如随机梯度下降,使用该梯度来进行学习。此外,反向传播经常被误解为仅适用于多层神经网络,但是原则上它可以计算任何函数的导数。在学习算法中,我们需要求解的梯度是代价函数关于参数的梯度。反向传播算法是通过递归地使用微积分理论上的链式法则实现的。例如,设,并且,则由链式法则可知(2-24)这是均为标量的情况。当的向量时,令,则(2-25)利用向量记法,上式等价为(2-26)其中,是的的Jacobian矩阵。如此,变量的梯度便可以通过Jacobian矩阵与梯度的乘积求出。学习算

50、法中的反向传播求解梯度的原理正是由上述每一个这样的Jacobian矩阵与梯度的乘积操作组成。2.3 卷积神经网络在图像分类识别等诸多领域有着出色表现的卷积神经网络(Convolutional Neural Network,CNN)是一类特别适用于图像分类的结构。一般的全连接深度神经网络架构在进行图像分类识别时并不考虑图像的空间结构,具体地说,不管图像上的两个像素相距很远还是彼此相邻,它都一视同仁。而卷积神经网络则不同,它的网络架构将图像的空间特征考虑进来。2.3.1 卷积神经网络的结构卷积神经网络通常包括三个部分。第一部分是输入层;第二部分由个卷积层(Convolutional layer)和

51、池化层(Pooling layer)叠加组合而成;第三部分是全连接层(Full-connected layer),一般由一个全连接的多层感知机分类器构成,卷积神经网络的一般结构如图2-8所示。卷积神经网络的每个模块都由卷积层和池化层组成,这个模块又叫做特征提取器。在卷积层中,一个神经元并不与相邻层的所有神经元连接,而只是其中一部分,每个卷积层通常包含由许多矩形排列的神经元组成的若干个特征平面(feature map),位于同一个特征平面上的神经元具有相同的权值(共享权值),共享的权值就是卷积核。卷积核通过网络训练学得一组合理的权值,共享权值带来的好处有:一是减少网络间各层的连接,进而使参数大为

52、减少;二是降低过拟合的风险。池化层或叫子采样层(Subsampling layer),可以将其看作一种特殊的卷积操作,通过卷积层和池化层的处理降低了模型的复杂度。图2-12 卷积神经网络结构图2.3.2 卷积运算卷积神经网络的卷积层应用了“卷积”这种数学运算。连续函数卷积的一般形式为(2-27). 卷积运算通常用“*”来表示(2-28)离散函数卷积的一般形式为(2-29)在卷积神经网络中,卷积的第一个参数(上式中的函数)叫做输入(input),第二个参数(上式中的)叫做核函数(kernel function)或者卷积核,而卷积结果常被叫做特征映射(feature map)。在图像数据中,需要经

53、常一次在多个维度上进行卷积运算。例如,假设把输入为一张二维图像I,卷积核为K,则此时的卷积运算可以写为(2-30)图2-13形象地表示了二维图像中的卷积运算过程。图2-13 二维图像中的卷积运算2.3.3 局部感受野在2.2.8节所示的全连接神经网络中,输入通常表示成纵向排列的神经元。但在卷积神经网络中,通常把输入看作方形排列的神经元。例如,在图像分类中,我们将局部的小区域方形像素连接到隐藏神经元层,每个连接学习一个权重,在深度学习术语中,将这个小区域称为局部感受野,如图2-14所示。图2-14 局部感受野局部感受野在输入图像的像素矩阵中从左往右、从上到下依次按步长(stride)为1移动,重

54、复此过程,就建立起一个隐藏层(hidden layer),如图2-15所示。图2-15 局部感受野移动构建起隐藏层2.3.4 权值共享权值共享(weights sharing)是指在一个网络模型中的多个函数都使用相同的权重。与传统神经网络在计算一层输出时权重矩阵的每个权值只使用一次不同的是,卷积神经网络用于一个输入的权重同时也会应用在其他输入上,如图2-11所示。卷积网络中的权值共享的好处使得我们只需要学习一个权值集合,而不需要对输入的每一个位置都单独学习一个权值集合。权值共享的优点是显著地降低模型的存储需求同时大大减少了参数个数。对于卷积操作,这种特殊形式的参数共享使得神经网络层具备了平移等

55、变的性质。“等变”的定义为:当一个函数的输入以某种方式改变时,输出也以同样的方式改变,这种性质就称为等变性。针对卷积运算,对输入的任意平移函数,由卷积的定义可知,卷积函数对于具有平移等变性。这个性质可以用到图像的低维特征检测中,例如边缘检测。因为在图像中,相同或者类似的边缘常有可能散布在图像的各个位,所以应当对整幅图像使用同一个参数矩阵(同一个卷积核),即权值共享。而在处理与位置有关的高维特征时,我们需要在不同位置提取不同的特征,此时就不能共享权值。(a)(b)图2-16 权值共享与否对比。(a)使用了权值共享;(b)未使用权值共享在图2-16(a)中加粗箭头表示在卷积模型中对一个含有3个元素

56、的卷积核的中间元素的使用,由于权值共享,这个权值被作用在所有的输入位置上。与之相对应的是图2-16(b),表示了在全连接网络模型中没有使用权值共享的情况,所有权值仅被使用一次。2.3.5 池化在卷积神经网络中,一般情况下每一层包含三个级(如图2-17)。第一级的功能是并行地计算多个卷积然后产生一组线性激活响应,这级常叫做卷积级(Convolutional stage)。接下来第二级中将第一级产生的每一个线性激活响应通过一个非线性激活函数(如sigmoid),这级称为探测级(Detector stage)。最后一级池化级(Pooling stage)常用一个池化函数对上一级的输出作进一步调整。图

57、2-17 一个典型卷积神经网络包含的组件池化的输出是对输入邻域的概括统计,用该位置的概括统计特征代替在该位置的输出,当步幅大于1时,看以看作是一种降采样行为。其中最大池化(max pooling)和均值池化(mean pooling)是两种常见的池化操作形式。其中,最大池化将相邻区域(一般为矩形区域)的最大值作为此位置的输出,均值池化根据求取平均值的算法不同可以分为简单地求平均和据中心像素距离的加权平均等池化操作。池化的优点在于它的平移不变性:即便输入作出少量平移,由于池化函数的作用使得输出基本保持不变。当我们只关心某个特征的出现与否而不关心此特征的具体位置时,平移不变性就变得相当有用。利用池

58、化操作可以学得某些变换的不变性,提高网络统计效率。池化综合了其周围邻居的反馈,在提高网络计算效率的同时减少了对大量参数的存储需求。(a) (b)图2-18 常见的两种池化操作。(a)最大池化;(b)均值池化图2-19 最大池化引入了不变性(a)最大池化操作;(b)输入平移后的池化效果在图2-19(a)中,下层为非线性输出,上层为池化层的输出,池的大小为3个像素,使用了最大池化操作。与之相对应的是图2-19(b)中对图2-19(a)进行了一个像素的平移操作,跟图2-19(a)对比可以看出,平移一个像素之后输入全部改变,但池化操作后仅有一半的输出被改变。2.3.6 卷积神经网络的训练与人工神经网络模型一般应用于处理有监督学习问

温馨提示

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

评论

0/150

提交评论