郑沫利,赵艳轲,闫 敏,孙 俊,刘雍容
(1.国贸工程设计院,北京 100037; 2.江南大学物联网工程学院,江苏 无锡 214122)
我国的人口多,基数大,对粮食的需求也大,2015年调查结果显示仍存在接近2000万吨粮食的不足[1]。所以,针对粮食不足问题,不仅需要对粮食产量层面的提升,还需降低粮食的损耗或浪费。粮食的损耗分为产前损耗和产后损耗,本文主要研究和分析粮食产后的储藏环节损耗。粮食储藏损耗一直是困扰粮食收储企业的一大难题,也是影响收储企业经济效益的一个重要因素。根据农业部门统计,我国粮食产后损失率超过8%,每年粮食损失量高达500亿斤,仅在粮食储存环节的损失率就高达5%左右,每年的粮食损失量就达310亿斤,相当于150多个中型粮库的储备量,损失数量惊人。所以可以借助方法预测,从而将一些数据转换决策作为指引,找到防范的主要因素[2]。储藏中损耗可以来自自然方面,主要包括自身的生命呼吸的损耗,还可以来自虫鼠的损耗,更严重的损失是在存储过程中通过晾晒、处于通风处等造成水分过度流失[3]。由于粮食在长期的储藏过程中会受到上述因素的影响,这就降低了国家粮食储备的安全和经济效益。因此对粮食储藏环节中损耗的评估,对于粮食产后减损具有重要的意义。
储藏环节粮食产后损失的主要影响因素可以概括为:储藏情况、进仓情况、出仓情况这3大部分。损失率是指总损失率,包括:进仓损失率、出仓损失率、虫害损失率、鼠害损失率、霉变损失率、其他损失率。因此,本文针对这3大因素对产后粮食储藏总损失率进行建模评估,即运用支持向量机(Support Vector Machine, SVM)模型对影响粮食储藏损耗的因素与储藏损耗率进行建模。在建模过程中,本文采用随机漂移粒子群优化(Random Drift Particle Swarm Optimization, RDPSO)算法优化SVM模型的参数。
RDPSO算法与遗传算法[4-6]等智能优化算法一样,是一种基于群体的搜索算法,是粒子群优化(Particle Swarm Optimization, PSO)算法的一种重要改进。粒子群优化算法[6]是1995年由Kenney和Eberhart为解决连续优化问题而提出的群体智能优化算法。该算法提出以来,得到了国内外研究人员的广泛关注,并提出了很多改进算法,例如,Mendes等人[7]提出了全通知粒子群优化算法,Sun等人[8]提出了QPSO算法,Jordehi[9]提出了增强领导粒子群优化算法(ELPSO),Garg[10]提出了一种混合智能优化算法PSO-GA。此外,Deng等人[11]提出了基于记忆特性的动态分数阶和阿尔法稳定分布理论来提高PSO算法的全局搜索能力;仝秋娟等人[12]提出了自适应动态改变的粒子群算法。
本文运用RDPSO良好的全局搜索能力优化SVM的参数,提出基于RDPSO-SVM的粮食产后储藏损耗智能评估模型。基于粮食储藏损耗调查数据,分别对RDPSO-SVM模型、基本的SVM模型和线性回归模型进行了测试与比较分析。实验结果表明本文所提出的RDPSO-SVM模型比其他2种模型能够更好地对粮食产后储藏损耗进行评估预测。
为了建立粮食产后损耗的智能评估模型,本文通过问卷调查来收集数据。中国作为发展中的农业大国,收集数据相对来说比较容易,但是由于中国农业方面的工具水平相对于发达国家来说比较落后,所以粮食的收割、买卖、运输以及储藏等环节都存在不同程度的损耗。本文从粮食储藏损失率的影响因子进行调查问卷的设计,并据此进行模型构建。本文在调查问卷的设计上考虑以下一些因素:
首先是区域影响因素。本文分西南、东南、东北、西北4个地区进行数据采集。根据常识,在东北地区尤其是黑龙江湿度较低、西北地区西藏空气干燥,粮食水分严重下降,这不仅影响了粮食(尤其稻谷和大豆)食用品质和加工品质,还影响新鲜程度,更是影响重量。
其次是粮食产后储藏损耗的影响因素。笔者认为,储藏仓型、存储技术和粮食的包散情况可以作为影响粮食储藏损耗的主要因素;储藏区域、进仓工艺、出仓工艺、进仓总量、储藏量、储粮设施、存储技术、储藏时间等作为影响粮食储藏损耗的次要因素。
储藏仓型作为影响粮食储藏损耗的主要因素之一,在我国的发展历史悠久,经过不断的变化,至今储藏设施包括:平房仓、浅筒仓、立筒仓等。不同的地区,根据每个地方的气候、地形、住宿、文化、习惯等情况,建筑的储藏仓型均不同。根据国家粮食统计局公告,2013年粮食的总量高达6亿吨多[13],由于储存设施简陋,损耗达到75亿千克[14]。
存储技术作为影响粮食储藏损耗的主要因素,本文的调查问卷中相关题项有:尚未应用“四合一”技术的常规储藏、应用“四合一”技术的储藏、应用“四合一”升级新技术的储藏等选项。由于我国地域大、人口多,对储粮新技术应用和重视程度也各不相同。先进储藏技术因需要投入前期成本,长期效益难以在短期内体现,因此造成新技术应用少,推广进程缓慢。
粮食的包散情况作为另一个影响储藏损耗的因素,包括包粮和散粮2种情况。这主要是考虑到进出仓时是否会发生粮食散落,从而导致粮食损耗。据调查统计,散粮比例只是占到15%,应用机器包装粮食储藏可以减少损耗和浪费。
进仓工艺和出仓工艺作为一个次要影响因素,选项包括:散粮打包出仓(进仓)、散粮散装出仓(进仓)、包粮包装出仓(进仓)、包粮拆包出仓(进仓)。此外,储藏量、进仓量、出仓量、虫害、微生物大量繁殖和霉变等作为影响因素,均会导致粮食质量及物质的损失。我国由于真菌霉变[15]这个原因损失高达2000万吨。
我国粮食产后损耗分析相对于国外来说比较晚,目前,国内已经有一些关于粮食产后损耗分析的研究成果,例如,赵霞等人[16]对粮食产后损耗进行分析,建立了粮食产后损失浪费评价指标体系。类似文献[17],本文通过调查数据,应用SPSS对数据进行效度分析、信度分析和相关性分析后,找出影响粮食产后储藏损耗的主要因素,然后应用RDPSO-SVM进行储藏损耗的智能建模。
首先应用SPSS对调查问卷获取的数据进行描述性统计分析,得到平均损失率、标准差、数据峰度、偏度、是否存在极端值等,并用t检验进行验证。由于篇幅关系,本文不再赘述。
对于调查问卷中产后粮食储藏的损失因素的分析,本文采用信度分析和效度分析,其中采用内部一致性系数克隆巴赫系数(Cronbach alpha)检验量表的信度;效度分析采用探索性因子分析的方法。在研究中,信度分析方面,内部一致性系数需要大于0.7才能表明量表是有一定的可靠性;当题项数小于6个时,内部一致性系数可以小于0.7,但要大于0.6来表明量表的可靠性。而判断样本是否可以进行因子分析,需要数据的KMO样本测度和巴特莱特球体检验。其中KMO在0.5以下,不适合;在[0.5,0.60),勉强;在[0.6,0.7),比较适合;在[0.7,0.8),适合;在[0.8,0.9),很适合;如果在0.9以上的话,是非常适合。巴特莱特球体检验的统计值的显著性概率如果小于或者等于显著性水平时,该样本数据可做因子分析。在因子分析之前,在SPSS软件中选择几个主要相关的因素进行分析得出克隆巴赫系数大于0.7。然后再进行KMO和巴特莱特检验得出0.765在0.7到0.8之间,所以数据是有效的。
在进行回归分析或智能建模之前,首先对调查数据就影响因素进行相关性分析。相关性分析作为一种比较常用的统计方法,主要是用来检验不同变量之间关系的紧密程度。本文采用Pearson相关系数分析法,对本项目所涉及的变量进行相关分析。由于篇幅有限,本文不再赘述。
在建立粮食产后储藏损耗的回归模型之前,需要在信度和效度上得出降维后的因子(因子)、FEGR FACTOR SCORE(系数)、常数项(C)。回归模型是由各个因子系数和常数项得出,可以表示为:
损失率=C-[系数1]×[因子1]-[系数2]×[因子2]-…-[系数n]×[因子n]
本文提出用RDPSO-SVM建立粮食储藏损失率与降维后的因子之间的关系模型,从而对损失率进行智能评估与预测。
通过以上描述性统计分析、效度分析、信度分析、相关性分析选择有效性数据,并进一步进行下述的RDPSO-SVM智能模型构建。
RDPSO算法是受到PSO算法粒子收敛性分析和金属导体中自由电子模型的启发而提出的。PSO算法粒子收敛性表明,每个粒子以其局部吸引子为目标进行搜索;而金属导体自由电子模型表明,导体中电子的运动又分为定向漂移运动和随机无规则方式,其中漂移运动由外电场引起,使电子往势能最小的位置运动,而随机运动是热运动,它能够使粒子避免陷入局部最小势能的位置。因此,金属导体中的电子运动过程实际上就是一个搜索势能最小化的过程,其中随机运动代表全局搜索,漂移运动代表局部搜索,因此本文考虑在RDPSO算法中将粒子的运动分为2个部分,即漂移运动和随机运动[18]。因此,RDPSO算法中,在第n+1迭代步,粒子的速度由热运动速度和漂移速度2部分组成,如公式(1)所示:
(1)
粒子随机运动速度由下式给出:
(2)
(3)
对于粒子的定向漂移运动,可以假设为粒子向局部吸引子的运动以体现粒子的局部搜索。因此,其运动速度可以表示为:
(4)
(5)
基于式(1)、式(2)、式(4),可以得到RDPSO算法粒子的速度和位置更新方程如下:
(6)
(7)
RDPSO算法中,随机运动体现全局搜索,定向漂移运动体现局部搜索。可以通过控制α和β的取值来调节和平衡粒子全部搜索和局部搜索。
本文中,粮食产后储藏损失率评估的基础模型是SVM[20]。SVM的主要思想是将低维空间线性不可分的向量映射到高维空间,通过这样的变换可以变成线性可分。在新的高维空间找出输入量和输出量之间的非线性关系。通过在高维分析出来的结果选择适合的核函数K(Z,zi),在高维空间中求取最优线性分类面[21]。从低维空间到高维空间是通过核函数K(Z,z1),K(Z,z2),…,K(Z,zn)映射到高维空间。SVM分类的决策为:
(8)
0≤αi≤C
(9)
其中,αi为每个训练样本所对应的拉格朗日系数;C为惩罚因子,μ为权系数向量,b∈R为偏置,Z为样本的特征向量,K(Z,zi)为核函数。
(10)
其中,g为核函数半径。
本文采用RDPSO算法优化SVM的参数,使优化后的SVM更好地进行预测分类。RDPSO-SVM的训练流程如图1所示。
图1 RDPSO优化SVM参数流程
实验是从调查问卷的样本集中选取180个样本作为SVM训练集,另取40个样本作为测试集。每个样本中有很多关于粮食储藏损失的因素,包括:区域、储粮设施、进仓工艺、出仓工艺、储藏时间等。通过使用SPSS进行因子分析降维后,得到若干因子,然后以这些因子作为输入,粮食储藏损失率作为输出,进行SVM建模[22]。然后,运用RDPSO对SVM模型进行参数寻优,精确找到最优模型参数,从而提高模型预测精度。
本文实验中采用了线性回归、基本SVM算法以及本文提出的RDPSO-SVM方法进行比较测试。图2为应用了训练样本中的180条数据进行训练得到的有效模型。图中显示了样本和各个模型的误差,黑色线条表示真实值,*表示应用RDPSO优化SVM参数的模型,○表示基本SVM模型,×表示线性回归模型。在图2中可以明显地看出RDPSO-SVM的预测值更接近真实值,基本SVM模型其次,然而线性回归模型和真实值相差得很远,其模型的拟合效果最差。因此,运用SVM模型建模,并采用RDPSO算法进行模型参数优化可以达到很好的拟合效果。
图2 模型训练效果
图3 模型预测效果比较
在图2中可以容易看出线性回归模型和真实值之间有很大的差距,远离折线,所以在测试数据集上进行测试时,只是比较了RDPSO-SVM和基本SVM的效果,如图3所示。从图3可以看到,应用RDPSO算法优化SVM模型后,模型的预测值更接近真实值,而基本SVM的预测值与实际值相差较大。具体的预测误差如表1所示。其中,RDPSO-SVM模型的总的预测误差为0.0063,而基本SVM的预测误差为0.9649。
表1 预测误差比较结果
因此,从上述分析可以看到,RDPSO-SVM对于粮食产后损耗数据不仅有良好的拟合能力,同样具有很好的模型泛化能力。因此,RDPSO-SVM模型,即运用RDPSO优化后的SVM模型可以很好地预测粮食产后损失率,该模型为粮食损耗的智能评估提供了一种通用的方法。
本文针对粮食产后储藏环节的损耗,进行了问卷调查,对调查数据应用SVM模型进行智能评估。提出了运用RDPSO算法优化SVM模型参数。RDPSO算法具有良好的全局搜索能力,可以有效地防止模型参数优化过程中陷入局部最优解。实验结果表明,用本文提出的RDPSO-SVM粮食产后储藏损失评估模型,与普通的线性回归模型与基本SVM模型相比,具有更好的拟合精度和预测精度,可以作为粮食产后储藏环节或其他环节损耗评估与预测的有效模型。