对比不同经典神经网络算法在同一数据集合上的分类效果。这些算法包括:BP网络、RBF网络、SVM网络以及SOM网络。
从下面给定的数据集合中任选其中两个数据集合,分别对比上述四种方法在分类效果方面的结果,讨论分类问题在不同网络下如何实现。
作业所使用的数据集合来自于MATLAB中的分类数据集和,对比几种不同的神经网络在分类方面的效果。
可以从后面所建议的MATLAB(2016A)自带的六个数据集合中任何选择两个数据集合进行对比实验,也可以自选其他的数据集合。六个数据集分别是:
* simpleclass_dataset
* iris_dataset
* cancer_dataset
* thynoid_dataset
* glass_dataset
* wine_dataset
如果使用Phython神经网络平台,可以将MATLAB中对应的的数据集合导出后进行实验。
[x,t]=simpleclass_dataset;
▲ 图8.1.2 简单数据集合分布
[x,t]= iris_dataset;
▲ 图8.1.3 数据集合在不同维度的投影
[x,t]=caner_dataset;
▲ 图8.1.4 数据集合在不同维度上的投影
[x,t]=glass_dataset;
▲ 图8.1.5 数据集合在不同维度上的投影
MATLAB 调入数据集合命令:
[x,t]=thyroid_dataset;
▲ 图8.1.6 数据集合在不同维度上的投影
[x,t]=wine_dataset;
▲ 图8.1.7 数据集合在不同维度上的投影
在 MATLAB(2016a版本之后) 对应的建立网络算法命令分别为:
对应MATLAB中的神经网络工具包:
▲ 图1.1.1 MATLAB 中对应的神经网络工具包
MATLAB中相应的建立网络进行实验的代码示例:
[x,t]=simpleclass_dataset;'
plot(x(1,:),x(2,:),'+')
net=patternnet(10);
net=train(net,x,t);
view(net)
y=net(x)
plotconfusion(t,y)
x = simplecluster_dataset;
plot(x(1,:),x(2,:),'+')
net = selforgmap([8 8]);
net = train(net,x);
view(net)
y = net(x);
classes = vec2ind(y);
2021年人工神经网络第四次作业要求:第七题
针对后面给出的六种数据集合,具体的作业要求参见数据集合前面的介绍。
搭建深度神经网络完成作业,可以选择自己熟悉的实验环境完成,包括但不限于:
请大家根据网络学堂公布的AI Studio 邀请码进入课堂,可以使用到百度提供的算力卡以及获得作业中的AI Studio工程数据集合。
▲ 图1.2.1 AI Studio 学习界面
大家进入AI Studio之后可以根据其中相关文档自行联系搭建基本深度学习网络,来完成作业要求。
对于没有PYTHON基础的同学可以使用MATLAB 2019b完成作业。
在学校内可以免费安装2019b之后版本的MATLAB软件,详细的安装说明可以参见 MTALAB深度学习2019 中的相关介绍。
▲ 图1.2.3 MATLAB 中深度学习网络设计界面
▲ 图1.2.4 在MATLAB中搭建深度学习网络
具有python基础的同学可以参考 《Python核心编程(第二版)》,TensorFlow、Pytorch和Keras三个深度学习框架 。
对应的文档连接分别为:
▲ 图1.2.5 TENSORFLOW开发深度学习网络
▲ 图1.2.6 pyTorch开发深度学习网络
▲ 图1.2.7 Keras 开发深度学习网络
作业中所需要的数据库,可以在课程文件中下载第五次作业数据文件。也可以在AI Studio中找到对应的作业文件。
实验数据总共有六组实验数据:
前五种数据集合可以在网络学堂的“课程文件”中下载,其中MNIST,CIFAR10,转动数字,危险品数据是MATLAB数据格式。如果使用其它深度学习平台,可以从MATLAB读取并转存成所需要的格式。
下面是网络学堂中课程文件下载的第四次作业数据集合解压缩之后的文件目录,其中包括有五个数据集合。
├─CIFAR-10
├─FORBIDDEN
├─FruitAnimal
├─MNIST
└─ROTATEDIGIT
六种经典数据集合都在MATLAB中可以找到。
请设计一个CNN,完成对于给定水果(五类)和动物(五类)总共十类物体的识别。
数据库还是第一次作业中,请大家设计BP网络识别所使用的动物,水果数据集合。只是在第一次作业中,要求仅仅是将Apriltag,数字,动物,水果这四种物品分出所属的大类。但本次作业中只使用其中的动物、水果两大类,供十小类的物体,要求识别它们的小类别。
▲ 图2.1.1 水果与动物数据库的样本
数据库图片可以由网络学堂数据文件下载。也可以在AI Studio的公开数据集合中下载: 五种水果与五种动物数据集合 : https://aistudio.baidu.com/aistudio/datasetdetail/120001
▲ 图2.1.2 AI Studio 数据集合
下载文件之后,加压缩会得到两个目录:水果、动物。它们各自包括五个子目录,其中分别存放着大约100张左右的水果、动物图片,用于训练和测试。
├─FruitAnimal
│ ├─动物
│ │ └─动物
│ │ ├─牛
│ │ ├─狗
│ │ ├─猪
│ │ ├─猫
│ │ └─马
│ └─水果
│ └─水果
│ ├─榴莲
│ ├─橙子
│ ├─苹果
│ ├─葡萄
│ └─香蕉
在训练网络之前,大家可以对数据库进行预处理和增强;
为了提高训练之后的网络泛化能力,可以选择适当的图片处理方法,对于训练数据集合进行增强:
1. 构建深度学习网络,对于水果动物数据集合完成小类别识别任务;
2. 讨论在不同的网络结构,参数数量对于网络识别精度的影响;
3. 讨论与对比网络训练超参、数据库增强对于网络识别精度的影响;
4. 寻找一个兼顾网络模型大小与识别性能的网络,即模型参数少,识别性能下降不多的网络。
对于第一题的参考答案可以参见如下两篇博文:
MNIST数据集合是手写体数字识别图片,图片是尺寸为28×28的灰度图片。
▲ 图3.1.1 mnist手写出谁出图片
MNIST数据库官方下载: THE MNIST DATABASE of handwritten digits 。
在网络学堂中给出了MATLAB格式的MNIST数据库。使用MATLAB命令load(‘mnist.mat’)可以将附件数据库:
MNIST下的数据文件调入MATLAB。其中包含有四个变量:
(1) test_images: 10000×784 int32
(2) test_labels: 1×10000 int32
(3) train_images: 60000×784 int32
(4) train_labels: 1×60000 int32
该数据集合在各大深度学习框架内基本上都有相应的连接可以直接下载,大家也可以直接使用。
① 构造两类深度学习网络对MNIST数据集合完成数字分类任务。一类是由全连接层构成的深度学习网络;另一类是带有卷积层的神经网络。
② 讨论两类神经网络在不同的网络参数下的训练收敛情况、测试精度的变化情况。
③ 探索寻找到一个能够兼顾网络模型大小与识别性能相对优化的网络模型,即模型参数少,识别性能下架不多。
如果在PaddlePaddle中完成作业,可以看一下实验指导:
对CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组大小为32x32的RGB图像进行分类,这些图像涵盖了10个类别:飞机, 汽车, 鸟, 猫, 鹿,狗, 青蛙, 马, 船以及卡车。
▲ 图4.1.1 CIFAR-10数据库
CIFAR-10数据集合可以从如下网站下载: http://www.cs.toronto.edu/~kriz/cifar.html
在CIFAR-10数据目录中包括有以下六个数据文件:
(1) data_batch_1.mat
(2) data_batch_2.mat
(3) data_batch_3.mat
(4) data_batch_4.mat
(5) data_batch_5.mat
(6) test_batch.mat
(7) batches.meta.mat:label_names,各类别的名称
以上数据集合在调入MATLAB之后,都会包括有:
在MATLAB中可以使用如下命令显示图片的内容:
imshow(permute(reshape(data(1,:),[32,32,3]),[2,1,3]))
数据命令中这里的参数’1’是对应第一个图片,可以将其修改成其它1~10000之间的数字来显示其它的图片。
想了解更多信息请参考CIFAR-10 page,以及Alex Krizhevsky写的技术报告
① 建立一个用于识别图像的相对较小的卷积神经网络,完成CIFAR-10数据集合的识别问题。
选择CIFAR-10是因为它的复杂程度足以用来检验TensorFlow中的大部分功能,并可将其扩展为更大的模型。与此同时由于模型较小所以训练速度很快,比较适合用来测试新的想法,检验新的技术。
② 大家可以参见网络上的“CIFAR-10 教程”来讨论卷积神经网络中如下各部分参数对于卷积神经网络训练的影响“
③ 讨论数据增强对于网络性能的改善。
如果在PaddlePaddle中完成作业,可以参考:
ROTATEDIGIT数据集合是采集到机械电能表显示的数字。这类数字中包含有数字滚轮在不同角度下数字的图片。这些数字不同角度除了对应了数字本身,还代表了整数之间的小数分量。
▲ 图5.1.1 机械电表上的旋转数字
在ROTATEDIGIT目录下包括有如下六个数据文件:
▲ 图5.1.2 六个数据文件
将数据库使用MATLAB命令LOAD调入之后,会产生以下数据变量:
1. digitsize: 表示数字图像的尺寸
2. digit:1000×2128×3,数字图片。前面是数字图片的个数,中间是宽×高,后面是RGB三维。
3. labels:数字标签:0~9
4. fraction:表示数字整数之后的小数。即反映了数字旋转的程度。fraction部分,有的数据集合存在,有的不存在。
① 选择合适的神经网络,完成对数据集合的字符识别。
② 讨论使用某一类数字集合训练之后的网络,在另外数字集合上的泛化性能。
③ 讨论网络正则化的方法对于网络泛化能力的影响:
1. 对于网络权系数范数约束;
2. 对输入样本增加噪声;
3. 对输入样板进行变形增强;
4. 使用Drop-out技术训练网络
④ 对于有Fraction标签的数据集合,构造一个具有输出带有小数点数字输出的回归网络。并讨论它与前面分类网络在网络结构,训练方法等方面的特点。
实验指导可以参见: 2021年人工神经网络第四次作业-第四题:旋转的数字 。

▲ 图5.2.1 第四次作业时间指导
FORBIDDEN数据集合是拍摄的一些物品的X-射线图片。同一个物品拍摄有不同的角度:
▲ 图6.1.1 危险品数据库
在目录FORBIDDEN中存在三个数据文件:
1. XRAYDATA-96-80.MAT: 尺寸为96×80灰度图像
2. XRAYDATA-120-100.MAT:尺寸为120×100灰度图像
3. XRAYDATA-240-200.MAT:尺寸为240×200灰度图像
三个文件的内容都是一样的,只是图片的尺寸有区别。
数据文件使用MATLAB命令load调入内存后,会产生三个变量:
同一个物品在拍摄的过程中,大都存在三个不同的方位,每个方位具有18个左右不同角度。
在图片集合中,同一物品在同一方位下,不同的角度拍摄的图片在数据集合中是顺序排列的。可以根据这个信息获得图频拍设的角度。
在数据集合中,标号小于400的样本为单个物品的数据,标号大于等于400的样本为多个物品重叠后的样品。大家实验中,可以只使用标号小于400的样品。
① 构造合适的神经网络,对于数据库中物品X射线图片进行识别分类。可以根据物品不同的大小,在训练网络之前对于图片进行预处理。
② 讨论实验结果中,造成识别错误的因素包括哪些。
③ 探讨如何利用图频的序列信息完成物品的识别的方法。根据自己的时间和经验,选做是否可以通过LSTM网络来利用图频的不同角度序列信息提高识别的精度。
④ 可以根据自己的时间和经验,选做一些目标定位的神经网络:比如YOLO3,SSD等来进行实验。
作业实验指导说明可以参见:2021年人工神经网络第四次作业-第五题:危险品识别 。
▲ 图6.2.1 第五次作业中用于识别的数据库
在AI Studio中存在很多的公开数据集合。可以自行选择其中的数据集合用于识别、检测和参数回归。
▲ 图7.1.1 AI Studio中的公开数据集合
下面给出几种典型的数据集合:
下载地址:https://aistudio.baidu.com/aistudio/datasetdetail/49552
该数据集合给出了5018个从驾驶员视角的路面交通标志。标识的种类有图片的名称给出。
▲ 图7.1.2 驾驶员视角对应的道路上的交通标示
目标检测数据集合集 : https://aistudio.baidu.com/aistudio/datasetdetail/103743
该集合中给出了五类目标检测的集合,在数据集合中分别包含了检测的图片以及对应的XML格式的标示结果。
├─barricade
│ ├─Annotations
│ └─JPEGImages
├─facemask
│ ├─Annotations
│ └─JPEGImages
├─fire
│ ├─Annotations
│ └─JPEGImages
├─MidAutumn
│ ├─Annotations
│ └─JPEGImages
└─roadsign_voc
├─Annotations
└─JPEGImages
▲ 图7.1.3 人脸检测
▲ 图7.1.4 着火现场火源检测
5种水果数据集 : https://aistudio.baidu.com/aistudio/datasetdetail/12236
解压缩之后的水果所在的目录:
├─cantaloupe
├─carrot
├─cherry
├─cucumber
└─watermelon
▲ 图7.1.5 蔬菜数据集合
无人车车道检测数据集合 : https://aistudio.baidu.com/aistudio/datasetdetail/3625
▲ 图7.1.6 车道线检测数据集合
红绿灯及交通标志 : https://aistudio.baidu.com/aistudio/datasetdetail/117209
该数据集合中包含有红绿灯以及交通标志的检测图片和标注。
▲ 图7.1.7 交通灯目标检测
参照前面五个数据集合的要求,设计深度神经网络完成数据集合中分类和定位要求。
■ 相关文献链接:
● 相关图表链接: