基于改进MNN的森林健康评价方法研究

2014-04-29 19:11方舟王霓虹
安徽农业科学 2014年16期

方舟 王霓虹

摘要 为了更好地支持森林的可持续经营,探讨了森林健康评价方法。与传统的单一人工神经网络相比,集成神经网络(Modular Neural Networks,MNN)在解决复杂分类问题时更加有效,因此利用MNN作为森林健康评价的具体方法。此外,常被用来训练神经网络的反向传播(Back Propagation,BP)算法存在收敛速度慢且易陷入局部极小值等不足。为了解决这一问题,将具有极强全局寻优能力的人工蜂群(Artificial Bee Colony,ABC)算法与BP算法相结合,形成一种混合ABC.BP算法的改进MNN模型,并将其用作构成MNN的单一神经网络的学习算法。通过试验对比分析,验证了改进MNN模型的有效性。

关键词 森林健康评价; 集成神经网络; 人工蜂群

中图分类号 S126 文献标识码 A 文章编号 0517-6611(2014)16-05292-03

目前,森林健康评价作为支持森林可持续经营的有效手段,越来越受到森林工程领域研究者们的重视[1]。针对不同的森林类型、经营管理目标以及地域文化,研究者们提出了许多森林健康评价方法[2-3]。其中,人工神经网络因其具有强大的非线性映射和学习能力,在实际应用中较多地被用于森林健康评价,并且已经取得了较好的应用效果[4-5]。

反向传播(Back Propagation,BP)算法是一种广泛被应用的人工神经网络学习算法。它是一种有监督的学习算法,具有理论依据坚实、推导过程严谨、物理概念清晰及通用性好等优点。但是,BP算法在实际应用中仍然存在一些不足,例如,收敛速度过慢,易陷入局部极小值。为了解决这一问题,引入了人工蜂群(Artificial Bee Colony,ABC)算法[6-7],将其与BP算法结合,形成了一种混合的ABC.BP算法。ABC.BP算法将ABC算法极强的全局寻优能力与BP算法强大的非线性学习能力进行了合理的结合。它有助于提升神经网络学习算法的收敛速度,同时提高学习算法的准确率。

此外,一些研究者发现,与传统的单一人工神经网络相比,在解决复杂的分类问题时,集成神经网络(Modular Neural Networks,MNN)具有更好的效率,尤其在对构成MNN的单一神经网络的学习算法进行改进之后,MNN的学习准确率会更高[8-9]。因此,该研究提出了基于ABC.BP算法的改进MNN模型,利用完成训练的改进MNN执行森林健康评价,并通过试验对比分析,验证了改进MNN模型的有效性。

1 基于ABC的人工神经网络学习算法

1.1 BP算法 BP算法常被用来训练人工神经网络,它的訓练过程包括正向传播和反向传播两个阶段。在正向传播中,进行网络计算。首先,初始化BP神经网络的连接权值为-1和1之间的随机数。接着,将向量X=(x1,x2,…,xn)输入到网络中,其中n是样本特征的数量。在这一阶段,将S函数作为隐层和输出层神经元的传递函数。

在反向传播中,修改不满足训练精度的连接权值。如果发现误差无法满足训练精度,则沿着原来的连接通路逐层返回,按一定的原则向减少误差方向修改整个网络的各个连接权值和阈值。其中,为了使训练以尽可能快地减少误差的方式进行,采用广义的δ规则对误差进行计算。误差函数为:

式中,Oy和EOy 分别表示输出层唯一神经元的实际输出和期望输出。重复以上两个阶段直到误差满足训练精度。

1.2 ABC算法 ABC算法由雇佣蜂、观察蜂和侦查蜂3个阶段组成。ABC算法的控制参数包括:SN,表示事物源的数目(雇佣蜂的个数=观察蜂的个数=解的个数=SN);D,表示每个解xi=(xi1,xi2,…,xiD)的维度;Limit,是一个重要的控制参数,表示一个解xi在Limit次未被改变之后,需要被舍弃;MCN,表示算法的最大迭代执行次数。

在雇佣蜂阶段,采用贪婪准则,比较记忆中的最优解和邻域搜索解,当搜索解优于记忆最优解时,替换记忆解;反之,保持不变。在所有的雇佣蜂完成邻域搜索后,进入观察峰阶段。观察蜂根据食物源的信息,以一定概率选择食物源,蜜量大的食物源吸引观察蜂的概率大于蜜量小的观察蜂。同样,观察蜂在观察蜂附近邻域搜索,采用贪婪准则,比较观察蜂搜索解与原食物源的解,当搜索解优于原食物源的解时,替换原食物源的解,完成角色互换;反之,保持不变。对于雇佣蜂陷入局部最优,保持Limit次迭代没有改变,而雇佣蜂所得适应度又不是当前全局最优时,放弃该食物源,用侦察蜂随机搜索的食物源替换。

从上面的论述可以看出,通过保存记忆中的最优解,雇佣峰保证了算法可以快速收敛;通过依据适应度概率值来替换当前解,观察蜂保证了算法可以依上代历史信息来进行寻优;最后侦查蜂在Limit参数的控制下进行随机寻优,保证了解的多样性。

1.3 混合的ABC.BP算法 为了克服BP算法的缺点,该研究提出了混合ABC.BP算法。该算法以BP算法作为基础,引入ABC算法,将二者有机地结合起来,既获得了BP算法强大的非线性学习能力,又利用了ABC算法极强的全局寻优能力。

在ABC.BP算法中,xi=(xi1,xi2,…,xiD)是问题的一个可行解,其中D表示神经网络中需要优化的连接权值的数量。而ABC部分的目标函数是:

式中,N是训练样本数据集中样本的总数;eik表示在利用第k个样本进行训练时,第i个解xi的误差。

ABC.BP算法的具体步骤如下。

(1)输入种群数量SN、最大循环次数MCN、训练样本数据集TS。

(2)输出满足训练精度ε的连接权值。

(3)过程。Step 1: 生成一组初始化解xij, i=1,…,SN, j=1,…,D。

Step 2: 利用公式(2)计算每个解xi的目标函数值fi。

Step 3: 计算每个解xi的适应度值fiti。

Step 4: cycle=1。

Step 5: repeat。

Step 6: 为每个雇佣峰生成一个新的解ui,并计算相应的目标函数值ufi和适应度值ufiti。

Step 7: 按照贪婪选择机制进行选择。

Step 8: 为每个解x计算它概率值Pi。

Step 9: 根据概率值Pi,为观察蜂从解集xi, i=1…SN中选择可能需要被替换的当前解xi,生成新解ui,并計算它的适应度值ufiti。

Step 10: 按照贪婪选择机制进行选择。

Step 11: 判断是否存在应该舍弃的解,若存在,则为侦查蜂生成一个新的随机解替换舍弃解。

Step 12: 记住当前发现的最优解xbest=(xbest1, xbest2,…, xbestD)。

Step 13: cycle=cyele+1。

Step 14: until cycle=MCN。

Step 15: 将xbest=(xbest1, xbest2,…, xbestD)作为神经网络的初始连接权值。

Step 16: 设置误差总和初始值te=0。

Step 17: 从集合TS中依序选取一个样本。

Step 18: 计算该样本的实际输出Oy。

Step 19: 计算连接权值的变化量。

Step 20: 修改连接权值。

Step 21: 计算该样本实际输出Oy与期望输出EOy之间的误差,并将其加到误差总和te。

Step 22: 如果集合TS中全部样本均已完成训练,则进入下一步,否则返回到Step17。

Step 23: 如果te<ε,则训练结束,并且输出满足误差要求ε的解xi=(xi1,xi2,…,xiD),否则返回到Step16。

2 基于ABC.BP的改进MNN模型

当输入的数量相对小的时候,有很多神经网络的体系工作得非常好,但是当问题的复杂度增加或者输入的数量增多时,它们的性能下降得非常快。将多个神经网络组合在一起工作的MNN被用来解决这类问题。这一概念借鉴了“分而治之”的方法论。MNN有一个层次化的组织结构,它包含了多个神经网络,每个神经网络负责解决问题的某一方面。评估者的联合可能超过单个评估者的局限。

ABC算法具有强大的全局寻优能力。与传统的单个人工神经网络相比,MNN非常适于解决某些类回归和分类问题。将ABC.BP与MNN结合,一个新的改进MNN模型在该研究中被提出了。该算法由3个部分组成:数据划分模块及基于ABC.BP的ANNi模块和集成模块。改进MNN的结构如图1所示。

图1 改进MNN体系结构 在DPM模块中,利用bagging方法来产生MNN中多个单一神经网络的样本集合。首先,根据“4/1”的比率,将初始数据集分别两类样例集合:训练样本数据集(80%)和测试样本数据集(20%)。接着,从训练样本数据集中,随机且有放回地重复m次抽取样本数据,以此来获得m个训练样本子集合;同时,保证每个训练样本子集合中的元素数量均是训练样本数据集中元素数量的1/2。这使得有些训练样本子集合会存在相同的样本数据。第i个训练样本子集合被表示成TSi。每个训练样本子集合TSi (i=1…M)对应一个ABC.BP.NNi子模型。

在基于ABC.BP的ANNi模块中,每个ABC.BP.NNi子模型均是一个单一神经网络,它们的结构均是“n-p-1”,其中n是输入神经元的数量,p是隐层神经元的数量。第i个ABC.BP.NNi子模型的输入是第i个训练样本子集合TSi。在此阶段,利用混合ABC.BP算法来训练每个ABC.BP.NNi子模型,以此来获得m个不同的分类器(m个完成训练的ABC.BP.NNi子模型)。

在IM模块中,利用“相对多数投票法”来整合全部分类器hi (i=1…M)的分类结果。当大多数分类结果属于相同类别时,改进MNN模型的最终结果被认为是该类别。具体的计算公式如下:

3 试验对比分析

将北京八达岭林场作为森林健康的评价对象,选择生物量、植物多样性指数和森林火险等级3个指标建立评价指标体系,并利用BP神经网络建立了森林健康评价模型,测试精度最好可以达到85%。该研究将该文献中的样例集合作为训练和测试数据样本,首先对混合ABC.BP算法的收敛性进行了验证。如图2所示,试验证明了ABC.BP算法是可以收敛的,并且其在收敛性方面要优于BP算法。

图2 收敛性对比分析 接着,该研究对BP神经网络、ABC.BP神经网络和改进MNN神经网络的训练和测试准确率进行了对比分析。训练和测试数据样本仍然选用了样例集合。该数据集的特征如表1所示。

在试验中,ABC.BP算法的控制参数被设置为:种群数量(SN×2)=40,limit= SN×D,其中D是问题的维度,也即是神经网络中需要优化的连接权值的数量。最大循环次数MCN=1 000。试验重复进行30次,每类神经网络被训练和测试10次。

表2给出了每类神经网络的训练和测试准确率的最佳值、平均值和最差值。从表2可以看出,ABC.BP神经网络在准确率方面也优于BP神网络,但改进MNN更优化ABC.BP神经网络。通过上述试验,验证了该研究提出的改进MNN模型可以有效地应用于森林健康评价。

4 结论

该研究探讨了森林健康评价方法,提出利用集成神经网络作为森林健康评价的具体方法。然后针对传统BP算法存在的不足,通过将其与ABC算法进行结合,进而形成一种混合的ABC.BP算法,以此来解决集成神经网络中单一神经网络的训练问题。从试验对比分析结果可以看出,与单一的BP神经网络和ABC.BP神经网络相比,利用基于改进MNN的森林健康评价方法可以更加快速、准确地对评价对象实施健康情况的评价,此评价结果可以帮助森林管理者更好地实现森林的可持续经营。

参考文献

[1] 施明辉, 赵翠薇, 郭志华,等.森林健康评价研究进展[J].生态学杂志, 2010, 29(12):2498-2506.

[2] 王忠春, 亢新刚, 羅仙仙,等.森林健康评价研究进展[J].西北林学院学报, 2010, 25(5):163-169

[3] 姬文元, 刑韶华, 郭宁,等.川西米亚罗林区云冷杉林健康状况评价[J].林业科学, 2009, 45(3): 13-18.

[4] 李静锐.基于人工神经网络模型的森林生态系统健康评价[D].北京:北京林业大学, 2007.

[5] 武巧英, 陈丽华, 李晓凤,等.基于BP神经网络的森林生态系统健康预测[J].水土保持通报, 2011, 31(2):151-154.

[6] KARABOGA D,AKAY B.A comparative study of artificial bee colony algorithm[J].Applied Mathematics and Computation,2009,214:108-132.

[7] KARABOGA D,BASTURK B.Artificial bee colony (ABC) optimization algorithm for solving constrained optimization problems[J].Foundations of Fuzzy Logic and Soft Computing,2007, 4529:789-798.

[8] FEVRIER V,PATRICIA M,HERMAN P.Parallel genetic algorithms for optimization of Modular Neural Networks in pattern recognition[C]IJCNN.IEEE,2011:314-319.

[9] SHEIKHAN M,SHABANI A A.PSO.optimized modular neural network trained by OWOHWO algorithm for fault location in analog circuits[J].Neural Compute Appl,2013,23(2):519-530.