7-3-1 遗传算法优化BP网络的权重、阈值
在实验运行过程中,首先生成一个BP神经网络,在此基础上利用遗传算法对BP神经网络的权重、阈值进行优化。具体步骤如下:
(1)初始化BP神经网络;
(2)对BP神经网络的权重和阈值进行编码,编码长度为:S=m×l l×n l n,其中l,m,n分别为隐含层、输入层和输出层节点个数。
(3)设定遗传参数:遗传算法参数的设定涉及种群规模、复制、交叉和变异方式的选择和终止条件等。
(4)设定适应度函数:本研究选取网络期望输出值与实际输出值的误差平方和的倒数作为适应度函数。
(5)完成以上设定后,即进行遗传算法操作,将最后保留的最优子代进行解码,分解给BP神经网络的各层权重和阈值,此后即进入BP网络操作。
7-3-2 训练和学习
在BP模型训练前,首先设定训练函数、学习函数、隐含层和输出层的激活函数,以及学习率、可接受的误差平方和等参数。参数设定后方可进行训练,在此将1995~2004年的数据作为训练样本,对神经网络进行学习和训练,达到训练次数或误差要求后停止训练,然后用2005年的数据进行模型的检验。
网络的输入为1995~2004年归一化后的样本数据,期望输出则为1996~2005年的数据。将网络的实际输出与期望输出进行比较,如果满足误差要求则可进行检验。否则调整网络参数、重新进行训练,直至达到误差精度。
由于隐含层节点个数对网络的性能有很大的影响,故可根据上文隐含节点个数的经验公式,将隐含节点个数从9~40逐次改变进行网络训练。比较网络训练误差收敛性,以及检测样本的期望输出与网络实际输出的误差大小,发现在隐含节点为22个时,网络性能和检验效果是最好的,故将隐含节点个数1设为22个。由于训练次数较多,限于篇幅我们仅选取三个有代表性的节点性能进行比较(见附录)。
7-3-3 预警模型的验证
经过训练,网络达到较好的性能。现用2005年的样本数据对模型进行检验,模型检验的期望输出为2006年样本数据。
在完成训练、进行检验后,应用postmnmx函数对数据进行反归一化,并比较检测样本的期望输出和实际输出。
检验结果分析:总体来说,在用训练好的网络进行检验时,除个别指标有一些偏离外,绝大多数的指标拟合得很好,可以用于监测预警。现对个别偏离的指标进行分析:
G11资产利润比:2006年的实际值为1.06000,而预测值为0.52080,低于实际值,但基本符合历史数据的走势。这是由于2006年四大国有商业银行基本完成了注资、公开上市,经营业绩大幅提升,使得该指标实际值较历史数据的趋势有较大偏离。
G18股票市盈率和G19证券化率:这两个指标的实际值和网络输出值均有一定的误差,这是因为两个指标均与证券市场关系密切,而我国的证券市场与发达国家的成熟市场相比还很不规范,受政策或短期突发事件的影响很大,模型以年度数据为样本进行中长期预测,导致指标偏离较大。
7-3-4 模型的预警
由于模型已具备较好的检验效果,可以用于金融安全监测预警。我们用2006年的样本数据来预测2007年的数据。