1.本发明属于工业控制系统异常检测研究技术领域,具体涉及一种基于相关性分析和三维卷积的工控异常检测方法、系统、设备及存储介质。
背景技术:2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.随着互联网和工业电子技术的迅速发展,大量的关键基础设施由于缺乏完善的安全保护措施正在遭遇前所未有的大规模的攻击。工业控制系统作为国家关键基础设施的“中枢神经”,其安全关系着社会和国家的安全。攻击者攻击关键基础设施,不仅让社会秩序和公共利益遭到损害,还会让工业互联网发展的相关产业的安全性遭到质疑。根据最新的互联网安全威胁报告得知,工业控制系统遭受的攻击数量正在大幅度增长。随着互联网技术的快速发展,攻击技术也随之发展,工控攻击事件的频频出现不断警示着我们需要加强对工业控制系统的防护。工业控制系统易受攻击的现状有其历史原因,即在网络威胁出现之前设计的工业控制系统缺乏对安全性能的考虑。因此现在预防工业控制系统遭受攻击是一件迫在眉睫且不轻松的事情。
4.工业控制系统中配备了各种网络传感器和执行器,可生成大量可用于检测异常的多变量时间序列数据。异常检测是防止工控系统发生事故、保证工控系统可靠运行的一项重要技术。为了确保工业控制系统的安全运行,已经有许多国内外研究者对异常检测技术进行了深入的研究。当前工业控制系统的异常检测方法可以分为三类:基于传统特征挖掘方法的异常检测、基于经典机器学习的异常检测、基于深度学习的异常检测。基于传统特征挖掘方法的异常检测方法包括丁小欧团队提出的时间序列相关图方法以及吕雪峰团队提出的状态迁移图等方法,然而,时间序列相关图的方法具有无法检测二进制数据之间异常的局限性,状态转移图方法则很少考虑传感器之间的潜在相关性。基于经典机器学习的异常检测方法在提高异常检测准确率方面取得了一定的进步,然而随着数据规模的不断增大,基于经典机器学习的异常检测方法也呈现出了其局限性,其局限性包括计算成本增大、检测性能下降,并且很难利用工控数据的时间相关性。基于深度学习的异常检测与基于传统特征挖掘方法、基于经典机器学习的异常检测方法相比,它的主要优势在于可以挖掘隐藏在大规模多元时间序列中的固有非线性相关性,并且不需要人工设计特征,然而基于深度学习的方法目前也存在一些不足,在处理工控数据异常检测任务时仅考虑数据的时序特征是不够的,为了提升异常检测的准确率、降低误报率,有必要考虑各传感器之间的依赖性。除此之外,确定输入到三维卷积神经网络中的自适用时间序列长度也是一个难点。因此,在以上研究问题的启发下,本发明提出了将改进的深度学习方法应用于工业控制系统异常检测。
技术实现要素:5.针对现有工控异常检测技术的不足,本发明提供了一种基于相关性分析和三维卷积的工控异常检测方法。
6.本发明旨在解决工业控制系统异常检测方法挖掘数据之间潜在关系不充分、没有兼顾时间和空间两个维度的特征、无法分析具有较长时间依赖关系的缺陷,以及解决输入到三维卷积神经网络中的时间序列只能是固定长度的问题,同时又要保证异常检测模型高准确率和低误报率,目的是提高工业控制系统异常检测模型的鲁棒性。
7.本发明首先将工控数据转化为rgb图,考虑到工控数据之间存在时间相关性以及空间相关性的特点,将三维卷积神经网络应用在工控异常检测任务中,同时结合注意力机制实现记忆多维时间序列长时间依赖关系。本发明能够有效实现对工业控制系统数据的异常检测,能够实现高准确率、低误报率的异常检测要求。
8.本发明还提供了一种基于相关性分析和三维卷积的工控异常检测系统、设备及存储介质。
9.术语解释:
10.1、三维卷积神经网络:是从二维卷积神经网络的基础上改变而来,它解决了二维卷积神经网络不能利用时序信息的问题,可以通过堆叠多个连续的图组成一个立方体,然后利用其卷积核呈立方体的优势,可以充分挖掘时间和空间双维度的特征。
11.2、注意力机制:是一种能够对输入进行分配权重以实现记忆关键信息的技术,它能够从大量信息中筛选出重要的信息,并给与分配很高的权重,相反,对于重要程度不高的信息给与分配较低的权重。
12.3、rgb图:是一种具有r、g、b三通道的彩色图,r、g、b分别代表了红、绿、蓝三种颜色,rgb图中每种颜色的取值范围都是0-255,每种颜色的占比越多,得到的颜色越亮。
13.本发明的技术方案为:
14.一种基于相关性分析和三维卷积的工控异常检测方法,包括:
15.获取工控数据,并进行预处理,预处理后划分为训练集和测试集;
16.基于相关性对训练集设计动态序列长度;
17.基于动态序列长度生成rgb图;
18.将生成的rgb图输入异常检测模型进行训练,得到训练后的异常检测模型;
19.对测试集进行相关性计算获得序列长度,使用训练集获得的最长序列长度l
max
将测试集生成rgb图,输入训练后的异常检测模型判断是否发生异常;
20.对待检测的工控数据依次经过所述预处理、设计动态序列长度、基于动态序列长度生成rgb图,将生成后的rgb图输入经过测试集测试后的异常检测模型判断是否发生异常;
21.其中,设计动态序列长度,包括利用序列的相关性特征进行相关性计算,获得不同时间长度的时间序列。
22.根据本发明优选的,利用序列的相关性特征进行相关性计算,获得不同时间长度的时间序列,包括:对工控数据进行规范化;计算两个相邻时间的工控数据之间的相关性,如果相关性超过阈值,则将当前序列长度加一,直到相关性低于阈值时停止,最终获得该序列长度。
23.具体的,包括步骤如下:
24.步骤1:假设在工业控制系统中,e=[e1,e2,...,em]表示m个设备,设备包括传感器和执行器,em表示第m个设备;将时间i获取的测量设备值即工控数据用xi表示,其中是设备em在时间i处的测量值;
[0025]
将工控数据进行规范化,规范化的具体方法如式(ⅰ)所示:
[0026][0027]
式(ⅰ)中,是xi的均值,σ是xi的标准差,x
i*
是经过规范化后的xi,
[0028]
步骤2:假设num表示当前序列长度,用于记录当前num条连续的测量设备值x
i*
之间存在强相关性,1≤i≤num,计算任意两个相邻时间的测量设备值x
i*
和x
j*
之间的相关性,如果x
i*
和x
j*
之间的相关性超过阈值τ,则将当前序列长度num加一,直到相关性低于阈值时停止,记录此时当前序列长度num,并将当前序列长度num加入到序列长度列表l中,再次记录新的序列长度,计算x
i*
和x
j*
之间的相关性的具体方法如式(ⅱ)所示:
[0029][0030]
式(ⅱ)中,是x
i*
的均值,是x
j*
的均值;
[0031]
最终,得到序列长度列表l=[l1,l2,...,ln]。
[0032]
根据本发明优选的,基于动态序列长度生成rgb图,包括:归一化处理,归一化处理后重构矩阵,矩阵中的每个元素对应256个灰度值,得到一张灰度图,将连续的三张灰度图叠加成一张rgb图。
[0033]
具体包括步骤如下:
[0034]
根据序列长度列表l得到l的最长序列长度l
max
,假设m是最接近m
×
l
max
的平方数;
[0035]
步骤a:假设e=[e1,e2,...,em]表示m个设备,设备包括传感器和执行器,s=[s1,s2,...,sm]表示m个设备对应的测量值,每个设备的测量值都是一个列向量,对s中的每个列向量都进行归一化,具体方法如式(ⅲ)所示:
[0036][0037]
式(ⅲ)中,是si的最小值,是si的最大值,si′
是归一化后的s;
[0038]
步骤b:根据序列长度列表l,将li(1≤i≤n)条测量设备值按照顺序分别重构成一个的矩阵,当li×
m(1≤i≤n)小于时,在末尾用零补齐,经此步骤得到n个的矩阵;
[0039]
步骤c:矩阵中的每个元素都有256个可能的值,对应256个灰度值,得到一张灰度图,将连续的三张灰度图叠加成一张rgb图,所有rgb图按照时间顺序排列得到rgb图流。
[0040]
将生成的rgb图输入异常检测模型进行训练,得到训练后的异常检测模型,包括:
[0041]
具体实现过程如下:
[0042]
构建三维卷积神经网络即3d resnet,卷积层的卷积核大小设置为3
×3×
3,步长stride设置为1,padding设置为1,共有128个卷积核;卷积核的大小表示为(kw,kh,kc),kw,kh,kc分别表示卷积核的宽度、高度和通道数;
[0043]
设输入数据的大小为(w
in
,h
in
,c
in
),输出数据的大小为(w
out
,h
out
,c
out
);其输出特征图的大小计算方法如式(ⅳ)、(
ⅴ
)、(ⅵ)所示:
[0044][0045][0046]cout
=c
out
ꢀꢀꢀ
(ⅵ)
[0047]
异常检测模型构建完成后,训练过程使用均方误差mse作为损失函数,如式(ⅶ)所示:
[0048][0049]
式(ⅶ)中,yi表示真实值,表示预测值,n表示序列的总数,mse越小代表模型训练的越准确。
[0050]
根据本发明优选的,对测试集进行相关性计算获得序列长度,使用训练集获得的最长序列长度l
max
将测试集生成rgb图,输入训练后的异常检测模型判断是否发生异常,包括:
[0051]
步骤a:假设通过训练集得到的序列长度列表为l=[l1,l2,...,ln],通过训练集得到的最长序列长度为l
max
,通过测试集得到的序列长度列表为l
test
=[l1,l2,...,lr],当前序列长度num用于记录序列长度且初始值设为1,m是最接近m
×
l
max
的平方数,m是指工控系统中测量设备的数量;
[0052]
步骤b:浅层分析异常数据:计算测试集的数据序列长度lr:首先将测试数据按照公式(ⅰ)进行规范化处理,然后将测试数据按照时间顺序进行计算相邻的两条测试数据之间的相关性,如果相关性阈值τ超过0.9,则将num值加一,直到相邻的两条测试数据之间的相关性低于相关性阈值τ时停止,则当前序列长度num的值记为lr,将lr加入到测试集序列长度列表l
test
中,并判断lr是否在序列长度列表l=[l1,l2,...,ln]中,如果存在,则继续判断测试集的下一个数据序列长度是否在序列长度列表l中,直至对测试集中所有的数据序列长度进行了判断,如果不存在,则判定在该时间段内发生了时间间隔异常;
[0053]
步骤c:深度分析异常数据:将测试集按照公式(ⅲ)归一化后,利用步骤b得到的测试集序列长度列表l
test
=[l1,l2,...,lr],将lr条测量设备值按照时间顺序分别重构成一个的矩阵,1≤r≤n,当lr×
m(1≤r≤n)小于时,在末尾用零补齐,经此步骤得到n个的矩阵,矩阵中的每个元素对应256个灰度值,每个矩阵得到一张灰度图,将连续的三张灰度图叠加成一张rgb图,所有rgb图按照时间顺序排列得到测试集的rgb
图流;利用训练好的异常检测模型对测试集的rgb图流进行预测,利用当前时间长度为t的历史值预测未来时间长度为t的序列,那么残差向量如式(
ⅷ
)所示:
[0054][0055]
式(
ⅷ
)中,表示用当前时间长度为t的历史值预测未来时间长度为t的序列得到的残差向量。表示未来时间长度为t的序列的真实值。表示对未来时间长度为t的序列的预测值。t表示利用当前时间长度为t的历史值预测未来时间长度为t的序列;
[0056]
将残差向量标准化得到其正则化的方法如式(
ⅸ
)所示:
[0057][0058]
式(
ⅸ
)中,是的均值,是的标准差;
[0059]
如果满足则判定为异常,否则,判定为正常。
[0060]
根据本发明优选的,预处理,包括对工控数据采用均值插补的方式补全缺失值。
[0061]
一种基于相关性分析和三维卷积的工控异常检测系统,包括:
[0062]
数据预处理模块,被配置为:获取工控数据,并进行预处理,预处理后划分为训练集和测试集;
[0063]
序列相关性计算模块,被配置为:利用序列的相关性特征进行相关性计算,获得不同时间长度的时间序列;
[0064]
rgb图生成模块,被配置为:基于动态序列长度生成rgb图;
[0065]
构建模型模块与参数调优模块,被配置为:将生成的rgb图输入异常检测模型进行训练,得到训练后的异常检测模型;
[0066]
异常检测模块,被配置为:对测试集进行相关性计算获得序列长度,使用训练集获得的最长序列长度l
max
将测试集生成rgb图,输入训练后的异常检测模型判断是否发生异常。
[0067]
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于相关性分析和三维卷积的工控异常检测方法的步骤。
[0068]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现基于相关性分析和三维卷积的工控异常检测方法的步骤。
[0069]
本发明的有益效果为:
[0070]
现有的工业控制系统的异常检测方法存在准确率低、误报率高的缺陷,且有些异常检测模型在建模时没有兼顾工控数据的时序和空间特性,而有些异常检测模型在考虑数据的时序特性时,只考虑了在固定较短时间内的时间依赖关系。与现有的工业控制系统异常检测模型相比,本发明的有益效果有以下几点:
[0071]
1、本发明通过对时序数据进行相关性计算,根据相关性得到不同长度的时间序列,解决只能对固定长度时序数据分析的问题;
[0072]
2、本发明以rgb图为载体,使用改进的三维卷积神经网络能够捕获具有时间和空
间双维度的特征,可以全面的分析工控系统中多维数据的时空相关性;
[0073]
3、本发明从粗粒度分析序列数据,实现检测时序数据的序列长度异常,进一步从细粒度分析时序数据,利用深度学习方法深度解析数据特征,实现对数据的异常检测,本发明除了拥有有效的理论基础之外,也有较强的实践效果,其准确率能够得到提升。
附图说明
[0074]
图1为本发明异常检测方法总体框架图;
[0075]
图2为一种基于相关性分析和三维卷积的工控异常检测方法流程图;
[0076]
图3为本发明异常检测模型的结构示意图;
[0077]
图4(a)是本发明在batadal数据集上生成的灰度图;
[0078]
图4(b)是本发明在batadal数据集上生成的rgb图;
[0079]
图5(a)是本发明在swat数据集上生成的灰度图;
[0080]
图5(b)是本发明在swat数据集上生成的rgb图;
[0081]
图6(a)是本发明在wadi数据集上生成的灰度图;
[0082]
图6(b)是本发明在wadi数据集上生成的rgb图;
[0083]
图7(a)是本发明在batadal数据集上的训练损失变化示意图;
[0084]
图7(b)是本发明在swat数据集上的训练损失变化示意图;
[0085]
图7(c)是本发明在wadi数据集上的训练损失变化示意图。
具体实施方式
[0086]
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0087]
实施例1
[0088]
一种基于相关性分析和三维卷积的工控异常检测方法,如图1及图2所示,包括:
[0089]
获取工控数据,并进行预处理,预处理后划分为训练集和测试集;
[0090]
基于相关性对训练集设计动态序列长度;
[0091]
基于动态序列长度生成rgb图;
[0092]
将生成的rgb图输入异常检测模型进行训练,得到训练后的异常检测模型;
[0093]
对测试集进行相关性计算获得序列长度,使用训练集获得的最长序列长度l
max
将测试集生成rgb图,输入训练后的异常检测模型判断是否发生异常;
[0094]
对待检测的工控数据依次经过所述预处理、设计动态序列长度、基于动态序列长度生成rgb图,将生成后的rgb图输入经过测试集测试后的异常检测模型判断是否发生异常;
[0095]
其中,设计动态序列长度,包括利用序列的相关性特征进行相关性计算,获得不同时间长度的时间序列。
[0096]
实施例2
[0097]
根据实施例1所述的一种基于相关性分析和三维卷积的工控异常检测方法,其区
别在于:
[0098]
预处理,包括对工控数据采用均值插补的方式补全缺失值。
[0099]
具体的,包括:工业控制系统数据采集设备一段时间采集一次设备数据(包括传感器、执行器数据),考虑到工业控制系统采集到的原始数据的实际特点,需要对获取到的工控数据进行预处理,具体涉及到缺失值的处理,采用均值插补的方式补全缺失值,利用缺失值之前一段时间内的均值来插补缺失值。将数据按照6:4的比例分为训练集d
train
和测试集d
test
。
[0100]
利用序列的相关性特征进行相关性计算,获得不同时间长度的时间序列,包括:对工控数据进行规范化;计算两个相邻时间的工控数据之间的相关性,如果相关性超过阈值,则将当前序列长度加一,直到相关性低于阈值时停止,最终获得该序列长度。该方法考虑到工业控制系统的周期性特点,利用序列的相关性特征进行相关性计算,可以获得不同时间长度的时间序列。该部分仅使用训练集d
train
。
[0101]
具体的,包括步骤如下:
[0102]
步骤1:假设在工业控制系统中,e=[e1,e2,...,em]表示m个设备,设备包括传感器和执行器,em表示第m个设备;将时间i获取的测量设备值即工控数据用xi表示,其中是设备em在时间i处的测量值;
[0103]
为了计算序列的相关性,需要将工控数据进行规范化,以xi中的为例,规范化的具体方法如式(ⅰ)所示:
[0104][0105]
式(ⅰ)中,是xi的均值,σ是xi的标准差,x
i*
是经过规范化后的xi,
[0106]
步骤2:假设num表示当前序列长度,用于记录当前num条连续的测量设备值x
i*
之间存在强相关性,1≤i≤num,为了获取动态序列长度,需要计算任意两个相邻时间的测量设备值x
i*
和x
j*
之间的相关性,如果x
i*
和x
j*
之间的相关性超过阈值τ,则将当前序列长度num加一,直到相关性低于阈值时停止,记录此时当前序列长度num,并将当前序列长度num加入到序列长度列表l中,再次记录新的序列长度,以x
i*
和x
j*
为例,τ=0.9,阈值τ超过0.9则表示两个相邻时间的测量设备值之间具有强相关性,计算x
i*
和x
j*
之间的相关性的具体方法如式(ⅱ)所示:
[0107][0108]
式(ⅱ)中,是x
i*
的均值,是x
j*
的均值;
[0109]
最终,得到序列长度列表l=[l1,l2,...,ln]。
[0110]
基于动态序列长度生成rgb图,包括:归一化处理,归一化处理后重构矩阵,矩阵中的每个元素对应256个灰度值,得到一张灰度图,将连续的三张灰度图叠加成一张rgb图。
[0111]
具体包括步骤如下:
block层中“conv3d,3
×3×
3,128”表示三维卷积神经网络,卷积核的大小为3
×3×
3,具有128个通道,“bn3d,128”表示具有128个通道的批量归一化,“relu”表示relu激活函数。神经网络架构的第二部分是特征图处理,每张rgb图经过三维卷积神经网络都得到一个特征图集合,假设得到特征图集合用i=[i1,i2,...,ig]表示,其中,ig表示第g个特征图,i中每个特征图的长和宽都相等且与输入rgb图的长和宽相等,i中的所有特征图组合起来看作是一个g通道的图片,将该图片切割成n
×
n个小图片,n是一个能被整除的数,将n
×
n个小图片分别展平成为一个向量,每个向量都给定一个位置向量以记录每个小图片的位置,将每个向量与位置向量相加后,再经过一层概率为0.1的dropout层以防止过拟合。神经网络架构的第三部分是预测网络,预测网络如图3右侧部分所示,预测网络使用transformer模型,由l个encoder block和l个dncoder block组成,l的大小取6,其中“multi-head attention”表示多头注意力机制,“feedforward”表示前馈神经网络,“layer norm”表示归一化,“dropout”表示概率为0.1的dropout层,将dropout层输出的向量输入到预测网络中,预测网络最终输出预测向量。
[0128]
异常检测模型构建完成后,训练过程使用均方误差mse作为损失函数,如式(ⅶ)所示:
[0129][0130]
式(ⅶ)中,yi表示真实值,表示预测值,n表示序列的总数,mse越小代表模型训练的越准确。
[0131]
对测试集进行相关性计算获得序列长度,使用训练集获得的最长序列长度l
max
将测试集生成rgb图,输入训练后的异常检测模型判断是否发生异常,包括:
[0132]
步骤a:假设通过训练集得到的序列长度列表为l=[l1,l2,...,ln],通过训练集得到的最长序列长度为l
max
,通过测试集得到的序列长度列表为l
test
=[l1,l2,...,lr],当前序列长度num用于记录序列长度且初始值设为1,m是最接近m
×
l
max
的平方数,m是指工控系统中测量设备的数量;
[0133]
步骤b:浅层分析异常数据:计算测试集的数据序列长度lr:首先将测试数据按照公式(ⅰ)进行规范化处理,然后将测试数据按照时间顺序进行计算相邻的两条测试数据之间的相关性,如果相关性阈值τ超过0.9,则将num值加一,直到相邻的两条测试数据之间的相关性低于相关性阈值τ时停止,则当前序列长度num的值记为lr,将lr加入到测试集序列长度列表l
test
中,并判断lr是否在序列长度列表l=[l1,l2,...,ln]中,如果存在,则继续判断测试集的下一个数据序列长度是否在序列长度列表l中,直至对测试集中所有的数据序列长度进行了判断,如果不存在,则判定在该时间段内发生了时间间隔异常;对于序列顺序异常以及针对工控系统设计的更隐蔽的攻击,通过步骤c进行检测。
[0134]
步骤c:深度分析异常数据:将测试集按照公式(ⅲ)归一化后,利用步骤b得到的测试集序列长度列表l
test
=[l1,l2,...,lr],将lr条测量设备值按照时间顺序分别重构成一个的矩阵,1≤r≤n,当lr×
m(1≤r≤n)小于时,在末尾用零补齐,经此步骤得到n个的矩阵,矩阵中的每个元素对应256个灰度值,每个矩阵得到一张灰度图,将连续的三张灰度图叠加成一张rgb图,所有rgb图按照时间顺序排列得到测试集的rgb
图流;利用训练好的异常检测模型对测试集的rgb图流进行预测,利用当前时间长度为t的历史值预测未来时间长度为t的序列,那么残差向量如式(
ⅷ
)所示:
[0135][0136]
式(
ⅷ
)中,表示用当前时间长度为t的历史值预测未来时间长度为t的序列得到的残差向量。表示未来时间长度为t的序列的真实值。表示对未来时间长度为t的序列的预测值。t表示利用当前时间长度为t的历史值预测未来时间长度为t的序列;
[0137]
将残差向量标准化得到其正则化的方法如式(
ⅸ
)所示:
[0138][0139]
式(
ⅸ
)中,是的均值,是的标准差;
[0140]
如果满足则判定为异常,否则,判定为正常。阈值τ是根据最大可接受误报率所确定。
[0141]
本实施例选择新加坡科技与设计大学网络安全研究中心提供的batadal数据集、安全水处理(swat)数据集以及安全配水(wadi)数据集进行验证。
[0142]
本实施例的实验条件如下:
[0143]
高性能服务器一台,windows10 64位系统,python编译环境,pytorch框架。
[0144]
从以下四个方面对模型的效果进行评估。
[0145]
首先,将实验结果分为以下四种样本集合:
[0146]
(1)tp:实际为正常样本且被模型检测为正常的实例数。
[0147]
(2)fp:实际为异常样本但被模型检测为正常的实例数。
[0148]
(3)fn:实际为正常样本但被模型检测为异常的实例数。
[0149]
(4)tn:实际为异常样本且被模型检测为异常的实例数。
[0150]
对结果进行分类后,可通过计算准确率(accuracy),精确率(precision),召回率(recall)和f-measure来评价模型的性能。具体定义如下:
[0151]
准确率
[0152]
精确率
[0153]
召回率
[0154]
f-measure
[0155]
分别对batadal、swat、wadi三个数据集进行预处理,规范化后分别计算三个数据集的序列长度列表并得到最长序列长度。为了加速训练速度,在实验部分将序列的最长序列长度上限设置为100,由此得到batadal的最长序列长度为12,swat的最长序列长度为
100,wadi的最长序列长度为100。batadal、swat、wadi三个数据集中测量设备的数量分别为44、50、123,将batadal、swat、wadi三个数据集分别重构成24
×
24、100
×
100、112
×
112大小的rgb图,图4(a)是本发明在batadal数据集上生成的灰度图;图4(b)是本发明在batadal数据集上生成的rgb图;图5(a)是本发明在swat数据集上生成的灰度图;图5(b)是本发明在swat数据集上生成的rgb图;图6(a)是本发明在wadi数据集上生成的灰度图;图6(b)是本发明在wadi数据集上生成的rgb图;将rgb图作为特征学习网络的输入,特征学习网络对输入数据进行特征学习,获得特征图后利用特征图处理模块对特征图进行处理,将每个特征图分割成四等分,四个特征图分别表示成一个向量作为预测网络的输入。利用预测网络得到的预测结果与真实值进行对比并得到残差向量,标准化残差向量后与阈值比较检测异常数据。
[0156]
在训练阶段,图7(a)是本发明在batadal数据集上的训练损失变化示意图;图7(b)是本发明在swat数据集上的训练损失变化示意图;图7(c)是本发明在wadi数据集上的训练损失变化示意图;可以看到,batadal数据集在迭代200次左右达到收敛,swat数据集在迭代100次左右达到收敛,wadi数据集在迭代10次左右达到收敛。
[0157]
在batadal、swat、wadi三个数据集上进行验证,其效果如表1所示,表1是本发明在batadal、swat和wadi数据集上的性能对比表。
[0158]
表1
[0159][0160]
由表1可知,本发明的检测结果可以达到较高的检测精度。
[0161]
实施例3
[0162]
一种基于相关性分析和三维卷积的工控异常检测系统,包括:
[0163]
数据预处理模块,被配置为:获取工控数据,并进行预处理,预处理后划分为训练集和测试集;
[0164]
序列相关性计算模块,被配置为:利用序列的相关性特征进行相关性计算,获得不同时间长度的时间序列;
[0165]
rgb图生成模块,被配置为:基于动态序列长度生成rgb图;
[0166]
构建模型模块与参数调优模块,被配置为:将生成的rgb图输入异常检测模型进行训练,得到训练后的异常检测模型;
[0167]
异常检测模块,被配置为:对测试集进行相关性计算获得序列长度,使用训练集获得的最长序列长度l
max
将测试集生成rgb图,输入训练后的异常检测模型判断是否发生异常。
[0168]
实施例4
[0169]
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现实施例1或2基于相关性分析和三维卷积的工控异常检测方法的步骤。
[0170]
实施例5
[0171]
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现实施例1或2基于相关性分析和三维卷积的工控异常检测方法的步骤。