《1 引言》

1 引言

在预测实践中, 对于同一预测问题可以采用多种预测方法, 不同的预测方法往往能提供不同的有用信息。如果简单地将预测误差平方和较大的一些方法舍弃, 会丢失一些有用的信息。科学的作法是把不同的预测方法进行适当的组合, 形成组合预测方法。组合预测可以综合利用各单项预测方法提供的信息, 集成不同信息来源的预测结果, 从而有效地提高预测精度。近年来, 组合预测研究一直是国内外预测学界探讨的热点问题。根据集结各单项预测模型的方式, 组合预测可分为线性组合预测和非线性组合预测。线性组合预测相对比较简单, 研究成果较多, 最为人们常用[1,2,3,4]。笔者在前期工作的基础上, 提出基于BP-AGA的非线性组合预测方法, 针对BP (back propagation algorithm) 神经网络在学习后期收敛速度慢、存在局部最小问题, 引入加速遗传算法 (AGA, accelerating genetic algorithm) 来训练网络参数, 进而建立可用于组合预测的基于遗传算法的BP神经网络模型, 并进行实例研究。结果表明, 该方法大大优于线性组合预测方法。

《2 基于BP-AGA的非线性组合预测方法》

2 基于BP-AGA的非线性组合预测方法

假设有n种方法可用于同一预测问题, 实际统计数据有N期, Yk为第k期统计观测值, Yik为第i种方法第k期的拟合预测值, Fk为基于BP-AGA的非线性组合预测方法的拟合预测值, ek=Yk-Fk为组合预测方法的预测误差, (i=1, 2, …, n;k=1, 2, …, N) , SSE=k=1Νek2为组合预测方法的预测误差平方和。

人工神经网络 (ANN, artificial neural network) 是基于模仿人类大脑的结构和功能而构成的一种计算机信息处理系统, 它具有记忆、联想、自适应、自组织、容错性、鲁棒性等一系列优点。已经证明[5], 对于任意L2上从RnRm的映射G, 都存在一个3层BP神经网络, 可以任意精度逼近G, 对nm的大小没有限制。这使得预测的组合问题可以化成3层BP神经网络来解决。

BP算法是一种负梯度优化算法, 虽然简单、直观、易于编制程序在计算机上实现, 但学习速度慢、存在局部最小问题, 影响网络的外推能力。在BP算法训练网络出现收敛速度缓慢时启用加速遗传算法 (AGA) 来优化网络参数, 把AGA的优化结果作为BP算法的初始值再用BP算法训练网络, 如此交替运行BP算法和AGA以加快网络的收敛速度, 同时改善局部最小问题, 基于BP-AGA的非线性组合预测方法分为非线性组合预测BP算法和优化组合预测BP算法的网络参数两部分。

《2.1非线性组合预测BP算法》

2.1非线性组合预测BP算法

以{Y1k, Y2k, …, Ynk}作为输入样本, {Yk}作为输出样本, 输入神经元和输出神经元节点 (即神经元) 数目分别为n和1。隐层神经元节点数目m一般根据问题的复杂程度, 训练样本容量和实际要求由建模者的经验和试验工作确定, 文献[5]研究表明, m的取值可在nm≤2n+1范围内调试。但m较大, 网络的概括能力较低, 训练时间较长, 在达到给定拟合精度条件下, m应取尽可能小的值, 隐层神经元节点数目m可取为n[5], 即BP网络的拓扑结构为nn∶1 (见图1) 。

《图1》

图1 BP网络模型

图1 BP网络模型  

Fig.1 BP network model

记输入神经元为h、隐层神经元为i、输出神经元j, 隐层节点i、输出层节点j的阈值分别为θi, θj, 输入层节点h与隐层节点i间及稳层节点i与输出层节点j间的接线的权值分别为whi, wij, 各节点的输入、输出分别为x, y。BP算法如下:

Step 1 初始化。设已归一化的输入、输出样本为{xhk, dk (h=1, 2, …, n;k=1, 2, …, N}。给各连接权值、阈值赋予 (-1, 1) 区间上的随机值。

Step 2 置k=1。把样本对 (xhk, dk) 提供给网络。

Step 3 计算隐层各节点的输入xi、输出yi:

xi=h=1nwhixhk+θi,yi=1/(1+e-xi),(i=1,2,n)

Step 4 计算输出层节点的输入xj、输出yj:

xj=i=1nwijyj+θj,yj=1/(1+e-xj)

Step 5 计算输出层节点所收到的总输入变化时单样本点误差Ek=0.5 (yj-dk) 2 的变化率:

Ekxj=yj(1-yj)(yj-dk)

Step 6 计算隐层各节点所收到的总输入变化时单样本点误差Ek的变化率:

Ekxi=yi(1-yi)(Ekxjwij),(i=1,2,n)

Step 7 修正各连接的权值和阈值:

wijm+1=wijm-ηEkxjyi+α(wijm-wijm-1)θjm+1=θjm-ηEkxj+α(θjm-θjm-1)whim+1=whim-ηEkxixhk+α(whim-whim-1)θim+1=θim-ηEkxi+α(θim-θim-1)

其中, m为修正次数, η为学习速率且η∈ (0, 1) , α为动量因子且α∈ (0, 1) 。

Step 8 置k=k+1, 转 Step 3, 直至全部N个样本点训练完毕, 转Step 9。

Step 9 转 Step2, 进行新一轮学习, 直至网络全局误差函数

E=k=1ΝEk=k=1Ν(yj-dk)2/2(1)

小于预先设定的一个较小值或学习次数大于预先设定的值, 结束学习。

《2.2优化组合预测BP算法的网络参数》

2.2优化组合预测BP算法的网络参数

上述BP网络的参数包括θi, θj, whiwij, BP网络的参数优化问题是指估计网络各连接的权值和阈值, 使式 (1) 极小化, 用于优化BP网络参数的加速遗传算法包括 Step 9[2,5]:

Step 1 BP网络参数的变化区间的构造。设cj是在BP算法训练网络出现收敛速度缓慢时网络的任一参数的值, 则它的变化区间构造为[aj, bj], 其中, aj=cj-d|cj|, bj=cj-d|cj|, d为一正的常数。

Step 2 网络参数的编码。设编码长度为e, 把区间[aj, bj]等分成2e-1个子区间, 于是整个网络参数变化空间被离散成 (2e) p个格网点。其中, p=2n2+n+1。每个格网点称为个体, 它对应网络p个参数的一种可能取值状态, 并用pe位二进制数表示。这样, p个网络参数、格网点、个体、二进制数一一对应。

Step 3 至 Step 9 同文献[2]中 Step 2至 Step 8 (略) 。

《2.3算法中控制参数的配置[5]》

2.3算法中控制参数的配置[5]

文献[5]研究表明, 在基于BP-AGA的非线性组合预测算法中, 控制参数可预先取定:

1) 在BP网络中, 学习因子η=0.1, 动量系数α=0.1;

2) 在AGA中, 编码长度e可取定10, 变异率pm可取1.0, 父代个体数目q取300, 优秀个体数目s取10。

《3 实例研究》

3 实例研究

例1 选用二次回归预测模型 (方法 1) , 一阶线性滞后差分模型 (方法 2) , 多元回归预测模型 (方法 3 ) , 各模型的预测值及实际值见表1[1,2]

表1 三种模型的预测值及实际值

Table 1 Three model′s forecasting values and practice values

《表1》


序号k
实际值Yk方法 1 的预测值Y1k方法 2 的预测值Y2k方法 3 的预测值Y3kBP-AGA的预测值Fk

1
2 236.000 02 796.320 12 236.000 02 316.722 72 058.858 0

2
2 266.000 02 766.830 12 395.466 32 500.288 82 113.645 0

3
2 000.000 02 757.399 92 561.502 42 574.449 22 268.477 7

4
2 031.000 02 768.030 02 734.379 42 726.316 92 438.025 2

5
2 916.000 02 798.720 02 914.378 92 809.504 22 723.998 2

6
3 001.000 02 849.470 03 101.794 42 933.871 42 993.112 8

7
3 500.000 02 920.280 03 296.931 43 021.105 03 304.131 4

8
3 700.000 03 011.149 93 500.107 93 122.201 93 573.848 8

9
3 850.000 03 122.080 13 711.655 33 225.045 23 807.674 2

10
4 000.000 03 253.070 13 931.918 53 471.715 33 900.835 9

11
4 100.000 03 404.120 14 161.256 33 519.356 24 124.835 6

12
4 300.000 03 575.230 04 400.043 03 777.689 04 201.104 4

13
4 011.000 03 766.399 94 648.668 04 191.414 14 193.966 3

14
4 044.000 03 977.629 94 907.536 14 693.555 24 125.918 9

15
4 340.000 04 208.919 95 177.068 94 640.409 74 422.609 6

16
4 640.000 04 460.270 05 457.708 04 576.580 64 649.420 3

17
4 654.000 04 731.680 25 749.908 75 026.020 54 705.488 7

18
4 787.000 05 023.149 96 054.147 95 403.210 44 804.313 9

19
4 977.000 05 334.680 26 370.921 95 570.586 44 997.106 4

20
5 355.000 05 666.270 06 700.747 15 568.387 75 236.398 7

21
5 461.000 06 017.919 97 044.160 65 852.355 55 452.436 3

22
5 316.000 06 389.629 97 401.723 16 167.214 45 714.427 6

23
6 388.000 06 781.399 97 774.017 16 562.639 66 034.446 2

24
6 125.000 07 193.230 08 161.649 46 647.645 06 437.480 9

25
7 152.000 07 625.120 28 565.252 07 043.860 46 926.809 9

26
7 707.000 08 077.069 88 985.483 47 722.803 77 542.528 7

27
8 392.000 08 549.080 19 423.028 38 024.044 98 248.173 9

28
8 960.000 09 041.150 49 878.599 69 038.871 19 084.166 1

29
9 806.000 09 553.280 310 352.940 49 103.766 69 895.584 2

30
10 566.000 010 085.469 710 846.824 29 696.405 310 672.907 0

31
11 281.000 010 637.719 711 361.056 610 627.927 711 312.068 0

32
12 230.000 011 210.030 311 896.475 611 824.769 511 720.368 0

33
11 625.000 011 802.400 412 453.953 112 651.807 611 966.019 0

文献[1]用改进REW法, 得最优线性组合预测为k1=0.240 740 76, k2=0.018 518 52, k3=0.740 740 72, 线性组合预测误差平方和SSEmin = 8 025 917.05;文献[2]用加速遗传算法 (AGA) 解决该组合预测问题, 得最优线性组合预测为k1=0.321 329 80, k2=0.000 105 92, k3=0.678 564 20, 线性组合预测误差平方和SSEmin=7 985 485.00。

现用BP-AGA法来进行非线性组合预测, 选择输入层的节点为3个, 隐层节点为3个, 输出层节点为1个。先用BP训练40 000 次, 再用AGA加速寻优10 次, 再用BP训练40 000 次, 其预测值Fk见表1, 网络参数和组合预测误差平方和见表2。

基于BP-AGA的非线性组合预测误差平方和SSEmin=1 361 856, 它优于文献[1]和文献[2]中的结果。

例2 在文献[1]中, 选用指数自回归模型 (方法 1) , ARMA模型 (方法 2) , 季节变量回归模型 (方法 3) , 对某地区一年中逐月的社会商品零售预测, 各模型的预测值及实际值见表3。

表2 例1的网络参数和组合预测误差平方和

Table 2 Network parameters in example 1 and combination forecasting error square sum

《表2》


参数

隐层神经元i
组合预测
误差平方和

1
23
w1i-1.944 115-12.283 974-0.357 164

w2i
-1.698 13228.603 524-9.466 318

w3i
-0.746 481-13.730 895-4.380 855
1 361 856

θi
4.581 2460.975 723-5.580 472

wi1
-11.674 11914.075 441-2.808 669

θj
-3.659 614

文献[1]用变权组合预测方法, 得线性组合预测误差平方和SSEmin=0.043 8。

现用BP-AGA法来进行非线性组合预测, 选择输入层的节点为3个, 隐层节点为3个, 输出层节点为1个, 其预测值Fk见表3, 网络参数和组合预测误差平方和见表4。

表3 某地区一年中逐月的社会商品零售预测

Table 3 Forecasting to society commodity retail month by month in year at certain regain

《表3》


序号k
实际值Yk方法1的预测值Y1k方法2的预测值Y2k方法3的预测值Y3kBP-AGA的预测值Fk

1
4.564.294.254.174.559 414 7

2
4.404.244.234.344.398 210 4

3
4.224.084.134.424.220 216 2

4
4.093.894.004.104.089 160 7

5
3.893.823.924.003.882 609 2

6
4.183.903.963.864.180 786 9

7
4.293.974.084.004.289 862 6

8
4.444.174.224.234.441 508 0

9
4.264.064.244.114.259 874 6

10
4.023.913.933.874.017 258 6

11
3.853.863.913.943.869 896 8

12
4.314.114.084.174.310 885 9

表4 例2的网络参数和组合预测误差平方和

Table 4 Network parameters in exam.2 and combination forecasting error square sum

《表4》


参数

隐层神经元i
组合预测
误差平方和

1
23
w1i2.507 5959.164 539-3.873 299

w2i
-9.187 4771.106 7046.623 136

w3i
2.323 270-9.573 456-8.129 2334.660

θi
-1.349 5950-3.153 131-2.295 055313×10-4

wi1
-12.929 9477.917 195-7.318 830

θj
0.429 278

基于BP-AGA的非线性组合预测误差平方和SSEmin=4.660 313×10-4, 它大大优于文献[1]中的结果。