温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
GRU
种猪
生长
性能
预测
平台
设计
施洋剑
数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering200我国作为农牧业大国,随着信息化的发展,我国的畜牧业发展也取得了许多实用性研究。记录并且跟踪了畜牧养殖相关数据,综合农牧业生产过程中的数据进行实时监测分析,能够为农牧场的管理提供科学的策略。而其中,数据分析是十分重要的环节,也是实现智慧畜牧的基础。通过对数据的实时获取,合理管理,利用人工智能与数据挖掘相关技术对采集的数据进行关联挖掘,估算预测,轨迹跟踪,快速检索,实时定位和数据可视化。中国的农牧业与畜牧业在国际竞争中的弱势所在为数据的缺乏,缺乏准确的畜牧数据是数据挖掘技术难以得到有效利用的原因之一。因此,许多专注于牧业研究的推出一系列的智慧畜牧相关产品,在数据采集,数据整理,数据清洗,数据挖掘1等各个环节严格监控,使数据实现自身价值。1 云平台设计1.1 物联网功能1.1.1 种猪自动入栏每个新的批次的种猪在入栏前会在右耳打上电子标签,当猪只首次入栏后,系统需要识别到该猪只为新入栏的猪只,系统自动给该猪只建立身份档案,记录其测定开始日期,测定初始体重,耳牌号,所在栏舍,并将其测定状态设为“测定中”。1.1.2 测定数据上传测定数据上传(如表1)是实现平台功能的基础要求,保证数据上传的可靠性是关键要求。测定过程中,猪只每次进入测定设备站吃料,测定设备将猪只的耳牌号,采食量,称重体重,采食开始时间和采食结束时间上传云端。表 1:数据上传功能用例表用例编号UC-01前置条件流后端服务与设备建立通信连接执行事件流1.判断接入协议2.用指定协议解析消息3.判断设备接入权限4.验证数据准确性5.转换数据格式6.数据持久化后置流上传数据验证无误后,保存到数据库异常流设备不在平台中,数据缺失,数据异常则抛出异常信息1.2 云平台功能1.2.1 用户管理功能作为运行在公网的云服务,且平台的数据并不对客户以外的人员开放,所以用户管理功能是必须的。平台应具有三种类型的账号,分别为平台使用人员账号,物联网接入设备认证账号。使用人员账号应根据不同级别分配不同的数据操作权限和页面查看权限。首先,账号需要根据人员所属猪场不同,来限制其查看指定猪场数据。其次,根据人员在猪场职位差别,分配数据增删改查的权限。物联网设备分配的账号,应只分配数据上传和控制参数下发接口的访问权限。基于 GRU 的种猪生长性能预测云平台的设计施洋剑(安徽建筑大学电子与信息工程学院 安徽省合肥市 230031)摘要:本文将利用物联网,云计算和神经网络来搭建基于GRU门控循环神经网络的种猪生长性能预测云平台。本次研究的主要工作和成果有:(1)搭建物联网数据采集平台,设计云模式的物联网通信架构,用网关+MQTT 依靠工业互联网实现全国范围内种猪生长数据自动采集。(2)利用云计算技术,构建分布式云服务应用,为种猪生长测定数据设计集中的数据存储,分析和应用的云平台。设计时考虑云平台数据的安全性,服务的稳定性和性能瓶颈。(3)数据挖掘,使用GRU神经网络对测定的生长数据进行训练。选取影响因子较大的特征进行数据预处理后,加入 GRU 模型中训练,得到种猪生长性能预测模型。关键词:预测模型;生长性能预测;GRU;数据采集平台数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering2011.2.2 设备管理功能作为一个不限地域登录的云平台,目标是让更多的猪场和集团将自己的测定设备接入平台。为了让用户能够高效地管理到自己地设备,平台需提供设备管理功能。猪场用户可以将自己使用的测定站设备添加到平台中,对设备信息进行增删改查,同时客户还可以通过平台远程下发设备的运行参数,帮助企业高效管理测定设备。1.2.3 种猪基础数据管理云平台需建立种猪基础档案,管理猪只静态数据。管理的静态数据包括 ID,耳牌,性别,测定开始日期,测定结束日期,测定开始体重,测定结束体重,舍号,栏号,测定状态。1.2.4 采食基础数据报表展示种猪单次测定的数据,该数据是测定站与云端通讯的原始数据。展示内容包括种猪 ID,电子耳牌,采食开始时间,采食结束时间,采食间隔时间,料槽初重,料槽末重,采食量,体重,下料次数,DPC(单次下料量)。界面提供数据修改,删除,报表导出,数据插补。1.2.5 个体测定报告提供猪只个体测定周期内所有单日测定的报表信息,曲线。统计测定周期内的测定天数,记录天数,采食总量,饲料消耗量,总增重,料肉比(FCR)。1.2.6 生长性能预测通过神经网络算法对已有的测定数据进行学习,训练出适用于种猪生长性能预测的模型。在界面中体现对测定中的猪只进行生长预测。1.3 平台总体架构平台技术架构分为四个层级,访问层,接口层,服务层,存储层。访问层用于数据的输入和输出,包含物联网设备的接入,人机交互界面。接口层提供通讯协议,定义平台接入标准,以支持各种物联网设备的人机交互应用的数据交换。服务层为后端应用,提供业务逻辑处理,数据处理,服务治理等后端服务。存储层包含数据持久化和数据缓存等功能。1.4 测定流程图图 1:种猪生长测定-预测流程图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering202种猪生长测定-预测流程如图 1 所示。2 数据分析2.1 GRU门控循环神经网络GRU 门控循环神经网络是 RNN 的升级,传统的RNN 循环神经网络训练长度过长的数据后会出现梯度消失或者爆炸的问题,主要是离当前节点越远的数据对当前的影响会变弱很多,这使得 RNN 时序上的依赖变弱很多,也使得模型只能学习到短期数据的依赖。因此,基于门控机制的 RNN 循环神经网络被设计出来,如 LSTM(Long Short Term Memory)长 短 记 忆 网 络和 GRU(Gate Recurrent Unit)门控循环神经网络。而GRU 是 LSTM 的简化版,它减少的参数来减少计算,以此来提升了计算的效率,同时还不影响准确度。GRU 引入重置门(reset gate)和更新门(update gate)。rt为重置门,zt为更新门,为候选隐藏值。重置门 rt用来控制计算当前时刻的新信息时,保留多少之前的记忆。如果 rt为 0,那么 中只会包含当前的输入信息。当rt是1时,GRU单元将退化为RNN单元。更新门 zt控制从前一时刻的隐藏状态 ht-1中忘记多少信息,同时控制将当前时刻新的信息加入到隐藏层中。单元候选隐藏值 同时包含输入 xt和隐藏值 ht-1的信息:其中,表示 Hadamard 积,rt当重置门的值逼近于 0 时,会遗忘之前的信息。隐藏层最终计算 t 时刻的隐藏值 ht,ht受更新门的影响,zt越大,当前单元的输出值收到历史数据的影响越大,反之影响越小。在隐藏值确定后,计算 t 时刻的出输出值,GRU 表示为,通过损失函数计算 与yt之间的在t时刻的损失:那么整个样本的损失为:2.2 实验环境搭建实验过程在 python3.8 的版本上进行编程,集成开发环境用的 pycharm。模型使用 pytorch 深度学习框架来搭建基于 GRU3的种猪生长性能预测模型并进行训练,实验的数据集使用的是云平台在实验猪场测定的种猪数据,为直观地对比训练效果,使用 matplotlib4做数据展示。实验数据的基本信息如表 2。表 2:实验数据数据集来源样本数特征数训练集测试集云平台数据库11887480%20%2.3 数据清洗常见的处理异常数据的方法是样本移除和插补,样本移除适用于独立样本整体移除,插补适用于同一检测个体内少量数据的缺失。在本次研究的测定数据中,选取的是种猪 50 天左右的测定数据。实验中,将同一猪只测定数据不满 35 天的直接移除,达到 35 天的但数据有缺失的,做均值插补。2.3 预测模型的构建GRU 神经网络的训练需要确定输入,和输出的维度。在选取的样本集中特征数有 4 个,分别是饲养天数,体重,进食次数,采食量,因此输入的维度是 4。模型的最终用来预测下一天的体重,因此输出的维度是 1。将测定的数据作为模型的输入,通过前一天的测定数据预测的结果与第二的测定体重来计算损失函数,反复迭代更新参数,当最后的损失函数降到一定程度,图 2:预测效果图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering203固定训练后模型的参数作为预测模型,将测试集在预测模型中测试,比较预测值和真实值之间的残差,并用matplotlib 画出曲线,如果残差在合理范围内,并且曲线的预测趋势与实际值趋势符合,则认为预测模型合理。2.4 模型的训练模型训练前,将数据预处理好,好的数据是训练出优秀模型的基础,然后将数据以 batch 为组,结构化存储在数据库等待程序读取。模型的学习率设置为0.001,学习率过高会导致模型不收敛,学习率过低则导致收敛过慢或者无法学习。同一猪只的测定数据为 45 天,因此 Batchsize 设置为 45。训练模型时,使用 tanh 作为激活函数5。GRU 的隐藏层6原理上越多,拟合性越好,但是层数越,神经元越多,计算量越大,综合模型训练的精度和时间的要求,此次训练的隐藏层设置为 2 层,第一层神经元设为 130,第二层设为 65。训练时,损失函数为均方损失函数优 化 器 有 SGD、BGD、Momentum、Adagrad、Adadelta、RMSprop、Adam 等。BGD 优化时利用所有的训练数据计算梯度,因此计算缓慢,当数据量较大时效果更差,并且在训练时不能加入实时更新的数据。SGD 与 BGD 不同相对每个样本进行梯度更新,数据量较大时,也不会出现冗余的现象,计算梯度较快,也可以随时加入实时更新的数据,但是 SGD 噪声较多,令SGD 每次迭代并非都是最优方向,使其准确度下降。Momentum 可以加速SGD,并且有效的抑制了梯度震荡,加快了收敛速度。Adagrad 可以对低频参数做较大的更新,相反对高频的参数做郊县的更新,所以它适用于稀疏性的数据,但是 Adagrad 在训练时学习率会逐渐变的非常小。Adadelta 和 RMSprop 是为解决 Adagrad 学习率急剧下降而改进的算法。Adam 不仅具有 RMSprop 的优点,还兼备 Momentum 的优点,其实现简单,计算高效,能自动调整学习率,适合大数据场景和梯度稀疏或梯度存在消失的问题,因此选择 Adam 为模型的优化器。2.5 GRU模型的实验结果与分析本次实验的数据是实验猪场 2021 年同一批次 1000头育肥种猪的生长测定数据。数据来源于猪只进入测定设备采食过程,称重设备采集的饲料消耗,和猪只体重。通过特征工程转化为 4 个特征(采食天数,采食量,采食次数,体重)。将这 4 种特征作为变量输入模型中。算法迭代结束条件为:至少迭代 2000 次且 MSE7损失值 0.7。图 2 是测试集中随机选取猪只体重变化的预测值和实际值。横坐标表示测定日龄,纵坐标表示体重。可以看到预测曲线和实际曲线基本吻合的,说明通过预测值可以模拟去猪只在未来一段时间内的体重增长情况。3 总结本文基于国内种猪研行业落后的现状,观察到国内种猪研究在数据收集和利用上的不足,设计了一款可以帮助行业更快收集数据,保存数据,利用数据的云平台。为了更高效地收集数据,使用了基于 MQTT 的物联网通信架构,使得测定设备的数据能够自动上传云平台,保证了数据量。构建用了分布式的 Saas 云平台,利用数据库集群相互备份保证数据的安全,利用 Nginx 的负载均衡保证了服务的可靠性,利用 Redis 做数据缓存,降低了数据库的访问压力,提高了用户界面的响应速度。最后利用平台收集到的测定数据和 GRU