APP下载

基于长短期记忆神经网络的手写数字识别

2020-04-15蒋锐鹏姑丽加玛丽麦麦提艾力安丽娜

计算机技术与发展 2020年2期
关键词:手写双向向量

蒋锐鹏,姑丽加玛丽·麦麦提艾力,安丽娜

(新疆师范大学 数学科学学院,新疆 乌鲁木齐 830017)

0 引 言

现代的科学研究表明,人类的学习和认知活动中有80%到85%都是通过视觉完成的。就是说,视觉是人类认知和了解这个世界的主要方式[1]。随着人工智能的兴起,有许多科学家一直在研究人工智能中与视觉相关的领域,即计算机视觉。计算机视觉的目的是为了让计算机能够理解图片的内容。

手写数字识别在实际生活中也有重要的作用。在当今“大数据”时代,计算机已经帮助人类解决了许多难题,如何让计算机去理解手写体,这将对人们的生活产生极大的便利。如何提高对书写不规范的数字的识别,也是研究人员一直探索的问题。

手写数字识别是计算机视觉的一个重要组成部分,传统的手写数字识别模型是Softmax回归模型,在文件自动处理Softmax回归模型[2-3]将可以判定为某类的特征相加,然后将这些特征的求和转化为可以判定是哪一类的概率。公式如下:

Z=X*W+b

(1)

其中,X是输入的一维向量,MNIST数据库的图片都为28×28(784)像素,所以展开成1行784列的一维向量;W和b是模型参数,同训练数据集学习、训练得出;Z为输出矩阵,每一列表示图像属于0~9某一类的特征。

为了方便描述,用Zi表示这幅图像属于i类的特征,i∈[0,9]。Softmax函数用以下公式将这些特征转化为能够判断类别的概率:

(2)

Softmax函数可以将任意的输入映射到[0,1]之间的输出而且所有输出结果之和为1。经过Softmax函数的运算得出一系列的特征概率,最后选取最大的概率对应的i模型的输出。

除了Softmax模型,支持向量机也常用来进行手写数字识别。支持向量机类似于浅层神经网络[4-5],其输出为中间层节点的线性组合,而每一个中间层节点对应于输入样本与一个支持向量的内积。支持向量机的输出层只有一个节点,用来确定识别结果的类别属性[4]。

1 LSTM

1.1 LSTM结构

LSTM是一种形式特殊的RNN,在1997年由Hochreiter和Schmidhuber提出,是为解决梯度消失和梯度爆炸问题而设计的[6]。LSTM框架将RNN中的普通神经元替换为其内部拥有少量记忆细胞的LSTM单元,它们有助于记忆许多时间步中的误差的内部状态[7-8]。LSTM结构中每时刻的隐层中都有许多的“记忆块”,而每一个“记忆块”含有多个“记忆细胞”。所谓的“记忆细胞”包括一个单元和三个控制门—输入门、遗忘门以及输出门。LSTM结构以及LSTM各部分运算如图1所示。

图1 LSTM的计算

it=σ(Wxixt+Whiht-1+WciCt-1+bi)

(3)

ft=σ(Whfxt+Whfht-1+WcfCt-1+bf)

(4)

Ct=ft⊗Ct-1+it⊗tanh(Wxcxt+Whcht-1+bc)

(5)

Ot=σ(Wxoxt+Whoht-1+WcoCt+bo)

(6)

ht=Ot⊗tanh(Ct)

(7)

其中,W为各项的权重,b为各项误差,xt为输入数据,ht为输出数据。σ为Sigmoid函数,它的输出值为“1”或“0”,是用来决定哪些信息能够通过(0表示任何信息不能通过,1表示全部信息通过)。tanh函数的作用是将运算的值规范到[-1,1][9]。从LSTM的结构图中可以看出,LSTM的输入门和遗忘门都有“信息过滤”的功能,这样就可以方便计算。

1.2 基于LSTM的手写数字识别

LSTM对数字手写图像的识别本质上是分类问题,这里把输入x分成28个时间段,每一段包含了28个值的内容;接着使用unstack函数将原始的28×28的输入矩阵转换成具有28个元素的list,而每个元素都为1×28的数组;然后将这28个时序依次送入LSTM中,如图2所示。

图2 手写数字数据传输过程

构建LSTM网络,先建立一个包含128个cell的类lstm_cell,紧接着把变形后的x1放进网络中生成outputs节点,通过全连接生成pred,最后使用Softmax函数进行分类。识别算法流程如图3所示。

图3 手写数字识别流程

从识别流程可以看出,手写图片的处理主要是建立一个合适的LSTM神经网络模型。LSTM神经网络将28×28图片输出为1维矩阵,由于采用0-9的标签,所以使用1×10的一维向量表示,比如3对应矩阵为[0010000000],最后使用Softmax函数进行预测。

2 实验设计

实验是基于TensorFlow1.11版本以及Anaconda4.2.0版本的实验环境,并在Pycharm进行编译。

2.1 TensorFlow

TensorFlow是Google公司开发的第二代分布式

机器学习算法实现框架和部署系统[10]。TensorFlow是一个基于数据流图的数值计算库,TensorFlow中有两个重要的概念—Tensor和Flow。Tensor就是张量,其可以被简单地理解为多维数组[7]。Flow则表明了它的计算模型。TensorFlow支持CNN,RNN以及LSTM的构建。用户可以根据自身的需要来调节神经网络的各项参数,使得实验过程更加顺利。

2.2 数据集

MNIST数据集(MNIST数据集下载:http://yann.lecun.com/exdb/mnist.)包含55 000行的训练数据集(train -images-idx3)和10 000行的测试数据集(test-images-idx3)。每个样本都有唯一对应的标签(label),用于描述样本的数字,每张图片包含28×28个像素点。

2.3 双向LSTM神经网络的构建

一般的LSTM神经网络模型是单向的,由于单向的神经网络在“记忆”上下文的能力上有很大的限制[11],故而文中构造了双向LSTM网络。双向LSTM在输入序列中是两个LSTM:一个为原本的输入数据,第二个为原来数据的反转副本,这样可以提供额外的上下文,使得模型能更充分、更有效的学习。图4为双向LSTM的结构示意图。

图4 双向LSTM结构示意图

静态双向LSTM使用static_bidirectional_rnn函数建立,先创建lstm_fw_cell和lstm_bw_cell包含了128个正反向cell的类LSTM,然后将转化后的x1输入到LSTM网络中,生成输出节点,再通过全连接生成pred,最后使用Softmax函数进行分类。

2.4 评价指标

评价指标采用交叉熵[13-14],公式如下:

(8)

其中,y为预测的概率分布,y'为实际输入值。利用交叉熵作为误差函数,从而调整LSTM神经网络模型的参数,使得模型达到最优。

3 结果分析

将Softmax模型以及构建的静态双向LSTM模型放入实验中。被识别图片如图5所示,识别结果见表1。

图5 被识别图片

表1 识别结果

经过训练集的训练可以看出,Softmax模型正确率达到了92%,再用测试集进行测试,正确率也达到了92%。而双向LSTM模型的正确率达到了96.3%,比Softmax模型提高了4.3%。这说明双向LSTM模型在手写数字识别有着较好的表现。

4 结束语

文中主要对双向长短时记忆递归神经网络模型进行了研究,并给出了在数字识别应用中的初步实验结果,同时对传统Softmax和LSTM的识别结果进行对比。双向LSTM神经网络通常应用在语音等具有时间序列的输入数据上,通过实验可以看出,双向LSTM神经网络在手写数字识别上也有较好的表现,并将传统Softmax方法的性能提高了4.3%。下一步将继续改进模型结构并进行更有意义的应用实验。

猜你喜欢

手写双向向量
基于双向特征融合的交通标志识别
向量的分解
我手写我心
降低寄递成本需双向发力
聚焦“向量与三角”创新题
我手写我意
完善刑事证据双向开示制度的思考
黔南州文联党支部与新寨村党支部召开双向组织生活会
6万字的情书
向量垂直在解析几何中的应用