本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
对于BP神经网络来说,隐节点个数太少,无法拟合到复杂的关系,隐节点过多,又会导致过拟合
本文解讲BP神经网络隐层节点个数设置的一些常用方法(这里假设只有一个隐层)
一般来说,要设几个隐节点,我们并没有什么明确的方法,但有指导方法,
在设置隐节点时可以参考以下四个指导性方法
01. 原理指导
从隐节点的理论意义来说,隐节点越多,拟合能力越强,
但同时出现模型不稳定的概率也增大
在设置隐节点时可以参考以下原理指导
1.输入输出单元数越多,隐节点越多
2.要求逼近的规则越跌宕起伏,隐节点越多
02. 经验公式
隐节点个数可参考以下两条公式
n是隐节点个数,m是输入个数
或
n1是隐节点个数,n是输入个数,m是输出个数,a在1-10之间
03. 建模师经验
可参考建模师以往的一些成功案例,下面是本人的建模经验:
在2个输入1个输出时,用3个隐节点
在20个输出1个输出时,用7个隐节点
往往这是最直接的方法,说白了,就是根据经验和直觉拍脑袋设置一个隐节点参数
当然,这种直觉并非不无道理,它是基于对BP神经网络的深刻理解下的产物
04. 试凑法优化
在设置了BP神经网络隐节点个数后,还可以用试凑法优化隐节点个数
试凑法指的是,在原设定的节点个数上,
逐步增加(减少),试探多少个节点时拟合效果最佳。
由于网络训练好坏跟随机初始化有关,
每次试探隐节点参数的效果时,
一般会多训练几次,取平均误差作为的该参数的误差评估
本节讲述一个确定BP神经网络隐节点个数的案例
本案例仅供参考,给大家设置BP神经网络隐节点时提供思路和借鉴
案例背景
20个输入,1个输出,
隐节点个数确定流程
隐节点的确定分为两个阶段:初步确定和优化
建模初步阶段寻找有效可用的隐节点个数
1. 先用建模经验,大概估计需要6个隐节点,进行初步建模
2. 建模后发现训练数据和测试数据的预测效果都不错
则可认为6个隐节点已经是较为合理的设置
如果效果不佳,则需要尝试不同的参数
直到找到一个效果可以接受的设置
建模收尾阶段优化隐节点个数
在建模开始进行收尾时,
利用试凑法对隐节点个数进一步优化,
例如当前使用的是6个隐节点,
不妨从3到12都试一遍,
找出效果最好的隐节点个数,
最终发现隐节点设为7个时效果最佳
试凑法具体见《隐节点试卷法例子与代码》
结果
以7作为最终隐节点的个数
End