李哲,张军涛
(中国科学院 地理研究所,北京 100101)
提 要 在遗传算法 (Genetic Algorithm)与误差反传 (Back Propagation)网络结构模型相结合的基础上,设计了用遗传算法训练神经网络权重的新方法,并对吉林省梨树县的玉米进行了估产研究,同时与 BP 算法和灰色系统理论模型进行了比较。经检验,计算值与实际值接近,并优于灰色理论模型,具有良好的预测效果,从而为农作物估产提供了新方法。
关键词 作物估产;遗传算法;神经网络
中图分类号 S11+7
文献标识码 A
文章编号 1000-3037(2000)03-0270-05
1 引言
玉米是吉林省的主要粮食作物。对于作物估产,目前主要是利用遥感图像信息提取,多元回归分析和灰色系统理论[1]等进行预测。近 10 年来迅速发展起来并形成新热潮的人工神经网络(ANN)模型在人工智能、信号处理、自动控制和模式识别等领域发挥了重要作用。由于人工神经网络具有自适应学习能力和记忆联想能力,使得它为解决复杂的非线性问题提供了有用的工具,其预测能力大大优于多元回归分析和判别分析。尤其是目前广泛采用的 Ru melhart等人推广的 BP 算法,具有简单和可塑的优点[2]。但是,BP 算法是基于梯度的方法,其最大缺欠是收敛速度慢,且常受到局部极点的困扰,因而影响了预报的精度。
遗传算法是模拟达尔文生物进化论的自然选择与遗传学机理的计算模型,它是由美国 Mi chigan大学的 Holland 教授于 1975 年首次提出的。这是一种新的全局优化搜索算法[3],其基本特征是利用群体进化,即在求解过程中,通过使种群不断优化,从而找到满意解或最优解。该算法具有简单通用、鲁棒性强的优点,适于并行处理,已经广泛地应用于计算机科学、优化调度、运输问题及组合优化等领域。
当把遗传算法用来取代一些传统的算法并用于确定神经网络的权重时,为人工神经网络提供了很好的途径,图 1 表示了遗传算法与神经网络的结合[4]。在此本文运用这一成果针对作物估产问题进行了研究。
图 1 遗传算法与神经网络的结合 Fig.1 The combination of GA and ANN
2 面向神经网络权重学习的实数编码遗传算法
2.1 编码方式
神经网络的权重学习是一个复杂的连续参数优化问题,如果采用二进制编码,会造成编码串过长,且需要解码为实数,使权重变化为步进,影响网络学习精度,因此这里采用实数编码。
2.2 评价函数
将染色体上表示的各权值分配到网络结构中,网络以训练集样本为输入输出,运行后返回误差平方和的倒数作为染色体的评价函数,如式 (1) 所示:
2.3 权重初始化
对于普通的 BP 算法,网络的初始权重一般取 0~1.0 之间均匀分布的随机数;而在初始染色体集中,网络的各权重是以概率分布 e-|γ| 来随机确定的。这一点是有别于 BP 算法的。遗传算法的这种随机分布的取法是通过以往的大量实验得出的,可以发现,当网络收敛后,权重的绝对值一般都较小。采用以上初始化方法的原因是使遗传算法能够搜索所有可行解的范围。
2.4 遗传算子
对于不同的应用问题,遗传算子的形式有多种多样,这里采用权值交叉和权值变异算子。
2.5 选择方式
这里不采用比例选择方式,而使用亲代度量 S 决定群体中每个个体被选种的概率,群体中的个体以式 (2) 所示的概率成为亲代染色体。
式中,P1,P2,P3,…分别表示评价函数最优、次优、第三……的个体概率。
3 遗传算法与神经网络的结合
选用 3 层 BP 网络模型[5],由一个输入层、一个输出层和一个隐含层(中间层)组成。其具体算法如下,设网络的学习样本和期望输出分别为 Ak 和 Ck(k=1,2,…m),首先计算输入层对隐含层的激活值:
式中,i=1,2,…p;ah 为输入层节点(h=1,2,…n);Vhi 为输入层到隐含层的连接权重;θi 为隐含层单元的阈值。对于 ah,Vhi 和θi,它们的初值是按概率 e-|γ| 得到的随机数。激活函数为 Sigmoid 函数:
f(x)=1/(1+e-x) (4)
然后根据式 (3) 和式 (4) 计算输出层节点的激活值:
式中,j=1,2,…q;Wij 为隐含层到输出层的连接权重;γj 为输出层单元的阈值;Wij 和γj 也是按概率 e-|γ| 确定的随机数。
根据式 (6) 计算输出层的一般化误差:
djCj(1-Cj)(Ckj-Cj) (6)
式中,Ckj 为输出层单元 j 的期望输出。
最后计算隐含层单元相对于每个 dj 的误差:
根据以上步骤,结合染色体的交叉、变异原则(式 2)调整隐含层单元到输出层单元的连接权重,然后调整输出层单元的阈值、输出层单元到隐含层单元的连接权重,最后调整隐含层单元的阈值。计算实际输出与期望输出的误差,当全部样本的输出误差小于设定的收敛误差时,神经网络的训练结束。
4 模型的应用
在灌溉和施肥条件相同的情况下,影响玉米产量的主要因子是温度和降水。吉林梨树县属于温带半湿润季风气候,春季干旱对农作物危害较大;夏季多雨,即雨热同期,有利于作物生长;秋季时有低温早霜,农作物易受害减产。从玉米的整个生育期来看,可分为苗期(5 月中、下旬至 6 月上旬),七叶期(6 月中、下旬至 7 月上旬),抽雄期(7 月中、下旬至 8 月上旬)和灌浆期(8 月中、下旬~9 月 上旬)[1]。这几个时期的气温和降水与玉米产量有较大的关联度。使用梨树县 1959~1996 年的旬降水和旬均温,将 1992 年以前的玉米产量与气象资料作为网络的训练数据,再用 1993 年及其以后的气象数据来计算玉米产量。因此在确定神经网络结构时,分别选取玉米 4 个生长时期的气温因子 T1,T2,T3,T4 与降水因子 R1,R2,R3,R4 等 8 个因子作为输入层的节点;另外,选取玉米产量作为输出层的节点;隐含层为一层,节点数为 30。网络输入层的因子分别按下式计算:
T1=T520+T530+T610(T520,T530,T610 分别为 5 月中旬、下旬和 6 月上旬的平均气温)
R1=R520+R530+R610(R520,R530,R610 分别为 5 月中旬、下旬和 6 月上旬的平均降水)
T2=T620+T630+T710(T620,T630,T710 分别为 6 月中旬、下旬和 7 月上旬的平均气温)
R2=R620+R630+R710(R620,R630,R710 分别为 6 月中旬、下旬和 7 月上旬的平均降水)
T3=T720+T730+T810(T720,T730,T810 分别为 7 月中旬、下旬和 8 月上旬的平均气温)
R3=R720+R730+R810(R720,R730,R810 分别为 7 月中旬、下旬和 8 月上旬的平均降水)
T4=T820+T830+T910(T820,T830,T910 分别为 8 月中旬、下旬和 9 月上旬的平均气温)
R4=R820+R830+R910(R820,R830,R910 分别为 8 月中旬、下旬和 9 月上旬的平均降水)
根据以上方法,分别计算出 1959~1996 年 38 年的气温与降水因子;为了满足 Sigmoid 函数的要求,将气象因子按式 (8) 变换为 BP 网络标准化训练集列于表 1。在 BP 算法中,学习因子α=0.5,动量因子β=0.5;遗传算法中,交叉率 Pc=0.15,变异率 Pm=0.13,亲代度量 S=0.87。经 27917 次运算,收敛误差达到 0.0005,训练结束。3 种不同方法预测结果列于表 2。
式中,Smin 和 Smax 为样本序列的最小值和最大值;δ为一小量,以保证变换后的序列最大值略小于 1 和最小值略大于 0。
表 1 BP网络标准化训练集 Table 1 Standard training set of the BP net work
年份 |
学习样本 |
期望输出 |
T1 |
T2 |
T3 |
T4 |
R1 |
R2 |
R3 |
R4 |
1959 |
0.0043 |
0.0056 |
0.0062 |
0.0054 |
0.0015 |
0.0179 |
0.0161 |
0.0125 |
0.1087 |
1960 |
0.0039 |
0.0057 |
0.0063 |
0.0052 |
0.0068 |
0.0123 |
0.0161 |
0.0025 |
0.0562 |
1961 |
0.0045 |
0.0058 |
0.0064 |
0.0052 |
0.0049 |
0.0174 |
0.0149 |
0.0173 |
0.0967 |
1962 |
0.0039 |
0.0059 |
0.0061 |
0.0051 |
0.0052 |
0.0088 |
0.0207 |
0.0140 |
0.0914 |
1963 |
0.0049 |
0.0059 |
0.0061 |
0.0052 |
0.0015 |
0.0160 |
0.0251 |
0.0031 |
0.0817 |
1964 |
0.0045 |
0.0059 |
0.0056 |
0.0051 |
0.0030 |
0.0050 |
0.0195 |
0.0216 |
0.1162 |
1965 |
0.0043 |
0.0059 |
0.0057 |
0.0049 |
0.0001 |
0.0103 |
0.0191 |
0.0123 |
0.1470 |
1966 |
0.0045 |
0.0056 |
0.0062 |
0.0048 |
0.0029 |
0.0044 |
0.0206 |
0.0240 |
0.1477 |
1967 |
0.0046 |
0.0054 |
0.0064 |
0.0055 |
0.0068 |
0.0160 |
0.0133 |
0.0015 |
0.1695 |
1968 |
0.0043 |
0.0054 |
0.0065 |
0.0052 |
0.0055 |
0.0035 |
0.0041 |
0.0110 |
0.1410 |
1969 |
0.0036 |
0.0053 |
0.0061 |
0.0050 |
0.0047 |
0.0049 |
0.0105 |
0.0269 |
0.1582 |
1970 |
0.0046 |
0.0060 |
0.0060 |
0.0056 |
0.0039 |
0.0031 |
0.0147 |
0.0084 |
0.2273 |
1971 |
0.0043 |
0.0056 |
0.0059 |
0.0053 |
0.0078 |
0.0169 |
0.0074 |
0.0053 |
0.1995 |
1972 |
0.0041 |
0.0052 |
0.0062 |
0.0047 |
0.0055 |
0.0073 |
0.0104 |
0.0033 |
0.2266 |
1973 |
0.0039 |
0.0059 |
0.0064 |
0.0049 |
0.0096 |
0.0082 |
0.0262 |
0.0067 |
0.2408 |
1974 |
0.0042 |
0.0057 |
0.0065 |
0.0053 |
0.0076 |
0.0042 |
0.0096 |
0.0040 |
0.2956 |
1975 |
0.0045 |
0.0060 |
0.0062 |
0.0054 |
0.0120 |
0.0065 |
0.0096 |
0.0030 |
0.3091 |
1976 |
0.0042 |
0.0052 |
0.0062 |
0.0048 |
0.0072 |
0.0110 |
0.0111 |
0.0083 |
0.2438 |
1977 |
0.0047 |
0.0056 |
0.0062 |
0.0053 |
0.0107 |
0.0154 |
0.0160 |
0.0026 |
0.2423 |
1978 |
0.0043 |
0.0061 |
0.0062 |
0.0050 |
0.0083 |
0.0112 |
0.0079 |
0.0161 |
0.3354 |
1979 |
0.0049 |
0.0058 |
0.0060 |
0.0047 |
0.0022 |
0.0075 |
0.0164 |
0.0095 |
0.3834 |
1980 |
0.0046 |
0.0058 |
0.0059 |
0.0051 |
0.0037 |
0.0137 |
0.0051 |
0.0166 |
0.4337 |
1981 |
0.0041 |
0.0059 |
0.0056 |
0.0052 |
0.0056 |
0.0032 |
0.0245 |
0.0092 |
0.5614 |
1982 |
0.0044 |
0.0061 |
0.0056 |
0.0052 |
0.0042 |
0.0052 |
0.0121 |
0.0111 |
0.6132 |
1983 |
0.0045 |
0.0058 |
0.0054 |
0.0051 |
0.0059 |
0.0171 |
0.0107 |
0.0080 |
0.8301 |
1984 |
0.0047 |
0.0060 |
0.0059 |
0.0054 |
0.0114 |
0.0180 |
0.0161 |
0.0157 |
0.8706 |
1985 |
0.0046 |
0.0056 |
0.0063 |
0.0058 |
0.0021 |
0.0097 |
0.0147 |
0.0136 |
0.5555 |
1986 |
0.0048 |
0.0056 |
0.0062 |
0.0057 |
0.0006 |
0.0100 |
0.0132 |
0.0189 |
0.5937 |
1987 |
0.0046 |
0.0055 |
0.0059 |
0.0053 |
0.0029 |
0.0167 |
0.0309 |
0.0073 |
0.8296 |
1988 |
0.0048 |
0.0059 |
0.0070 |
0.0055 |
0.0105 |
0.0130 |
0.0160 |
0.0127 |
0.9337 |
1989 |
0.0047 |
0.0053 |
0.0065 |
0.0054 |
0.0085 |
0.0079 |
0.0230 |
0.0013 |
0.7421 |
1990 |
0.0043 |
0.0059 |
0.0063 |
0.0057 |
0.0120 |
0.0064 |
0.0083 |
0.0082 |
0.9573 |
1991 |
0.0049 |
0.0053 |
0.0064 |
0.0061 |
0.0035 |
0.0104 |
0.0240 |
0.0024 |
0.8897 |
1992 |
0.0044 |
0.0056 |
0.0063 |
0.0055 |
0.0040 |
0.0043 |
0.0195 |
0.0052 |
0.8899 |
表 2 不同预测方法检验 Table 2 Prediction results by different methods
年份 |
实际单产 (kg/hm2) |
预测单产 (kg/hm2) |
遗传算法与神经 网络的结合 |
相对误差 (%) |
BP 神经 网络 |
相对误差 (%) |
灰色系统 理论 |
相对误差 (%) |
1993 |
10438.5 |
10012.3 |
-4.1 |
9889.7 |
-5.3 |
9676.5 |
-7.3 |
1994 |
7545.0 |
7002.5 |
-7.2 |
8113.2 |
7.5 |
8109.3 |
7.5 |
1995 |
10702.5 |
9865.1 |
-7.8 |
9808.4 |
-8.4 |
9532.3 |
-10.9 |
1996 |
10875.0 |
10004.7 |
-8.0 |
9896.3 |
-9.0 |
9487.6 |
-12.8 |
平均(绝对值) |
|
|
6.8 |
|
7.6 |
|
9.6 |
5 结果与讨论
从表 2 可以看出,无论用什么模型估产,其预测结果的相对误差都随年份的增加而增加。这主要是由于作物产量不仅仅是由气候条件所决定的,灌溉、施肥、品种改良等人为因素起着明显的作用。实际的粮食产量是气象和人为因素综合作用的结果,因而单纯用气象因子来反映粮食产量难免有一定的误差,但是其结果仍然是令人满意的。如果再辅助其他人为因素加以修正,预测结果将更加接近实际值。
“气温和降水是影响作物产量的主要因子,将遗传算法与神经网络相结合,并用以预测产量,能够解决困扰 BP 网络的“局部最小”和收敛速度慢等问题,同时优于灰色系统理论,因此将其作为一种新的作物估产方法是可行的。
参考文献
1 | 张树清,陈春,万恩璞.灰色系统理论在估产中的应用[J].地理科学,1998,18(6):581~585 | 2 | Hechi Nielsen R. Theory of the back propagation neural network [J]. Int. J. Conf. On Neural Network, 1989,(1):593~605. | 3 | Bornholdt A. General asymmetric neural network and structure design by genetic algorithms [J]. Neural Network, 1992,5(2):327~334. | 4 | 李敏强,徐博艺,寇纪淞.遗传算法与神经网络的结合[J].系统工程理论与实践,1999,(2):65~69. | 5 | 金龙,罗莹,缪启龙,等.农田土壤湿度的人工神经网络预报模型研究[J].土壤学报,1998,35(1):25~35. |
第一作者简介
李哲 (1973-),男,吉林公主岭人,理学硕士,研究方向为生态地理区域系统、环境冲突及区域可持续发展等。
* | 国家自然科学基金重点项目 (49731020) 资助。 | | 致谢:承蒙导师郑度院士帮助和指导,特此致谢! |
|