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