“人工神经网络”教学中的Matlab仿真工程实践
2011-08-16黄金明苏佰丽武玉强
黄金明,苏佰丽,武玉强
(曲阜师范大学电气信息与自动化学院,山东日照 276826)
人工神经网络在解决各种输入因子具有复杂性、非线性和相关性的问题上拥有很大的优势。我们在“人工神经网络”课程的教学过程中,通过对各种神经网络模型的学习和计算机仿真,可以阐述清楚课程的主要思想;但尚需将该思想应用于实践去解决实际问题。
随着食品安全问题的敏感度逐渐增加,海产食品的出口安全问题也受到越来越多的关注。由于不同的进口国对食品的指标要求存在差异,传统的合格或不合格等定性结论不能体现这一差异,而采用量化的风险度指数来衡量出口食品的质量水平是一个比较理想的解决方案。BP神经网络具有很强的鲁棒性、容错性和自学习能力,本文利用BP神经网络建立了出口海产食品的风险分析模型,采用改进的误差反向传播算法,通过多次反馈对输入数据进行模型仿真,给出风险分析结论。
1 出口海产食品风险分析系统理论
1.1 出口海产食品风险分析的要素
海产食品的质量水平取决于食品加工和运输的各个环节中的影响因素,具体包括原材料的储存和预处理、食品加工工序、食品加工环境温度、卫生状况以及运输等环节。其中,部分环节属于关键环节,对海产食品的最终质量有着决定性的影响,比如:细菌数量和金属物含量等,不同的海产食品的影响要素也有所不同。
以冻模拟蟹肉与冻鳕鱼片两种海产品为例,其潜在的危害因素有很多,如金属碎片、生物的致病菌、化学的添加剂、产品的基因成分、检验检疫部门的检查结果以及运输时间等等。在这些因素中,有些因素是通过主观预测来分析的,是定性的,必须将这些因素应用模糊综合评价方法,使之定量化,最终建立权重集来实现。
1.2 出口海产食品风险分析系统设计
海产食品风险分析项目主要解决的问题是依据食品的危害分析与关键控制点HACCP(Hazard Analysis Critical Control Point)理论将影响产品质量的因素分为普通因子和CCP因子,然后对影响因子进行分析得出风险度估计[1]。整个系统将采集的各种影响因子作为神经网络模型的输入,经过训练后的神经网络模型运算后产生的输出作为风险度结果,以此作为最终的评判标准。整个系统共包括四个层次,分别为接口层、预处理层、决策层和输出层,如图1所示。
图1 出口海产食品风险分析系统体系结构
产品的输入参数通过实时采集的方式在接口层进行获取,并送入预处理层进行数据的修正和模糊综合评价等预处理操作,数据经预处理后,在进入神经网络模型进行风险分析之前,还需要对这些数据统一进行归一化处理。得到的结果作为神经网络模型的输入值,经过决策层的神经网络模型分析完成后,将本次的数据存入中心数据库并将风险分析结果送输出层进行人机交互操作。用户可以看到产品生产过程中的全部风险指标,也可以通过现场控制系统对生产环节进行远程控制。
2 BP神经网络的模型算法
2.1 神经网络基础知识
人工神经网络由神经元互联组成,通过模拟人脑对信息的处理方式,进行信息的并行处理和非线性转换,具有良好的自学习、自适应和非线性转换能力。它通过样本的训练和学习将信息隐含在连接权值上,达到稳定后,便可以对新的数据输入进行预测。神经网络的输入信息来自生产现场的多个传感器,这些信息是单一传感器和传统算法所不具备的。多个传感器的设置没有统一的方法,需要针对不同产品和不同的生产环境采取不同处理,来选择合适的模型参数。在这里,选择了一种比较成熟的单向传播的多层前向网络—BP神经网络作为模型能很好地实现对输入数据进行风险预测[2],其组成如图2所示。
图2 BP神经网络结构图
利用人工神经网络建立海产食品的风险分析模型有很大的优越性,首先,这种方法是开放的,输入输出的调整比较灵活,比较适合目前海产食品种类繁多的行业现状。神经网络模型的调整具有很大的灵活性。模型的建立依赖于训练的样本,样本的代表性和广泛性会影响最终模型算法的精度,用户也可以根据新形势下的新情况,调整学习样本,让模型算法重新适应新的情况,因此,神经网络模型相对于传统的数理统计模型具有更大的灵活性和易用性。
2.2 神经网络模型结构
BP神经网络的结构主要由输入层、隐藏层和输出层组成,各层节点数的选取具有一定的规律。由于出口海产食品种类繁多,每种食品的网络模型结构也不尽相同,以出口冻鳕鱼片为例,其主要风险分析指标包括储藏温度、金属物、CCP执行情况、细菌总数和运输时间。因此,BP网络的输入层确定为5 个节点,设输入向量为 xi=(x1,x3,x3,x4,x5),输出结果即为单节点风险值yo=(yo1),隐藏层设定为单层,其节点数目与输入输出节点数、训练样本数及复杂程度有关,根据Kolmogorov定理以及隐藏层节点数的经验公式(黄金分割法)[3]:
其中,N为隐藏层节点数,n和t为输入和输出层节点数。经过计算并综合考虑隐藏层的功能,将本文中的隐藏层的节点数定为10个,既能满足精度需求,又能尽量减少网络的训练时间,同时还兼顾了收敛速度、泛化能力和稳定性。
2.3 神经网络算法流程
根据BP神经网络的特点以及出口冻鳕鱼片产品的需求,所建立的网络模型算法的流程如图3所示。
图3 冻鳕鱼片产品神经网络算法流程
神经网络的权值和阈值均取(0,1)之间的随机值,激活函数采用 S 型函数[4]:f(x)=1/(1+ex),神经网络前向计算的隐藏层输出过程为
式中,hih(k)是隐藏层输入,wih为输入层到隐藏层的连接权值,θh为隐藏层神经元阈值。输出层各节点的输出值为
式中,yio(k)为输出层各节点的输入激活值,who为隐藏层到输出层的连接权值。
在反馈调整权值的计算过程中,采用改进的BP算法,加入动量因子,将上一次权值调整量的一部分迭加到按此次误差计算所得的权值调整量上,作为此次的实际权值调整量,即
式中,η、α和δ0(k)分别为学习率、动量因子和误差函数对输出层各神经元的偏导数。这种方法所加的动量因子实际上相当于阻尼系数,它减小了学习过程的振荡趋势,从而改善收敛性。文中取α=0.5。
在隐藏层和输出层的连接权值调整过程中,全局总误差的计算公式为
式中,m为样本个数,do(k)与yo(k)分别为期望输出与实际输出值。
2.4 输入样本的预处理
由于出口冻鳕鱼片产品的五个参数对风险值的影响程度不同,各个参数的取值单位也有很大差异,因此,需要对输入样本中的参数值进行修正。常用的修正方法为加权修正法和模糊综合评价法。典型的输入样本和输出风险度数值如表1所示。
表1 冻鳕鱼片产品的输入参数值与期望风险值
从表1可以看出,伴随着储存温度的升高及细菌数量的增加,风险度呈上升趋势,而金属物含量(CCP)对于风险度的影响是具有决定性的。但是它的单位值和其他参数相比,在神经网络中占有的权重值却很难体现这一结果,本文对该参数进行加权修正处理,以增加该参数在各种相关因素中的影响力。
2.5 实验结果
根据出口冻鳕鱼片产品的检验需求及对基于BP神经网络风险分析模型特点的分析,本文选择了300组典型输入值作为训练样本集合,对神经网络进行训练。系统实现采用Matlab作为后台运算引擎[5],对300组样本输入进行最多2万次迭代运算,预设精度为0.01。图4为样本训练误差曲线图。
图4 样本训练过程误差曲线图
从曲线可以看出,所选择网络模型算法的收敛性还是比较好的。
待神经网络训练完毕后,用新的待测试值进行输入,输出的风险度平均值能够满足精度要求,这说明该模型能够很好的解决风险预测类非线性问题,部分实际输入对应的风险值数据如表2所示。
表2 部分实际输入参数的风险值
3 结语
本文对人“工神经网络”课程教学方法和手段进行了探讨,并成功地将教学过程与项目开发实践过程进行了结合,将教学过程中复杂的抽象理论问题用具体的建模实例来实现,理论结合实际,取得了良好的教学效果。设计的风险分析系统由VS2008和 Matlab混合编程实现[6]。数据测试表明,该系统能很好的解决出口海产食品的风险预测问题,达到了预期目标。
[1] Hazard Analysis& Critical Control Points(HACCP).http://www.fda.gov/food/foodsafety/hazardanalysiscriticalcontrolpointshaccp/
[2] 徐丽娜 编著.神经网络控制[M].北京:电子工业出版社,2003
[3] 陈明,朱文婷,周汝雁何等.BP神经网络信息融合技术在水质监控中的应用[J].北京:微计算机信息,2010 26(4-1):15-17
[4] 高隽 编著.人工神经网络原理及仿真实例(第2版)[M].北京:机械工业出版社,2007
[5] 谢涛,何怡刚,姚建刚等.VB调用Matlab的模拟电路故障诊断神经网络方法[J].北京:计算机工程与应用,2010 46(10):213-215
[6] Matalb C++Library User's Guide[M].The Math Works,Inc,2002