您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页实验一:基于机器学习的手写数字识别实验

实验一:基于机器学习的手写数字识别实验

来源:爱够旅游网


目录

本科生实验报告 ...................................................................................................................................................1 题目:基于机器学习的手写数字识别实验 ...................................................................................................1 1概述 ......................................................................................................................................................................3 1.1实验内容 .....................................................................................................................................................3 1.2 实验环境 ....................................................................................................................................................3 2 监督学习 ............................................................................................................................................................3 2.1 感知器 ........................................................................................................................................................4 2.1.1 神经网络结构 ...................................................................................................................................4 2.1.2 实验过程 ............................................................................................................................................4 2.1.2 实验结果 ............................................................................................................................................5 2.2 BP神经网络 ...............................................................................................................................................6 2.2.1 神经网络结构 ...................................................................................................................................6 2.2.2 实验过程 ............................................................................................................................................6 2.2.3 实验结果 ............................................................................................................................................7 2.3 卷积神经网络 ...........................................................................................................................................7 2.3.1 神经网络结构 ...................................................................................................................................7 2.3.2 实验过程 ............................................................................................................................................8 2.3.3 实验结果 ............................................................................................................................................9 2.4 实验总结 ................................................................................................................................................. 10 3 非监督学习 .................................................................................................................................................... 10 3.1 实验原理 ................................................................................................................................................. 10 3.2 实验过程 ................................................................................................................................................. 10 3.3 实验结果 ................................................................................................................................................. 11 4 实验总结 ......................................................................................................................................................... 12

1概述

1.1实验内容

本实验为基于机器学习的手写数字识别实验,分为监督学习与非监督学习两部分。手写数字识别是机器学习领域的经典问题,该问题的目标是输入一个手写的数字0~9图像,机器能够识别出是具体哪个数字。

监督学习的数据集分为训练集和测试集两部分,前者用于训练网络调整参数,后者用于测试网络的准确率。训练集和训练集均分为图片和标签两部分,标签为图片对应的数字,这也是监督学习与非监督学习的主要区别。监督学习主要是采用人工神经网络的结构,本实验中分别采用了感知器、BP神经网络和CNN卷积神经网络三种,并对实验结果进行了对比。

非监督学习采用k-均值聚类方法,通过调整k的值来得到不同的实验结果并进行对比。

1.2 实验环境

语言:python3 框架:TensorFlow IDE:PyCharm2018 数据集:MNIST数据集

2 监督学习

2.1 感知器

2.1.1 神经网络结构

感知器仅由输入层与输出层两层够成,并且两层神经元之间是全互联的,如

图1所示。输出层的每个神经元都和输入层的每个神经元相连,输出层每个节点对输入层每个节点的值进行加权求和加上偏置量后经过激励函数作为输出值。

图1 感知器结构

2.1.2 实验过程

由于输入的图片为28*28,所以输入层节点数设为784;由于是数字0~9,

所以输出层节点数设为10。实验采用softmax回归来得到输出值,如图2所示。图三为输出值与输入值之间的向量计算过程。实验中将W及b全部初始化为0。

图二 softmax回归模型 图三 向量计算函数

本实验中采取的成本(loss)函数为“交叉熵”,其计算方程如图四所示,其中y 是

我们预测的概率分布, y' 是实际的分布。

图4 交叉熵计算方程

优化方法采用梯度下降算法,即沿着成本函数下降最快的方向调整参数。

2.1.2 实验结果

实验以每一百个数据为一个batch,总计训练了10000个batch。每100个

batch记录一次准确率,得到图像如图5所示。可以看到准确率很快上升到90%左右,但之后就开始了波动,无法得到更高的准确率。

图5 感知器准确率变化图像

训练结束后在测试集上的准确率为91%左右,如图6所示。

图6 感知器测试集上的准确率

2.2 BP神经网络

2.2.1 神经网络结构

BP神经网络结构上就是多层感知器,即将感知器的层数增加,每层与上一层

的节点之间均为全互联。这样做的原因是单层感知器的结构过于简单,很难表示复杂函数,因此效果较差。图7为三层BP网络结构示例。

图7 三层BP网络结构示例

2.2.2 实验过程

本实验搭建的为四层BP神经网络。输入层节点数仍为784,输出层节点数

仍为10。综合考虑到实验效果和运行效率,最终中间两层节点数均设为392。

BP神经网络学习目标为最小平方误差,优化方法为梯度下降。实验中采用的

1

为Sigmoid激活函数,即为Sigmoid(x)=1+𝑒−𝑥。

训练过程包括正向传播与反向传播两部分,其中正向传播用于得到输出值,

反向传播用于调整参数。输出层与隐含层的调整公式如图8所示。

图8 输出层与隐含层的调整公式

2.2.3 实验结果

实验以每一百个数据为一个batch,总计训练了10000个batch。每100个

batch记录一次准确率,得到图像如图9所示。可以看到图像基本与感知器的图像一致只是更高,很快达到了95%左右并且之后稳定在95%以上,但也没有更高。

图9 BP神经网络准确率变化图像

训练结束后在测试集上的准确率为93%左右,如图10所示。

图10 BP神经网络测试集上的准确率

2.3 卷积神经网络

2.3.1 神经网络结构

卷积神经网络最大的特点就是层与层之间是不一定全互联的,每一层的节

点可以仅与上一层的部分节点相连,这样的层成为卷积层。卷积神经网络还有一个特点就是连接权值可以在不同神经元之间共享。这样便可以在增加神经网

络层数的情况下保持较快的训练速度。

卷积神经网络大体上可分为卷积层和判别层,卷积层在判别层前面,是不

全互联的,并且每一层的节点数越来越少,作用是将上一层的一个小区域内的数据通过加权求和的方式卷积为下一层的一个神经元的值。在卷积层之间还可以有池化层,作用是将卷积结果做进一步处理,如取最大值,平均值等。第二部分是判别层,,与BP神经网络结构类似,是全互联的。卷积神经网络结构如图11所示。

图11 一种卷积神经网络

2.3.2 实验过程

本实验为了保证输入和输出是同一大小,使用1步长,0边距。池化采用简

单传统的2X2大小的模板做max pooling。

第一层卷积采用一个一个卷积接一个max pooling完成。卷积在每个5x5

的patch中算出32个特征。卷积的权重张量形状是[5, 5, 1, 32],前两个维度是patch的大小,接着是输入的通道数目,最后是输出的通道数目。 而对于每一个输出通道都有一个对应的偏置量。

第二层卷积中,每个5x5的patch会得到个特征。

之后是判别层。此时图片尺寸已经减小到了7X7。我们加入一个有1024个

神经元的全连接层,用于处理整个图片。

为了减少过拟合,我们在输出层之前加入dropout。在训练中启动dropout,

在测试中关闭dropout。

最后在输出前添加一个softmax层,和之前的单层softmax类似。

2.3.3 实验结果

实验以每一百个数据为一个batch,总计训练了10000个batch。每100个

batch记录一次准确率,得到图像如图11所示。图像趋势和之前两个相同,只是准确率更高,可以达到接近100%的程度。

图11 卷积神经网络准确率变化图像

训练结束后在测试集上的准确率为99.2%左右,如图12所示。

图12 卷积神经网络测试集上的准确率

2.4 实验总结

本实验采用神经网络的结构来进行手写数字识别的实验,分别采用了感知器,

BP神经网络和卷积神经网络三种,准确率均达到了90%以上,卷积神经网络更是达到了99%以上,取得了较为理想的实验结果。

三个神经网络进行对比后发现,从神经网络结构和代码复杂度来看,均为感

知器最简单,BP神经网络其次,卷积神经网络最复杂,从实验效果上看亦是如此,感知器最差,卷积神经网络最优秀。但是从训练时间来看,训练同样大小的数据,即batch的大小为100,训练10000组batch,感知器和BP神经网络均可以比较快的完成,在cpu版本的TensorFlow下不到一分钟就可训练完成,而卷积神经网络需要接近一小时才能训练完成。总的来说,随着神经网络结构的逐渐复杂,效果也越来越好,训练时间也越来越长,其中卷积神经网络效果最好,但需要较长的训练时间。接下来可以通过调整卷积核的大小或加权权值进行进一步优化。

3 非监督学习

3.1 实验原理

本实验采用k-均值(k-means)聚类算法。K-均值聚类算法的核心思想是用

簇中所有数据的均值向量代表每个簇,以数据与簇均值之间的距离作为数据到簇的距离,然后将每个数据划分到离它最近的簇。其优化目标是使得各个数据到其隶属的簇均值的距离之和最小化。

3.2 实验过程

因为是数字0~9,所以我一开始设置k为10,即把数据分为k类,但实验效

果并不理想。

之后经查阅相关资料受到启发,可以把k设置比较大,即多分为几个簇,之

后再用最近邻再次分类为十簇对应最后的结果。

实验总体思路为先用k-均值算法在训练集上进行训练,将数据分为k类,之

后再将k类聚类成十类并加上标签代表0~9,最后在测试集上测验结果。

3.3 实验结果

经多次尝试不同k,实验结果如图13所示。可以看到随着k的增大准确率显

著上升,最终能达到95%以上的准确率。但随着簇数的增加训练时间也会显著增加。

K值 10 50 100 500 1000 5000

监督学习是通过神经网络将输入对应为一个长为10的矩阵的输出,代表分

准确率 52.65% 80.74% 86.01% 93.25% 94.75% 95.95% 别是0~9十个数可能的大小,并选择最大的一个作为输出;非监督学习是选取十个中心,将输入到每个中心的距离作为可能是对应的数的可能的大小,并选取距离最近的一个输出;监督学习的训练过程是训练神经网络的参数,非监督学习

的训练过程可以认为是训练十个中心的坐标,从这些角度看非监督学习和监督学习有很多相似之处。

4 实验总结

本实验分别采用监督学习与非监督学习的方法进行了手写数字识别的实验,

并均取得了良好的实验效果。监督学习分别采用了感知器,BP神经网络,卷积神经网络三种并进行对比,非监督学习采用了K-均值算法并通过调整k的值进行了实验,使我收获颇丰。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务