邓玉睿 周 勇 唐 芳 祁智慧 从 伟程旭东 王鹏杰 张海洋
(国家粮食和物资储备局科学研究院1,北京 100037) (中国科学技术大学2,合肥 230026)
霉变是造成粮食损失的一个重要因素。一直以来,国内外许多学者对粮食霉菌的生长规律和检测方法进行了大量的研究。Christensen等[1-3]研究了粮食储藏微生物生长区系以及温湿度对储粮霉菌孢子萌发和生长的影响,并明确了一些储粮霉菌孢子萌发所需的最低相对湿度。周建新等[4,5]研究了储藏温度和水分对储藏霉菌生长的影响,粮食储藏稳定性与带菌量密切相关。程树峰等研究了稻谷、小麦、玉米储藏过程危害真菌的生长规律,提出早期危害真菌以灰绿曲霉和白曲霉为主,并建立了储粮霉变的检测方法及判定参考标准。储粮霉变的检测方法还包括荧光染色法[9]、光谱成像技术[10]、电子鼻[11]等方法,这些检测方法都是基于霉菌已经生长实现检测。随着研究手段发展和信息技术的进步,基于粮食霉变的基础数据,采用神经网络自学习实现粮食霉变预测,将粮食安全监管端口前移,对减少粮食损失保障储粮安全意义重大。
BP 神经网结构简单,训练与调控参数丰富,在神经网络中应用最广泛,其不需要输入、输出值间存在严格的假设关系,同时能够以区间数、模糊数等方式处理定性信息,在模式识别、危害分析和关键点股市分析预测、管理问题优化与决策等方面得到大量的实际应用[12]。近几年在粮食行业也有应用,沈兵[13]根据粮情样本数据建立了储粮安全预测BP神经网络模型,通过已有的粮仓温度、湿度,粮食水分和害虫数据预测储粮安全状况。刘砚菊等[14]通过采集储粮环境中温度、湿度、CO2数据,基于BP神经网络对粮情样本进行训练,构建了一种粮情监控模型。本研究基于神经网络理论,利用MATLAB神经网络工具箱,建立了粮食霉变预测BP神经网络模型,并运用已有的实验数据训练和测试网络,使之可以进行分类预测,对于粮食霉变预测提供了新的研究思路。
取自黑龙江的粳稻样品,测定样品初始水分含量,加无菌水将样品水分调节至目标水分,密封,于4 ℃冷藏均衡水分30~60 d,直至稻谷水分含量达到目标水分并通过水分均匀性检验。
表1 储粮安全评价参考表
HPS-250生化培养箱;PL3002-IC电子分析天平;HG-9246A型电热恒温鼓风干燥箱;SMART显微镜;DJSFM-1粮食水分测试粉碎磨。
1.3.1 模拟储藏及检测周期
将不同水分含量的稻谷样品,密封并分别置于不同储藏温度(10、15、20、25、30、35 ℃)生化培养中模拟储藏180 d,每10 d 取样一次,检测水分和真菌孢子数。
1.3.2 真菌孢子计数[15]
参照LS/T 6132 粮食检验储粮真菌的检测孢子计数法。
1.3.3 水分测定[16]
参照GB/T 5497 粮食、油料检验水分测定法105 ℃烘干法。
1.3.4 数据预处理
为了便于储粮霉变状况判定,参考LS/T 6132[15]附录C“储粮安全评价参考表”,将“Ⅲ级-危害”确定为是否发生霉变的标准(以对粮食造成危害为标准),将实验过程中采集到的2 592个数据分成“已霉变”和“未霉变”两类,标记为“1”和“-1”。
BP神经网络(BPNN)是应用极为广泛的神经网络模型之一,在复杂的非线性系统中具有较高的建模能力,并对数据具有良好的拟合能力,在预测方面应用广泛[17]。
BP网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。图1为一个典型的三层BP网络的拓扑结构,层与层之间采用全互连方式,同一层之间不存在相互连接,隐层可以有一层或多层。层与层之间有两种信号在流通:一种是工作信号(用实线表示),它是施加输入信号后向前传播直到在输出端产生实际输出的信号,是输入和权值的函数。另一种是误差信号(用虚线表示),网络实际输出与期望输出间的差值即为误差,它由输出端开始逐层向后传播。BP网络的学习过程由前向计算过程和误差反向传播过程组成。在前向计算过程中,输入量从输入层经隐层逐层计算,并传向输出层,每层神经元的状态只影响下一层神经元的状态。如输出层不能得到期望的输出,则转入误差反向传播过程,误差信号沿原来的连接通路返回,逐次调整网络各层的权值和阈值,直至到达输入层,再重复进行计算,使得网络误差最小或达到人们所期望的要求时,学习过程结束[18]。
图1 典型神经网络结构图
MATLAB 中的神经网络工具箱功能十分完善,提供了各种MATLAB函数,包括神经网络的建立、训练和仿真等函数,以及各种改进训练算法函数。因此,本工作可以方便地利用MATLAB中神经网络工具箱建立稻谷霉变预测的神经网络模型,主要包括三个步骤:创建BP神经网络、训练神经网络、网络仿真模拟。
一个神经网络中最重要的参数包括输入层、输出层、隐藏层的神经元个数和传递函数。创建BP神经网络时可以通过设置MATLAB中调用神经网络的专用函数实现[13]。
利用预处理过的数据集(M+N),随机选择M组数据作为训练数据训练网络,另外N组数据对数据测试网络的分类能力进行测试。
调用newff函数建立神经网络,隐藏层和输出层传输函数都选用对数函数(logsig),学习率设为0.1,训练目标误差设为0.000 1。
调用训练函数train训练网络,并用测试数据进行测试。选择误差小的网络保存下来,即为我们想要的网络。
利用网络仿真时,首先加载出网络,然后调用函数sim,输入需要模拟的输入数据进行仿真。
通常训练数据量越大,网络精度会越高。而实际仓储情况下,无法获得大量的数据对网络进行训练,为了探究训练数据数量对网络精度的影响,我们选取了不同样本数目(50~1 000组)对网络进行训练,并用1 500组测试数据进行测试,记录在各种情况下网络测试数据的正确率,得到结果如下:
图2 不同训练样本数目对网络精度的影响
本次实验中训练数据和测试数据均为随机选择。由此可知,当训练数据为50组的时候,网络预测正确率约为88.6%;大于400时,网络预测正确率明显提高,可以达到94.3%左右,并且在训练数据为400~1 000组时网络预测正确率提高缓慢。因此,虽然训练数据量越大,网络预测正确率越高,在实际应用中也可以依据工作对预测系统精度的要求选择训练样本数目。
利用之前预处理过的数据集(共2 592组数据),随机选择2 500组数据作为训练数据训练网络,另外92组数据对数据测试网络的分类能力进行测试。
调用已训练好的网络,对剩余92组检测数据的进行测试,预测结果与实际情况进行比较,可以看到网络分类结果较为准确,正确率达到98%以上,结果节选如下:
表1 测试数据结果
图3 测试数据与网络预测数据对比图
对于未进行实验的数据,该神经网络也可以给出预测。例如,在命令行中输入y=sim(net,[27,15,48]),即在温度27 ℃、水分含量15%、储藏时间48 d的情况下,粮食是否会霉变,可以得到运行结果y=-1,即神经网络预测结果是该情况下稻谷不会发生霉变。
为了验证由实验数据得到的BP神经网络在实际应用中可以达到的预测准确程度,采用实仓数据作为测试数据来测试上文中神经网络的预测准确程度。实仓数据共有84组,样品数据均来自华北地区某粮库,检测时间从6月份到10月份,对应已储藏时间为150~255 d,温度范围为19~ 27.4 ℃,水分范围为12.8%~15.4%。调用已经训练好的神经网络对实仓数据进行预测,结果如图4所示。实仓数据预测正确的数据为69组,正确率为82.1%,可以证明利用实验数据得到的神经网络预测实仓数据情况的正确率较高。
图4 实仓数据与网络预测数据对比图
本研究利用MATLAB神经网络工具箱建立了应用于粮食霉变预测BP神经网络模型,在随机选择训练数据和测试数据并且训练样本数据量足够大时该模型非常准确。通过测试不同样本数目,探究样本数目对网络模型准确性的影响,得到了不同训练样本数目下网络预测的正确率,对实际应用有着指导意义。为了探究网络模型在实际应用中的可信性,利用华北地区的实仓数据对网络进行验证,发现网络预测的准确性较高,为实际粮食储藏过程中的霉变情况的预测提供了一种新的手段。