APP下载

基于多层感知机网络的手写数字识别算法

2018-12-22张行文董元和

电脑知识与技术 2018年32期
关键词:优化算法

张行文 董元和

摘要:手写数字分类问题是机器学习与模式识别领域的基础问题之一,也是 OCR的核心技术,具有重要的现实意义。本文针对 MNIST 手写数字数据集,通过 C++ 实现了基于多层感知机网络的手写数字数据集分类算法,并采用交叉验证、小批量随机梯度下降算法、扩充训练数据集的方法优化算法,最终达到了98.042% 的分类准确率。

关键词: 多层感知机;手写数字;算法;优化

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)32-0217-03

1 MNIST 手写数字数据集

MNIST(Mixed National Institute of Standards and Technology database) 是一个包含 70000 个 28×28 像素大小的手写阿拉伯数字灰度图片的大型数据集[1]。MNIST数据库被广泛用于测试机器学习算法的分类能力。

本文使用 Kaggle 在线大数据测试平台的 MNIST 测试系统[2] 来检验分类算法的分类正确率,该系统将 MNIST 数据库中的 42000 个数字作为训练集,28000 个数字作为测试集。其中,每个图片被转换为 28×28=784 维的向量。训练集为 42000行、785 列的矩阵,矩阵中第 i 行第 1 列代表第 i 张图片对应的数字,之后的 784列分别代表第 i 张图片中每个像素点的灰度值。测试集训练集为 28000 行、784 列的矩阵,矩阵中第 i 行第 j 列代表第 i 张图片中像素点 j 的灰度值。

2 MNIST 数据集的分类算法比较

MNIST 数据集的分类算法有很多,如 K 近邻算法、支持向量机[3]、集成学习方法、多层感知机网络、卷积神经网络等。目前分类准确率最高的是基于 DropConnect的兩层 CNN 的分类算法[4],其准确率为 99.79%。

K 近邻算法 (K Nearest Neighbors,KNN) 是一种度量学习方法,它基于某种距离度量,在训练集中找到与测试对象最近的 K 个训练数据,并在这 K 个数据中选取出现频率最高的数据类别作为测试对象的所属类别,具有算法容易实现的特点。但其无训练过程,在对每个数据对象进行分类时需要遍历整个数据集,耗时过长。

支持向量机 (Support Vector Machine,SVM) 将数据映射到高维空间,使用核函数(Kernel Function) 寻找合适的超平面划分数据集,与线性回归算法相比,SVM 可以划分原始空间中线性不可分的数据集,具有计算量小、不易过拟合等优点,但数学推导过程过于复杂。

集成学习方法是通过构建并结合多个分类器来完成训练、分类任务。集成学习通过一定的策略训练每个子分类器、结合每个子分类器的分类结果,常常能获得比单个子分类器更好的分类准确率,具有泛化能力强的优点,缺点是算法难以理解、实现。

多层感知机网络 (Multi Layer Perceptron,MLP) 是由若干层感知机神经元组成的全连接网络。其中每个神经元可以解决一个线性可分问题。MLP 通过多层神经元的共同作用,可以解决大多数的线性不可分问题,其结构简单,算法易于实现,缺点是训练速度略慢,无法提取图片中的空间关系,有时需要通过特征工程对输入数据进行特征提取。

卷积神经网络 (Convolutional Neural Network,CNN) 是由若干卷积层、下采样层组成的神经网络,通过卷积层的卷积核提取图片中的特征信息,具有学习图片中一定特征的能力,分类准确率高,缺点是结构复杂、反向传播算法难以实现、训练时间过长。

综合考虑算法实现难度、训练时间成本等因素,本文采用由两层感知机神经元组成的多层感知机网络实现分类算法。

3 基于多层感知机网络的分类算法

3.1感知机

感知机神经元 (Perceptron) 是多层感知机网络的基本组成单位,由输入向量 X、权重向量W、偏置 b、激励函数和输出值组成。输入向量经权重向量加权求和后输入到感知机中,然后经激励函数得到输出值。其中,激励函数一般为非线性函数,将输入值映射到一个较小区间中,以提高感知机对非线性函数的拟合能力。激励函数有很多,Sigmoid、tanh、ReLU 等。

3.2 多层感知机网络

单个感知机已被证明不能解决线性不可分问题 ,但多层感知机网络可以解决大多数此类问题。本文采用由两层感知机神经元组成的多层感知机网络,该网络包含输入层、隐含层与输出层。

3.3正向传播算法

(1)输入数据的预处理

为了提高训练的收敛速率、最终的分类准确率,需要对输入数据进行归一化(Normalization) 处理,使得输入数据由较大的区间 [0; 255] 映射到区间 [0; 1] 上。本文采用 minmax 归一化方法。

(2)输入数据的正向传播

输入数据通过隐含层、输出层正向传播后得到输出结果。

(3)误差估计

在训练过程中,输入数据经正向传播得到输出数据后,需要通过误差估计,将其与期望得到的输出数据作比对。

误差估计的方法有很多,常见的有均方误差 (Mean Squared Error,MSE)、交叉熵误差 (Cross Entropy Error,CEE)。本文采用 MSE 作为误差估计方法。

3.4反向传播算法

多层感知机网络中包含很多边权与偏置权重,因此需要高效的算法来调整这些权重,使得网络的 MSE 尽可能小,这一过程称之为训练。

训练算法有很多,如反向传播算法 (Error Backpropagation Algorithm,BP)、神经进化算法 (Neuro Evolution) 等,本文采用最经典的反向传播算法。

BP 算法的本质是对于每个权重,求出总 MSE 对该权重的偏导数,并根据偏导数将该权重沿使 MSE 减小的方向调整。

两层结构的多层感知机网络的 BP 算法具体如下[5]:

(3)隐含层到输出层边权的权值更新

(2)输出层偏置的权值更新

(4)输入层到隐含层边权的权值更新

(5)隐含层偏置的权值更新

4 分类算法的优化

4.1交叉验证

神经网络的训练过程迭代次数过多,容易导致过拟合。为了避免过拟合的产生,本文采用交叉验证 (Cross Validation) 的方法,即选取训练数据中的 2000 组数据作为验证集,其余数据作为训练集,使用训练集训练神经网络,每隔一段时间使用验证集模拟测试数据输入神经网络,并估计训练误差。

4.2 小批量随机梯度下降算法

小批量随机梯度下降算法 (Mini-batch Stochastic Gradient Descent,Mini-batch SGD) 是梯度下降算法的一种,结合了批量梯度下降算法和随机梯度下降算法的优点。

批量梯度下降算法 (Batch Gradient Descent,BGD) 每次更新权值时需要将全部训练数据放入神经网络,通过反向传播计算出每个权值对于所有数据的梯度之和。

随机梯度下降算法 (Stochastic Gradient Descent,SGD) 每次更新权值时只随机抽取一个训练数据放入神经网络,通过反向传播计算出每個权值对于该数据的梯度。

一般来讲,BGD 往往能更稳定地朝损失值减小的方向更新权值,但每次迭代时计算量过大,训练速度慢;SGD 每次迭代时计算量小,训练速度快,但训练过程中损失值波动幅度大,极不稳定。

Mini-batch SGD 每次从所有训练数据中有序地抽取 mini-batch 个训练样本作为一个训练批次放入神经网络,通过反向传播计算出每个权值对于所有训练样本的梯度之和,具有训练速度快、损失值下降相对稳定的特点。

4.3 训练集扩充

由于本次实验中采用的神经网络模型参数多,训练数据集过少时,神经网络容易过拟合。因此本文采用扩展训练数据集的方式提高最终分类的准确率。扩展训练数据集的方法有很多,如对数字图片添加噪声、仿射变换 (Affine Distortion)、弹性变换 (Elastic Distortion)[6] 等。本文采用弹性变换的方法。具体算法如下:

(1)随机生成矩阵 x[28,28],y[28,28],矩阵中每个元素的值均在 [-1,1] 之间;

(2)使用大小为 n,标准差为 σ 的高斯核对 x、y 进行滤波处理;

(3)新图片中每个像素点的像素值按以下公式计算:

5 实验结果

本文的分类算法在 Windows 10、i7-8550U、8G 内存的环境下进行测试实验,实验结果如表1所示。

参考文献:

[1] Yann Lecun and Corinna Cortes. The mnist database of handwritten digits, 1998.

[2] kaggle. Digit recognizer, 3/18 2018.

[3] Christopher J. C. Burges. A tutorial on support vector machines for pattern recogni-tion. Data Mining and Knowledge Discovery, 2(2):121–167, 1998.

[4] L. Wan, M. Zeiler, S. Zhang, Y. L. Cun, and R. Fergus. Regularization of neural net-works using dropconnect. In International Conference on Machine Learning, pages 1058–1066, 2013.

[5] 周志华. 机器学习[M].北京:清华大学出版社, 2016.

[6] Patrice Y. Simard, Dave Steinkraus, and John C. Platt. Best practices for convolutional neural networks applied to visual document analysis. In International Conference on Document Analysis and Recognition, 2003. Proceedings, International Conference on Document Analysis and Recognition, 2003. Proceedings, 2003: 958.

【通联编辑:唐一东】

猜你喜欢

优化算法
超限高层建筑结构设计与优化思考
一道优化题的几何解法
由“形”启“数”优化运算——以2021年解析几何高考题为例
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
基于增强随机搜索的OECI-ELM算法
一种改进的整周模糊度去相关算法