本文采用此博文中的C程序改写。

模型说明:
输入变量:3
输出变量:1
隐含层:1
拟合函数:y=2*x1^2+2*x2+x2*x3
表格说明:
测试代码由C语言编写。
以隐含层2个神经元为例,程序每运行一次,进行20次模型建立和测试的结果,并写入txt文件中。将txt文件数据导入到excel表格中,对迭代次数和模型误差求均值。手动将程序运行5次,将每次得到的均值再求均值,并画图,以尽可能减少偶然性。
由于BP容易陷入极小值点,过设置了最大迭代次数为10000。
注:只能通过图片的形式将原始数据贴过来。

根据表格最后一行数据,可以画出迭代次数、预测误差与隐层神经元之间的关系:

从表格数据可以看出:
1.迭代次数越多,预测精度越好。
2.表格中存在迭代次数为10000的数据,是因为陷入了局部极小值点(通过CMD窗口看出的)。
从上图可以得出以下结论:
1.随着神经元的增加,迭代步数先增加后减少。
2.随着神经元的增加,预测误差有下降趋势。
那么是否神经元越多越好?
显然不是的,笔者又做了神经元为15个和20个的实验,结果如下:
~~ 15 20
1 53 8.79 142 3.26
2 10000 45.72 23 19.04
3 73 3.07 71 -0.11
4 3787 3.45 11 28.92
5 79 6.40 10000 3.34
6 1682 3.33 10000 45.72
7 2 25.11 507 15.86
8 1930 3.34 227 3.67
9 211 3.71 10000 3.00
10 261 4.51 1542 3.75
11 405 -3.50 1719 18.60
12 668 3.84 124 3.53
13 106 2.07 270 3.95
14 10000 45.72 57 3.43
15 122 3.42 540 4.37
16 498 3.64 5025 3.39
17 58 4.79 4090 0.81
18 44 17.55 3737 3.35
19 86 4.67 10000 45.72
20 752 3.90 10000 45.72
均值 1540.9 9.68 3404 12.96

从表中可以看出,神经元多了之后,迭代次数不减反增且训练误差没有减小。

 

单隐层BP神经元个数对迭代步数和预测误差的影响相关推荐

  1. Python实现BP神经网络ANN单隐层回归模型项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 20世纪80年代中期,David Runelhart.Geoff ...

  2. Python实现BP神经网络ANN单隐层分类模型项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 BP(back propagation)神经网络是1986年由R ...

  3. 神经网络超参数之隐藏层个数+每个隐层的神经元数

    神经网络超参数之隐藏层个数+每个隐层的神经元数 隐藏层个数 神经网络的灵活性也恰好是它的一个主要的短板:有太多的超参数需要调整.不仅仅是可以使用的网络拓扑结构(神经元是如何彼此互相连接的),即使是简单 ...

  4. 假设你有一个多层感知机网络(MLP),输入层有10个节点、一个单隐层共50个神经元,最后是一个3个神经元的输出层。请问网络的结构是什么样子的使用数学形式进行描述?

    假设你有一个多层感知机网络(MLP),输入层有10个节点.一个单隐层共50个神经元,最后是一个3个神经元的输出层.请问网络的结构是什么样子的使用数学形式进行描述? 输入矩阵X的形状是什么? 隐藏层的权 ...

  5. 神经网络结构设计指导原则——输入层:神经元个数=feature维度 输出层:神经元个数=分类类别数,默认只用一个隐层 如果用多个隐层,则每个隐层的神经元数目都一样...

    神经网络结构设计指导原则 原文   http://blog.csdn.net/ybdesire/article/details/52821185 下面这个神经网络结构设计指导原则是Andrew NG在 ...

  6. 神经网络与深度学习三:编写单隐层神经网络

    三:编写单隐层神经网络 1 神经网络概述 这篇文章你会学到如何实现一个神经网络,在我们深入学习技术细节之前,现在先大概快速的了解一下如何实现神经网络,如果你对某些内容不甚理解(后面的文章中会深入其中的 ...

  7. 理解单隐层ReLU神经网络的全局损失

    摘要   对于单一隐层ReLU神经网络,我们展示在每个可微区间内都是全局极小值.这些局部极小是否唯一可微,取决于数据,隐藏神经元的激活模式,网络大小.我们给出一个是否局部极小值存在它们的定义的区域内的 ...

  8. 1.3.1 单隐层网络的数学实现

    神经网络概览 如图所示,整个神经网络的概览大致如下,下面我们会讨论这个网络时如何一步步实现的. 神经网络表示 我们来解释一下这个图中的中间隐藏层是什么含义: 在一个神经网络中,当你使用监督学习来训练他 ...

  9. 手写单隐层神经网络_鸢尾花分类(matlab实现)

    文章目录 思路 留言 效果 代码 mian split training testing 思路 sigmoid函数做激活函数 二分类交叉熵做损失函数 mian函数:数据预处理 split函数:数据集分 ...

最新文章

  1. [日常] Go语言圣经-Deferred函数
  2. c#获取电脑硬件信息参数说明(主板篇 Win32_BaseBoard )
  3. vue实现一个星级打分效果_五分钟用vue实现一个五星打分效果
  4. spark-submit
  5. istio-0.8 服务超时配置
  6. 一站式金融云托管服务 都匀融通村镇银行系统成功上线运行
  7. 初识JavaScript,感觉整个人都不好了。。。
  8. C语言和设计模式(访问者模式)
  9. 电视如果使用独立显卡会怎么样?
  10. 【Java从0到架构师】交错的日志系统、SpringBoot 集成日志框架
  11. 重构(Refactoring)技巧读书笔记 之三
  12. 本地差分隐私 随机响应_大数据时代下的隐私保护(二)
  13. TDL、CDL信道模型简述
  14. 多元线性回归模型预测房价
  15. 基于android手机实时监控ipcam视频之二:mediastream2
  16. LINUX:拷贝文件src/指定目录下,文件夹图标上有个叉.更改文件权限可解决该问题。
  17. 四万亿,让多少人彻夜不眠!
  18. 老男孩python第六期
  19. 浅析新媒体运营工作内容
  20. MySQL备份恢复之XtraBackup

热门文章

  1. Python开发【第二篇】:基础数据类型
  2. 山寨手机制造过程大揭秘
  3. c语言noj除法,快速排序~C语言~NOJ1064
  4. 无线体温监测系统的设计
  5. Mysql原理知识全解
  6. XCP协议中关于同步数据传输的理解和应用
  7. overleaf入门教程
  8. python str和repr的区别_python中str和repr的区别是什么
  9. 《Android系统开发》笔记
  10. 一个高级java工程师需要具备什么能力和技术