APP下载

基于Keras的MNIST数据集识别模型

2019-09-10郭梦洁杨梦卓马京九

现代信息科技 2019年14期
关键词:深度学习

郭梦洁 杨梦卓 马京九

摘  要:Keras是以TensorFlow+Theano为后端的深度学习框架,相比于TensorFlow,Keras更加灵活快速。相比于经典的神经网络模型,卷积神经网络对图像的识别效率更高。文章基于Keras建立深度学习模型,以MNIST数据集为例,构建卷积神经网络,训练模型并进行预测,得到的MNIST数据集识别模型,达到了99.23%的识别正确率。

关键词:深度学习;Keras;MNIST;数据集卷积神经网络

中图分类号:TP751.1     文献标识码:A 文章编号:2096-4706(2019)14-0018-03

Keras-based MNIST Data Set Recognition Model

GUO Mengjie1,YANG Mengzhuo1,MA Jingjiu2

(1.Anhui University,Hefei  230601,China;2.Yangtze University,Wuhan  430100,China)

Abstract:Keras is a deep learning framework based on TensorFlow+Theano. Keras is more flexible and faster than Tensorflow. Convolutional neural networks are more efficient at identifying images than classical neural network models. This paper builds a deep learning model based on Keras. Taking the MNIST data set as an example,constructing a convolutional neural network,training the model and predicting it,the obtained MNIST dataset recognition model achieves a recognition accuracy rate of 99.23%.

Keywords:deep learning;Keras;MNIST;data set convolution neural network

0  引  言

近年来,深度学习受到热捧,发展势头迅猛,卷积神经网络已成为处理图像数据的主流深度神经网络。经典的神经网络模型通过调试神经网络的结构,如隐藏层的数目、激活函数和优化方法的选择,也能在MNIST数据集上达到很好的正确率,但训练模型耗时长,需要编写大量代码。Keras以其强大的API,能快速调用模块,定义模型,编译模型并优化算法。为此,这里基于Keras构建深度学习框架,以最少的代码,最高的效率,建立识别MNIST数据集的卷积神经网络模型。

1  MINIST数据集

MNIST数据集是Yann Lecun基于美国国家标准技术研究所构建的一个研究深度学习的手写数字的数据集,MNIST由70000张不同的人手写的灰度图组成,其中的每一张图片都写有0~9中的一个数字。训练图像有600 00张,测试图像有10000张,其图像数据是28*28像素的灰度图像。我们的识别模型就是根据这些图片进行0~9的10分类。如图1展示了数字1及其对应的14*14的像素矩阵。

MNIST数据集的一般使用方法是,先用训练图像进行学习,再用学习到的模型度量能在多大程度上对测试图像进行正确的分类。输出层的分类使用Softmax回归算法,选择概率值最大的那个数字输出。

2  激活函数

为了实现神经网络的非线性建模能力,解决一些线性不可分的问题,我们通常使用激活函数将神经网络非线性化,它需要满足数据的输入和输出都是可微的,因为在进行反向传播的时候,需要对激活函数求导。常用的激活函数有Softmax、tanh、Relu等。

2.1  Softmax函数

Softmax(xj)=,分子是输入信号xj的指数函数,分母是所有输入信号的指数函数的和,因此,Softmax函数的输出值的总和是1。

Softmax回归本身可以作为一个学习算法来优化分类结果,但在TensorFlow中,Softmax回归的参数被去掉了,它只是一层额外的处理层,将神经网络的输出变成一个概率输出。

2.2  Relu函数

Relu函数在输入大于0时,直接输出该值;在输入小于等于0时,Relu是完全不被激活的,输出为0。其数学公式为:

3  构建卷积神经网络识别手写数字

20世纪60年代,Hubel和Wiesel在研究貓脑皮层中用局部敏感和方向选择的神经元时,发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络,简称CNN。CNN是一种专门用来处理具有类似网络结构的数据的神经网络,其模型主要以卷积为核心。

如图2所示,一个卷积神经网络主要由输入层、卷积层、池化层、全连接层和Softmax层构成。输入层是整个神经网络的输入,对于图像而言,输入层就是一张图片的像素矩阵;Softmax层用来输出当前样例属于不同类别的一个一维概率输出向量。

卷积层是一个卷积神经网络中最为重要的部分。和传统的全连接层不同,卷积层中每一个节点的输入只是上一层神经网络的一小块,这个小块常用的大小有3*3或者5*5。卷积层试图将神经网络中的每一块进行更加深入的分析从而得到抽象程度更高的特征。一般来说,通过卷积层处理过的节点矩阵的深度会增加。

池化层神经网络是用来缩小数据规模的一种非线性计算,它不会改变三维矩阵的深度,但它可以缩小矩阵的大小。池化操作可以认为是将一张分辨率较高的图片转化为分辨率较低的图片。通过池化层可以进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络中参数的目的。一般有最大池化和平均池化两种类型可供选择。

全连接层用来将前面经过几轮卷积层和池化层提取的多维特征进行整合,以给出最后的分类结果传给Softmax进行概率输出。

3.1  利用Keras建立模型

实验环境为Windows 10系统,采用编程语言python,神经网络学习框架采用Keras框架,导入Keras的相关模块,基于Keras构造卷积神经网络模型,模型的网络结构如表1所示。

从表1可看出构建的模型由两个卷积层、一个池化层、两个全连接层构成。输入层输入尺寸大小为28*28*1的mnist数据。经过第一层卷积,使用32个3*3的卷积核,激活函数使用Relu,其输出尺寸为26*26*32;经过第二层卷积,使用64个3*3的卷积核,激活函数使用Relu函数,其输出尺寸为24*24*64;再通过最大池化层缩小矩阵大小,池化窗口为2*2,得到的输出尺寸为12*12*64。在这里为了防止过拟合,加入Dropout正则化,随机丢弃25%的神经元,以达到简化参数的目的,但并不影响尺寸大小。最后通过Flatten将卷积和池化提取的三维特征向量一维化。在第一个全连接层时,参数有1179776个,考虑到过多的参数会造成过拟合,加入Dropout再通过Softmax回归输出结果。

3.2  训练模型

针对构建的模型应用于归一化后的MNIST数据集进行特征提取与训练,Batch Size=128,epoch=10。在这里,我们选择了Keras中多分类损失函数categorical_crossentropy,优化器使用Adam。使用训练好的模型对MNIST训练集进行测试,迭代10次后准确率达到了99.20%。模型在测试集上达到的最高准确率为99.23%。具体迭代过程如表2所示。

4  结  论

本文基于Keras搭建卷积神经网络,以MNIST数据集为例进行了学习分析和应用实践,模型的准确率达到了99.23%,是非常可观的。但是应用于实际,还需要搜集不同人群手写的数字进行测试,以考察模型真正的泛化能力,对训练模型进一步改进,还可以将模型进行推广应用于汉字识别等图像识别项目。

参考文献:

[1] [美]Peter Harrington.机器学习实战 [M].李锐,李鹏,曲亚东,等译.北京:人民邮电出版社,2013.

[2] 王振,高茂庭.基于卷积神经网络的图像识别算法设计与实现 [J].现代计算机(专业版),2015(20):61-66.

[3] 蒋子阳.Tensorflow深度学习算法原理与编程实战 [M].北京:中国水利水电出版社,2019:301-306.

[4] Szegedy C,Liu W,Jia Y,et al. Going deeper with convoluteons [C].Boston:IEEE Conference on Computer Vision and Pattern Recognition,2015:1-9.

作者簡介:郭梦洁(1996-),女,汉族,安徽安庆人,硕士,研究方向:深度学习;杨梦卓(1995-),女,汉族,安徽六安人,硕士,研究方向:深度学习;马京久(1995-),男,汉族,安徽安庆人,硕士,研究方向:水文水生态。

猜你喜欢

深度学习
从合坐走向合学:浅议新学习模式的构建
面向大数据远程开放实验平台构建研究
基于自动智能分类器的图书馆乱架图书检测
搭建深度学习的三级阶梯
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
利用网络技术促进学生深度学习的几大策略
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究