登录

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

注册

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

找回密码

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

卷积神经网络在图像识别中的应用研究毕业论文

 2020-04-09 15:29:27  

摘 要

本文先介绍了神经网络的基础结构,以及神经网络中数据流动方式和学习过程中学习参数更新的方式。然后,又详细介绍卷积神经网络的各个组成部分和整个网络结构。接下来,采用了TensorFlow在CIFAR-10数据集上实现了小规模卷积神经网络,最终分类准确率86%。最后,本文缩小数据集,通过多次试验粗略探讨研究了激活函数,损失函数,卷积神经网络的深度,卷积核大小对卷积神经网络性能的影响。

通过本文的研究,我们发现:1、激活函数和损失函数对卷积神经网络最终的分类效果并没有显著直接的影响,但它影响卷积神经网络的学习过程,影响收敛的速率。2、卷积神经网络的深度对最终分类准确率有直接的影响,卷积神经网络越深则分类效果越好,但到达一定深度会出现饱和现象。3、卷积核的大小越小,卷积神经网络的分类准确率更高,但是卷积核大小对分类效果的作用还是没有深度对分类效果的影响大。4、在计算复杂度大致相近的时候,选择更深,卷积核更小的结构会获得更好的分类效果。

本文采用了控制变量法来探究不同因素对卷积神经网络分类效果的影响,由于设备受限,所以采用了精简的数据集做实验,虽然实验结果有些粗略,依旧可以得出一些结论。

关键词:卷积神经网络;TensorFlow;图像分类;

Abstract

This article first explained the basic structure of the neural network, and the way of data flow in the neural network and the learning parameters update in the learning process. Then it introduces in detail the various components of the convolutional neural network and the entire network structure. Next, using Google's open-source computing framework TensorFlow to implement a small-scale convolutional neural network on the CIFAR-10 data set, the final classification accuracy rate was 86%. In the end, the paper reduces the data set, and through several experiments, it explores roughly the effects of the activation function, the loss function, the depth of the convolutional neural network, and the size of the convolution kernel on the performance of the convolutional neural network.

Through the research of this paper, we find that activation function and loss function have no significant direct influence on the final classification effect of convolutional neural network, but it affects the learning process of convolutional neural network and affects the rate of convergence. Then the depth of the convolutional neural network has a direct impact on the final classification accuracy. The deeper the convolutional neural network is, the better the classification effect is, but saturation will occur when reaching a certain depth. At the same time, the smaller the size of the convolution kernel is, the more accurate the classification accuracy of the convolutional neural network is. However, the effect of the convolution kernel size on the classification effect is not deeply affected by the classification effect. At the same time, we obtained a corollary that when the computational complexity is roughly similar, the deeper the choice, the smaller the structure of the convolution kernel will get a better classification effect.

In this paper, the control variable method is used to explore the influence of different factors on the classification effect of convolutional neural networks. However, due to limited equipment, a small, small data set is used for experiments. Although the experimental results are somewhat sketchy, some conclusions can still be drawn.

Key Words:Convolutional neural network; TensorFlow; image classification;

目录

第1章 绪论 1

1.1 人工神经网络的发展和现状 1

1.2 卷积神经网络的发展 2

1.3 卷积神经网络的一些改进算法 3

1.3.1网中网结构 3

1.3.2 空间变化网络 3

1.4 TensorFlow计算框架介绍 3

第2章 人工神经网络结构 5

2.1 神经元 5

2.2 多层感知器 6

2.3 反向传播算法 7

第3章 卷积神经网络 11

3.1 卷积神经网络基础知识 11

3.2 卷积神经网络的结构 13

3.2.1 卷积层 13

3.2.2 池化层 14

3.2.3 全连接层 15

3.2.4 特征面 15

3.3卷积神经网络的实现 15

3.4 卷积神经网络在CIFAR-10数据集上实现 16

第4章 卷积神经网络的实验与性能探究 20

4.1激活函数 20

4.1.1 Sigmoid函数 20

4.1.2 ReLU函数 21

4.1.3 激活函数对比 22

4.2损失函数 22

4.2.1方差代价函数(Mean Square Loss) 23

4.2.2 交叉熵损失函数 24

4.2.3 不同损失函数对比实验 25

4.3 网络深度、卷积核大小对卷积神经网络准确率的实验探究 25

4.3.1 网络深度对卷积神经网络准确率的实验探究 25

4.3.2卷积核大小对卷积神经网络分类准确率的影响 26

第5章 总结与展望 28

5.1总结 28

5.2 展望 28

致 谢 30

第1章 绪论

1.1 人工神经网络的发展和现状

近几十年,神经科学,神经生理学取得了十足的进步,人们对神经元的结构和生理过程以及信号传递方式有了进一步的认识。人工神经网络最初的灵感就来源于人们对生物神经系统的建模,但随着发展,逐渐变成了工程问题。研究人员在探究人类大脑结构和组成的过程中开始尝试模仿神经元的构成和连接方式来开发出具有智能的算法。人类大脑是由超大量的神经元以极其复杂的方式相互连接构成,从而产生智慧和学习能力[1]。在1943年,Mcculloch和Pitts[2]提出MP模型,MP模型是从数学形式上对哺乳动物神经元的模拟。到19世纪70年代左右,Rosenblatt根据提出了单层感知器模型[3],Rosenblatt提出的这个单层感知器模型是第一个基于MP模型实现的人工神经网络。1986年,Rumelhart和Hinton等人构建了一个将误差反向传播到人工神经网络浅层的网络[4],这个网络采用了反向传播算法(BP算法),所以也被称为BP神经网络。BP神经网络的出现大大的推进了人们对人工神经网络的研究,同时BP神经网络也解决了很多单层感知器无法解决的非线性的问题。

在20世界90年代,对人工神经网络的研究出现了一个小高峰,研究人员提出了众多人工神经网络模型。当研究人员尝试着增加BP神经网络深度,就出现了很多问题,比如像陷入局部最优无法跳出,过拟合,甚至是梯度消失,至此。对神经网络的研究开始遇冷,对人工神经网络的研究开始进入长达十几年的寒冬季节。

在长达十多年寒冬之后,Hinton等人在2006年发表论文提出含有多隐含层的人工神经网络具有优良的特征提取和学习能力[5]。同时可以通过逐层训练来克服深层神经网络训练难的问题。至此,Hinton等人又一次掀起人们对神经网络的研究热潮。逐层训练算法先对人工神经网络某一层采用无监督学习算法的训练,然后将输出值作为人工神经网络下一层的输入。再使用有监督学习算法对网络的参数进行学习更新调整。这种算法在手写数字体识别和行人检测中取得效果显著提升。目前,常用的深度学习算法有循环神经网络,深度信念网络等。

AlphaGo是谷歌公司旗下子公司DeepMind开发的一个智能围棋系统,他经过数十万次博弈学习之后,在短短一年内接连战胜世界围棋冠军李世石和世界围棋榜排名第一的中国棋手柯洁。AlphaGo取得成功证明了人工智能并非遥不可及,同时显示出了深度学习拥有的潜力是无穷的。

在2006年之前,就有研究人员提出卷积神经网络模型,我们将其简称为CNN。这时的CNN还只能处理小图片,对大尺寸图像分类效果不佳。但依旧在MINST手写体数据集和其他一些应用上取得不错的结果。在2012的举办的世界mageNet大规模视觉识别竞赛中,krizhevsky等人[6]使用了深度卷积神经网络获得了当时的最佳分类效果。至此,CNN开始被研究人员所熟知,也引来了越来越多的研究人员投入对CNN的研究之中。

1.2 卷积神经网络的发展

在1962年,生物学家 Hubel 和 Wiesel[7]对高级哺乳动物的视觉系统进行了深入的研究,他们选择猫作为研究对象。在研究过程中,他们通过实验在猫的视觉皮层中发现了一种高级复杂细胞,这些高级复杂细胞对输入的视觉信号的局部区域敏感,可以覆盖输入的全部视觉信号区域,但它只起到局部的作用。我们将这种高级复杂细胞命名为“感受野”,感受野细胞可以很好的自然图像的局部信息和特征。Hubel 和 Wiesel从而提出了高级哺乳动物的视觉系统的认知机理模型[8],这是卷积神经网络最初的起源,后续所有对CNN的研究和创新,都是基于对高级哺乳动物的视觉系统的认知机理模型的模拟。该模型认为在高级哺乳动物的视觉系统中信号传递由外侧膝状体→简单细胞→复杂细胞→低阶超复杂细胞→高阶超复杂细胞。低阶超复杂细胞和高阶超复杂细胞交互模式和简单细胞与复杂细胞的交互模式类似。在这个模型中,处于低阶的细胞响应简单低级的特征,高级细胞响应高级复杂的特征。

1980年,日本学者Fukushima根据Hubel和Wiesel提出的高级哺乳动物的视觉系统的认知机理模型提出神经认知机[2],神经认知机模仿了高级哺乳动物的视觉系统的结构,使用简单细胞层和高级细胞层交替连接。这是CNN的第一次走出理论研究,称为现实。后面,LeCun等人[9]再深入研究了Fukushima的神经认知机之后,参考Fukushima的神经认知机,设计了一个用反向传播算法来训练CNN的模型,该模型就是LeNet5。后续对于CNN的研究都是基于LeNet5模型,LeNet5模型作为CNN的一个基础模型,众多学者基于LeNet5这一基础模型又提出性能更加优秀的模型-AlexNet结构和GoogleNet结构等。

直到2012年,著名深度学习专家Alex Krizhevsky训练了一个深度卷积神经网络在当年的ILSVRC获得冠军,至此又掀起了对卷积神经网络研究的新热潮。

到2017年AlphaGo的诞生,在全世界的学术界和工业界掀起了人工智能的热潮。

1.3 卷积神经网络的一些改进算法

1.3.1网中网结构

卷积神经网络的卷积核就相当于广义线性模型,这个广义线性模型通过完成卷积操作可以获得对同一概念的不同变体保持不变的特性。Lin等人[10]提出了一个可以替换卷积核的网中网模型,在这个网中网模型中,卷积核被一个小型神经网络替代,这个小型神经网络就相当于一个小型的多层感知器,采用BP算法训练,这样也就是一个BP神经网络。并且CNN的全连接层被取消,换成了全局平均池化操作。这样整个网络的可以更好地去提取特征,抽象水平比卷积核有提高。微型神经网络在网中网结构中与卷积核在CNN中类似,它在相同的一个特征面里面所有网中网的参数都相同。

通常的CNN虽然经过多个卷积层和池化层之后,参数维度大大下降,但是到了全连接层由于神经元之间采用全连接操作,所以参数依旧过多,一般会很依赖正则化技术,不然会很容易过拟合。但在网中网结构中,采用全局平均池化操作替代全连接层,就没有全连接层中大量的参数,降低了整个网络的复杂程度和训练难度。并且通过对输入数据的空间信息求和,使得整个网络对空间变化的鲁棒性得到了大大的增强。

1.3.2 空间变化网络

卷积神经网络虽然有众多优良特性。但是对于数据的空间多样性的处理依旧不太好。所以Jaderberg等人提出给卷积神经网络中添加一个新的空间变换网络模块[11]来解决这个问题。空间变换网络模块由本地化网络,网格生成器还有采样器组成。可以随意插入到卷积神经网络的各层后面。可以对输入信号进行空间变换,比如平移,缩放,选装等。同时空间变换网络计算速度很快。

1.4 TensorFlow计算框架介绍

TensorFlow是谷歌开发的一个计算模块,它依赖于python编程语言,TensorFlow在图像分类,语音处理,推荐系统等各个场景下都有丰富的应用。TensorFlow采用了静态图计算,用户需要先定义整个计算图,数据如何流动。然后再启动图,这时所有运算才会开始进行。TensorFlow在GPU上运行比在CPU更好的运行性能。TensorFlow具有高灵活性的特点,只要按图计算的规则来设计计算图,就可以完成一切计算。如果有TensorFlow没有提供的接口,我们可以自己使用C 来设计自己的结构。并且TensorFlow可以在计算机,移动设备等上面运行。同时TensorFlow还提供了特别丰富的算法库,并且还在不断地增加中。TensorFlow不光可以用作科研实验,还可以很好的应用于工业实践中。这会使得我们能更好的应用我们的研究。

第2章 人工神经网络结构

2.1 神经元

神经元是人类大脑神经的基本细胞,也是生物神经网络的基本计算单位。生物神经元有轴突,细胞体,树突这三个主要构成。由轴突接收上个神经元传递来的化学信号,转化成为电信号传递给细胞体,如果信号足够强烈则通过树突传递给下一个神经元。人工神经网络的基本处理单元在数学形式可以模仿人类神经元的基本结构,我们也称之为神经元。人工神经元简化为多输入,单输出,但生物神经元不一定是这样。人工神经元的结构如图2.1所示。

图2.1 神经元

维输入数据信号输入神经元为神经元与输入数据信号的某一维的权重。为神经元的内部状态偏置值。为激活函数。为神经元的输出值。输入数据信号输入到神经元中,输入信号的每一维与对应权值相乘,然后累加,再加上偏执值后输入到激活函数中,通过激活函数计算出的值就是神经元的输出。满足下式

(2.1)

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

相关图片展示:

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

企业微信

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