版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题 目: 基于 DL4J 库 CNN 手写识别 原理研究与实现 摘 要卷积神经网络作为一种深度单方向传播的可用一个有向无环图表示的网络,其在计算机对图像的处理中应用效果非常好。LeNet-5 模型是一个专门为手写数字识别而设计的最经典的卷积神经网络模型。借助 MNIST 字符库数据集,优化卷积层样本的训练模式,即将每批固定输入样本和固定迭代次数的原始训练模式优化为每批不同输入样本和不同迭代次数的混合训练模式。优化后的训练方法可以提高识别速度,减少预处理的工作量。实验结果表明,优化后的混合样本输入法在保证样本训练时间相等的前提下,可以获得较高的识别率。关键词:关键词:手写数字识别;MNIST 字
2、符集;卷积神经网络;Lenet-5 模型ABSTRACTAs a kind of deep unidirectional propagation network, convolutional neural network can be represented by a directed acyclic graph, which has been well applied in image processing by computer. Lenet-5 model is the most classical convolutional neural network model specially
3、 designed for handwritten digit recognition. With the help of MNIST character library data set, the training mode of convolution layer samples is optimized, that is, the original training mode of each batch of fixed input samples and fixed iterations is optimized to the mixed training mode of each b
4、atch of different input samples and different iterations. The optimized training method can improve the recognition speed and reduce the workload of preprocessing. The experimental results show that the optimized mixed sample input method can achieve high recognition rate on the premise of ensuring
5、the same training time of samples.Keywords:Handwritten digit recognition; MNIST character set; convolutional neural network; lenet-5 model目 录第一章 引言.51.1 选题依据和研究意义.51.2 数字识别发展及研究情况.51.3 手写数字识别说明.6第二章 选题相关算法.72.1 手写识别算法发展.72.2 深度学习算法分类.82.2.1 据学习方法分类.82.2.2 据编解码方法分类.82.2.3 据技术结构应用分类.92.3 识别结果分类与对比.92.
6、4 章节总结.10第三章 基于 CNN 手写识别的实现.113.1 手写识别分析.113.2 卷积神经网络模型简介.113.3 开发工具安装.143.3.1 开发工具 Java 语言.143.3.2 DL4J 库.14第四章 训练识别和结果对比分析.174.1 训练识别过程.174.2 数据识别实现结果图.194.3 结果分析.204.4 学习速率与算法收敛趋势收敛速度之间的关系.214.5 章节总结.21第五章 总结.22参考文献.23致 谢.244第一章 引言1.1 选题依据和研究意义文字识别处理信息普遍来说可分为两大类:第一种是文本处理,主要处理文字或者印制的文字信息,如书本上的字或者图
7、中的字。第二种是数字处理,主要由十个阿拉伯数字组成。在人们的日常生活中,数字的使用是非常广泛的,我们每天都要进行与大量的数字工作打交道,比如银行转账、统计报表、批改学生试卷打分、支票金额的识别等等,因此手写数字识别有重要的研究意义。然而许多深度学习库是基于Python、MATLAB 的,但是 Deeplearning4j 支持许多深度学习模型,也为从事 Java 行业的从业人员以及爱好者提供了一个比较优渥的学习与实践环境。卷积神经网络(Convolutional Neural Networks,CNN)是具有卷积计算的同时又有深度结构的单方向传播的一个用有向无环图表示的网络,它是深度学习(de
8、ep learning)领域中算法的显著代表,及其广泛的应用在学习与项目中。1.2 数字识别发展及研究情况近些年来,各国的学者在不断的研究数字识别,在手写数字识别方面已获得了巨大的成就。Cheng-LinLiu1将轮廓、自身结构及曲率等 10 个结构特征与 8 个分类器组合,在CENPARMI,CEDAR 和 MNIST 数据库的测试集上进行测验,实验识别率达到99.58%。但对它来说价格昂贵在计算和存储上。Loo-Nin Teow2利用现有的生物视觉构建了手写数字识别模型,该模型提取的线性可分类特征使得 MNIST 训练集的识别错误率降低到了 0.59%。Jinhai Cai3提出了一种无限
9、制的手写的数字识别的统计信息和结构信息集成的方法。该方法运用状态持续时间的自适应转移概率对常规 HMM 的状态时间建模进行了改进,克服了 HMM 在利用宏状态建模模式结构时的困难。通过这种方法使得识别的正确率和识别速度得到了良好的提升。黄巧巧4设计的手写体数字识别系统是基于 BP 神经网络的,验证了 BP 神经网络应用于手写数字识别的可行性,对于手写体数字可以进行良好的识别。王强5提出了主成分分析(PCA)与 CNN 相结合的新方法,并在 svhn 数据集上进5行了实验,试图提高自然场景中字符的识别率。曹丹6对基于 Hopfield 神经网络手写数字识别模型构建并进程实现,与 BP 网络相比,
10、识别率在误识率和正确率方面更为准确。德国、清华大学和上海交通大学7等根据压缩字结构的特点,选取大量样本组成不同的训练集和测试集,采用先进技术进行大规模测试,进一步提高了测试的准确性和速度性能。然而,测试要么需要书写的形式,要么测试样本和训练样本的数据源必须是同一批人。一言以蔽之,共同制度对撰稿人有更多的限制,或者对正式写作程度有更高的要求,或者对写作位置有更高的要求,或者对所使用的笔墨有具体的要求。例如,对纳税申报单的确认,要求按规定的字体书写数字,对书写位置也有规定。对于随意手写出来的数字,识别效果仍然不理想,有待进一步的提高。基于深度学习的手写数字识别为我们日后学习和做项目提供了许多宝贵的
11、经验,避免我们少走了许多的弯路。其对资源的低要求让我们节约了许多的成本,防止不必要的开支。其在识别时具有高精度的准确率,达到人们所预期的识别度。1.3 手写数字识别说明图像处理模块中的一个重要角色就是字符识别,字符识别本身就是一个具有高热度的话题及课题,让人们趋之若鹜的一个存在。其包含了其他识别领域分支都会遇到的一些基础问题。伴随着字符识别技术的发展,其他相关的领域也在一步步地前进。字符识别一般可以以输入设备的差异性、字符的字体和识别对象分为以下的几个方向:根据输入设备的差异性分别为联机识别和脱机识别;根据待处理的字符的字体来分为印刷体识别和手写体识别;从识别对象划分为手写体字母识别、手写体数
12、字识别、手写体汉字识别和其他国家的字符识别。根据字符数的不同,字符识别可分为有限识别和非有限识别。在线识别通过与计算机相连的手写输入设备,获得数字笔画的起始点,方向,终止点等,使得识别更容易。但是要求输入者在指定的设备上输入。在生活中更多的是识别已准备好的各种资料,即为脱机识别。脱机识别可以将已准备好的待识别的数据输入到机器中,然后进行识别。手写数字的识别即 0-9,把目标按 10 类划分。账单、凭证、票据等多为数字的数据都是手写数字识别可以识别出的。通过手写数字识别系统的使用,将提高人类处理事情的速率。且数字在人类交流中是不可或缺的存在,数字手写识别的发展为汉字等的手写识别做好铺垫,为深度学
13、习的发展打好6基础。第二章 选题相关算法2.1 手写识别算法发展手写的数字识别算法的分类基础8是基于结构和统计特性的算法。上个世纪开发的识别工具网络,支持不同模型的人工神经网络,在当今仍处于主流地位,也是业界探讨的核心。手写数字的功能特性,和应用自身所具备的独有吸引力,已经引起了领域中专家相互地探讨和讨论,并在实际应用价值上备受关注。手写数字识别技术的准确率在产品中仍然没有绝对的保证,所以在甄选神经网络的适配性上非常严格,模型的选择对识别网络极其重要。手写数字识别正处于不断提升的发展阶段。随着科技的发展和技术的变革,将深度学习结合手写识别,在实际当中应用,也是具有挑战性的一项任务,需要经过不断
14、的钻研创新来摸索前进。而脱机识别对准确率的需求日益提高,更是完成任务的首要前提通过研究我们可以从不同方面考量9,既有关于手写识别这样的技术手段应用,也有深度学习神经网络的选择,以及多项技术的融合,任何技术都不单一存在,都需并行结合,才能更好的发挥效能。手写数字技术的发源地并不在我国,我国在该项技术研究上的时间也不超过三十年,但在三十年的时间里,多个国家已经放弃了对该领域的开发和争夺,这让我国在该项技术的深究中取得了非常大的机会。这项技术是一个非常有研究价值的领域,其成果可市场化。所以,该领域仍然存在着大量的潜力,但机会和威胁并存,该项技术也有其受约束的条件。首先,每个数字字形携带的信息量为数不
15、多,不同数字的字形在区别上不大,而且,不同的书写习惯和不同的书写方法都是造成该项技术可能会出现误差的重要问题。人们通常习惯从性能上对数字识别进行分类10,分为二次判别函数和支持向量机的 SVM。这两种方法在实现过程中差别很大,所以识别效果也各有差异。从各方面来看,大家更推荐的是改良后的二次判别函数,大家认为这也是最好的识别方法。使用方法是先对数据集进行预处理,再根据传输数据类型的异同点,进行些特征提取,通过自参考所需求范围内的数据,再对关键数据进行指标分析,然后对数据进行不同层次的划分。识别方法的各个实现流程大致一致。在 IAPR 会议上,许多业界精英对字符7识别提出了自己的设想和看法。基于不
16、同的识别对象,我们试图通过微调修改和改进促进手写体识别11,可以说 2012 年是具有历史意义的一年。2.2 深度学习算法分类每一个深度学习算法模型都有自己的应用领域,并在其应用领域有自己独特的优势。比如:循环神经网络(Recurent Neural Network, RNN) 适用于时间序列上的变化建模;在图像识别分类方面卷积神经网络更具有一定的优点。2.2.1 据学习方法分类按学习方法12可以分为有监督学习、无监督学习和半监督学习。有监督学习的典型算法是多层感知机和卷积神经网络。无监督学习有高度置信网(DBNs),自动编码器(Auto Encoders,DAE)、自动去噪编码器(DAEs)
17、和稀疏编码(Sparse Coding,SC)。如图2-1 所示图 2-1 据学习方法分类2.2.2 据编解码方法分类深度神经网络由多个网络不断的融合所组成,即许多个单层网络,在考虑但层网络如何能达到编码要求时,要考虑以下几种常见的情况,有包含部分编码器的网络,还有只包含部分解码器的网络,和不止有部分编码器还有有部分解码器的网络。常见的深度网络不外乎就是单向传播的深度网络,包含多个编码器融合;不仅仅是前馈深度网络还有反馈深度网络,其和前者大体相似,都是由若干编码器融合组合而成,但涵盖内容略有不同;还有就是双向深度网络,和前两个深度网络的构成均一致,只是在内部包含的某些编码和解码的相关方法不太一
18、样。按照是否含有编码器的分类如下图 2-2所示。8图 2-2 据是否含编码器2.2.3 据技术结构应用分类在深度学习的具体应用中,通常以应用的结构分为以下三种:区分型深层结构(辨别深层结构)包含卷积神经网络和深度神经网络 DNN;生成型深度网络结构可分为深层有向网络,深度无向网络和深度混合网络根据网络结构中是否存在方向性。DBN 模型是一种以后验分布概率为主要目标的深度混合网络。它主要描述数据之间的相关性并以并以数据类别的形式处理概率分布。其主要目的是在对相关数据进行有效分类的同时提高数据的差异化程度;混合结构是对每个系统进行有效划分的混合深层结构,以便更好地区分每个系统,优化与生成结构的结合
19、如图 2-3 所示。图 2-3 据技术结构应用方式分类2.3 识别结果分类与对比我们生活中常用的二分类的分类方法的结果只有两种可能的标记为 0 或 1。但是手写数字识别的分类结果是一个多分类问题,需判断是具体的哪一个数字。Logistics 回归属于线性两类回归模型,Logistics 结果是在连续值上加一次函数投映,具有线性叠加的特点,然后通过映射投映,将所得值映射为 0-1 区间的值。logistics 回归有一种一般形式,我们称为 Softmax-logistic 回归模型,Softmax 作用是将原来要输出的 0-9 数字9归一到(0,1)之间的值,且归一之后的值的总和为 1,其符合概
20、率和为 1 的性质。在选择如何输出时,我们可以选取其中概率最大的输出将其作为输出节点,并作为预测对象。Softmax 回归模型在识别阿拉伯数字方面是非常有用的。2.4 章节总结通过章节介绍了手写数字识别算法的发展史,并对深度学习算法进行了归类和识别结果分类做了详细的介绍。10第三章 基于 CNN 手写识别的实现本次设计的手写识别系统是在 Java 中通过手写来判别手写数字输出结果的工作。系统主要分为:手写数字的数据集采集、图像的前期处理、识别模型的调整、对已完善的模型进行识别。3.1 手写识别分析基于 DL4J 的手写系统设计如图 3-1 所示。图 3-1 手写识别设计系统的关键是规划一个可以
21、识别输入的数字并输出其正确率的卷积神经网络模型,因为 LeNet-5 模型是一个专门为手写数字识别而设计的最经典的卷积神经网络模型,所以本次使用 Lenet-5 模型来进行实现并完善。用 MNIST 数据集对网络模型进行监督训练使其达到可实用准确度。与此同时还要对图片进行预处理操作,需经过大量测试数据集的验证,识别效果较理想即可。3.2 卷积神经网络模型简介卷积神经网络(Convolutional Neural Networks, CNN)是一种单方向向前的神经网络(Feedforward Neural Networks),此网络可以对运算进行卷积操作并有着深度的结构。由于受到生物感受野发展(
22、Receptive Field)的现象引导人们提出了卷积神经网络的概念。汇聚、权值共享和局部连接是卷积神经网络结构上的特点。正是因为有了这些特性,卷积神经网络具有通过空间内的操作如平移、缩放都会原始图像的不变性13。训练Mnist 数据集手写图片卷积神经网络模型GUI 显示11卷积神经网络中出现最早的是 LeNet-5 网络模型,这也是最简单的一个深度网络模型。根据一个基本的卷积填充方法 Same 卷积,卷积网络的根本原理是输入和输出的相对应,并通过相互对应学习两者的对应关系。而这个操作也恰好避免了数学算法,通过这种方法,使网络得到了两者之间的对应能力。因为卷积网络属于被训练对象,所以其所有数
23、据都以向量对的方式呈现。向量对是来自特定网络模型下系统的执行结果,且部分在执行系统里面提取的。在开始训练时,把权进行优化。通过优化确定网络持续稳定性,减轻连接时的负担,也避免因为训练不当对成功率的影响14。LeNet-5 模型结构如图 3-2 所示。图 3-2 LeNet-5 图示典型的 LeNet-5 共有 7 层,输入(INPUT)层,C1-卷积层(Convolutions),S2-池化(下采样)层,C3 层-卷积层,S4 层-池化层(下采样层),C5 层-卷积层,F6 层-全连接层,Output 层-全连接层。其包括了卷积神经网络的所有单元。输入层,实验输入 32*32 像素的灰度图片,
24、平均输入大致为 0,而方差大约为 1,从而加速了学习,要求手写体数字应该在中心,即 20*20 以内。卷积层,其作用是提取一块范围内的特征,通过每一个滤波器来提取出相对应的特征。假定一个图片为 5*5 矩阵,如图 3-3 所示,涂色部分为滤波器即一个滑动的窗口,主要用于特征的提取,暂定步幅为 1,卷积核依次在矩阵上从左到右滑动一格,继续从上到下滑动一格,避免边缘效应。每一次移动都进行一次求值,即两个区间内对应的地方做乘积运算最后将所有相乘值求和,得到图 3-4 的一个值。12图 3-3 矩阵图图 3-4 特征平面图经过卷积处理后的图片特征更为明显,且噪声降低。设定手写图片的灰度值如图 3-5
25、所示,每格放一个代表 0-255 中的一个数字,对阴影部分选取其中的平均值作为抽样,如图 3-6 所示。图 3-5 数字图片灰度值图 3-6 平均池化后灰度值池化(Pooling)在卷积中是一个非常重要的概念,在池化中,非线性池化函数有多种形式,而“平均池化”是最常见的。它是将输入的图像划分为许多个块区域,对每个子区域输出求平均值,并进行数据的压缩。直观地说,这种机制之所以有效,对其13来说,它和其他特征的整体位置较它的当前位置更为重要。数据像素的大小是不断地减小下采样层对它的作用,此作用导致参数的数量和计算成本也会跟随着下降,所以在一定程度上避免了过拟合情况的出现。通常情况下 CNN 的卷积
26、层之间会有一定频率地插入池化层(池化层又叫下采样层),其目的是为了压缩数据并降低数据维度。同时池化也具有一定的优势,保证图片的特征并不会变形,保留了图片的特征并降低维度,在一定程度上防止过拟合、更方便优化。3.3 开发工具安装深度学习开源框架有很多,但是支持 Java 语言的很少。所以这次采用 DL4J 框架去完成本次设计。3.3.1 开发工具 Java 语言作为一名在业界语言排行榜占据前排位置的语言,其简单易懂、面向对象、可支持不同平台等等优点占有了大部分的市场。此次设计所需环境为 win7 系统,Java 环境采用的是 JDK1.8。JDK1.8 版本的运行速度更加快速,代码更少。它具有强
27、大的流 API 核心功能,使得代码调用更加简洁。与其他系统相比,win7 系统具有很强的稳定性。win7 系统的优势在于继承了 XP 的稳定性,对硬件有很强的兼容性。微软曾经发布过一个 vista 系统,但由于其稳定性和兼容性差,安装不久,vista 系统就被 XP 系统取代,占用率较低。随着 win7 系统的发布,人们逐渐从 XP 转向 win7 系统。3.3.2 DL4J 库与 Python 开源的深度学习库不同,java 语言深度学习库(deep learning 4j)专门用于Java 和 JVM,支持多种深度学习模型。DL4J 的特点之一是支持分布式的,它可以运行在 spark 和
28、Hadoop 上,为生产环境带来了极大的便利,DL4J 支持在 CPU 或 GPU 运行。可以根据自己的需要及环境选择相应的运行方式。DL4J 是为商业环境所设计的,因此更适合项目落地。每一个机器学习工作流程至少由两部分组成。第一部分是加载数据并准备用数据进行学习,即 ETL(提取、转换、加载)过程。第二部分就是系统本身的实现。系统环境搭建:在搭建过程中,电脑不同系统版本对 DL4J 响应速度有很大影响。此次采用 CPU 版本的 DL4J,如果电脑有 NVIDIA GPU 则可使用 GPU 版的DL4J,速度与 CPU 版本相比要迅捷很多。先预装 jdk1.7 及以上版本,我这里使用的是14j
29、dk64 位 1.8 版本。可在对应官网上进行下载并配置系统环境变量。Maven 是用于 Java项目的依赖项管理和自动构建工具。在配置 maven 的时候注意 setting.xml 文件中镜像源的优化以及本地仓库的配置。在配置神经网络时,我们可以使用集成开发环境(IDE)允许客户使用他们的 API,为了避免不必要的麻烦,我们使用 IntelliJ 来处理依赖关系。通过 Git 来下载 dl4j-examples 的示例包,里面包含了开源的一些代码,克隆到本地完成后,执行以下操作。如图 3-7 所示。通过 mvn clean install 安装所依赖的相关包。下载之后自己新建一个 mave
30、n 项目,然后在自己的项目中使用 DL4J 并配置 pom.xml 文件。图 3-7 Git 下载3.4 手写识别算法实现到目前为止,有很多框架支持深度学习,虽然 Caffe 作为第一个深度学习框架,在图像处理方面比较熟练,但是其可扩展性不是很好。虽然 torch 较强大,但其设计并不适合两大群体的广泛普及,即以 Python 为主流的学者们和大面积使用 Java 的企业软件开发人员及其他人员。DL4J 是一个将大量复杂的手写数据引入人工智能神经网络,并利用其进行研究和分析处理的系统。本文采用易于理解和分析的 DL4J 框架。DeepLearning4J 在 API 语言、目的和集成方面独占鳌
31、头跟其他框架相比。DL4J 是一个基于 JVM 的分布式深度学习框架,以工业应用为中心,提供业务支持,能够在合理的时间内解决涉及海量数据的不同问题。DL4J 集成了 Kafka、Hadoop、spark,可以运行个数不限的 gpu 或 cpu,如有问题可以联系服务热线。DL4J 是一个跨平台的便携式学习库,没有针对任何特定的云服务(如AWS、azure 或 Google 云)进行特别优化。在速度方面,DL4J 的性能优于 tensorflow和 torch。在多个 GPU 下运行非平凡图像处理任务的性能与 Caffe 相当,Deeplearning4j有 java、Scala 和 python
32、 API。3.5 实现方法15此次设计采用的编程语言是 Java,为了实现手写识别算法,我选取了 DL4J 的 CNN网络。算法主要分为以下两个模块。如图 3-8 和图 3-9 所示。 图 3-8 确定参数流程图图 3-9 识别算法的流程对于手写图片来说,其处理主要为 CNN 调整适合的网络维数。CNN 网络使 28*28的图片输出为一维矩阵。最后使用 softmax 进行预测值。通过需求来设计卷积神经网络的模型,并进行参数的配置,包括隐藏层的节点数、学习率、衰减率和为了防止过拟合的正则化系数。经过对存储的 MNIST 数据集生成的隐藏层参数和 output 层参数使用的激活函数来进行向前传播
33、和代价函数还有正则化损失函数计算,它通过反向传播的渠道算法来更新神经网络的取值范围,一次次地进行更新并且进行监督训练,以此实现权值更新。直到使测试集一定程度上识别正确即可。确定实现训练的网络模型。将手写入手写区的数字识别进行预测。3.6 总结本章节主要介绍了所设计的手写识别系统,并对所用到的深度模型及环境搭建进手写图片的处理反传更新网络参数 计算总损失预设随机小参数 MNIST 训练集CNN 网络输出 Softmax 分类手写数字CNN 网络图像预处理16行了详细说明。17第四章 训练识别和结果对比分析本设计训练和识别的设计思路如图 4-1 所示。图 4-1 训练和识别流程图4.1 训练识别过
34、程在目前这个社会中,所需的通过手写出来的数字最全的为 MNIST 数据字符集,该数据集来自 National Institute of Standards and Technology ,它的训练样本数量达到60000 个,测试样本总数为 10000 个。数据中的数字尺寸大小都是 28*28 的灰度图片。导入 MNIST 数据集首先需要对数据集进行处理,最好能直接识别的程度则处理成功。数据的存储格式是非常简单的。将读取的数据转化成数字保存到列表中,然后使用matplotlib 输出一下效果。识别率为判别网络是好或坏的唯一指标。当正确读取数据后,需要定义具体的网络神经架构,在该处用 Lenet-
35、5 网络模型,此网络是一个 5 层的网络结构(不包括输入层)。第 0 层:input layer: 输入 28*28 的图片作为原始训练图像第 1 层:Convolution1:6 个 5*5 的卷积核,步长 Stride 为 1第 2 层:Pooling1:卷积核 size 为 2*2,步长 Stride 为 2第 3 层:Convolution2:12 个 5*5 的卷积核,步长 Stride 为 1第 4 层:Pooling2:卷积核 size 为 2*2,步长 Stride 为 2第 5 层:Output layer:输出结果训练数据的结果如下图 4-2 所示。训练0,1.9训练样本图
36、片图像预处理特征提取CNN 网络待识别数字识 别18图 4-2 预设值为0.1时的准确率图 4-3 预设值为 0.01 时的准确率图 4-4 预设值为0.0005时的准确率为了得到理想的召回率,根据不同的小参数进行不断预设并比较,发现当预设值19为 0.005 时,模型最优。要根据自己的内存大小设置好训练次数,不然会报错,我设置的训练次数为5000,如图 4-4 所示。代码如 4-5 所示。图 4-4 训练次数过多报错图 4-5 训练实现图4.2 数据识别实现结果图导入 MNIST 数据集,在网址下载 MNIST 数据集,通过二进制拆分导入到网络神经架构,对手写区域的数据进行捕获,对灰度图片进
37、行处理,并将其二值化然后将灰度图转为黑白图,通过网络模型进行训练,实现了基于 CNN 手写识别,并取得了不错的成果。对于单个数字识别测试时,其他数字的识别结果均比较理想,但是数字 9 多次误识为 8。经过查阅各种数据和资料,发现训练过程中的过拟合有关。因此,为了使识别结果更准确,一些节点被丢弃。对于 0-10 的数字识别结果概率如下表 4-5 所示。20数字正确率误识率拒识率可靠性094.36%4.55%1.12%95.48%195.01%4.2%0.07%95.8%293.22%5.92%0.88%94.1%392.28%6.62%1.1%93.38%494.46%4.81%0.76%95.
38、22%595.08%4.4%0.52%95.6%693.37%5.61%1.05%94.42%794.48%4.91%0.74%95.22%895.66%4.11%0.36%96.02%992.29%5.97%1.78%94.07%总计94.02%5.14%0.84%94.84%表 4-5 数字识别实现结果4.3 结果分析通过吴琳琳15在其他线性分类器上以 SVM(Support Vector Machine)的手写数字识别体的研究中,以 UCI Repository 训练样本集,并尝试在线性回归中采用 One-Against-All 和 One-Against-One 多分类器和有向无环图方
39、法提高分类精度。其分类值的精确度如表 4-6 所示。One-Against-OneOne-Against-AllDAG测试集测试集准确率测试集准确率测试集准确率dna95.447%95.74%95.447%satimage91.3%91.7%91.250%letter97.780%97.880%97.980%图 4-6 基于 SVM 分类值的结果从上面的几个图对比得出,在 CNN 模型上测试集的准确率有了明显的提高。KNN的准确率只有 95%,NN 网络准确率仅有 91.6%。通过这些数据的比较,本设计的识别准确性更为理想,更满足实际应用需要。通过 CNN 中的 pooling,更好的解决了图
40、像在处理与识别方面的问题。与此同时,以 CNN 为基础的手写数字分类识别具有局部的特征,下采样使得深度学习模型参数大幅度减小等优点21因为 CNN 模型的存在,以至于系统存在很多参数,比如隐层节点数,卷积核大小等等。这些超参数的组合形式是多种多样的。对于最优组合方法到现在都没有系统理论支撑。本设计是凭经验尝试组合,通过多次实验验证的。因为时间有限,以至于系统没有达到效率最高和最优,系统有待进一步的优化和改进。本次设计采用的物理环境为:CPU:inter core i5,内存:4G。在训练过程中,训练的次数如果太大则不能进行正常计算,耗费的时间也较长。若有条件则建议深度结构模型通过 GPU 来进
41、行运行,这样训练速度将成倍地上升。4.4 学习速率与算法收敛趋势收敛速度之间的关系我们在学习速率中得知在损失函数梯度的帮助下怎样去调整网络的权重。在优化学习率时我们使用梯度下降算法,则在权值更新规则中,在梯度项之前乘以一个系数即为超参数。损失函数的变化速度随着学习率变化成正比即学习率越低其越慢。而学习率越低则收敛时间更为漫长。当学习速率过大时,就会因为在梯度下降法在运算时可能会跳过最低点而错失最佳值,使得神经网络的准确率出现误差,甚至可能发散。数据样本决定学习率的取值,我们可以准备许多具有比较性的值,根据值得大到小的顺序分别运行算法,观察得到的效果。如果 loss 函数在变小,则说明取值有效,
42、否则要增大步长。4.5 章节总结根据实际需求改进并训练模型,将训练后的结果与其他的进行对比分析。看系统是否达到基本可实用要求。22第五章 总结 最简单的一种深度学习结构是多隐层的多层感知机。深度学习的源头又是人工神经网络。本此实验通过对深度学习算法的研究,并将其应用在实际问题中,具有实用性,也为其他的手写识别打好基础,做好铺垫。本设计总结如下:1. 先对选题意义及手写数字识别现状进行了概述。并阐明了如今的手写识别技术的整体发展和方案。2. 对深度学习算法进行分析与归类。并给出了具体的图例说明。3. 确定设计所用的手写数字识别的深度学习网络模型,并对实际应用系统进行设计,配置模型所需的参数,进行系统开发工具、开发环境的选择以及算法如何实现。4. 在训练过程中不断对参数调参并验证试验结果的准确性。但是,由于自身实力不足,系统仍需进一步改进。且在本次实验中占用资源较多,需进一步调优。23参考文献1 程柳柳,中岛一木,广崎,藤泽浩.手写数字识别:最新技术的基准.模式识别J,2003,36:2271-2285.2 卢宁涛,起亚.基于视觉的联机手写数字识别特征与分类方法.模式识别J,2002,35:2355-2364.3 Jinhai Cai.Integratio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽涉外经济职业学院《国际物流》2025-2026学年期末试卷
- 厦门医学院《理论新闻传播学导论》2025-2026学年期末试卷
- 黑龙江省佳木斯市第一中学2022-2023学年高三上学期第二次调研考试政治答案详解
- 公考内蒙常识试题及答案
- 中式面点师安全风险测试考核试卷含答案
- 纺丝凝固浴液配制工安全实践考核试卷含答案
- 文化体育用品公司年度工作总结报告
- 印制电路机加工安全知识能力考核试卷含答案
- 电子陶瓷挤制成型工冲突解决强化考核试卷含答案
- ECMO患者镇痛镇静与谵妄管理专家共识总结2026
- 2026江盐集团盐品事业部招聘24人笔试备考题库及答案解析
- 2026春小学信息科技四年级下册浙教版(新教材)教案(全册)
- 《必背60题》教育经济与管理26届考研复试高频面试题包含详细解答
- 国金证券内部管理制度
- 2026年高校辅导员招聘考试题库(及答案解析)
- 中国肿瘤患者心理治疗指南(2025版)
- (正式版)DB51∕T 2617-2019 《机关职工食堂管理服务规范》
- GA/T 2350.5-2025公安视频图像分析技术要求第5部分:目标聚档服务
- 2026年马克思主义中国化时代化相关试题含答案
- 法务工作制度及流程规范
- 厂房重载地坪施工方案
评论
0/150
提交评论