基于深度学习的农产品中农药MRL标准分类预估方法

基于深度学习的农产品农药mrl标准分类预估方法
技术领域
1.本发明属于计算机科学下的深度学习领域,具体涉及一种基于深度学习的农产品中农药mrl标准分类预估方法。


背景技术:



2.农产品中农药mrl(maximum residue limit,最高残留限量)标准是由食品安全国家标准委员会决定的用于食品监管的强制国家标准,是提高农产品国际竞争力、保障农产品进口贸易顺利进行的重要保障。
3.一般来说格式化处理后的“农产品中农药mrl”是一个三元组《农药,农产品,mrl值》,到2020年我国农药残留限量标准及其配套检测方法标准达到1万项以上。每种农产品和农药在建立mrl标准之前都需要进行田间实验,实验耗时且昂贵,到目前为止仍然只是针对有限的《农药,农产品》组合建立了mrl,而大量的《农药,农产品》组合没有对应的mrl值。
4.深度学习技术的发展,使得拥有复杂特征的分类任务成为了可能。因此针对已有对应mrl值的《农药,农产品》组合收集其属性特征,并搭建深度学习网络,将“《农药,农产品》组合的属性特征”作为输入,将“对应的mrl值”作为标签,通过训练得到“用于mrl分类预估的深度学习模型”;该“训练后的深度学习模型”能够在《农药,农产品》组合没有对应的mrl值,或者无法便捷查询其mrl确切值时,通过农药、农产品的属性特征分类预估其mrl值;该“训练后的深度学习模型”也用于对一些不被完全信任场景下根据《农药,农产品》组合查询到的mrl值进行初步验证。
5.通过针对已有文献的详细查询,通过搭建深度学习模型,基于农药和农产品的属性特征研究《农药,农产品》组合对应的mrl值的探讨较少。


技术实现要素:



6.有鉴于此,本发明提供了一种基于深度学习的农产品中农药mrl标准分类预估方法,技术方案如下:
7.步骤一、获取“农产品中农药mrl标准”数据集,具体方法为:
8.通过网络爬虫程序从目标网站中获取“农产品中农药mrl标准”数据;目标网站如表1所示;获取的所有“农产品中农药mrl标准”数据保存为“mrl标准数据表”;“mrl标准数据表”的每一条数据记录形式为《农产品名,农药名,mrl值》,数据内容说明如表2所示;
9.表1获取农产品中农药mrl标准数据的目标网站
[0010][0011]
表2 mrl标准数据表的数据内容说明
[0012][0013]
步骤二、针对步骤一获得的“mrl标准数据表”中的所有农产品获取其属性,具体方法为:
[0014]
通过百度百科等网站搜索农产品属性,将农产品属性进行数值化转换,保存至“农产品属性表”,农产品属性表中包含的属性说明如表3所示;
[0015]
表3农产品属性表中包含的属性说明
[0016]
[0017]
[0018][0019]
步骤三、针对步骤一获得的“mrl标准数据表”中所有农药获取其属性,具体方法为:
[0020]
通过百度百科等网站搜索农药属性,将农药属性进行数值化转换,保存至“农药属性表”,农药属性表中包含的属性说明如表4所示;
[0021]
表4农药属性表中包含的属性说明表
[0022]
序号属性名数据类型1分子量float2含br溴的原子数int3含c碳的原子数int4含f氟的原子数int5含cl氯的原子数int6含h氢的原子数int7含n氮的原子数int8含o氧的原子数int9含p磷的原子数int10含s硫的原子数int11熔点float12是否溶于水数值化int13是否溶于苯数值化int14毒性级别数值化int15形态数值化int16对作物安全数值化int17环境污染数值化int18是否可以和碱溶合数值化int19是否可以和酸溶合数值化int20稳定性数值化int21挥发性数值化int22腐蚀性数值化int
[0023]
步骤四、基于步骤一获得的“mrl标准数据表”,结合步骤二获得的“农产品属性表”、步骤三获得的“农药属性表”,构建“mrl属性数据表”,具体方法为:
[0024]
步骤4.1、读取“mrl标准数据表”中的第一条记录,执行步骤4.2;
[0025]
步骤4.2、根据当前记录中的“农产品名”查询“农产品属性表”,如果该农产品存在,则继续执行步骤4.3;如果该农产品不存在,则舍弃该条记录,执行步骤4.6;
[0026]
步骤4.3、根据当前记录中的“农药名”查询“农药属性表”,如果该农药存在,则继续执行步骤4.5;如果该农药不存在,则舍弃该条记录,执行步骤4.6;
[0027]
步骤4.4、将步骤4.2查询到的农产品属性、步骤4.3查询到的农药属性,以及当前记录中的mrl值拼接为一条记录,命名为记录a;
[0028]
记录a中包含农产品属性、农药属性、mrl值,该条记录有60个农产品属性、22个农药属性、1个mrl值,共83个数据;
[0029]
步骤4.5、将步骤4.4得到的记录a,存入“mrl属性数据表”;
[0030]
步骤4.6、如当前记录是“mrl标准数据表”中的最后一条记录,则所有记录处理完毕,执行步骤五;否则,读取“mrl标准数据表”中的下一条记录,执行步骤4.2;
[0031]
步骤五、对“mrl属性数据表”中的60个农产品属性和22个农药属性数据进行归一化;针对每一列农产品属性或农药属性,归一化的具体方法为:
[0032]
步骤5.1、获取当前列的数据最小值,命名为x
min
;获取当前列的数据最大值,命名为x
max

[0033]
步骤5.2、将所有记录中的当前列的属性值进行归一化,归一化函数如公式1所示:
[0034][0035]
其中x为属性值,x
min
和x
max
为步骤5.1中获取的最小值和最大值,x
norm
为归一化结果;
[0036]
步骤六、在“mrl属性数据表”中增加1列,命名为“mrl标签”;mri标签的设置方法如下:
[0037]
步骤6.1、对“mrl属性数据表”中所有记录,统计每一种mrl值对应的记录数;
[0038]
步骤6.2、对记录数最多的10种mrl值,根据记录数由多到少依次设置“mrl值”对应的“mrl标签”为1、2、3、4、5、6、7、8、9、10;
[0039]
步骤6.3、将“步骤6.2”中未设置“mrl标签”的“mrl值”,设置其对应的“mrl标签”为11,即将所有未设置“mrl标签”的“mrl值”归为一类;
[0040]
步骤七、对“mrl属性数据表”中每一种mrl标签对应的记录进行上采样,以解决各类别样本数目的不平衡问题,提高模型的训练效果;
[0041]
上采样采用朴素随机上采样算法,针对设定的每种mrl标签对应的记录上限数h,具体步骤为:
[0042]
步骤7.1、根据当前mrl标签对应的记录数l,计算上采样倍率;上采样倍率为上限数h与记录数l的比值;命名上采样倍率的整数部分为n;
[0043]
步骤7.2、将当前mrl标签对应的所有记录,复制(n-1)次;
[0044]
步骤7.3、在当前mrl标签对应的所有记录中,随机采样(h-n*l)条记录;
[0045]
经过上采样处理后,当前mrl标签对应的记录数将达到上限数h条;
[0046]
步骤八、将上采样处理后的“mrl属性数据表”中的所有记录,通过随机采样划分为训练集和测试集;训练集的记录数可以设定为所有记录的80%,训练集之外的记录为测试集;
[0047]
步骤九、搭建“农产品中农药mrl标准分类预估模型”的网络结构;该模型的主要特是使用多个融合注意力机制的inception结构来提取和识别特征,具体的构建步骤如下:
[0048]
步骤9.1、网络结构中的第一个部分由3*3的卷积层和2*2的最大池化层组成;该部分的输入为10*10*1的特征图,经过该部分的计算后,可得到一个5*5*64的特征图;
[0049]
步骤9.2、网络结构的第二个部分由两个串联的“融合通道注意力机制的inception结构”、一个2*2的最大池化层和一个“融合通道注意力机制的inception结构”构成;
[0050]
其中,“融合通道注意力机制的inception结构”的构建包含“构建inception结构”和“为inception结构添加通道注意力机制”两个实现步骤;“构建inception结构”的具体方法如“步骤9.3”,“为inception结构添加通道注意力机制”的具体方法如“步骤9.4”;
[0051]
步骤9.3、构建inception结构;
[0052]
inception结构是googlenet提出的瓶颈网络结构,它能够在增加网络深度和宽度的同时减少参数,并使得网络具有结构的稀疏性;
[0053]
inception结构由一个1*1的卷积层,其后并联1*1卷积层、3*3卷积层、5*5卷积层和3*3最大池化层四个模块,并对这四个并联的模块输出进行拼接构成;
[0054]
其中,首先使用的1*1的卷积层可将特征图的深度调整到256,得到大小为5*5*256的特征图;
[0055]
其后四个并联的模块采用不同大小的卷积层,使较小的卷积层能够提取局部的特征,较大的卷积层能够提取全局特征,增加输出特征图的多样性,四个并联模块均输出5*5*256的特征图;最后对四个模块产生的特征图在通道方向上进行拼接,拼接后的输出为5*5*1024的特征图,命名该5*5*1024的特征图为“组合特征图”;
[0056]
步骤9.4、为inception结构添加通道注意力机制;
[0057]
se block模块被用来为inception结构添加通道注意力机制,该模块共包含两个分支;
[0058]
第一个分支是由一层全局池化层和两层全连接网络层构成;该分支首先对“步骤9.3”产生的“组合特征图”进行全局池化,得到长度为1024的特征向量;然后使用评分网络将该特征向量处理为长度为1024的通道权重向量,来表示通道之间的相关性;
[0059]
第二个分支,对“步骤9.3”产生的“组合特征图”与第一个分支得到的“通道权重向量”相乘,利用权重对“组合特征图”的不同通道的重要性加以区分;
[0060]
步骤9.5、网络的第三部分由1*1的最大池化层和分类器组成;
[0061]
其中,1*1的最大池化层用于调整特征图的大小得到长度为1024的特征向量;将该特征向量输入到全连接层和softmax构成的分类器中,输出模型预测的结果;
[0062]
步骤十、选择focalloss函数作为“农产品中农药mrl标准分类预估模型”网络结构的损失函数,损失函数的形式如公式2所示:
[0063]
f=-(1-α)*(1-p
t
)
γ
*log(p
t
)
ꢀꢀꢀ
(2)
[0064]
其中p
t
为模型输出的各类别的概率,α为平衡因子,根据样本原始的数目设定,用来平衡样本本身的比例不均,其值于样本的数量成正比;当γ因子大于0时,能够减少易分类样本的损失,使训练过程更关注于易错分的样本;
[0065]
步骤十一、设定“农产品中农药mrl标准分类预估模型”的训练参数,具体设定值如表5所示;
[0066]
表5分类预估模型训练参数设定
[0067]
序号训练参数参数设定1学习率0.0012batch4003epoch1004优化算法adam5dropout0.8
[0068]
步骤十二、基于“步骤八”中获得的训练集,以训练集数据中的“农产品属性部分”和“农药属性部分”作为模型输入,以训练集数据的“mrl标签”数据作为模型输出,训练“农产品中农药mrl标准分类预估模型”;
[0069]
当模型在训练集上的准确率在“连续15到20个epoch”内的变化幅度在1%以内时停止训练,保存训练好的模型,命名为模型m;
[0070]
步骤十三、以“农产品中农药mrl标准分类预估模型”在测试集上的准确率来评价模型的有效性;
[0071]
当模型在测试集上的准确率高于0.7时,则可认定该模型可用,则“农产品中农药mrl标准分类预估模型”制作完成,可执行步骤十四;否则可认定该模型不可用,退出;
[0072]
步骤十四、基于“步骤十二”获得的模型m,实现农产品中农药mrl的分类预估,具体方法为:
[0073]
步骤14.1、基于输入的“农产品名”查询“农产品属性表”,基于输入的“农药名”查询“农药属性表”,将查询得到的农产品属性、农药属性拼接为一条记录,命名为记录b;
[0074]
步骤14.2、将记录b中的数据,通过“步骤五”所描述的方法,进行数据归一化;
[0075]
步骤14.3、以数据归一化后的记录b作为模型m的输入,输出其分类预估得到的“mrl标签”;
[0076]
步骤14.4、根据“步骤六”中的映射方法,获得“mrl标签”对应的“mrl值”;
[0077]
至此,农产品中农药mrl标准的分类预估方法执行完成;
[0078]
有益效果:
[0079]
通过本方法,能够实现基于农产品属性和农药属性,分类预估《农产品、农药》组合对应的mrl值;能从数据层面对农产品属性、农药属性与它们对应的mrl值之间的关系进行探讨;能够在无法查询到mrl值时,通过农产品、农药的属性大致预估其mrl值,或者对查询到的mrl值进行初步验证。
附图说明
[0080]
图1为本发明的流程图
[0081]
图2农产品中农药mrl标准分类预估模型的网络结构
[0082]
图3融合通道注意力机制的inception结构
具体实施方式
[0083]
下面结合附图并举例实施例,对本发明进行详细描述;
[0084]
步骤一、获取“农产品中农药mrl标准”数据集,具体方法如下;
[0085]
通过网络爬虫程序从目标网站中获取“农产品中农药mrl标准”数据;获取的所有“农产品中农药mrl标准”数据保存为“mrl标准数据表”;“mrl标准数据表”的每一条数据记录形式为《农产品名,农药名,mrl值》;
[0086]
本实施例中,以python语言编写的网络爬虫程序,以食品中农药最大残留限量标准网站(http://2763.foodmate/)为目标网站;在目标网站中获取中的所有农产品;以农产品“豌豆”为例,使用python selenium库在目标网站中模拟点击“豌豆”一项,得到“豌豆”中农药名与mrl值的表格;以表格中其中一行为例,该行内容如表6所示;
[0087]
表6“豌豆”中农药“tolfenpyrad”的检测标准
[0088][0089]
以农药英文名称作为农药名,以最大残留(mg/kg)作为mrl值,使用beautifulsoup获取该行数据中的《农药名,mrl值》,得到《tolfenpyrad,0.1》;将其与“豌豆”组成一条数据记录《“豌豆”,tolfenpyrad,0.1》;将该条数据保存至“mrl标准数据表”;将食品中农药最大残留限量标准网站中所有农产品的数据依照此进行保存,共计获得5010条数据;
[0090]
步骤二、针对步骤一获得的“mrl标准数据表”中的所有农产品获取其属性,具体方法为:
[0091]
通过百度百科等网站搜索农产品属性,将农产品属性进行数值化转换,保存至“农产品属性表”;
[0092]
本实施例中,以获取豌豆的属性信息为例,在百度百科检索豌豆,进入豌豆的百度百科,然后就会得到豌豆的界、门、纲、是否喜温度、是否耐寒、是否喜干燥、生长周期等;然后将数据数值化处理,豌豆的60个属性数值化后的结果如表7所示;
[0093]
表7“豌豆”数值化处理结果表
[0094]
[0095][0096]
步骤三、针对步骤一获得的“mrl标准数据表”中所有农药获取其属性,具体方法为:
[0097]
通过百度百科等网站搜索农药属性,将农药属性进行数值化转换,保存至“农药属性表”;
[0098]
本实施例中,以获取农药tolfenpyrad(唑虫酰胺)的属性信息为例,在百度检索tolfenpyrad,进入tolfenpyrad的词条,然后就会得到tolfenpyrad的化学式、分子量、熔点、形态、环境污染程度、毒性级别、挥发性、腐蚀性等;然后将数据数值化处理,分子式全部转为是否含有某化学元素,不同的属性值,由不同的数字代表;农药tolfenpyrad的22个属性数值化后的结果如表8所示;
[0099]
表8“tolfenpyrad”数值化处理结果
[0100]
[0101][0102]
步骤四、基于步骤一获得的“mrl标准数据表”,结合步骤二获得的“农产品属性表”、步骤三获得的“农药属性表”,构建“mrl属性数据表”,具体方法为:
[0103]
步骤4.1、读取“mrl标准数据表”中的第一条记录,执行步骤4.2;
[0104]
步骤4.2、根据当前记录中的“农产品名”查询“农产品属性表”,如果该农产品存在,则继续执行步骤4.3;如果该农产品不存在,则舍弃该条记录,执行步骤4.6;
[0105]
步骤4.3、根据当前记录中的“农药名”查询“农药属性表”,如果该农药存在,则继续执行步骤4.5;如果该农药不存在,则舍弃该条记录,执行步骤4.6;
[0106]
步骤4.4、将步骤4.2查询到的农产品属性、步骤4.3查询到的农药属性,以及当前记录中的mrl值拼接为一条记录,命名为记录a;
[0107]
记录a中包含农产品属性、农药属性、mrl值,该条记录有60个农产品属性、22个农药属性、1个mrl值,共83个数据;
[0108]
步骤4.5、将步骤4.4得到的记录a,存入“mrl属性数据表”;
[0109]
步骤4.6、如当前记录是“mrl标准数据表”中的最后一条记录,则所有记录处理完毕,执行步骤五;否则,读取“mrl标准数据表”中的下一条记录,执行步骤4.2;
[0110]
本实施例中,以《豌豆、tolfenpyrad(唑虫酰胺)》数据为例,该条数据中前60个为农产品的属性信息,例如所属届、所属门、所属纲、所属亚纲、所属目、所属亚目、所属属、所属种等属性;第61个到82个为农药的属性信息,例如分子量、含br的原子数、含c的原子数、含f的原子数等属性;最后一个为mrl值为0.1;因此《豌豆、tolfenpyrad(唑虫酰胺)》的拼接
后的数据为:1、1、1、1、20、8、6、7、35、74、83、0、0、0、1、1、0、0、0、1、1、0、0、0、0、0、0、1、1、1、1、0、0、1、0、0、105.0、7.4、0.3、21.2、3.0、37.0、220.0、190.0、0.43、0.09、2.3、14.0、1.21、0.0、332.0、1.2、21.0、43.0、1.7、0.65、1.29、0.22、127.0、1.74、383.9、0、21、0、1、22、3、2、0、0、87.8、0、1、1、1、0、0、1、1、1、0、1、0.1;
[0111]
步骤五、对“mrl属性数据表”中的60个农产品属性和22个农药属性数据进行归一化;针对每一列农产品属性或农药属性,归一化的具体方法为:
[0112]
步骤5.1、获取当前列的数据最小值,命名为x
min
;获取当前列的数据最大值,命名为x
max

[0113]
步骤5.2、将所有记录中的当前列的属性值进行归一化;
[0114]
本实施例中,第60列“每公斤所含se硒(微克)”属性列中,x
min
=0.01,x
max
=3.71,则“豌豆”的“每公斤所含se硒(微克)”值的对应数值1.74的转换过程如公式3所示:
[0115][0116]
将该列的所有数值进行归一化,得到x
norm
的值为0.467,把数据映射到0~1之间;
[0117]
步骤六、在“mrl属性数据表”中增加1列,命名为“mrl标签”;mrl标签的设置方法如下:
[0118]
步骤6.1、对“mrl属性数据表”中所有记录,统计每一种mrl值对应的记录数;
[0119]
本实施例中,每一种mrl值对应的记录数如表9所示;
[0120]
表9原始的mrl值情况
[0121]
序号mrl值记录数序号mrl值记录数10.05970180.62820.02882196.01930.01721200.81940.2502210.071951.03362215.01860.5329234.01472.02962425.01385.0159250.061190.11502620.08103.0125270.0058110.387280.157120.0361298.071310.056300.96140.751310.043157.0423240.02161.529339.02170.4293430.01
[0122]
步骤6.2、对记录数最多的10种mrl值,根据记录数由多到少依次设置“mrl值”对应的“mrl标签”为1、2、3、4、5、6、7、8、9、10;
[0123]
步骤6.3、将“步骤6.2”中未设置“mrl标签”的“mrl值”,设置其对应的“mrl标签”为11,即将所有未设置“mrl标签”的“mrl值”归为一类;
[0124]
本实施例中,“mrl标签”为11的“mrl值”包含0.7、0.07、0.3、0.4、7.0、6.0、10.0、1.5、8.0、15.0、9.0、20.0、4.0、25.0、0.6、30.0、40.0、0.04、0.03、0.15、0.8、0.06、0.9、0.005,共计24项;“mrl值”和“mrl标签”的对应关系如表10所示;
[0125]
表10“mrl值”与“mrl标签”的对应关系表
[0126]
序号mrl值记录数mrl标签10.05970120.02882230.01721340.2502451.0336560.5329672.0296785.0159890.11509103.01251011其他54011
[0127]
步骤七、对“mrl属性数据表”中每一种mrl标签对应的记录进行上采样,以解决各类别样本数目的不平衡问题,提高模型的训练效果;
[0128]
上采样采用朴素随机上采样算法,针对设定的每种mrl标签对应的记录上限数h,具体步骤为:
[0129]
步骤7.1、根据当前mrl标签对应的记录数l,计算上采样倍率;上采样倍率为上限数h与记录数l的比值;命名上采样倍率的整数部分为n;
[0130]
本实施例中,以“mrl标签”为9的记录为例,“mrl标签”为9的记录数l为150条,设定采样上限h为2000条,得到“mrl标签”为9的记录由150条上采样到2000条的采样倍率为13.3,采样倍率的整数部分n为13;
[0131]
步骤7.2、将当前mrl标签对应的所有记录,复制(n-1)次;
[0132]
本实施例中,使用python的np.repeat()方法将全部“mrl标签”为9的记录复制(n-1)次,即将150条“mrl标签”为9的记录复制12次,得到1950条记录;
[0133]
步骤7.3、在当前mrl标签对应的所有记录中,随机采样(h-n*l)条记录;
[0134]
本实施例中,再从150条“mrl标签”为9的记录中随机采样50条记录;
[0135]
经过上采样处理后,当前mrl标签对应的记录数将达到上限数h条;
[0136]
本实施例中,经过上采样处理后“mrl标签”为9的记录由150条增加为2000条;
[0137]
经过上采样处理后,每一种mrl标签对应的记录在上采样前后的记录数如表11所示;
[0138]
表11 mrl标签对应的记录在上采样前后的记录数
[0139]
序号mrl标签mrl值上采样前记录数上采样后记录数110.059702000220.028822000330.017212000440.25022000551.03362000660.53292000772.02962000885.01592000990.1150200010103.012520001111其他5412000
[0140]
步骤八、将上采样处理后的“mrl属性数据表”中的所有记录,通过随机采样划分为训练集和测试集;训练集的记录数可以设定为所有记录的80%,训练集之外的记录为测试集;
[0141]
本实例中,训练集和测试集的记录数如表12所示;
[0142]
表12训练集和测试集的记录数
[0143]
数据集记录数记录数占比所有记录22000100%训练集1760080%测试集440020%
[0144]
步骤九、搭建“农产品中农药mrl标准分类预估模型”的网络结构;该模型的主要特是使用多个融合注意力机制的inception结构来提取和识别特征,具体的构建步骤如下:
[0145]
步骤9.1、网络结构中的第一个部分由3*3的卷积层和2*2的最大池化层组成;该部分的输入为10*10*1的特征图,经过该部分的计算后,可得到一个5*5*64的特征图;
[0146]
步骤9.2、网络结构的第二个部分由两个串联的融合通道注意力机制的inception结构、一个2*2的最大池化层和一个融合通道注意力机制的inception结构构成;
[0147]“融合通道注意力机制的inception结构”的构建包含“构建inception结构”和“为inception结构添加通道注意力机制”两个实现步骤;“构建inception结构”的具体方法如“步骤9.3”,“为inception结构添加通道注意力机制”的具体方法如“步骤9.4”;
[0148]
步骤9.3、构建inception结构;
[0149]
inception结构是googlenet提出的瓶颈网络结构,它能够在增加网络深度和宽度的同时减少参数,并使得网络具有结构的稀疏性;
[0150]
inception结构由一个1*1的卷积层,其后并联1*1卷积层、3*3卷积层、5*5卷积层和3*3最大池化层四个模块,并对这四个并联的模块输出进行拼接构成;
[0151]
其中,首先使用的1*1的卷积层可将特征图的深度调整到256,得到大小为5*5*256的特征图;
[0152]
其后四个并联的模块采用不同大小的卷积层,使较小的卷积层能够提取局部的特征,较大的卷积层能够提取全局特征,增加输出特征图的多样性,四个并联模块均输出5*5*
256的特征图;最后对四个模块产生的特征图在通道方向上进行拼接,拼接后的输出为5*5*1024的特征图,命名该5*5*1024的特征图为“组合特征图”;
[0153]
步骤9.4、为inception结构添加通道注意力机制;
[0154]
se block模块被用来为inception结构添加通道注意力机制,该模块共包含两个分支;
[0155]
第一个分支是由一层全局池化层和两层全连接网络层构成;该分支首先对“步骤9.3”产生的“组合特征图”进行全局池化,得到长度为1024的特征向量;然后使用评分网络将该特征向量处理为长度为1024的通道权重向量,来表示通道之间的相关性;
[0156]
第二个分支,对“步骤9.3”产生的“组合特征图”与第一个分支得到的“通道权重向量”相乘,利用权重对“组合特征图”的不同通道的重要性加以区分;
[0157]
步骤9.5、网络的第三部分由1*1的最大池化层和分类器组成;
[0158]
其中,1*1的最大池化层用于调整特征图的大小得到长度为1024的特征向量;将该特征向量输入到全连接层和softmax构成的分类器中,输出模型预测的结果;
[0159]
本实施例中使用tensorflow搭建“农产品中农药mrl标准分类预估模型”网络结构,模型结构图如附图2所示,“融合通道注意力机制的inception结构”如附图3所示;
[0160]
步骤十、选择focal loss函数作为“农产品中农药mrl标准分类预估模型”网络结构的损失函数,损失函数的形式如公式4所示:
[0161]
f=-(1-α)*(1-p
t
)
γ
*log(p
t
)
ꢀꢀꢀ
(4)
[0162]
其中p
t
为模型输出的各类别的概率,α为平衡因子,根据样本原始的数目设定,用来平衡样本本身的比例不均,其值于样本的数量成正比;当γ因子大于0时,能够减少易分类样本的损失,使训练过程更关注于易错分的样本;
[0163]
步骤十一、设定“农产品中农药mrl标准分类预估模型”的训练参数;
[0164]
步骤十二、基于“步骤八”中获得的训练集,以训练集数据中的“农产品属性部分”和“农药属性部分”作为模型输入,以训练集数据的“mrl标签”数据作为模型输出,训练“农产品中农药mrl标准分类预估模型”;
[0165]
当模型在训练集上的准确率在“连续15到20个epoch”内的变化幅度在1%以内时停止训练,保存训练好的模型;
[0166]
本实施例中具体的步骤为:
[0167]
(1)定义超参:数据尺寸为(10*10*1),batch为400,学习率为0.001,epoch为100,优化函数为adam;
[0168]
(2)获取batch:调用data.return_cnn_data_batch()加载数据;
[0169]
(3)产生一个会话:sess=tf.session();
[0170]
(4)初始化:sess.run(tf.global_variables_initializer());
[0171]
(5)产生一个saver来存储训练好的模型:saver=tf.train.saver();
[0172]
(6)进行batch的训练:一步一个batch;每1步打印当前训练集准确率,并将数据保存在json文件中;
[0173]
(7)模型在训练集上的准确率在连续15个epoch变化幅度小于1%时,模型停止训练并保存好的模型,命名为m;
[0174]
步骤十三、以“农产品中农药mrl标准分类预估模型”在测试集上的准确率来评价
模型的有效性;
[0175]
当模型在测试集上的准确率高于0.7时,则可认定该模型可用,则“农产品中农药mrl标准分类预估模型”制作完成,可执行步骤十四;否则可认定该模型不可用,退出;
[0176]
本实施例将测试集的数据输入到保存好的模型m中,得到模型m在测试集上的准确率为0.72,准确率高于0.7模型可用,“农产品中农药mrl标准分类预估模型”制作完成;
[0177]
步骤十四、基于“步骤十二”获得的“农产品中农药mrl标准分类预估模型”,实现农产品中农药mrl的分类预估,具体方法为:
[0178]
步骤14.1、基于输入的“农产品名”查询“农产品属性表”,基于输入的“农药名”查询“农药属性表”,将查询得到的农产品属性、农药属性拼接为一条记录,命名为记录b;
[0179]
本实施例中输入农产品名“甘蓝”查询“农产品属性表”得到“甘蓝”的属性信息,输入农药名“isocarbophos”查询“农药属性表”得到“isocarbophos”的属性信息;将农产品属性、农药属性拼接为一条记录b:1、1、1、5、2、0、34、0、36、91、22、0、0、0、0、1、0、0、0、0、0、0、0、0、0、0、1、1、0、1、1、0、0、0、1、0、22.0、1.5、0.2、3.6、1.0、12.0、0.5、93.2、0.03、0.03、0.4、40、0.5、0、124、27.2、49、12、0.6、12、0.25、0.04、26.0、0.96、289.29、0、11、0、16、0、1、4、1、1、4、0、1、3、1、0、0、0、0、1、0、0;
[0180]
步骤14.2、将记录b中的数据,通过“步骤五”所描述的方法,进行数据归一化;
[0181]
本实施例中对记录b中的数据进行归一化,归一化后的结果为:0.539、0.642、0.843、0.501、0.518、0.0、0.979、0.0、0.798、0.537、0.637、0.0、0.0、0.0、0.0、0.871、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.543、0.604、0.0、0.568、0.774、0.0、0.0、0.0、0.931、0.0、0.836、0.968、0.377、0.772、0.903、0.576、0.355、0.651、0.076、0.031、0.396、0.8、0.586、0.0、0.678、0.861、0.77、0.5、0.656、0.566、0.373、0.167、0.881、0.643、0.817、0.0、0.824、0.0、0.508、0.0、0.591、0.67、0.872、0.653、0.52、0.0、0.501、0.782、0.933、0.0、0.0、0.0、0.0、0.741、0.0、0.0;
[0182]
步骤14.3、以数据归一化后的记录b作为“农产品中农药mrl标准分类预估模型”的输入,输出其分类预估得到的“mrl标签”;
[0183]
本实施例中将归一化后的记录b,输入到保存好的模型m中,模型m分类预估出的“mrl标签”为1;
[0184]
步骤14.4、根据“步骤六”中的映射方法,获得“mrl标签”对应的“mrl值”;
[0185]
本实施例中查询“mrl值”与“mrl标签”的对应关系表,得到“mrl标签”为1的“mrl值”为0.05;通过查询实际mrl值,结果一致;使用模型m,对农产品和农药进行mrl值预估的部分结果如表13所示;
[0186]
表13对农产品和农药进行mrl值预估的部分结果
[0187][0188][0189]
至此,农产品中农药mrl标准的分类预估方法执行完成。

技术特征:


1.基于深度学习的农产品中农药mrl标准分类预估方法,其特征在于,包括以下步骤:步骤一、获取“农产品中农药mrl标准”数据集,具体方法为:通过网络爬虫程序从目标网站中获取“农产品中农药mrl标准”数据;获取的所有“农产品中农药mrl标准”数据保存为“mrl标准数据表”;“mrl标准数据表”的每一条数据记录形式为<农产品名,农药名,mrl值>;步骤二、针对步骤一获得的“mrl标准数据表”中的所有农产品获取其属性,具体方法为:通过百度百科等网站搜索农产品属性,将农产品属性进行数值化转换,保存至“农产品属性表”;步骤三、针对步骤一获得的“mrl标准数据表”中所有农药获取其属性,具体方法为:通过百度百科等网站搜索农药属性,将农药属性进行数值化转换,保存至“农药属性表”;步骤四、基于步骤一获得的“mrl标准数据表”,结合步骤二获得的“农产品属性表”、步骤三获得的“农药属性表”,构建“mrl属性数据表”,具体方法为:步骤4.1、读取“mrl标准数据表”中的第一条记录,执行步骤4.2;步骤4.2、根据当前记录中的“农产品名”查询“农产品属性表”,如果该农产品存在,则继续执行步骤4.3;如果该农产品不存在,则舍弃该条记录,执行步骤4.6;步骤4.3、根据当前记录中的“农药名”查询“农药属性表”,如果该农药存在,则继续执行步骤4.5;如果该农药不存在,则舍弃该条记录,执行步骤4.6;步骤4.4、将步骤4.2查询到的农产品属性、步骤4.3查询到的农药属性,以及当前记录中的mrl值拼接为一条记录,命名为记录a;记录a中包含农产品属性、农药属性、mrl值,该条记录有60个农产品属性、22个农药属性、1个mrl值,共83个数据;步骤4.5、将步骤4.4得到的记录a,存入“mrl属性数据表”;步骤4.6、如当前记录是“mrl标准数据表”中的最后一条记录,则所有记录处理完毕,执行步骤五;否则,读取“mrl标准数据表”中的下一条记录,执行步骤4.2;步骤五、对“mrl属性数据表”中的60个农产品属性和22个农药属性数据进行归一化;针对每一列农产品属性或农药属性,归一化的具体方法为:步骤5.1、获取当前列的数据最小值,命名为x
min
;获取当前列的数据最大值,命名为x
max
;步骤5.2、将所有记录中的当前列的属性值进行归一化,归一化函数如公式1所示:其中x为属性值,x
min
和x
max
为步骤5.1中获取的最小值和最大值,x
norm
为归一化结果;步骤六、在“mrl属性数据表”中增加1列,命名为“mrl标签”;mrl标签的设置方法如下:步骤6.1、对“mrl属性数据表”中所有记录,统计每一种mrl值对应的记录数;步骤6.2、对记录数最多的10种mrl值,根据记录数由多到少依次设置“mrl值”对应的“mrl标签”为1、2、3、4、5、6、7、8、9、10;步骤6.3、将“步骤6.2”中未设置“mrl标签”的“mrl值”,设置其对应的“mrl标签”为11,即将所有未设置“mrl标签”的“mrl值”归为一类;步骤七、对“mrl属性数据表”中每一种mrl标签对应的记录进行上采样,以解决各类别样本数目的不平衡问题,提高模型的训练效果;
上采样采用朴素随机上采样算法,针对设定的每种mrl标签对应的记录上限数h,具体步骤为:步骤7.1、根据当前mrl标签对应的记录数l,计算上采样倍率;上采样倍率为上限数h与记录数l的比值;命名上采样倍率的整数部分为n;步骤7.2、将当前mrl标签对应的所有记录,复制(n-1)次;步骤7.3、在当前mrl标签对应的所有记录中,随机采样(h-n*l)条记录;经过上采样处理后,当前mrl标签对应的记录数将达到上限数h条;步骤八、将上采样处理后的“mrl属性数据表”中的所有记录,通过随机采样划分为训练集和测试集;训练集的记录数可以设定为所有记录的80%,训练集之外的记录为测试集;步骤九、搭建“农产品中农药mrl标准分类预估模型”的网络结构;该模型的主要特是使用多个融合注意力机制的inception结构来提取和识别特征,具体的构建步骤如下:步骤9.1、网络结构中的第一个部分由3*3的卷积层和2*2的最大池化层组成;该部分的输入为10*10*1的特征图,经过该部分的计算后,可得到一个5*5*64的特征图;步骤9.2、网络结构的第二个部分由两个串联的“融合通道注意力机制的inception结构”、一个2*2的最大池化层和一个“融合通道注意力机制的inception结构”构成;其中,“融合通道注意力机制的inception结构”的构建包含“构建inception结构”和“为inception结构添加通道注意力机制”两个实现步骤;“构建inception结构”的具体方法如“步骤9.3”,“为inception结构添加通道注意力机制”的具体方法如“步骤9.4”;步骤9.3、构建inception结构;inception结构是googlenet提出的瓶颈网络结构,它能够在增加网络深度和宽度的同时减少参数,并使得网络具有结构的稀疏性;inception结构由一个1*1的卷积层,其后并联1*1卷积层、3*3卷积层、5*5卷积层和3*3最大池化层四个模块,并对这四个并联的模块输出进行拼接构成;其中,首先使用的1*1的卷积层可将特征图的深度调整到256,得到大小为5*5*256的特征图;其后四个并联的模块采用不同大小的卷积层,使较小的卷积层能够提取局部的特征,较大的卷积层能够提取全局特征,增加输出特征图的多样性,四个并联模块均输出5*5*256的特征图;最后对四个模块产生的特征图在通道方向上进行拼接,拼接后的输出为5*5*1024的特征图,命名该5*5*1024的特征图为“组合特征图”;步骤9.4、为inception结构添加通道注意力机制;se block模块被用来为inception结构添加通道注意力机制,该模块共包含两个分支;第一个分支是由一层全局池化层和两层全连接网络层构成;该分支首先对“步骤9.3”产生的“组合特征图”进行全局池化,得到长度为1024的特征向量;然后使用评分网络将该特征向量处理为长度为1024的通道权重向量,来表示通道之间的相关性;第二个分支,对“步骤9.3”产生的“组合特征图”与第一个分支得到的“通道权重向量”相乘,利用权重对“组合特征图”的不同通道的重要性加以区分;步骤9.5、网络的第三部分由1*1的最大池化层和分类器组成;其中,1*1的最大池化层用于调整特征图的大小得到长度为1024的特征向量;将该特征向量输入到全连接层和softmax构成的分类器中,输出模型预测的结果;
步骤十、选择focal loss函数作为“农产品中农药mrl标准分类预估模型”网络结构的损失函数,损失函数的形式如公式2所示:f=-(1-α)*(1-p
t
)
γ
*log(p
t
)
ꢀꢀꢀꢀꢀ
(2)其中p
t
为模型输出的各类别的概率,α为平衡因子,根据样本原始的数目设定,用来平衡样本本身的比例不均,其值于样本的数量成正比;当γ因子大于0时,能够减少易分类样本的损失,使训练过程更关注于易错分的样本;步骤十一、设定“农产品中农药mrl标准分类预估模型”的训练参数;步骤十二、基于“步骤八”中获得的训练集,以训练集数据中的“农产品属性部分”和“农药属性部分”作为模型输入,以训练集数据的“mrl标签”数据作为模型输出,训练“农产品中农药mrl标准分类预估模型”;当模型在训练集上的准确率在“连续15到20个epoch”内的变化幅度在1%以内时停止训练,保存训练好的模型,命名为模型m;步骤十三、以“农产品中农药mrl标准分类预估模型”在测试集上的准确率来评价模型的有效性;当模型在测试集上的准确率高于0.7时,则可认定该模型可用,则“农产品中农药mrl标准分类预估模型”制作完成,可执行步骤十四;否则可认定该模型不可用,退出;步骤十四、基于“步骤十二”获得的模型m,实现农产品中农药mrl的分类预估,具体方法为:步骤14.1、基于输入的“农产品名”查询“农产品属性表”,基于输入的“农药名”查询“农药属性表”,将查询得到的农产品属性、农药属性拼接为一条记录,命名为记录b;步骤14.2、将记录b中的数据,通过“步骤五”所描述的方法,进行数据归一化;步骤14.3、以数据归一化后的记录b作为模型m的输入,输出其分类预估得到的“mrl标签”;步骤14.4、根据“步骤六”中的映射方法,获得“mrl标签”对应的“mrl值”;至此,“基于多尺度注意力机制的部分遮挡面部的表情识别方法”执行完毕。

技术总结


本发明涉及一种基于深度学习的农产品中农药MRL标准分类预估方法,属于计算机学科下的深度学习领域。实现步骤为:首先针对已有对应MRL值的<农药,农产品>组合收集其属性特征,并对属性特征进行数值化、拼接、归一化、上采样等处理,获取用于模型训练和验证的训练集与测试集;然后构建农产品中农药MRL标准分类预估模型,该模型的主要特是使用多个融合注意力机制的Inception结构来提取和识别特征;通过训练集数据对模型进行训练,使用测试集数据验证模型的有效性;最后使用满足准确性要求的模型来实现农产品中农药MRL的分类预估,并输出对应的MRL值;通过本方法,能够基于农产品属性和农药属性预估<农产品、农药>组合对应的MRL值。值。值。


技术研发人员:

陈红倩 李宗润 王馨怡

受保护的技术使用者:

北京工商大学

技术研发日:

2022.10.21

技术公布日:

2022/12/23

本文发布于:2024-09-23 11:11:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/44588.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:步骤   农药   属性   农产品
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议