基于宽度卷积神经网络的异常农情数据检测方法
2022-01-27彭旭,饶元,乔焰
彭 旭,饶 元,乔 焰
(1 安徽农业大学 信息与计算机学院,安徽 合肥 230036; 2 合肥工业大学 计算机与信息学院,安徽 合肥 230001)
精准农业是推动农业现代化与信息化发展的关键,其重要的农情数据采集阶段离不开农业物联网 (Internet of things in agriculture)的支持[1]。现阶段,农业物联网已在农业生产中得到广泛应用,复杂的传感器网络按时间序列连续地采集温度、湿度、CO2和NH3浓度等大量的环境及作物生长信息。分析和评估采集的信息可为农业精准决策提供保障。因此,农业物联网数据的有效挖掘和利用已成为农业信息化领域的研究热点[2-3]。然而,由于农业作业环境往往较为恶劣,且受制造工艺和网络传输的限制,导致采集到的数据中不可避免地存在异常[4],这些异常可能干扰数据分析并影响农业精准决策。
费欢等[5]以传感器网络多模态数据流之间的相干性为理论基础,利用多维数据和滑动窗口模型对异常数据及其来源进行检测和评估。Zhao等[6]提出一种基于多分类器集成的漂移补偿监督学习算法,利用支持向量机 (Support vector machine,SVM)和改进的长短期记忆 (Long short term memory,LSTM)构建多分类器模型,通过归一化和加权策略,在每次分类过程中去除精确度最低的基分类器,使模型适应传感器漂移,有效地提高了传感器漂移分类性能。Wang等[7]利用传感器之间的数据相关性,使用信号空间投影和卡尔曼滤波器实现传感器漂移的盲校准。高鹏等[8]利用LSTM和广义回归神经网络 (Generalized regression neural network,GRNN)模型对土壤墒情进行建模,实现对柑橘土壤含水量和土壤电导率的预测。
在传统的机器学习任务中,需要用多种信号处理算法检测数据流中的异常,导致效率较低,在数据分析过程中易出现过拟合或欠拟合现象。此外,大多数据异常检测算法泛化能力较弱,不适用于其他类型的异常检测。文献[6]中采用SVM和LSTM的结合模型,获得了理想精确度,但增加了时间复杂度。文献[7]所提信号空间投影和卡尔曼滤波器方法,利用传感器之间的相关性解决传感器漂移问题,但传感器难以密集部署,模型应用场景狭小、泛化能力较弱。
近年来,随着硬件计算能力的显著提升,人工智能(Artificial intelligence)和深度学习(Deep learning)技术已广泛应用于图像识别[9]、自然语言处理[10]、推荐系统[11]和音频识别[12]领域。深度结构的神经网络在传感器数据异常检测领域也得到广泛应用,Bao等[13]提出了一种基于计算机视觉和深度学习的传感器数据异常检测方法,该方法将时间序列信号转换为图像并保存在灰度图像中,通过训练两隐藏层堆叠的自动编码深度神经网络来自动检测未标签的数据。Tang等[14]提出了一种基于卷积神经网络的传感器数据异常检测方法,在图片中融合数据的时域和频域特征,并采用卷积神经网络对图片进行分类,但时域和频域可视化方法无法保存数据的时间数值依赖性。Liu等[15]提出一种动态宽度增量学习算法,通过深度叠加宽度学习系统,解决数据回归和图像分类问题,但在数据预处理中,未采用有效方法增强数据时间依赖性。Wang等[16]提出一种格拉姆角求和域/差分域和马尔科夫过渡域的时间序列数据可视化方法,并采用平铺卷积神经网络学习图像特征,实现时间序列数据分类,但当原始时间序列过长时,重构后的矩阵规模大,增加了运算时间消耗。
针对以上研究现状,本文设计了一种宽度卷积神经网络 (Broad convolution neural network,BCNN)的农情数据异常检测方法,并通过滑动窗口机制解决单次输入模型数据量大引起的模型检测耗时长和准确率不足等问题。研究数据预处理与重构方法、滑动窗口尺寸对异常检测性能的影响,对比分析不同异常检测模型的性能差异,以期为精准农业的数据高质量采集提供参考。
1 材料与方法
1.1 试验材料
试验数据采用位于安徽省长丰县双墩镇的合肥安谷农业有限公司羊圈监测点传感器的空气湿度、空气温度、土壤湿度和土壤温度数据,时间覆盖范围从2019年12月1日至2019年12月31日,采样间隔3 min,共11 355条观测数据。为便于开展检测性能对比分析,在数据中引入一组随机故障率(10%~40%)的异常点[17]。为系统评估所提方法的性能,采用80%的数据集作为训练集、20%的数据集作为测试集。数据集如图1所示,4种数据的周期性和趋势特征存在差异。空气湿度数据值域波动较大,周期性特征不明显。空气温度数据呈周期性变化,波动较小。土壤湿度数据具有明显的周期性特征,值域范围较小。土壤温度数据周期性特征与空气温度数据相似,且值域波动更小。
图1 试验数据集Fig.1 Experimental dataset
1.2 异常检测框架
基于宽度学习的农情数据异常检测框架图如图2所示。传感器端负责采集数据并发送至数据中心,数据中心负责存储数据、训练模型和异常检测。模型训练过程如下:部署传感器并采集数据,将数据归一化,基于数据周期和采样间隔等参数确定滑动窗口尺寸l,编码为极坐标表示,并基于滑动窗口尺寸l划分子集,采用格拉姆角求和域(Gramian summation angular field,GASF)方法重构为矩阵,最后训练得到BCNN数据异常检测模型。
图2 基于BCNN的传感器数据异常检测框架Fig.2 Anomaly detection framework of sensor data based on BCNN
在异常数据实时检测过程中,数据中心对采集的最新数据进行归一化处理,编码为极坐标并重构矩阵,最后输入模型检测异常。若模型判断为正常,则将其保存为历史数据,否则,校准异常并保存。校准异常可采用回归模型预测、均值替换等方法[18]。
1.3 数据预处理
设传感器节点在某时刻共采集到n个时间序列数据X={x1,x2,···,xn},为降低采样数据取值范围对模型训练效果的影响,将数据归一化至[-1,1]区间内,表示为:
式中,xi表示原始时间序列数据,X'表示归一化后的时间序列数据,Xmax和Xmin分别表示原始时间序列中的最大值和最小值,表示归一化后的数据。归一化将原始数据映射至[-1,1]区间内,将有量纲数据转化为无量纲形式,降低不同量纲对模型的影响,并保留原始数据特征,使不同的数据集处于相同数量级,便于对比分析。
模型处理一维时间序列时,无法有效保持数据周期性时间依赖,无法有效提取部分数据之间的相关性,且对于具有不同周期的时间序列数据,模型泛化能力较差。为此,本文通过将时间序列数据编码为极坐标并重构为矩阵,实现模型对时间序列数据时间依赖性的保持和泛化性的增强。
具体的,将归一化后的数据编码为极坐标[16],时间序列数据的数值和时间戳分别编码为极角和极径,表示为:
式中,ti表示时间序列数据的时间戳,n表示时间序列数据数量,θ和r分别表示编码后数据的极径和极角。基于极坐标的编码方法是预处理和分析时间序列数据的一种新方法。反余弦函数在[-1,1]区间内是单调的,因此,式(2)在时间序列数据和极坐标之间构建了一个双射。给定一组时间序列数据,可产生唯一的映射关系,且相对笛卡尔坐标系,极坐标可保留绝对时间关系。
滑动窗口控制单次输入模型的数据量,是影响异常检测模型性能的重要参数,选取合适的滑动窗口尺寸可有效提高模型准确率和降低时间消耗。本文设计了基于数据特征的滑动窗口尺寸l的计算方法:
式中,β为支持度衰减因子,Δt为农业物联网传感器数据采样间隔,T为农情数据特征周期,S为农情数据的标准差。滑动窗口尺寸对模型准确率和效率存在影响,窗口尺寸过大会增加模型检测耗时,过小则会导致模型无法有效提取数据特征,从而降低准确率。式中T/Δt控制滑动窗口选择函数上升幅度和衰减速度,Δt/β+lnS平衡采样间隔和数据特征的影响,可满足模型异常检测准确率和效率需求。
根据滑动窗口尺寸l,将编码后的数据分为若干个子集并将每个子集数据采用GASF方法重构为矩阵,采用类热力图形式可视化:
式中,G为重构后的矩阵,为编码为极坐标并划分子集后的数据。
通过式(2)将归一化后的数据编码为极坐标,采用式(3)重构为矩阵。时间序列数据编码为极坐标后仍保留数据连续性,重构后的矩阵随着位置的变化,时间会增加,可有效保存时间依赖性。此外,矩阵也包含了时间相关性,其中的Gi,j元素叠加了原始数据中第i和第j个数据相关性,主对角线包含了原始数据信息。因此,可采用神经网络提取高维数据特征。
为展示完整的数据预处理方法,以土壤湿度数据为例,完整流程如图3所示。首先,采用式(1)将原始土壤湿度数据归一化至[-1,1]区间内,并通过式(2)编码为极坐标表示(图3B),极坐标数据保留时间依赖性,原始异常数据在极坐标系中仍存在离群特征(即极坐标图中存在显著的异常点),接着,采用式(3)将极坐标数据划分子集,并通过式(4)重构矩阵。图3C展示了部分矩阵,异常数据可在GASF矩阵中显著表示,矩阵中出现颜色突变即表示该点数据存在异常,如矩阵1、2、5、6和7,矩阵中颜色连续变化即表示无异常,如矩阵3、4和8。预处理后的数据特征更为显著,可采用模型更有效地检测异常数据。
图3 土壤湿度数据预处理流程Fig.3 Soil humidity data preprocessing process
1.4 宽度卷积神经网络框架
设计的宽度卷积神经网络结构如图4所示。模型采用宽度学习系统强化传统CNN模型[19]。BCNN的第1层(Layer 1)是输入层,输入矩阵维度为k×k,其中k表示滑动窗口尺寸。第2层(Layer 2)是卷积层,其中卷积核(Filter)数量为20,每个卷积核尺寸为41×41,步长(Stride)为1,采用Relu激活函数。第3层(Layer 3)是Reduction层,其中包含1个池化模块和2个卷积模块,该层采用残差连接。池化模块中,池大小 (Pool size)为 3×3,步长为 3,池化方式为最大池化(Maxpooling)。卷积模块中,第1层卷积采用1×1的卷积核,第2层卷积采用20个3×3大小的卷积核,步长为3。卷积模块和池化模块输出的特征图按其深度连接,并采用Relu函数激活,被平坦化为一维向量输入宽度学习系统。第4层(Layer 4)采用特征提取器代替传统CNN模型中的Softmax分类器,其中包含1 000个特征节点。第5层(Layer 5)为特征增强器,其中包含1 000个特征增强节点,第4层中特征提取器的输出被特征增强器随机映射输出。最后将特征提取器和特征强化器的输出连接,并加权重构,得到整个模型的输出。
图4 宽度卷积神经网络结构Fig.4 The structure of broad convolution neural network
卷积可通过连续地变换提取数据的复杂特征。在卷积层中,利用卷积核对输入数据进行卷积:
池化是一种降采样形式。它将图像划分为若干个区域,每个区域独立地按池化方式输出,减小了数据空间大小,参数数量和模型计算量也随之下降,在一定程度上防止过拟合的发生。本文采用最大池化方式,表示为:
宽度学习系统[15]是一种通过随机方法将特征扩展到广阔空间的模型,其主要由特征节点和增强节点组成。特征节点将输入随机映射,映射特征由增强节点随机扩展,将最后所有特征加权连接输出。
残差层的输出被平坦化为一维向量X并输入至特征节点,其表示为:
式中,权重矩阵Wzi和偏置矩阵 βzi随机生成, φ ()表示激活函数,Zi表示第i个特征节点的输出,所有特征节点的集合记为其中n为特征节点数量。类似的,特征增强节点可表示为:
式中,权重矩阵Whj和偏置矩阵 βhj随机生成, ξ ()表示激活函数,Hj表示第j个特征增强节点的输出,所有特征节点的集合记为其中m为特征增强节点数量。
将特征节点和特征增强节点连接加权重构,输出可表示为:
式中,权重矩阵W可通过伪逆法求解,可表示为:
式中,A表示特征节点和增强节点输出组合成的扩展矩阵,λ表示对权重矩阵W的约束,I表示单位矩阵,AT表示转置矩阵。
1.5 检测性能评价指标
本文采用准确率(Accuracy)、F1值和模型检测时间(Time)等指标评估模型的异常检测性能,其表示为:
式中,Tp表示正确分类至目标类的数量,Fp表示其他类错误分类至目标类的数量,Tn表示其他类正确分类的数量,Fn表示目标类错误分类至其他类的数量。
准确率是正确分类的数据与数据集数据总量的比值,反映模型的正确检测能力。精确度(Precision)和召回率(Recall)分别是正确分类为异常数据的个数与所有分类的异常数据、实际异常数据的比值。F1值同时兼顾了精确度和召回率。除异常检测能力外,模型检测时间也是评估模型是否符合实际应用的重要参数。
2 试验与分析
2.1 试验环境与参数
试验采用 Windows 10 操作系统、Intel Core i5 CPU、8GB内存的台式计算机,Python3.6编程语言和Tensor Flow2.0.0框架用于异常检测模型搭建和应用。主要研究滑动窗口尺寸对模型异常检测性能的影响及模型对不同特征数据的异常检测灵敏性,以甄选最优的异常检测方法。在此基础上,对比分析不同异常检测模型性能。
试验将BCNN与当前使用较为广泛的SVM、随机森林(Random forest,RF)和卷积神经网络方法进行比较。SVM模型[20-21]核函数采用径向基函数(Radial basis function,RBF),核函数参数ε为 0.2,正则化参数C为1;RF模型[22]聚类数c=2,模糊程度系数m=3,卷积神经网络方法从文献[14]中引用。BCNN模型的特征节点和特征增强节点数量均为1 000。对于滑动窗口,传感器监测数据特征周期T为24 h,支持度衰减因子β取0.5[23],采样间隔Δt为3 min,空气湿度、空气温度、土壤湿度和土壤温度的滑动窗口尺寸分别为105、88、76和91。为控制模型参数随机初始化和训练引起的随机性,重复5次试验,以平均数进行结果分析。
2.2 滑动窗口尺寸对检测性能的影响
为评估所提滑动窗口选择方法的有效性,以BCNN模型为例,采用窗口尺寸60~120的数据集进行试验,结果如图5所示。空气湿度数据集中,异常检测准确率在窗口尺寸[60,100]区间内呈上升趋势,在窗口尺寸100时达到峰值;空气温度数据集中,窗口尺寸在[60,90]区间时,异常检测准确率随窗口尺寸增大而增加,窗口尺寸在90时准确率表现最佳,窗口尺寸大于90时准确率无显著变化;土壤湿度数据集中,在窗口尺寸[60,70]区间内准确率呈增加趋势,在[70,120]区间内准确率趋于稳定;土壤温度数据集中,在窗口尺寸[90,100]时准确率最高。值得注意的是,土壤湿度数据集呈最高准确率的窗口尺寸远小于其他数据集,这是由于其数据波动不显著,模型仅需少量数据即可学习其特征。试验所得出的最佳滑动窗口尺寸,与式(3)得出的窗口尺寸基本相符。因此,基于数据特征的滑动窗口选择方法可有效地提高模型异常检测准确率。
图5 不同滑动窗口尺寸与数据集的异常检测准确率Fig.5 Anomaly detection accuracy of different sliding window sizes and datasets
模型检测耗时随滑动窗口尺寸变化如图6所示。空气湿度数据集中,滑动窗口尺寸在[90,100]区间时,检测耗时最短。空气温度数据集中,在窗口尺寸[80,100]区间时检测耗时最短,处于理想状态。土壤湿度数据集中,当窗口尺寸变化时,模型检测耗时变化不明显,窗口尺寸80左右时检测耗时最短。土壤温度数据集中,在窗口尺寸[80,90]区间内,检测耗时较短,处于理想水平,其中窗口尺寸90时最优。总体上,窗口尺寸和检测耗时呈二次相关。波动性较强的数据(如空气湿度),窗口尺寸变化时,检测耗时波动更大;而波动小、较为平稳的数据(如土壤湿度),改变滑动窗口尺寸对检测耗时影响较小。
图6 不同滑动窗口尺寸与数据集的模型检测耗时Fig.6 Anomaly detection time of different sliding window sizes and datasets
综上,采用滑动窗口机制后,可提升模型对异常数据的检测能力,针对不同特征数据选取合适的滑动窗口尺寸,可提升异常检测准确率和降低检测耗时。
2.3 模型异常检测性能
对比分析SVM、RF、CNN和BCNN模型的数据异常检测性能,各种模型的异常检测准确率和F1值如图7所示。BCNN模型在空气湿度、空气温度、土壤湿度和土壤温度数据集上均表现出良好的异常检测性能,准确率均在97%以上,其中空气湿度数据集的准确率最高,达到99.29%,优于SVM、RF和CNN的95.68%、94.67%和93.31%。相较于CNN模型,BCNN模型在空气湿度、空气温度、土壤湿度和土壤温度数据集上准确率分别提升了5.98%、1.48%、2.19%和2.55%;相较于SVM和RF模型,BCNN模型在空气湿度数据集上的准确率与二者差异最为明显,分别高出3.61%和4.62%。由图1可知,空气湿度数据波动性较大,周期性特征弱于其他数据集,故BCNN在处理波动性大的数据时性能更佳。BCNN模型在空气湿度、空气温度、土壤湿度和土壤温度数据集上的F1值分别为:0.996 4、0.988 7、0.994 9 和 0.992 0,均优于其他模型。空气温度数据集中,4种模型的F1值差值较小,均小于0.007 6。在波动性较大的空气湿度数据集中,BCNN模型的F1值达到0.996 4,分别优于SVM、RF和CNN 模型 0.018 8、0.024 1 和 0.031 0。因此,BCNN模型异常检测性能优于其他模型,且BCNN模型对波动性大的数据检测能力更优,而其他模型随着数据波动性增大,异常检测能力有所下降。
图7 模型异常检测准确率与F1值Fig.7 Anomaly detection accuracy and F1 score of different models
总之,相较于传统机器学习算法和深度学习模型,BCNN模型对异常数据的检测能力在不同特征的数据集上均得到了一定程度的提升。其中,对波动性较大的数据集的异常检测能力最优。
各种异常检测模型检测耗时如表1所示。BCNN模型检测耗时大幅低于同类的深度模型CNN,仅为其1/6~1/7。相较于SVM和RF传统机器学习算法,BCNN模型虽然需要额外的检测时间,但异常检测准确率和F1值都有明显提升,增强了模型对波动性较大数据的检测能力,同时,BCNN模型的超参数数量较少,有效地降低了超参数选择的复杂度。综上,对于农情数据异常检测,BCNN模型在检测能力和耗时方面优于同类深度学习模型,在检测能力和超参数选择方面优于传统机器学习算法,具有良好的适用性。
表1 不同模型异常检测耗时Table 1 Anomaly detection time of different models s
3 结论
本研究提出了基于宽度卷积神经网络的农情数据异常检测方法,采用养殖场传感器环境监测数据,综合评估了数据异常检测性能。试验结果表明,基于数据特征的滑动窗口划分子集,可有效地增加模型检测准确率和降低检测耗时。在异常检测模型对比试验中,BCNN模型取得了最高准确率和F1值,对空气和土壤温湿度数据异常检测的平均准确率和F1值分别达到了98.54%和0.993 0,相比于SVM、RF和CNN模型的平均准确率(96.86%、95.79%和95.49%)和F1 值 (0.983 7、0.978 1 和 0.976 8),表现出良好的检测效果。BCNN模型对波动性较大数据集的检测能力更强,准确率和F1值平均优于其他模型4.74%和0.024 6。另一方面,BCNN模型检测时间仅为同类深度学习模型CNN的1/6~1/7,且比传统机器学习模型SVM和RF采用更少的超参数。本研究为农业物联网数据高质量感知及农业信息化提供了一定的参考。考虑到无线传感器网络规模不断扩展,后续研究将更多地关注传感器网络群体异常数据检测,进一步提高农业物联网感知数据质量。