2 改进BPNN
由于问题属于“函数逼近”问题,因此可采用简单的双层BP网络求解[11]。记网络的输入神经元个数为m=6,隐层神经元个数为n,输出层神经元个数为q=1,则网络结构可如图2所示。
图 2 EMC预测的BP模型
2. 1 确定隐层数目
如何确定隐层数目n,目前没有一个详细定论。实际操作中,均采用经验公式来计算。然而,经验公式得到的结果与理想隐层数目存在不小的偏差[12]。因此,采用剪枝法(Pruning)来计算网络的最佳隐层节点。算法流程如图3所示。
图3 剪枝法流程图
2. 2 权值训练
为了兼顾网络权值收敛的快速性与精确性,提出一种CG-LM算法如下:
共轭梯度(CG)方法能够保证网络收敛到全局最优,然而收敛速度不够快。Levenberg-Marquardt(LM)方法虽然收敛速度快,但是容易陷入局部最优[13]。将两者结合起来,首先采用LM算法更新权值,在10代之后,转而采用CG算法更新,总的迭代次数限制在20代。实验发现,该算法效果很好。