登录

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

注册

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

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 电子信息工程 > 正文

基于RNN的图像识别算法实现毕业论文

 2021-03-19 09:03  

摘 要

本次论文主要研究的是基于RNN的图像识别算法实现。随着深度学习领域的不断发展,采用人工神经网络来进行图像识别成了一个重要的方向。在深度学习的图像识别领域,目前应用最为普遍的是卷积神经网络模型(CNN),而本次研究将采用的是能够很好的实现序列数据学习的循环神经网络模型(RNN)。 本次论文将对循环神经网络进行讨论和研究,分析其所存在的确定。并对循环神经网络的特殊结构长短时记忆网络(LSTM)进行研究,比较二者的不同之处。将基于长短时记忆网络利用TensorFlow工具实现对MINST手写数字字符集的识别。在神经网络模型的训练过程中将采用Adam算法进行梯度下降来最小化损失。最后将会利用TensorBoard来完成神经网络模型的可视化。

关键词:RNN 、LSTM 、TensorFlow、MINST字符集、TensorBoard

Abstract

The main research of this paper is based on RNN image recognition algorithm. With the continuous development of the field of depth, the use of artificial neural network for image recognition has become an important direction. In the field of image recognition, the most widely used is the convolution neural network model (CNN), and this study will be used to achieve a good sequence of data learning cycle neural network model (RNN).

This paper will discuss and study the cyclic neural network, and analyze its existence. And the special structure of the cyclic neural network memory network (LSTM) to study, compare the difference between the two. Will be based on the length of time memory network using TensorFlow tool to achieve MINST handwritten digital character set recognition. In the training process of the neural network model, Adam algorithm will be used to minimize the loss of gradient. Finally, TensorBoard will be used to complete the visualization of the neural network model.

Keywords: RNN, LSTM, TensorFlow, MINST character set, TensorBoard

绪论

1.1 课题研究的背景和意义

在最近几年里,人工智能领域已经成为了炙手可热的高新技术领域。而图像识别技术一直以来都是这个重要领域里不可或缺的一环。目前,随着图像识别技术的不断发展,人们正致力于让计算机能够准确的识别图像乃至物体,就如同计算机具有类似于人类的视觉一样。经过了多年的研究和发展,国内外的研究者在不断取得重大成果的同时,也面临着不同程度上的困难和挑战。图像识别技术具有两大部分,分别是特征提取和分类识别。在这两部分中,图像的特征提取是图像识别技术中重大的难点,是影响识别性能好坏的重要因素。

图像特征提取在整个识别的过程中扮演着重要的一环,如何有效科学的实现图像特征的提取就显得尤为重要[1]。对于生活中的某一类图像或物体,如果能够高效的提取出相互区分的关键特征,那么识别出此类目标就会变得非常简单。然而,对于传统的方法来说,人工设计的特征提取方法对实验和专业领域的知识都有很大的需求[2]。传统方法的劣势就在于人们不知道特征与目标之间的关联关系,这就给后续的分类识别带来了很大的麻烦。

随着大数据时代的来临,源于人工神经网络研究的深度学习领域取得了不断的发展,深度学习在图像识别领域的应用也极大地促进了图像识别技术的快速发展[3]。深度学习是一种通过神经网络结构来实现的算法,是机器学习领域中的一个全新的领域。深度学习通过模仿建立类似于人脑的神经网络,来对数据进行解释和处理,从而有效地解决特征的自动学习中所出现的问题。相比于传统的特征提取技术,深度学习能够像人类的大脑一样建立多层的神经网络结构,以大量的数据为驱动来实现目标特征的自动学习[4]。

在深度学习中,特征的学习过程中需要进行大量的数据计算。越来越廉价的计算机资源也让深度网络训练运算速率的加快变成了可能[5]。在目前的图像识别技术中,应用最广泛的神经网络模型是深度学习中的卷积神经网络(Convolution Neural NetWork, CNN),,而很少用到循环神经网络(Recurrent Neural Network, RNN)。近些年来,循环神经网络所拥有的强大的动态行为和计算能力已经让它成为了国际上神经网络专家的重要研究对象。如果能够学习优化循环神经网络的相关算法使其在图像识别领域发光发热,这一定是意义非凡的。故本次课题希望能够尝试实现基于循环神经网络的图像识别并研究循环神经网络进行图像识别的算法实现。

1.2 课题研究的内容和预期目标

本次课题研究的主要内容为基于循环神经网络的图像识别的算法实现。目前,卷积神经网络作为一种近些年发展起来的前馈神经网络,已经在处理大型图像领域有了出色的表现,而循环神经网络则主要在众多的自然语言处理中取得了巨大成功和广泛的应用[6]。作为一种新兴的神经网络模型,在最近的几年里,凭借其强大的计算能力和动态行为,循环神经网络被广泛关注,然而循环神经网络却很少应用于图像识别领域。

本次课题研究主要是为了实现简单的基于循环神经网络的图像识别,预期目标是熟悉循环神经网络模型的基本原理和训练算法实现。了解最基本的循环神经网络模型存在的缺陷,并认识目前应用最广的长短时记忆模型(Long Short-Term Memory,LSTM),比较出两种不同结构循环神经网络模型之间的区别,最终完成对MINST手写数据集的训练和测试。

第2章 RNN相关原理

2.1 循环神经网络

2.1.1 循环神经网络模型原理

在传统的神经网络模型中,都具有三层结构分别是:输入层,隐藏层和输出层。数据的流向为从输入层到隐藏层再到输入层,每层之间都是全部连接到一起的。然而每层的节点内部是不连接在一起的如图2.1所示。

图2.1 多对一的简单神经网络

在图2.1中,最左边的是神经网络的输入层,负责接收输入的数据。最右边是神经网络的输出层,负责获取神经网络的输出,这二者之间的便是隐藏层。隐藏层中节点的值不能在训练样本集中进行观测。当隐藏层的层数大于2的时候,这就是深度神经网络模型。

深度神经网络模型在人工神经网络的发展历程中扮演着不可或缺的角色。然而这种传统的神经网络模型在面对很多的问题时无法解决,因此循环神经网络模型应运而生。RNN(Recurrent Neuron Network)也就是之前提到的循环神经网络是一种对序列数据进行建模的神经网络模型[7]。传统的神经网络模型的当前输出是和前面的输出无关的,而对于循环神经网络模型来说,当前的输出是和前面的输出是密切相关的。这就让一些与序列处理相关的任务的完成变成了可能。简单的神经网络模型和循环神经网络模型之间存在的区别如图2.2所示。

图2.2 简单神经网络和循环神经网络比较

虽然如图2.2 所示,简单的神经网络模型和循环神经网络模型似乎区别不大,仅仅是前面的输出会再次输入来改变当前输出的值,但是,正是这图片中看似不大的差别,造成了简单神经网络和循环神经网络模型的巨大区别。

在图2.2中的循环神经网络模型中,x是一个表示输入量的向量。s是一个表示隐藏层值的向量。U是输入层到隐藏层的权重矩阵;o也是一个向量,表示的是输出层的值,而V则是隐藏层到输出层的权重矩阵。W作为和简单神经网络的区别之处,是隐藏层前面的值作为当前这一次输入的权重。

对于图2.2中的循环神经网络模型,为了更好的理解这种看似简单的结构,可以将其展开成如图2.3所示。

图2.3 循环神经网络展开图

循环神经网络模型展开之后表面看起来是变复杂了,其实这种结构看起来清楚多了。这个网络在t时刻接收到输入之后,隐藏层的值不仅取决于当前输入层的输入,还取决于上一时刻的输出。

(2.1)

(2.2)

在公式(2.1)中是输出层的计算公式,输出层的每一个节点都会和隐藏层的每一个节点相连,V是隐藏层到输出层的权重矩阵,g为激活函数。在公式(2.2)中是隐藏层的计算公式,表示的是循环层的计算。U是输入层到隐藏层的权重矩阵。W是上一次的输出值st-1作为输入的权重矩阵,f和g一样,都是激活函数。当我们按照循环神经网络模型的原理将公式(2.2)带入到公式(2.1)中时,循环神经网络的输出值就会受到前面几次输出的影响。

2.1.2 随时间的反向传播算法

循环神经网络的训练算法是随时间的反向传播算法(BackPropagation Through Time,BPTT) 。随时间的反向传播算法和反向传播算法并没有比较大的区别,仅仅是随时间的反向传播算法是和时间序列有关的[8]。它们都包含着以下相同的几个步骤:

1、前向计算出每个神经元各自的输出值;

2、反向计算出每个神经元的误差项值,即误差函数对神经元加权输出的偏导数;

3、计算出每个权重的梯度,并进行梯度下降更新权重。

在公式(2.1)和公式(2.2)中是循环神经网络的基本方程。上面提到,对于循环神经网络的训练和传统的深度神经网络训练一样,都是使用的反向传播算法,不过这二者之间还是有一定区别的。如图2.3中所示,展开之后的循环神经网络模型中,参数U,V,W都是共享的,并且循环神经网络在使用梯度下降算法时,每一步的输出不只和当前步的输入有关,还和前面几步网络的输出有关联[9]。例如,在t=5时,不仅需要考虑当前步的输入,还要向后传递四步,前面四步的梯度是需要考虑的。这种学习算法就是Backpropagation Through Time (BPTT)。

下面的公式(2.3)(2.4)是选用双曲正切激活函数的循环神经网络模型,输出的是离散值。这个模型可以用来预测一个句子中下一个单词的可能结果,通过这个经典的例子来认识随时间的反向传播算法。离散变量的输出就是离散变量的每个可能值的未归一化对数概率,然后输入给 softmax 回归,输出归一化的概率向量。

(2.3)

(2.4)

在随时间的反向传播算法中,训练时出现的损失或者说是误差被定义为交叉熵损失,有下面的公式给出:

(2.5)

(2.6)

在公式(2.5)(2.6)中,yt是一个句子中正确单词的输出,而指的是预测值的单词值。人们通常将整个序列(句子)视为一个训练样本,因此总的误差只是每个时间步长上的误差的总和。

图2.4 预测句子中单词的循环神经网络模型

将循环神经网络的结构展开如图2.4所示,在这个循环神经网络模型中,需要计算有关U,V,W的损失函数的梯度,目前使用比较广泛的为随机梯度下降算法,如同每个时间步长上的误差可以相加得到总的误差,每一个样本中的每一步的梯度值也是可以进行相加的。

(2.7)

为了计算梯度,这里需要利用到分化链规则。

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

企业微信

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