登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

卷积神经网络演示系统设计与开发毕业论文

 2020-02-14 06:02  

摘 要

卷积神经网络经过二十多年的发展,已经成为当前的研究热点之一。越来越多的学生、程序开发人员、研究人员对卷积神经网络的原理产生了兴趣,希望进一步详细的了解其中的细节。本文对卷积神经网络的结构和计算过程进行探索,构建了一个展示卷积神经网络原理和计算细节的系统。

首先,本文对卷积神经网络的基本组成进行了探讨,研究了卷积、激活函数,池化和全连接层的计算过程,对卷积神经网络的训练过程进行了分析,讨论了代价函数、梯度下降以及正则化对网络的影响。

在LeNet-5网络的基础上,本文设计了一个新的手写体数字识别网络。为了适应演示系统的需求,该网络在模型参数,激活函数等细节上进行了适当的调整。本文借助于Python的TensorFlow模块实现了此网络的训练和识别功能。

本文在上述卷积神经网络的基础上,设计和实现了一个卷积神经网络演示系统。该系统以Python Flask Web框架和HTML5为基础,为用户提供卷积神经网络训练过程和识别过程的展示。该系统能够以单机模式或者局域网模式进行部署,用户可以根据需要灵活选择。

最后,本文对所使用的卷积神经网络结构进行了探讨,分析了网络结构的改进对系统的影响,对卷积神经网络演示系统的一些不足之处进行了分析,提出了系统进一步完善的方向。

关键词:演示系统;卷积神经网络;手写体数字识别

Abstract

With the development of the last twenty years, convolutional neural networks have become one of the current hot research field. Students, programmers, and researchers have become increasingly interested in the principles of convolutional neural networks, and hope to learn more about the details. In this paper, we explore the structure and calculation process of convolutional neural networks, and construct a system to show the principle and calculation details of convolutional neural networks.

Firstly, this paper discusses the basic composition of convolutional networks, studies the calculation process of convolution, activation function, pooling and fully connected layer, analyzes the training process of convolutional neural networks, and discusses the impact of the cost function, gradient decline and regularization on the network.

Based on the LeNet-5 network, this paper designs a new handwritten digit recognition network. In order to adapt to the needs of the demonstration system, the network makes appropriate adjustments on the details of the model parameters, activation functions and so on. This paper implements the training and recognition functions of this network by means of Python#39;s TensorFlow module.

Based on the above convolutional neural network, a convolutional neural network demonstration system is designed and implemented. Based on the Python Flask Web framework and HTML5, the system provides users with a demonstration of the convolutional neural network training process and recognition process. The system can be deployed in stand-alone mode or LAN mode, and users can flexibly choose according to their needs.

Finally, this thesis discusses the structure of the convolutional neural network used, analyzes the impact of the improvement of the network structure on the system, analyzes some shortcomings of the convolutional neural network demonstration system, and proposes the direction of further improvement of the system.

Key Words: Demonstration system;Convolutional Neural Network;handwritten digit recognition

目录

摘要 I

Abstract II

第1章 绪论 1

1.1 研究背景及意义 1

1.2 国内外研究现状 1

1.3 本文研究内容 3

1.4 本文组织结构 4

第2章 卷积神经网络研究与分析 5

2.1 卷积神经网络概述 5

2.2 卷积神经网络正向传播 5

2.2.1 卷积操作 6

2.2.2 激活函数 7

2.2.3 池化操作 9

2.2.4 全连接层 10

2.3 卷积神经网络反向传播 11

2.3.1 代价函数 11

2.3.2 梯度下降 12

2.3.3 正则化 12

第3章 手写体数字识别网络的设计与实现 14

3.1 MNIST数据集介绍 14

3.2 LeNet-5模型介绍 14

3.3 手写体数字识别网络设计 17

3.4 手写体数字识别网络实现 18

3.4.1 TensorFlow框架介绍 18

3.4.3 TensorFlow实现 19

3.5 模型评估 20

3.5.1 网络尺寸评估与性能测试 20

3.5.2 网络识别错误率评估 21

第4章 卷积神经网络演示系统的设计与实现 22

4.1 总体设计 22

4.1.1 功能描述 22

4.1.2 Python Flask Web框架 23

4.1.3 HTML5技术 23

4.2 前端设计 23

4.2.1 手写数字输入模块 23

4.2.3 伸缩式模块加载 24

4.2.2 跟随式详细界面 26

4.3 后台设计 27

4.3.1. 图像预处理 27

4.3.2 多用户处理 27

4.4 项目部署 28

4.5 项目评估 29

第5章 总结与展望 31

5.1 本文工作总结 31

5.2 未来工作展望 31

参考文献 33

致谢 35

第1章 绪论

1.1 研究背景及意义

卷积神经网络(Convolutional Neural Network, CNN)是近年来在深度学习领域中最具影响力的人工神经网络,是经典的深度网络之一[1]。从1998年LeCun等人尝试使用卷积神经网络进行手写体数字识别开始 [2],到2012年Krizhevsky等人首次在ImageNet挑战赛中以明显优于当时其他方案的分类效果[3],将卷积神经网络的研究推向第一个高潮,再到近些年来不断刷新各项纪录的新结构网络,卷积神经网络成为了当前的一个研究热点。与此同时,也有越来越多的学生、程序开发人员、研究人员等对卷积神经网络的原理产生了兴趣,希望进一步详细的了解其中的细节。在这样的背景下,如何帮助这些学习者更好的了解卷积神经网络的原理是一个需要解决的问题。

针对人们希望了解卷积神经网络原理的需求,在网络上已经存在了一些讲解原理的文章和图片。虽然这些资料对理解网络的原理有一定的帮助,但以文字的方式讲解缺乏直观性,而少数的几张图片又难以展示卷积神经网络的全貌。卷积神经网络演示系统能够依据用户的输入,动态的展示网络计算和训练过程,因此可以在直观性和完整性上满足用户的需求。

目前TensorFlow Playground上提供了一个使用神经网络进行分类的演示系统,但此系统不包含卷积神经网络。在瑞尔森大学(Ryerson University)的博士研究生Adam Harley的个人主页上提供了一个关于卷积神经网络的演示系统,但此系统只提供初略的结构展示,对具体的计算和训练过程没有数值上的展示。因此开发一个可以展示卷积神经网络的结构和计算过程的演示系统具有重要的意义。

1.2 国内外研究现状

卷积神经网络的产生通常认为是受到了生物学研究的影响,并且经过了一段较长时间的发展后才趋于成熟。1962年,神经生物学家David Hubel和Torsten Wiesel经过多年对动物视觉系统的研究之后,得出了一些重要的结论[4]。他们发现动物的视觉皮层中存在一些不同分工的细胞,其中的某些细胞只对视觉输入中的局部区域敏感,而另外一些细胞只对特定的刺激敏感而对刺激的位置不敏感。受到上述生物学知识的启发,LeCun等人在BP神经网络的基础上设计了一种称为LeNet-5的网络[2]。在这个网络中,首次采用了局部连接和池化等技术来模拟视觉细胞的特性。但限于当时的硬件条件,它并没有受到足够的重视。

随着机器学习中新的理论提出,以及计算机软硬件的发展,卷积神经网络的发展有了明显的提升。2012年Krizhevsky等人首次提出了一种新的卷积神经网络结构——AlexNet,并且在ImageNet竞赛中以远超其他竞争者的巨大优势获得了第一名[3]。在AlexNet中使用ReLU代替Sigmoid,使用Dropout技术避免过拟合,使用最大池化技术来避免模糊,从理论上优化了卷积神经网络。自AlexNet网络被提出之后,卷积神经网络在结构上有两个主要的发展方向。

在加深网络层数方面,Simonyan等人提出了一种加深版的AlexNet,称为VGGNet[5]。此网络的结构与AlexNet相同,但具有更深的层数,达到了十多层。2015年,何凯明等人通过实验证明,在同等条件下,更深的网络比更大的卷积核有更好的性能,但是随着网络的层数加深,网络会出现性能退化现象[6]。对于这一情况,何凯明等人提出了一种称为ResNet的架构[7]。ResNet引入残差网络的概念,在传统网络的基础上设置了一个使输入直达输出的连接,从而使梯度更容易传播到浅层。ResNet可以获得超过百层的网络深度。

在改进卷积模块方面,Szegedy等人提出了GoogleNet架构[8]。GoogleNet在一方面提出了一种由卷积和池化组成的Inception结构,提高了网络中参数的利用率,在另一方面又使用网中网结构代替原来的线性卷积核,使得网络的非线性特征增强,从而能够处理更复杂的问题。此外全局池化的应用也提高了GoogleNet的训练效率。曾文献等人提出了一种加入自编码神经网络的方法[9]。此方案结合了卷积神经网络和自动编码器的优势并且一定程度的互补了两者的缺陷。

卷积神经网络在结构上不断改进的同时,在网络可视化方面也不断产生新的进展。Zeiler等人提出使用反卷积和反池化方法将网络还原到原始的图像空间,从而能够可视化的观察到节点的特征[10]。但Zeiler的方法引入的无关信息较多,还原的图像比较模糊。俞海宝等人针对这一问题提出一种数值解的方法 [11]。此方法通过数值求解替代原有的近似反卷积核的方法,提高了可视化结构的清晰度,降低了噪声的影响,并且通过实验验证了卷积神经网络分层次提取图像特征的观点。

随着卷积神经网络的规模不断扩大,如何有效地加快网络训练速度成为一个新的问题。对此,马义超等人提出一种主成分分析初始化卷积核的方法[12]。此算法首先使用主成分分析法学习图像特征,然后将特征向量作为卷积核的初始参数。经过实验,此方法在同样的均方误差下具有更少的迭代次数和更高的识别率。

卷积神经网络的快速发展加速了卷积神经网络演示系统的研究。候亚伟提出了一种使用卷积神经网络进行手写体数字识别的系统[13]。此系统可以同时对图片中的多个数字进行识别,并且展示图像预处理阶段的图像分割、缩放以及填充等操作的结果。陈岩等人提出了一种可以演示手写体数字识别的系统[14]。此系统以卷积神经网络作为基础,演示了手写体数字经过卷积神经网络各模块运算之后的结果。通过鼠标输入手写数字,此系统可以同时完成识别和演示的功能。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图