季彦东,李 龙
长久以来,我国都是一个农业大国,拥有着众多的农业从业者,近年来,随着科学技术的发展并应用于农业生产,我国农业科技取得了长足进步,“智慧农业”这一概念被提及,智慧农业研究也取得了丰硕成果[1-2].智慧农业是农业同科技高度融合的产物,主要应用的科学技术包括传感器网络、大数据、云计算、物联网等等,其主要作用是通过对农业生产生活当中的相关数据进行采集、处理和分析,为相应的农业生产提供指导和智能决策.机器学习算法是智慧农业应用较常见的技术,其主要作用是利用人们的先验知识建立不同算法模型,从而实现对未知事物的预测.农作物的分类、病虫害识别预测、农产品价格预测是智慧农业发展的至关重要的三个方面,大量的研究结果显示,机器学习算法(主要包括支持向量机、人工神经网络、极限学习机、k最近邻、随机森林、Ada-Boost算法、线性判别分析、最小二乘支持向量、Fisher判别分析等)在以上三方面的应用非常广泛[3-17].为了深入了解当前机器学习算法在智慧农业应用方面的研究进展,本文对机器学习算法在智慧农业上的主要研究成果进行了综述,分析了相关研究的不足,以期为探索更加适合智慧农业发展的机器学习算法提供借鉴.
高光谱数据具有较高的分辨率,数据内容丰富,数据获取方式多样化,可以直接对照片进行光谱数据提取,也可以通过光谱仪进行实地数据采集,此外,还可以采用卫星的遥感数据进行分析,通常情况下,机器学习算法被用于分析高光谱的海量数据.智慧农业的一个重要发展前提是进行农作物的有效划分,为后期的病虫害预测、锄草施肥提供依据,机器学习算法与高光谱技术结合成为智慧农业中进行农作物分类的有效手段.
程术希等(2014)[2]利用高光谱技术,结合Ada-Boost、极限学习机、随机森林和支持向量机四种机器学习算法对8个品种的239颗大白菜种子进行品种验证分析,四种算法均具有较强的泛化能力,通过对比发现,最优的算法是极限学习机,对大白菜种子的判断准确率可以达到100%.
Pu Ruiliang(2009)[3]从高光谱数据中抽取的30个光谱特征变量,使用非线性人工神经网络和线性判别分析两种机器学习算法对美国佛罗里达州境内的11种城市森林阔叶树种进行区分,结果显示,采用高光谱技术与机器学习算法对阔叶树种类的判断精确度可以达到85%以上.
林川等(2013)[4]同样在高光谱数据中抽取了8个光谱特征变量,同时使用非线性人工神经网络和Fisher线性判别分析两种机器学习算法对北京野鸭湖湿地的7种湿地植物进行生态类型分类,两种算法的精确度分别达到85.5%和87.98%,甚至对两种沉水植物的识别度达到了100%,说明机器学习算法可以对湿地植物进行良好的识别和分类.
李婵等(2018)[5]提取了高光谱数据当中的63种特征变量,采用k最近邻、支持向量机和随机森林三种机器学习算法对江苏宜兴市郊的8种植物进行分类,研究结果表明,支持向量分类优于k最近邻和随机森林算法.
黄双燕等(2018)[6]采用随机森林机器学习算法对Sentinel 2A卫星获取的沙湾县内的典型农作物遥感数据进行分析,分类精度达到89%以上,整体的精度可以达到94.02%,此结果证明了随机森林算法对农作物分类的有效性.
何隽(2016)[7]实现了机器视觉对图像进行分割的技术,提高了农作物分类感兴趣区域的比重,从而更好地进行农作物分类.
以上研究成果显示,机器学习算法与高光谱数据结合能够有效地进行植物物种识别和分类,针对不同的农作物,进行合理的机器学习算法的选择能够获得较好的分类效果.
传统的病虫害预测,需要到田间进行农作物取样,通过调查研究才可以进行相应的决策实施,因此存在着费时费力、预测不及时、预测范围有限等缺点.而利用机器学习算法对农作物进行病虫害的预测具有独特的优势,尤其对早期的病虫害预测和田间管理具有重要意义,省时省力,人为干扰误差减小,在农业生产中,可以为农业技术人员针对相应的病虫害进行预防处理提供科学的理论支撑.近年来,研究学者已经在这方面取得了较多的研究成果.
石晶晶(2009)[8]利用支持向量机算法对稻纵卷叶螟危害水稻进行了遥感识别,将获取到的108个样本分为70个训练样本和38个测试样本,测试的准确率可达到100%,此实验验证了机器学习算法进行农作物病虫害预测的可行性,为后期病虫害治理提供了决策支撑.
尹小君(2015)[9]对加工番茄细菌性斑点病的氮素含量反演进行了研究,通过病虫害的预测来检测氮素含量,为番茄施肥提供策略帮助.本研究首先对光谱指数进行区分,选取具有代表性的13个光谱指数,通过相关验证,获取4个稳定的光谱指数,作为算法的特征变量.其次,建立线性核、多项式核、径向基核、Sigmoid核为核函数的支持向量机模型,根据预测效果,选定径向基核.最后,通过使用K-cv交叉验证,确定惩罚系数C、核函数参数g的最佳参数.本研究的特征在于非不同机器学习算法的比较,而是仅选择一个机器学习算法,采用不同的参数进行模型的比较,为智慧农业中农作物病虫害的预测提供了思路.
许章华(2018)[10]利用Fisher判别矩阵和随机森林两种机器学习算法对森林当中的马尾松毛虫进行了预测.其数据主要来自于LAI-2000实地采集的光谱数据和卫星遥感数据,同时结合当地的林业工作者长期的病虫害记录和总结,共选取7个特征变量,结果显示,Fisher判别矩阵和随机森林机器学习算法的平均检测精度分别为74.5%和81.8%.二者的检测精度比较接近,但在病虫害等级划分上具有差异,对于无、轻度、中度病虫害检测,随机森林算法优于Fisher判别矩阵,对于重度病虫害检测,结果相反,Fisher判别矩阵要明显优于随机森林,可见,Fisher判别矩阵和随机森林机器学习算法在病虫害检测方面各有优劣,在实际应用中,可以采用优势互补的方式交叉使用这两种算法.
向昌盛(2012)[11]针对虫害发生所具有的小样本数据和非线性的特点,基于小样本数据量和非线性模型,使用最小二乘支持向量机的机器学习算法进行病虫害的预测,结果显示,通过遗传算法对最小二乘支持向量机的参数进行了优化,可以获得较好的预测效果.
叶聪等(2018)[12]利用人工神经网络的机器学习算法对图像灰度频率数据预处理后进行病虫害的预测.使用Canon EOS 550D数码相机进行粘虫板图像数据采集,构建RGB彩色数码图像,进行分割与信息提取,共获得14个特征变量,将总体的样本分为训练样本和测试样本两类,训练样本用来训练人工神经网络,测试样本进行人工神经网络的验证.结果显示,采用人工神经网络机器学习算法对温室大棚环境下粉虱和蓟马的识别精度分别为96%和92%,说明人工神经网络的机器学习算法对温室大棚内的早期病虫害的预测有帮助.
王雪丽(2018)[13]的研究则从专家库建设的角度出发,通过BP神经网络对所采集到的病虫害相关的文本数据进行分类,为病虫害进行专家系统的建立提供技术基础.
通过以上分析可知,机器学习算法在农业病虫害预测方面已经取得了丰硕的研究成果,主要集中于方法学研究、病虫害预测精度研究、病虫害分类研究等几个方面,研究方法介绍细致,研究内容范围较广,可为后续的相关研究工作提供相应的技术参考.
农产品价格不仅与农民自身的经济收入有关,同样也关乎国民生活水平的稳定.农产品价格的上升有助于提高农民自身的经济收入,但也带来了物价上涨的困扰,相反,农产品价格的下降则会降低农民的经济收入.因此,在智慧农业应用过程中,农产品价格的预测是影响智慧农业建设的重要方面,如何利用科技的力量进行合理、有效的农产品价格预测是智慧农业建设需要考虑的关键问题之一.
贺艳辉等(2010)[14]利用非线性BP人工神经网络对影响罗非鱼价格的相关因素进行分析,选择销售月份、销售地经度、销售地纬度、销售地人口密度、销售地人均消费水平五个指标作为特征变量,而价格参考上海、虎门、新疆三地的水产品市场,共收集135个样本,其中108个样本作为训练样本,27个作为测试样本.结果显示,测试的相对误差在1%~6%,平均值为4%,测试结果非常准确,因此,非线性BP人工神经网络算法可作为其他水产品或者农产品的价格预测工具.
罗长寿(2011)[15]利用BP神经网络、遗传算法下的神经网络、RBF神经网络对北京的香菇市场的每日价格进行预测分析,选取2003—2007年的每日香菇价格作为训练数据,并使用2008—2009年的每日香菇价格作为测试数据.测试结果显示,BP神经网络、遗传算法下的神经网络、RBF神经网络建立的三种模型预测的平均绝对误差分别为0.15%、0.114%、0.144%,三种模型的集成模型的平均绝对误差为0.106%,稳定性大大提高.
岳之峣等(2013)[16]以鸡蛋价格预警作为切入点,采用支持向量机的机器学习算法对鸡蛋价格进行预测.将鸡蛋和猪肉价格的比值作为预警值,采用2010年7月到2011年6月的数据作为训练样本,采用2011年7月到2012年12月的数据作为测试样本,最终测试样本当中的预测结果均在实际范围之内,说明支持向量机训练的价格预测模型有效.
石波等(2016)[17]采用RBF神经网络和训练预测模型对中国的大豆价格进行预测,选取2009-2013年的数据作为训练数据,将2014年的数据作为测试数据,将大豆进口量、消费者信心指数、进口大豆价格三个指数作为输入变量,预测模型的预测误差为3.64%,与传统的数学建模分析方式相比,机器学习算法的分析难度和预测误差均有所降低.
蔡超敏等(2016)[18]创新性地提出引进经验模态分解方法(EMD),将猪肉的历史数据进行分解并集成为高频部分、低频部分、残余项三个模块,通过支持向量机训练模型进行预测.此外,还通过单纯的SVM、EMD-BP、BP进行预测,通过比较分析发现,EMD-SVM具有较好的预测精度.
谢申汝(2018)[19]利用支持向量机算法以2005—2016年的小麦最低收购价格数据作为训练数据对模型进行训练,而后对2017年的小麦最低价格进行预测,预测准确率达到标准水平.
通过以上研究成果的分析可见,机器学习算法对农作物价格的预测非常有帮助.机器学习的海量数据来源广泛,如农产品以往销售的价格数据、当地人口消费水平的统计年鉴数据、原材料供应的价格数据等,为农产品价格的预测提供了数据支撑.采用机器学习算法对农产品价格进行预测,可以调控农产品价格,保障农民的经济收入,从智慧农业的发展来看,农产品价格的预测有利于智慧农业发展方向的选择,因此,有必要深入研究农产品价格预测的方法.
本文主要综述了机器学习算法在智慧农业中的应用进展,集中对农作物分类、病虫害预测、农产品价格预测三方面进行了分析,虽然机器学习算法在智慧农业上的应用已经取得了非常多的研究成果,且预测准确度较高,但仍然存在一些问题值得我们进一步思考.
首先,机器学习算法种类较多,各有优缺点,前文中论述的部分研究已经认识到这一点,考虑到单一的机器学习算法不能有效地完成任务,因此,多数研究是将多种机器学习算法进行对比分析,最终选择准确率较高的一种.但还有一个问题需要考虑,就是研究对象的差异性,研究对象的差异同样会造成机器学习算法预测精度的差异,因此,笔者认为,在后续的研究中,应该加入不同的农作物分类任务,重点考虑研究对象这一个维度,从而将研究结果细化.
其次,每种机器学习算法都需要引入一定的参数,参数选取的有效性直接影响机器学习算法分析的精度,对农作物分类、病虫害预测、农产品价格预测的精度会有很大影响.但前文综述的研究成果中对机器学习算法中不同参数选择带来的结果差异基本都没有考虑,仅有的一篇文献对支持向量机中的不同的参数所带来的预测结果进行了分析[10],笔者认为,不同参数的选择对于机器学习算法精度的影响也应该重点考虑,以提高预测结果的精度.
最后,机器学习算法中要求的特征变量及其数目的选择具有随机性.通常情况下,特征变量及其数目会影响机器学习算法的准确性和泛化能力,应该精确选取.然而,前文综述的研究成果显示,特征变量选择的研究较少,多数特征变量的选择仅仅是依据个人的经验,具有一定的主观性,标准不统一,从而导致相应有效的模型的可移植性较差,可应用的范围缩小,不利于研究方法的进一步开发和应用.因此,今后应加强特征变量选择的研究工作,提高预测模型的通用性.
为了促进机器学习算法在智慧农业中的应用,今后的研究应注意以下三方面:第一,着手从研究对象的差异方面切入,详细分析研究对象的差异,进而选择合适的机器学习算法,扩大机器学习算法的应用范围;第二,在机器学习算法的相关参数的选择方面,多比较不同参数所造成的模型差异,选择最佳的参数;第三,在机器学习算法的特征变量的选择方面,农业上应进行一个有效的统一,让预测模型具有通用性,可以更加有效地为多样化的智慧农业生产服务需求提供帮助.