2021年人工神经网络第四次作业:基于MATLAB的求解
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年人工神经网络第四次作业:基于MATLAB的求解相关的知识,希望对你有一定的参考价值。
简 介: 本文选取了2021年人工神经网络第四次作业学生提交的作业。供交流使用。
关键词
: 人工神经网络
- 孙荣阳:2021210984
§01 MNIST数字识别
1.1 全连接层深度学习网络
仅由全连接成构的神经网络结如 图 1.1所
▲ 图1.1.1 全连接层的神经网络结构
全连接层的神经网络结构由三个成, 第一个全连接层 包含 28*28
个输入, 256
个输出 ;第二个全连接层 ;第二个全连接层 包含 256
个输入, 64
个输出;第三全连 个输出;第三全连 接层包含 64
个输入和 10
个输出;激活 函数采用 Relu
函数。
在该条件下,对网络进行训练和测试,训练过程中128个样本划分为一个batch,共训练3轮。训练过程中准确率和损失如图 1.2所示。
▲ 图1.1.2 全连接神经网络训练过程准确率和损失
在完成训练后,验证准确率 在完成训练后,验证准确率 为 96.83%
,用于训练和验证的样本准确率相差 ,用于训练和验证的样本准确率相差 ,用于训练和验证的样本准确率相差 不大。在测试集上对其进行,可得 不大。在测试集上对其进行,可得 不大。在测试集上对其进行,可得 准确 率为 97.09%
,完成 ,完成 3
轮训练用时 2
分 31
秒。 错误识别的图片 如表 1.1
所示。 有一些易于区分的样本,如 4
、5
、6
、8
被错误分类。
▲ 图1.1.3 全连接网络错误识别样本
增加网络层数为 4
层,将第二全连接网络换为 256-128-64
的两层全连接 的两层全连接 神经网络,得到 训练过程的准确度和损失如 图 1.3
所示
▲ 图1.1.4 四层全连接神经网络训练过程准确率和损失
在完成训练后,验证准确率 在完成训练后,验证准确率 为 96.93%
,相比于三层的全连接网络,准确率 相比于三层的全连接网络,准确率 相比于三层的全连接网络,准确率 略有提升 。在测试集上进行,得到正确率为 。在测试集上进行,得到正确率为 。在测试集上进行,得到正确率为 96.95%
,测试集上的正确率 ,测试集上的正确率 相 对三层网络结构 下降 。完成 3
轮训练用时 2
分 27
秒,和三层 原模型 相差不大 。
增加全连接层 后网络 的收敛速度 与原网络 基本相同, 训练集上验证样本的准 确率提升,但测试集上的准下降说明网络可能由于参数过多而发生了拟 确率提升,但测试集上的准下降说明网络可能由于参数过多而发生了拟 确率提升,但测试集上的准下降说明网络可能由于参数过多而发生了拟 合。
1.2 含卷积层的神经网络
含卷积层的神经 网络结构如 图 1.4
所示。
含卷积层的 网络结构采用经典LeNet5
的网络结构,图像输入经过第一层 的网络结构,图像输入经过第一层 卷积结构,由 6
个 5*5
的卷积核得到 28*28*6
个输出。在经过规范化和激活后, 进入池化层,采用 进入池化层,采用 2*2
进行下采样,降低矩阵维度为 进行下采样,降低矩阵维度为 14*14
,一定程度上 ,一定程度上减小了过拟合。然后进入到第二个卷积层,由 减小了过拟合。然后进入到第二个卷积层,由 减小了过拟合。然后进入到第二个卷积层,由 16
个 5*5
的卷积核得到 101016
个输出。
经过规范化、激活和 2*2
池化后,处理为 池化后,处理为 5*5*16
维数据,再经过第三 维数据,再经过第三 层 120
个 5*5
卷积后生成 卷积后生成 120
维数据,由全连接层输出 维数据,由全连接层输出 10
维数据,用于输出手 维数据,用于输出手 写数字的类别。
▲ 图1.2.1 包含卷积层的神经网络结构
在该条件下,对网络进行训练和测试,训练过程中128
个样本划分为一个batch
,共训练3
轮。
▲ 图1.2.2 LeNet5网络训练过程准确率和损失
在完成训练后, 验证 准确率可达 准确率可达 98.49%
,用于训练和验证的样本准确率相 ,用于训练和验证的样本准确率相 ,用于训练和验证的样本准确率相 差不大 。在测试 集上对其进行测试,可得正确率为 上对其进行测试,可得正确率为 98.90%
。由实验数据可知,该 实验数据可知,该 网络已达到较好的 分类效果 ,完成 3
轮训练用时 3
分 3
秒。 错误识别的图片如 表下图所示。错误识别的样本特征相对不明显。
▲ 图1.2.3 卷积网络错误识别样本
改变其网络参数,比较训练收敛情况和测试精度。 改变其网络参数,比较训练收敛情况和测试精度。 减少其卷积层数 为两层, 即去掉最后一层卷积结构,训练过程如 图 1.6
所
▲ 图1.2.4 双层卷积网络训练过程精度和损失
在完成训练后, 验证 准确率可达 98.14%
,略小于 Lenet5
的验证准确率,但 的验证准确率,但 相差不大。 在测试集上进行,得到正确率为 在测试集上进行,得到正确率为 在测试集上进行,得到正确率为 98.42%
。相比于三层卷积的神 。相比于三层卷积的神 经网络 结构,该经网络 结构,该的训练和测试结果相差 不大, 完成 3
轮训练用时 2
分 48
秒。
1.3 改进的网络结构
由上述实验结果可知 卷 积网络能够显著提升训练和测试的准确率,但增加卷 积网络能够显著提升训练和测试的准确率,但增加积结构后网络的复杂性也会提升,训练时间增长。 积结构后网络的复杂性也会提升,训练时间增长。 采用双层卷积和全连接构 成的网络进行测试,结构如 图 1.7
所示。
▲ 图1.3.1 改进后的网络结构
改进后的网络结构前两层卷积采用与 LeNet5
前两 层卷积相同的结构,后层全连接网络分别采用 64
和 10
输出, 采用与之前实验相同的参数条件进行训练 和测试,得到训练过程的准确率损失如 图 1.8
所示 。
▲ 图1.3.2 改进网络的训练准确率和损失
在完成训练后,验证准确率可达 在完成训练后,验证准确率可达 98.42%
;测试集上的准确率为 ;测试集上的准确率为 98.73%
,训 练用时 2
分 38
秒。 错误识别的样本如 表 1.3
所
▲ 图1.3.3 改进后网络的错误识别样本
改进后的网络 相比于三层卷积的 网络训练速度提升,而准确率下降不多;相 网络训练速度提升,而准确率下降不多;相 网络训练速度提升,而准确率下降不多;相 比于全连接神经网络,训练时间相近而准确率提升。卷积层能够有效取图像特 比于全连接神经网络,训练时间相近而准确率提升。
§02 水果与动物
2.1 数据预处理与网络构建
2.1.1 数据预处理
首先对图像数据进行重命名 为“ 种类 _
编号 .png
”,得到各类样本数量分别为: ,得到各类样本数量分别为: cat-99
,cow-93
,dog-101
,horse-95
,pig-88
,apple-88
,banana-93
,durian-75
, grape-89
,orange-86,
;总计 ;总计 907
个样本。 图片数据库如 图 2.1
所
▲ 图2.1.1 原始图片库样本
对图片进行尺寸的调整,分别为 对图片进行尺寸的调整,分别为 32*32
和 64*64
大小 ,如 图 2.2
所 示。
▲ 图2.1.2 彩色图像尺寸大小调整
左:32×32彩色铁钉;右:64×64彩色图像
进一步,对其行数据库的增强将原彩色图像转化为灰度片如下图所示
▲ 图2.1.3 灰度图像转换
2.1.2 网络构建
构建以Lenet
网络为基础的结构,用于识别图像。网络以6
个5*5
的卷积核构成第一层卷积结构;经过激活函数Relu
后,进入池化层,池化层采用2*2
下采样,步长为2
;再经过16
个5*5
的第二层卷积结构并激活后进入第二个池化层,第二个池化层与第一层参数相同;经过三层全连接网络后输出,三层全连接网络神经元个数分别为120
、86
和10
个。网络结构如图 2.4
所示。
▲ 图2.1.4 LeNet水果动物识别网络结构
以 64*64
的灰度 图片对上述网络进行训练,学习速率 图片对上述网络进行训练,学习速率 为 0.001
,每个 batch
包 含 100
个图像,一共训练 100
轮, 训练过程中的准确率和损失如 图 2.5
所
▲ 图2.1.5 LeNet网络训练过程精度和损失
训练用时 100.905
秒; 完成训练后,网络准确率为 100.00%
,可以实现对图像的正确分类。
2.2 网络结构对识别精度的影响
2.2.1 卷积层
改变卷积核的大小对网络进行训练,得到网络训练过程的准确率和损失。
▲ 图2.2.1 不同卷积核网络训练过程
卷积核较小时,网络对图像的特征提取较弱,收敛速度较慢;随着卷积核大小的增大,收敛速度逐渐增快。卷积核较大时,计算速度下降;在卷积核大小为3
时,训练用时79.779
秒;在卷积核大小为9
时,训练用时136.945
秒。由于卷积核较大时,在较短的训练轮次内即达到收敛,因此可以减小训练次数来缩短时间。
2.2.2 全连接层
固定卷积核大小为5
,改变全连接层为单全连接层、双全连接层和四层全连接层。网络训练过程的准确率和损失如图 2.7
所示。
▲ 图2.2.2 不同全连接层结构训练过程
当全连接层数变化时,对训练过程的影响不大。在适当范围内,可以减小全连接层的网络规模,以减少参数,提高训练速度。
2.3 网络超参和数据库增强对识别精度的影响
2.3.1 网络超参
改变网络的 学习速度,得到不同率网络训练过程如 图 2.8
所
▲ 图2.3.1 不同学习速率的网络训练准确率
当学习速率较小时,网络收敛速度较慢;随着学习速率增大,收敛速度逐渐增快。但网络的学习速率不能设置的过快,否则网络可能不收敛。
2.3.2 数据库增强
分别采用原始图像, 64*64
彩色图像 ,32*32
彩色 图像和 32*32
灰度图像进 灰度图像进 行训练 ,训练过程的准确率和损失如 图 2.9
所
▲ 图2.3.2 图像压缩和灰度变换的训练过程
随着图片信息复杂度的增加,网络更易提取到特征,在较少的轮次即收敛;但由于计算量较大,图片信息较复杂时,计算时间增长。因此应当适当的降低图片维度,以实现在较短的训练时间和训练轮次内达到网络收敛。
对32*32
彩色图片进行亮度变换和增加噪声,如图 2.10
所示。
▲ 图2.3.3 亮度变换和增加噪声
采用同样的网络和参数训练,得到的训练过程如下所示。
▲ 图2.3.4 亮度变换和增加噪声后的训练过程
对比图 2.11(a)
和图 2.9(c)
可知,改变亮度后网络收敛速度增加。由于噪声的干扰,增加噪声后的训练收敛速度变慢(图 2.11(b)
),但网络的泛化能力提升,能够更好的处理含有噪声的数据。
综合以上过程,为提升网络的性能,可以先对图像进行压缩降维、亮度变换等处理。卷积层影响网络的训练性能,卷积核大小为5
时取得的效果较好。全连接层对网络的影响不大,为减少参数,可以采用单层全连接结构。
§03 多种网络对比
3.1 简单数据集合
简单样本数据集由四类数据组成,数据之间彼此分离,样本特性较好,如图 3.1
所示。
▲ 图3.1.1 简单样本数据集合
采用单隐层BP
神经网络进行试验,设置隐层神经元数量为10
,得到实验结果如图 3.2
所示。
▲ 图3.1.2 交叉损失熵变化
▲ 图3.1.3 BP 神经网络简单数据集合实验
交叉熵损失随迭代次数逐渐减少,特别是在初始迭代的几次极速下降。由混淆矩阵可知,训练集、验证集和测试集的正确率为100%
,全部正确区分。ROC
曲线为正方形的两条边。该BP
网络在简单数据集上效果较好。
改变BP
网络隐层神经元的个数,可得网络训练和测试效果如图 3.3
所示。
▲ 图3.1.4 不同隐层神经元个数BP简单数据集合训练效果
由于简单数据集特性较好,在神经元数量较少时也能实现对模型的构建,且正确率为100%
;神经元数量较多时,网络规模增大,训练时间和内存要求会相应增高。
3.1.1 RBF网络
采用单隐层RBF
神经网络进行试验,神经元数量为100
,得到实验过程的均方差如图 3.4
所示。实验选取80%
作为训练,20%
作为测试。
▲ 图3.1.5 RBF神经网络简单数据集合实验
训练完成后均方差为-4 5.87 10
。对训练样本和测试样本进行测试,以网络输出最接近的样本类型数据作为预测类型,发现对于训练集和测试集均实现100%
正确预测。
改变RBF
神经元的个数,可得网络训练和测试效果如图 3.5
所示。
▲ 图3.1.6 不同神经元个数RBF简单数据集合训练效果
RBF
神经元数量应大于等于样本类型数。对于简单数据集,神经元数量为4
个时,也能100%
正确对样本进行分类,因此对于特征明显的数据集可以适当降低神经元的数量,在保证准确率的同时减小网络规模;但对于神经元个数为2
时,不能正确分类,最多可以区分3
类神经元。
3.1.2 SVM
SVM
用于样本数据的二分类,由于简单样本数据集包含四类数据,故不能直接使用SVM
方法。实验中采用一对多的方法,每次单独分开一类样本。数据集训练和测试如图 3.6
所示。
▲ 图3.1.7 SVM 简单数据集合训练和测试效果
由于逐类划分,在划分第一类和其他三类时,训练样本出现较多错误,其他训练集和测试集样本均实现了正确划分。简单数据集样本特征明显,但非线性,第一个数据集划分时由于其非线性特点,导致错分的样本数较多;而除去第一个数据集后,依次划分过程中,划分样本数据集与剩余数据集均线性可分,分类效果较好。
3.1.3 SOM网络
SOM
网络为自组织的竞争性网络,属于无监督学习。在实验过程中,某个神经元若包含的某一类型的样本最多,则认为该神经元表示样本类型的某一类。划分80%
为训练集,20%
为测试集,采用5*5
网络结构,网络的性能如图 3.7
所示。
▲ 图3.1.8 SOM网络简单数据集测试效果
经检验,各个神经元的响应均未发生混淆,将各个样本分类对应到了不同的神经元。将测试样本输入,检验网络的泛化能力,测试效果如图 3.8
所示。
▲ 图3.1.9 不同神经元个数SOM简单数据集合训练测试效果
SOM
神经元数 量应大于等样本类型,对于简单数据集,神经元量为 4
个时, 训练和测试的准确率也可达 100%
。当神经元数量为 100
时,训练间 增长,效果不变网络更复杂。
3.1.4 DHNN网络
由于DHNN
网络只能处理离散型数据,数据特征输入为1
,-1,故对数据集进行预处理。求数据集各个特征的均值,令数据集减均值使各个特征的均值为0
,对各个特征符号化为1
,-1作为训值,但不进行符号化。取80%
数据为训练集,20%
数据为测试集。在对其进行数据处理后,每一个训练样本以形式存在,不同数据类别之间无混杂。 11T
对只进行去均值未进行符号化的训练样本进行100
次迭代输出后,与符号化后输入相同,证明网络能够对训练样本进行正确输出。同样将只去均值未进行符号化测试样本输入后对比符号化后的测试样本,发现二者相同。由于简单样本数据集特征明显,各类样本之间无混杂,可以用输出作为分类方式,从而正确区分样本类型。
3.2 鸢尾花数据集
鸢尾花数据集由样本向量由四维构成(花萼长度、花萼宽度、花瓣长度、花瓣宽度),样本数据在不同维度上的投影如图 3.10
所示。其中蓝色特征的样本与其他两类样本相比易于区分,黄色和红色样本交叠部分较多。
▲ 图3.2.1 鸢尾花数据集
3.2.1 BP网络
采用与3.1.1
相同的结构,实验结果如图 3.11
所示。
▲ 图3.2.2 BP神经网络实验结果
网络训练完成后,训练集存在两个错分的样本,验证集和测试集的正确率为
100%
。
ROC
曲线训练集存在微小的缺角,测试和验证为正方形的两条边。鸢尾花数据集第
2
和
3
类样本存在混杂,较难区分,整体上该网络的训练效果较好。
改变BP
网络隐层神经元的个数,可得网络训练和测试效果如图 3.12
所示。
在神经元数量为3
时,训练集和验证集上的准确率不变,但测试集上的正确率降低,网络不能较好的对样本进行分类。而当神经元数量为20
时,训练集上的准确率提升,但训练集和测试集上的正确率下降,网络出现了过拟合,性能下降。由于鸢尾花数据集的复杂度较简单数据集高,在神经元数量的选择上应当注意,当神经元数量过少时,网络不能很好的反映数据集的非线性复杂关系;当神经元数量过多时,训练复杂,且易发生过拟合。
3.2.2 RBF网络
采用与3.1.2相同的结构和方式,对网络进行训练,训练过程的均方差如图 3.13所示。
▲ 图3.2.3 不同神经元个数RBF训练结果
以上是关于2021年人工神经网络第四次作业:基于MATLAB的求解的主要内容,如果未能解决你的问题,请参考以下文章