本发明属于机器学习技术领域,具体涉及一种利用在线机器学习算法的工业控制系统中网络异常探测方法。
背景技术:
工业控制系统由配备微处理器的电子设备和相关的通信网络组成,用于监控工业环境中的物理设施。工业控制系统被用来收集来自物理世界的传感器测量结果和操作数据,向操作员显示信息,基于检测到的事件做出决策并向受控设备发出控制命令。这些命令被用于驱动执行器完成诸如打开或关闭电源开关、液压阀、调整电机转速、关闭马达等操作。工业控制系统控制着工业设施的运行,特别对炼油厂、化工厂、电网、石油和天然气管道以及运输系统等国家关键基础设施的运行至关重要。
工业控制系统在诞生之初被设计为使用专用硬件和软件、运行专用协议的独立系统,其一度被认为不会受到来自网络空间的入侵威胁。目前,现代工业控制系统不再孤立地运行,而是倾向于连接到更广阔的网络(例如互联网和企业网络)。曾经不为外界熟悉的私有工控通信标准也正在被诸如以太网、tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/因特网互联协议)等开放标准所取代。随着通用信息技术与工控技术的融合,原本由工业控制系统的独立特性所带来的安全保障也不复存在,与工业控制系统相关的网络安全漏洞和入侵事件随之增多。由于工业控制系统的重要性以及受到网络攻击后可能产生的破坏性后果,其信息安全问题已广受关注。作为防护手段之一的入侵检测系统通过监测潜在的恶意网络活动为工控系统提供保护。基于普通机器学习方法的入侵检测系统通过一次性地学习一定规模的训练样本来构建预测模型。
但由于工业控制系统对响应时间、不间断运行的要求高,而其软硬件的计算能力又较为有限,传统基于机器学习的入侵探测方法并不完全适用于工业控制系统。
技术实现要素:
为了解决现有技术中存在的上述问题,本发明提供了一种利用在线机器学习算法的工业控制系统中网络异常探测方法。
本发明的一个实施例提供了一种利用在线机器学习算法的工业控制系统中网络异常探测方法,包括:
获取第一矩阵和第二矩阵,其中所述第一矩阵包括第一输入数据和第二输入数据;
利用所述第一矩阵和复合权重矩阵获取初始预测值;
根据所述初始预测值与所述第二矩阵对所述第一输入数据进行检测;
利用损失函数更新所述复合权重矩阵;
利用更新后的所述复合权重矩阵对所述第二输入数据进行检测。
在本发明的一个实施例中,利用所述第一矩阵和复合权重矩阵获取初始预测值,包括:
对所述第一矩阵进行规范化处理,以获得第三矩阵;
利用所述第三矩阵和所述复合模型建立预测值计算模型;
根据所述预测值计算模型获取所述初始预测值。
在本发明的一个实施例中,所述预测值计算模型为:
其中,
在本发明的一个实施例中,对所述第一矩阵进行规范化处理,包括:
利用规范化处理模型对所述第一矩阵进行规范化处理。
在本发明的一个实施例中,根据所述初始预测值与所述第二矩阵的关系对所述第一矩阵的第一输入数据进行检测,包括:
判断所述初始预测值与所述第二矩阵的关系,若所述初始预测值与所述第二矩阵相等,则将所述第一输入数据的检测结果确定为正确分类,若所述初始预测值与所述第二矩阵不相等,则将所述第一输入数据的检测结果确定为错误分类。
在本发明的一个实施例中,在利用损失函数更新所述复合权重矩阵之前,还包括:
根据所述复合权重矩阵和所述初始预测值获取所述损失函数。
在本发明的一个实施例中,根据所述复合权重矩阵和所述初始预测值获取所述损失函数,包括:
建立成本矩阵;
利用所述初始预测值获取正确预测值和错误预测值;
利用所述正确预测值和所述错误预测值获取边界值;
根据所述成本矩阵和所述边界值获取所述损失函数。
在本发明的一个实施例中,所述损失函数为:
其中,ζmc(wt;xt,yt)为损失函数,c(yt,p)为成本矩阵中第yt行和第p列的元素,
在本发明的一个实施例中,利用损失函数更新所述复合权重矩阵,包括:
当所述第一输入数据为正确分类时,利用所述损失函数更新对应的所述复合权重矩阵的权重向量;
当所述第一输入数据为错误分类时,利用所述损失函数更新对应的所述复合权重矩阵的权重向量。
与现有技术相比,本发明的有益效果:
本发明的探测方法能够满足工业控制系统对系统不间断运行以及快速响应的要求,且该探测方法的计算复杂度低,能够满足工业控制系统有限的计算能力的限制。
附图说明
图1为本发明实施例提供的一种利用在线机器学习算法的工业控制系统中网络异常探测方法的流程示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例一
请参见图1,图1为本发明实施例提供的一种利用在线机器学习算法的工业控制系统中网络异常探测方法的流程示意图。本发明实施例提供的一种利用在线机器学习算法的工业控制系统中网络异常探测方法,该网络异常探测方法包括:
步骤一、获取第一矩阵x和第二矩阵y,其中第一矩阵包括第一输入数据和第二输入数据;
具体地,第一矩阵x为获取的输入数据,第二矩阵y为其对应的标签。
进一步,第一矩阵x代表输入数据的特征属性,第二矩阵y为其对应的标签,第二矩阵y用来标记第一矩阵x中每一行数据的类别,第一矩阵x为m×d维矩阵,第二矩阵y为m×1维矩阵,m代表输入数据的数量,d代表输入数据的特征个数,即第一矩阵x中的每一行代表相关的数据,每一列代表不同的特征,对于第一矩阵x中的任一向量xn,第二矩阵y中总有一标量yn作为向量xn的标签与之对应。
进一步地,第一矩阵还可以包括其他输入数据。
例如,输入数据可以为数据采集与监视控制系统(scada,supervisorycontrolanddataacquisition)所提供的由传感器测量的物理量(如流量、压力、速度等)。
步骤二、利用所述第一矩阵和复合权重矩阵获取初始预测值;
具体地,对第一矩阵x进行规范化处理,以获得第三矩阵x’;
进一步地,利用规范化处理模型对第一矩阵x进行规范化处理,以获取第三矩阵x’,经规范化处理所获取的第三矩阵x’分布于-1到1之间,即x’∈[-1,1],规范化处理模型如下所示:
其中,mean(x)为第一矩阵x的平均值,std(x)为第一矩阵x的标准差。
在规范化处理之后的mean(x)取值为0,std(x)取值为1。
进一步地,复合权重矩阵w为k×d维矩阵,其中,k代表类别,用于将第三矩阵x’中的每一行的数据进行分类,复合权重矩阵w的构成如下所示:
其中,xi’为第三矩阵x’中第i个向量,即第i个输入样本,wi为第三矩阵x’中第i类的类型,1≤i≤k,i、k均为大于零的整数。
具体地,利用第三矩阵和复合模型获取计算模型;
进一步地,在第t时刻,利用第三矩阵x’中的向量xt和复合权重矩阵w中的权重wt,i获取初始预测值
进一步地,在第t时刻,获取t时刻对应的第一输入数据(xt,yt),其中,xt∈rd,yt∈{1,…,k}且k≥3,rd是1*d维向量,利用预测值计算模型对第二矩阵y的标量yt进行计算,以获取标量yt对应的初始预测值,初始预测值即为标量yt对应的最大预测值,预测值计算模型如下所示:
其中,
具体地,根据预测值计算模型获取初始预测值;
进一步地,在第t时刻,将第一输入数据(xt,yt)和其对应的wt,i代入预测值计算模型中,以获取第t时刻的初始预测值。
步骤三、根据初始预测值与第二矩阵对第一输入数据进行检测;
具体地,判断初始预测值与第二矩阵的关系;若初始预测值与第二矩阵相等,则将第一输入数据的检测结果确定为正确分类;若初始预测值与第二矩阵不相等,则将第一输入数据的检测结果确定为错误分类。
进一步,第t时刻,对应的第一输入数据为(xt,yt),判断第t时刻的初始预测值
步骤四、根据复合权重矩阵和初始预测值获取损失函数;
具体地,建立成本矩阵;
进一步地,对于多元分类的成本敏感的在线学习算法中,假设有k个类别,对于上述复合权重矩阵w,对应的使用k×k维的成本矩阵c定义错误分类的成本,其中成本矩阵c中的对角线元素表示正确分类的成本(设置为0),非对角元素c(i,j)>0,i、j∈{1,2,…k},且i≠j,其表示将第i类样本错误分类为第j类的成本。
具体地,利用初始预测值获取正确预测值和错误预测值;
进一步,当
进一步,当
其中,p为第t时刻第二矩阵y中的标量yt对应的错误预测值,wt,i为第t时刻复合权重矩阵w中第i行的权重wi,xt为第t时刻第三矩阵x’中的向量。
具体地,利用正确预测值和错误预测值获取边界值;
进一步地,求取正确预测值与错误预测值的差值,该差值即为边界值,即
具体地,根据成本矩阵和边界值获取损失函数;
进一步地,为了使得本发明的探测方法能够以高置信度进行正确的预测,就需要边界值尽可能地大。为此引入损失函数,其中,损失函数为:
其中,ζmc(wt;xt,yt)为损失函数,c(yt,p)为成本矩阵中第yt行和第p列的元素,
进一步地,当边界值大于c(yt,p)时,则说明本发明的探测方法具有较好的置信度,则令损失函数值为0;当边界值小于c(yt,p)时则说明本发明的探测方法对当前数据的分类错误,则需赋予其一个较大的损失函数值,从而对复合权重矩阵进行更新,通过对复合权重矩阵的更新,能够提高本发明的探测方法的正确率。
步骤五、利用损失函数更新复合权重矩阵;
具体地,当第一输入数据为正确分类时,利用损失函数更新对应的复合权重矩阵的权重向量;
进一步地,当第一输入数据为正确分类时,将损失函数代入正确分类所对应的权重向量更新模型更新复合权重矩阵的权重向量,正确分类所对应的权重向量更新模型为:
其中,
具体地,当所述第一输入数据为错误分类时,利用所述损失函数更新对应的所述复合权重矩阵的权重向量;
进一步地,当第一输入数据为错误分类时,将损失函数代入错误分类所对应的权重向量更新模型更新复合权重矩阵的权重向量,错误分类所对应的权重向量更新模型为:
其中,w’t,p为错误分类时复合权重矩阵更新后的对应的权重向量,ζmc为损失函数,sigma为k阶单位矩阵。
进一步地,还需要利用sigma更新模型对sigma进行更新,sigma更新模型为:
其中,sigma’为更新后的k阶单位矩阵。
本实施例的探测方法一方面能够在对数据进行错误地分类后,对复合权重矩阵进行改进以求纠正错误,提高检测的正确率,另一方面,复合权重矩阵在迭代更新过程中不应被改变的过快,特别是当其正确地检测了大部分以往的数据时。因此利用上述的更新方法既能保证对复合权重矩阵的更新,又不会使其更新速度过快。
步骤六、利用更新后的复合权重矩阵对第二输入数据进行探测;
具体地,第二输入数据为第一矩阵中还未被检测的其余数据,当第一矩阵中还存在未被检测的第二输入数据时,则重复上述检测步骤,利用更新后的复合权重矩阵对其进行检测,直至将第一矩阵中的全部数据检测完毕。
本发明实施例的探测方法基于成本敏感的算法设计,能够在工业控制系统中类偏态分布普遍存在的情况下满足对异常操作和入侵行为高识别率的要求,尤其是能够较准确识别分布比例较少的异常行为。
本发明实施例的探测方法是利用改进的成本敏感的在线多元分类算法对工业控制系统中的网络异常行为进行检测,使得该探测方法能够在线学习快速处理数据的能力,从而保证该检测方的检测速率。
本发明实施例的探测方法能够满足工业控制系统对系统不间断运行以及快速响应的要求,且该探测方法的计算复杂度低,能够满足工业控制系统有限的计算能力的限制。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。