本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com
对于神经网络来说,隐节点个数太少,无法拟合到复杂的关系,隐节点过多,又会导致过拟合。
本文解讲隐层节点个数设置的一些常用方法(这里假设只有一个隐层)。
一般来说,要设几个隐节点,我们并没有什么明确的方法,但有指导方法。
01. 原理指导
一般来说,
1.输入输出单元数越多,隐节点越多。
2.要求逼近的规则越跌宕起伏,隐节点越多。
02. 经验公式
隐节点个数可参考公式
(n是隐节点个数,m是输入个数)
或
(n1是隐节点个数,n是输入个数,m是输出个数,a在1~10之间)
03. 建模师经验
可参考建模师以往的一些成功案例,下面是本人的建模经验:
在2个输入1个输出时,用3个隐节点。
在20个输出1个输出时,用7个隐节点。
04. 试凑法优化
在设置了隐节点个数后,还可以用试凑法优化:
在原设定的节点个数上,逐步增加(减少),试探多少个节点时拟合效果最佳。
备注:由于网络训练好坏跟随机初始化有关,一般会多训练几次。
案例: 20个输入,1个输出,
隐节点的确定以下:
1. 先设定初始隐节点为4(建模经验),然后训练10次,去除最大和次大的误差,取剩下8个求平均误差,将平均误差记录下来。
2. 再设隐节点为5,训练10次….一直到取隐节点12,训练10次,求平均误差。
3. 最后可以发现平均误差会随隐节点个数先减后增(像抛物线),在隐节点=7时,平均误差最小,故最后确定隐节点为7
End