1、受环境影响的虚拟树木生长预测与仿真宋全记(四川建筑职业技术学院信息工程系,四川 德阳 618000)摘 要: 虚拟树木建模并对其生长过程进行模拟是个难题。本文提出一种不需要设定特殊规则,而且不需要迭代运算的基于树型结构的建模方式,并通过循环神经网络RNN(Recurrent Neural Network)生成仿真序列。由于循环神经网络处理长时间依赖效果并不理想,本文采用GRU(Gated Recurrent Unit)单元模型来弥补循环神经网络的不足。实验表明,本文提出的方法可以模拟树木受到外界环境影响后的生长过程,并且对于复杂模型能通过并行处理进一步提高仿真速度,达到了预期效果。关键词: 虚
2、拟树木;L-系统;循环神经网络 中图分类号: TP399 文献标识码: APrediction and Simulation of Virtual Tree Growth Influenced by the EnvironmentSONG Quanji( Department of Information Engineering,Sichuan College of Architectural Technology,Deyang 618000,China)Abstract:Modeling and simulating the growth process of virtual trees i
3、s a difficult problem.This paper proposes a modeling method based on the tree structure with no requirements of special rules or iterative computation,which can generate the simulation sequence through RNN (Recurrent Neural Network).As RNN is not efficient enough to handle the long-time dependence,t
4、his paper adopts GRU (Gated Recurrent Unit) unit model to make up for the deficiency of RNN.The experiment results show that the proposed method can simulate the growth process of trees under the influence of the external environment,and further improve the simulation speed of complicated models thr
5、ough parallel processing.Keywords:virtual trees;L-System;recurrent neural network文章编号: 2096-1472(2017)-01-33-04软件工程 SOFTWARE ENGINEERING 第 20卷第1 期2017年 1月Vol.20 No.1Jan. 20171 引言(Introduction) 近些年,虚拟树木仿真研究已逐渐发展成为生物学、物理学、应用几何和计算机图形学等领域的交叉学科1。其研究在农林业研究、绿化景观设计、游戏影视动画等领域中占有重要的地位,有着广阔的应用前景2。目前大量文献对虚拟树木的研
6、究都是在L-System基础上进行的,比如文献3采用L-System作为分枝结构,给出了基于物理学的开花过程;文献4提出从树木图片中提取树木的L-System规则的算法,并将其应用于三维树木建模。循环神经网络在序列预测序列领域有比较成熟的应用5,6,但是L-System是迭代生成序列,难以通过RNN等神经网络预测;本文提出的树型结构不存在迭代过程,因此可以通过RNN预测不同环境影响下树木的生成序列。同时,树型结构可以按结构拆分、用遗传算法优化7,方便并行处理加快建模和仿真速度并提高预测仿真的准确性。2 建立模型(Modeling)自然界的树木形态万千,每种树木的内部结构各不相同,影响树木生长的
7、环境也复杂多变。本文以树木建模为例说明我们提出的树型结构建模过程,并通过循环神经网络预测阳光、降水对树木的影响。2.1 L-System模型L-System可以对树木建模8,设定如下规则:(1)b(branch):树干(2)l(leaf):树叶(3)s(size):大小(4)rx(rotation_x):x轴方向旋转(5)ry(rotation_y):y轴方向旋转(6)rz(rotation_z):z轴方向旋转图1 简单树木建模Fig.1 Simple tree modeling则图1的树木可以表示为:b(t)rx(-70)b(t)rx(70)b(t)b(t)rx(60)s(0.8)b(t)r
8、z(90)l(t)b(t)rx(70)b(t)rx(-70)b(t)rz(90)l(t)b(t)rx(-60)s(0.8)b(t)b(t)s(0.8)b(t) 其中,t代表迭代次数,这里只取t=1。通过设定复杂的规则,可以生成更加逼真、漂亮的模型。2.2 树型结构模型数据结构中树型结构的定义9如下:(1)树是n(n0)个结点的有限集合;(2)在非空树中,有且仅有1个根结点;(3)当n大于1时,其余结点可分为m(m0)个互不相交的子树。根据数据结构中树型结构的定义,我们可以绘制如图2中的树型结构:图2 树型结构Fig.2 Tree structure对比图1与图2我们发现其结构是相同的(这里我们
9、暂不考虑叶子结点),事实上我们在对树木建模时是遵循了树型结构定义的。但是数据结构中的树型结构关注的内容是结点的数据,而树木建模所关注的内容是其枝干、树叶、花等器官,以及这些器官旋转的角度,如图3所示。图3 增加了旋转属性的树型结构Fig.3 Tree structure with rotation attributes由于仅通过前序、中序或后序序列是无法确定树的结构的,所以在树木建模过程中,需要提供前序和中序或者中序和后序两组序列。图1的树木前序序列可以表示为(Z为叶子结点):Arx(-70)Crx(0)Grx(60)Krz(90)Zrx(70)Frx(0)Brx(0)Erx(0)Jrx(0)
10、Mrx(70)Drx(-60)Irx(0) rz(90)ZHrx(-60)L 图1的树木中序序列可以表示为(Z为叶子结点):rx(60)Krz(90)Zrx(0)Grx(-70)Crx(70)FArx(0)Mrx(0)Jrx(0)Erx(0)Brx(-60)Irz(90)Zrx(70)Drx(-60)Lrx(0)H图1的树木后序序列可以表示为(Z为叶子结点):rx(60)Krz(90)Zrx(0)Grx(70)Frx(-70)Crx(0)Mrx(0)Jrx(0)Erx(-60)Irz(90)Zrx(-60)Lrx(0)Hrx(70)Drx(0)BA2.3 RNN模型神经网络从模拟生物对外界的感
11、知而来,通常由多层感知器构成10,如图4所示。图4 多层感知器神经网络Fig.4 MLP (Multi-Layer Perceptron) neural network输入层表示可以观测到的数据,我们对受环境影响的树木生长序列进行预测,输入的数据为模拟的阳光、降水,以及树型结构前序、中序两组序列。隐含层表示感知器,其中f代表激活函数。本文中采用tanh(x)激活函数:图5 双曲正切函数Fig.5 Hyperbolic tangent function双曲正切函数可以保证输出在(-1,1)之间,运算效果比线性函数要理想,且求导也很方便。sinh(x)= (ex-e(-x)/2=cosh(x)co
12、sh(x)=(ex+e(-x)/2=sinh(x)tanh(x) =sinhx/coshx=(ex-e(-x)/(ex+e(-x)=cosh(x)2-sinh(x)2/cosh(x)2=1/cosh(x)2输出层为我们预测的树木生长序列。为了提高预测准确率,这里我们采用了循环神经网络RNN,如图6所示。图6 循环神经网络RNNFig.6 Recurrent neural network34 软件工程 2017年 1月第 20卷第1 期 35宋全记:受环境影响的虚拟树木生长预测与仿真2.4 GRU单元结构由于RNN随着序列长度的增加,会难以学习连接之间的关系,我们采用GRU单元来解决这一问题。图
13、7 RNN、GRU学习效果对比Fig.7 Comparison of learning effects of RNN and GRU本文中用到的GRU单元结构如图8所示。图8 GRU单元结构Fig.8 GRU unit structure若分别用x、h、W表示输入层、隐含层和权重,则有:(1)(2)(3)(4)GRU通过门控单元调节单元内的信息流,与LSTM结构不同,它的门控单元不是独立的而是融合在一起11。在t时刻的隐含层 ht是上一时刻的隐含层与当前时刻候选隐含层的线性插值。更新门控 zt决定了有多少单元结构被更新或激活。重置门控 rt则控制选择当前输入和之前状态的比例。2.5 模型训练与
14、预测本文中我们采用梯度下降法计算矩阵W,梯度下降法就是按照梯度下降或上升的方向求解极值,如图2图6所示。图9 梯度图Fig.9 Gradient map这里我们采用动量(momentum)算法:pre_dw = pre_dw * discount + dw * step (5)w = pre_dw (6)其中,dw为权重w的梯度,discount和step为常数,初始权重w通过GRU前向传播计算得出,每次迭代的dw通过反向传播计算得出,并带入公式(6)更新权重w。对于树木生长序列的预测,我们输入的数据可以模拟光照,不同的光照强度数值不同,不同的光照方向对应不同的rotation旋转属性;也可以
15、模拟降水,同样用不同数值表示降水强弱。输出的序列我们预测枝干和树叶的生长情况,对比预测结果看是否符合对应环境下树木生长规律。由于树型结构可以通过不同的子树进行拆分,因此可以方便的进行并行运算或硬件加速。本文以图1-3所示树型结构为例,说明其GRU单元结构计算过程。2.5.1 输入层为了预测环境对树木生长的影响,我们取阳光和降水两个方面。为了简化计算光照强度和方向我们取sun_strong_north、sun_middle_north、sun_weak_north、sun_strong_south、sun_middle_south、sun_weak_south六个值;降水强度我们取rain_st
16、rong、rain_middle、rain_weak四个值。这样我们得到了表达环境特征的2组向量,每组向量维度是10(我们需要把各组向量维度加到一起计算)。对应树型结构,我们暂不考虑树叶和花,取结点最大数为33,每个结点包含rotation和size两个属性。为了降低维度,每个方向上的rotation最多取8,即1代表旋转145度,2代表4690度,,8代表316360度。这样三个方向应该有8*8*8=512维数据。这里size我们取110十个值,这样我们得到了表达树木特征的33*3*2=198组向量(每个结点包含序列、rotation和size三个特征,同时我们需要两组序列才能确定树型结构)
17、,每组向量维度是33+512+10=555。这样我们输入的数据是200组向量,即有200个GRU单元结构,每组数据向量维度是565。2.5.2 隐含层通过公式(1)和公式(2)分别计算出更新门控zt和重置门控rt。这里W代表权重,初始值随机生成,通过公式(5)迭代更新W的值使得梯度朝向下的方向运动。是激活函数我们采用图5中提到的双曲正切函数。依次将更新门控zt和重置门控 rt以及候选隐含层代入公式(4)得到当前隐含层和输出层。2.5.3 输出层这里我们只考虑输出是树叶的情况,且不考虑树叶的旋转和尺寸(这两个属性可以根据枝干特征设定规则得出)。由于树型结构已经是确定的,所以输出是33组向量,每个
18、向量维度是1。3 实验(Experiment)本文中的硬件实验环境:inter core i5处理器,4G内存,Nvidia 750ti独立显卡。3.1 训练数据与模型评估本文通过L-System获得初始训练数据,由于是预测序列任务,这里我们采用困惑度Perplexity对模型进行评估。(7)Perplexiy = 2H(p,q) (8)离散概率分布的困惑度被定义为式(8),其中 H(p,q)为x范围内离散事件分布的熵。这里我们只考虑 y=1即生长出树叶的情况,为 y=1的概率,即GRU的输出,这里我们加入sigmoid函数使得输出更加平滑。图10为RNN和GRU困惑度的对比,可见GRU的预测
19、效果要好于传统的RNN结构。图10 RNN、GRU困惑度对比(序列数为200)Fig.10 Comparison of RNN and GRU perplexity(serial number 200)3.2 树木生长序列预测树木初始序列建模如图11所示。图11 树木初始序列建模Fig.11 Initial tree modeling图12 树木预测序列建模Fig.12 Tree prediction model图12为在图11基础上,模拟特定光照和降水环境下的一个生长预测序列,也验证了我们提出的对树型结构应用神经网络预测方法的可行性。4 结论(Conclusion)由于L-system植物建
20、模需要设定规则并且采用迭代方法运算,本文采用循环神经网络对受环境影响的虚拟树木进行建模与仿真,并通过GRU单元模型提高预测效果。实验过程中本文通过L-system建立初始训练序列,采用树形结构建立模型,应用动量法进行梯度下降,并通过困惑度来评估GRU单元结构的循环神经网络模型。结果表明,本文提出的方法可以较好的模拟受环境影响的虚拟植物生长过程,并且采用GRU单元结构后预测准确率要高于传统的循环神经网络结构。在未来的研究工作中,我们将继续进一步挖掘虚拟植物中各数据间的关系,使得虚拟植物的预测更加清晰准确、更加丰富完善、更符合实际需求。参考文献(References)1 Moor H,Hyland
21、er K,Norberg J.Predicting Climate Change Effects on Wetland Ecosystem Services Using Species Distribution Modeling and Plant Functional TraitsJ.Ambio,2015,44(1):S113.2 Cerutti G,Godin C.Meshing Meristems-An Iterative Mesh Optimization Method for Modeling Plant Tissue at Cell ResolutionC.Bioimaging,2
22、015.3 Li J,et al.Boundary-Dominant Flower Blooming SimulationJ.Computer Animation 4.8 Prusinkiewicz P,et al.L-systems: from the Theory to Visual Models of Trees.In Proceedings of the 2nd CSIRO Symposium on Computational Challenges in Life Sciences,1996.9 严蔚敏,吴伟民.数据结构(C语言版)M.清华大学出版社,2012.10 Graves,Alex.Supervised Sequence LabellingJ.Springer Berlin Heidelberg,2012.11 Chung J,et al.Empirical Evaluation of Gated Recurrent Neural Networks on Sequence ModelingJ.Eprint Arxiv,2014.作者简介:宋全记 (1981-),男,硕士,讲师.研究领域:计算机应用技术.36 软件工程 2017年 1月