一、实验要求
在计算机上验证和测试多层神经网络的原理和算法实现,测试多层神经网络的训练效果,同时查阅相关资料。
- 实验目的
1、掌握多层神经网络的基本原理;
2、掌握多层神经网络的算法过程;
3、掌握反向传播的算法过程;
三、实验内容
实验步骤
- 请阅读和测试多层神经网络类代码,观察多层神经网络训练过程和结果,请对隐藏层Dense类和多层神经网络MLPClassifier类的代码进行注释,然后代码截图。
- 请对多层神经网络改进,实现对如下数据的分类。
- 增加隐藏层神经元个数
神经元个数 | 层数为2层 |
2 | |
10 | |
100 | |
1000 |
- 增加隐藏层的层数
手写增加函数层数
调用sklearn自带函数
隐藏层数 | 神经元个数5 |
10 | |
100 | |
500 |
- 请实现ReLU激活函数类,与Sigmoid激活函数类,针对同样二分类问题训练的区别。
在相同两层5个神经元下对比
Sigmoid | relu | |
分类效果 | ||
训练速度 |
结论:
Sigmoid 函数执行指数运算,计算机运行得较慢。
Relu下降速度快但是会出现一些神经元消失的情况,因为导数恒为0
四、实验总结
1权值和偏置已经是被训练好了。对于一个新的输入,进行这样的过程,就能够得到一个预测。那么你就能够通过这个预测来解决一些问题了。所以有机器学习思想的话,这些概念是很容易理解的。而我们的任务就是找到权值和偏置这些参数的值,使得输出的东西让我们满意,达到我们的要求。Sigmoid平滑能够使得权值和偏置非常微小的变动能够使得最终的结果也产生非常微小的变动。