APP下载

基于卷积神经网络的手写数字识别研究

2021-09-14张新勇甘恒李昌夏加文浩

电脑知识与技术 2021年22期
关键词:卷积神经网络人工智能

张新勇 甘恒 李昌夏 加文浩

摘要:基于卷积神经网络在手写数字识别上的应用,对卷积神经网络模型进行介绍。本实验使用python编程语言在Keras上搭建模型,并对模型进行训练。实验数据集为MNIST。模型训练完毕后,对准确率进行评估。最后对测试数据进行预测以及利用混淆矩阵对哪些数字准确率较高和哪些数字容易混淆进行评估。

关键词:人工智能;手写数字识别;卷积神经网络;Keras

Abstract: Based on the application of convolutional neural network in handwritten digit recognition, the model of convolutional neural network is introduced. In this experiment, Python programming language is used to build the model on Keras, and the model is trained. The experimental data set was MNIST. After the training of the model, the accuracy was evaluated. Finally, the test data are predicted and the confusion matrix is used to evaluate which numbers are more accurate and which numbers are easy to be confused.

Key words: AI; handwritten digit recognition; CNN; Keras

由于手写数字在日常生活中的大量运用,利用计算机进行手写数字的自动识别成了研究热点。手写数字根据每个人的习惯会千差万别,所以依靠线性模型不能进行准确的识别[1]。过去人们也提出了基于反向传播神经网络的数字识别方法、类中心欧式距离、贝叶斯分类算法[2]等来进行手写数字识别,但效果都不尽人意。本文利用基于深度学习的卷积神经网络来处理手写数字识别问题,相比以往基于机器学习的算法,它有以下优点:(1)特征提取高效:不需要提前设计好特征的内容和数量,卷积神经网络可以自己训练,自我修正,来得到好的效果;(2)数据格式的简易性:对数据格式不需要过多处理;(3)参数数目比较少:只需要初始化给每个神经元随机赋予一个权重和偏置项,随后模型会自己修正参数,使其达到最优。综上,卷积神经网络不仅克服了传统方法预处理时的弊端,还提高预测的准确率。

1卷积神经网络简介

卷积神经网络简称CNN,其核心概念主要是稀疏连接、共享权值和池化。稀疏连接主要是通过对数据的局部区域进行建模,以发现局部的一些特性。共享权值可以使需要优化的参数变少。子采样解决了图像的平移不变性。这些特点也降低了网络模型过拟合的程度。卷积神经网络主要有卷积层、下采样层和全连接层。卷积神经网络利用卷积层和下采样层交替叠加,得到特征的高层抽象,然后对高层抽象的特征进行全连接的映射,最终实现分类。

2相关技术

2.1 Keras框架

Keras是TensorFlow官方的高层API[3]。Keras是一个高层神经网络API,并对TensorFlow等有较好的优化。Keras支持Python、R等多種语言。同Keras相比,Tensorflow更注重各种深度学习模型的细节,但是会有更大的代码量,耗费更多的时间进行开发。

2.2卷积神经网络

卷积神经网络是对多层网络模型的一个改进,由多个卷积层和池化层交替连接而成[4]。在CNN中,充分利用图像数据局部相关性的特点,尽可能减少网络中参数个数,方便对其求解。

2.2.1卷积运算

卷积层的意义是利用卷积核对原图像进行处理,处理后的图像保留原图像的一些特征。当用不同的卷积核处理时,处理后的多个图像就会对原图像不同地方的特征进行反映。卷积运算的运算方式:(1)以随机的方式产生filter weight大小是3×3;(2)对原始图片从左至右,从上至下依次选取3×3的矩阵;(3)图像选取的3×3矩阵与filter weight3×3矩阵相乘。

以上面的方式就可以完成所有图像的处理。卷积运算不会改变图像的大小。卷积运算后的效果很类似于滤镜效果,可以帮助我们提取输入的不同特征,例如边缘、线条和角等。

2.2.2池化运算

池化运算可以对图像进行缩减取样[5],池化采样不会改变图像的数量,但会改变图像的大小。上图所示,就是用局部特征的最大值来表达此区域的特征。缩小了图像的大小,减少了数据量。这在一定程度上也控制了过拟合[6]。

3卷积神经网络的手写数字识别实验

3.1数据源与处理

本实验采用MNIST数据集作为实验数据。MNIST数据集共有训练数据60000项,测试数据10000项。每一项都由images(单色数字图像)和labels(真实数字)所组成。数据图像预处理分为以下两个步骤:图像是28×28的二维图像,利用reshape函数将图像转化为长度为784的一维向量,并且转换为Float类型;将数字值进行归一化:图像每个像素点灰度的深浅都是用0至255的数字值来表示。用255除每个值,使其转化为0到1之间的值,便于后续的计算。label数据处理:label标签段处理之前为0-9的数字,以One-Hot Encoding(一位有效编码)转换为10个0或1的组合,正好对应输出层10个神经元。

3.2实验过程

数据预处理会产生Features(数字图像特征值)与Label(数字真实的值),接着会建立卷积神经网络模型。输入训练数据与Label,执行10个训练周期来对模型进行训练,并使用测试数据评估模型准确率。使用已完成的模型,输入测试数据进行预测。

猜你喜欢

卷积神经网络人工智能
我校新增“人工智能”本科专业
人工智能与就业
数读人工智能
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
基于卷积神经网络的树叶识别的算法的研究