标题 | BP神经网络在粮仓平均温度预测中的应用 |
范文 | 师瑞华 摘要:粮仓平均温度决定粮食变质的快慢。经研究发现,粮仓平均温度表现为非线性变化,而BP神经网络能够无限逼近任意非线性函数,故可利用BP神经网络对粮仓平均温度进行预测。介绍了粮仓平均温度预测的重要性,阐述了BP神经网络的预测原理,介绍了BP神经网络设计及MATLAB实现。据此编写程序进行平均温度预测,为粮食保质工作提供依据。 关键词:神经网络;平均温度预测;BP算法;MATLAB DOIDOI:10.11907/rjdk.151565 中图分类号:TP301 文献标识码:A 文章编号文章编号:16727800(2015)008004203 0 引言 粮仓平均温度预测主要是通过系统中前几日仓库的平均温度来预测之后该仓库的平均温度。近年来,随着BP算法在故障预测、台风暴雨预测、市场股票以及房地产价格指数预测等领域逐步成熟,其已运用到更多的非线性预测中,可以建立相应的预测模型并在MATLAB中对其进行仿真实验。 1 粮仓平均温度预测问题分析 粮食作为农作物,其保质至关重要。粮食的平均温度决定着粮食变质速度,关系着人们采取何种措施进行处理。因此,正确预测平均温度特别重要。之前,粮仓平均温度主要是通过直觉和平均温度曲线的趋势进行预测,可靠性较低。 粮食的平均温度受室内温度、湿度、所在仓库地点等多种因素影响,若要精确地估计未来粮食的温度,就要综合考虑不同因素。BP神经网络算法提供了坚实的理论基础和可信度。本文利用BP算法对平均温度进行预测,并在MATLAB中仿真验证,证明其有效性。 2 神经网络 人工神经网络(Artificial Neural NetworkANN),简称神经网络(NN),是对人脑的模拟、简化与抽象[1]。它是根据神经学、计算机科学、物理学和数学统计等多种学科发展起来的一门新技术[2]。 2.1 人工神经网络模型 神经元模型的3个要素:①有一组类似于生物神经元突触的连接,神经元之间的密切度用权值Wxy表示,Wxy可正可负,正值表示激活,负值则表示抑制;②有一个输入信号累加器,反映了生物神经元空间、时间的整合特性[3];③有一个非线性的激活函数,控制着神经元的输出,且输出值被限定在允许范围内[3]。 经典神经元模型见图1。 图1 人工神经元模型 对于每个输入量(Xy),均有一个相关联的权重(Wxy),需要进行处理的单元首先经过权重的输入量化,然后得到加权值总和,计算出唯一的输出量(yx),它就是传递函数的一个权重和[59],计算公式如下: Ux=∑yWxyXy(1) Vx=Ux+θx(2) F(.)表示激励函数,yx表示神经元x的输出,则有: yx=f(∑yWxyXy+θx)(3) 激励函数的形式多样,使用比较多的是Sigmoid函数。Sigmoid为可微的S型函数,公式定义为: f(v)=11+exp(-αv)(4) 通过调节斜率参数α的大小,可以得到不同斜率的Sigmoid函数[4]。 2.2 BP神经网络结构 BP神经网络又称为反向传播网络,包括输入层、隐含层和输出层。同层节点间互不相连,而层与层之间全部互联,输入层、输出层的节点数通常选取输入及输出向量的维数,隐含层没有明确的规定,需要根据实际情况确定[10]。经验证,三层BP神经网络能够任意逼近任何一个非线性映射函数,不需要建立数学解析式模型,因此在预测方面应用最为广泛。 BP网络结构见图2。 图2 BP网络结构 2.3 BP神经网络算法 BP神经网络算法是一种有导师的学习方法,学习过程由信号正向传播过程与误差反向传播过程组成。正向传播时,从输入层传入输入样本,经各隐含层处理,最后传向输出层, 每层神经元(节点)的状态只影响下一层神经元状态,若输出层的实际输出与期望的输出不符合要求,则转入误差的反向传播阶段;误差反向传播是将输出误差以某一形式通过隐含层向输入层逐层反向传播, 将误差信号按连接通路反向计算,从而获得各层单元的误差信号,此误差信号即为修正各单元的依据[4] 。由梯度下降法调整各层神经元权值,使误差信号减小。这种信号正向传播过程与误差反向传播过程中的各层权值调整,周而复始地进行着,网络一直学习与训练,直到网络输出的误差小到能够接受的程度或者是学习次数达到预先设定的目标为止。 2.4 神经网络训练 神经网络训练主要分为有导师算法、无导师算法。 (1)有导师学习算法。神经网络对外界环境的未知性特点,使得在训练时既要给出输入信号,又要给出响应信号。最后根据实际输出与要求目标之间的差值来调整权值,使系统做出正确有效的回复[7]。 (2)无导师学习算法。学习过程没有严格的外部监督机制。训练数据只包含输入矢量。网络根据自身的功能特性对输入的模式作出特定的响应,自动适应连接元的权值并映射到网络上,对网络变化趋势作出评价,以实现数据压缩、联想学习的功能[8]。 3 BP神经网络设计 BP网络设计包括:网络的层数、每层网络的神经元数量、输入输出节点个数和激活函数等参数的确定。 3.1 确定网络层数 具有偏差和最少一个S型隐含层以及线性输出,就可以逼近任意函数,这是确定BP神经网络层数的规则。增加隐含层的神经元个数,其效果比增加层数更易观察及调整[1]。本文预测只需要3层:输入层、隐含层和输出层。 3.2 确定隐含层神经元数量 增加隐含层中的神经元个数要比增加隐含层提高精度方便。然而,神经元个数太少,获取信息的能力就弱。神经元个数太多,获取信息能力太强,则会反映出非规律性的内容。隐含层神经元个数确定的原则是:以解决问题为前提,增加1~2个神经元加快误差的减小。在此预测中,采用试凑法,先采取较少的神经元来训练,然后逐次增加,最后选取误差最小时对应的神经元数。本文使用9个隐含层神经元[1]。 3.3 输入输出节点数确定 输入输出节点数应该由实际情况决定。本文选择输入层的节点数为5,输出层的节点数为1。 3.4 激励函数及训练函数确定 此预测中隐含层、输出层所用到的激励函数分别为:Tansig和Pureline,训练函数为Traingdx。 4 平均温度预测在MATLAB中的实现 4.1 BP算法具体流程 算法流程见图3。 图3 BP算法流程 4.2 样本选取与预处理 以2014-3-16至2014-3-26日1号粮仓粮食的平均温度为依据,进行模型预测。样本数据如表1所示。 利用归一化方法对初始数据进行处理,公式为: xi=2(xi-xmin)xmax-xmin-1(5) 经过处理后的数据均分布在[-1,1]上,预测结束后再将数据反归一化为实际数据。 4.3 构建BP神经网络 从2014-03-16开始作为样本的输入点,每6日作为一组样本,其中前5日的数据作为输入,第6日的数据作为输出。利用MATLAB软件仿真平台newff构建BP神经网络,该神经网络有5个输入节点,9个隐含节点和1个输出节点。分别用tansig、purelin作为隐含节点、输出节点的激励函数,用traingdx作为训练函数进行训练。 4.4 结果展示 经过训练后,结果如图4、图5、图6所示。 图4 BP神经网络训练过程 图5 输出值与实际值差异 图6 BP神经网络预测误差曲线 4.5 误差检验 对于平均温度数据构建的BP神经网络进行训练,得出实际值与输出值对比表,见表2。 4.6 相关程序代码 [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); dx=[-1,1]; net=newff(dx,[5,1],{'tansig','purelin'},'traingdx'); net.trainParam.show=300; net.trainParam.Lr=0.05; net.trainParam.epochs=3000; net.trainParam.goal=1e-6; net=train(net,pn,tn); an=sim(net,pn); a=postmnmx(an,mint,maxt) 5 结语 本文利用训练好的BP神经网络,对仓库未来的平均温度进行了预测。BP神经网络算法理论坚实、推导过程严谨、通用性强,但是BP算法是基于梯度的下降方法,故不可避免地存在一些问题,比如训练容易陷入局部最小值、学习过程收敛速度慢、网络结构不易确定等,这些因素都会使预测出现少许偏差,这也是今后需要研究的方向。 参考文献: [1] 戴丹.BP神经网络用于市场预测的研究[D].武汉:武汉理工大学,2006. [2] 孟祥泽,刘新勇,车海平,等.基于遗传算法的模糊神经网络股市建模与预测[J]. 信息与控制,1997(5):6973. [3] 胡章明.基于神经网络房地产价格指数的预测研究[J]. 中山大学研究生学刊:社会科学版,2006(2):100115. [4] 吴昌友. 神经网络的研究及应用[D].哈尔滨:东北农业大学,2007. [5] 朱凯,王正林.精通MATLAB神经网络[M].北京:电子工业出版社,2010:100110. [6] 袁洪.基于神经网络的分销竞争力评价方法与研究[D].广州:华南理工大学,2007. [7] 方江晓.短期风速和风电功率预测模型的研究[D].北京:北京交通大学,2011. [8] 黄加亮.RBF神经网络在船用低速等故障诊断中的应用研究[D].大连:大连海事大学,2000. [9] 高雅.短时交通预测模型及预测方法的研究[D].上海:华东师范大学,2011. [10] 马丹丹,于占龙,刘越.BP神经网络在大学毕业生就业率预测中的研究与应用[J]. 佳木斯大学学报:自然科学版,2014(5):751753. (责任编辑:杜能钢) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。