温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
深度
编码
神经网络
SCADA
系统
异常
检测
满雯妍
年月第 卷第期计算机工程与设计 基于深度降噪自编码神经网络的 系统异常检测满雯妍,李红娇(上海电力大学 计算机科学与技术学院,上海 )摘要:针对 系统数据特征提取难度大导致异常检测准确率低、漏报率高的问题,提出一种基于深度降噪自编码神经网络的 系统异常检测方法。采用降噪自编码器,将前一个自编码器的输出作为下一个自编码器的输入,连接构建深度神经网络结构加强特征学习能力,为优化网络参数,改进重构误差函数,提高模型的重构能力。使用 系统数据集测试所提方法,实验结果表明,与其它异常检测方法相比,该方法在保证较高准确率的同时能有效降低漏报率。关键词:数据采集与监控系统;异常检测;降噪自编码器;神经网络;深度学习;特征学习;重构误差中图法分类号:;文献标识号:文章编号:():收稿日期:;修订日期:基金项目:国家自然科学基金项目(、)作者简介:满雯妍(),女,湖北襄阳人,硕士研究生,研究方向为入侵检测;通讯作者:李红娇(),女,河南洛阳人,博士,副教授,研究方向为入侵检测、网络安全与隐私保护等。:,(,):,(),:;引言数据采集与监控(,)系统通常由人机界面()、监控系统、远程终端设备()、可编程逻辑控制器()、通信基础设施、监控和数据采集系统编程等基本组件组成。过去的 系统运行在隔离的网络上,不能通过互联网访问,所以不容易遭受到网络攻击,如今,系统连接到网络的能力不断提高,导致它们遭受网络攻击的可能性增大。现代 系统中新旧通信技术的组成方式也为全局攻击提供了切入点。异常检测方法通过测量与学习到的正常行为的偏差来识别新的攻击。在传统的机器学习异常检测方法中,等利用支持向量机()分类算法将数据在线性超平面中分割以区分异常和正常数据,等将 近邻()算法和布隆过滤器结合构造多级异常检测模型,然而这些方法属于浅层学习,通常侧重于手工特征提取,消耗大量的人力,当学习数据特征的深层次表达时具计算机工程与设计 年有一定的难度,因此需要采取更有效的特征提取方式。由于深度学习方法出色的特征学习和非线性表示能力,基于深度学习的异常检测方法在 系统中的应用逐渐增多。作为使用广泛的深度学习技术之一,自编码器利用神经网络可以找到捕获特征间非线性相关性的最优子空间。等和 等 采用自编码器()在训练时直接从原始数据中学习具有代表性的重要特征,有效提高了异常检测的准确率。等 提出了一种将深度前馈神经网络作为分类器和深度自编码器相结合的异常检测方法,通过多层神经元压缩提取数据特征,提高了准确率却有较高的漏报率。等 利用降噪自编码器学习正常数据特征更具有鲁棒性的表示,但是在单隐层的自编码器结构中特征学习能力有限,所以本文采用深度学习方式提取 系统数据特征。分析这些研究可以发现,由于 系统数据特征复杂且提取难度大,以往的异常检测方法仍然存在准确率低、漏报率高的问题,因此本文提出了一种基于深度降噪自编码神经网络()的 系统异常检测模型。本文的主要贡献为:将降噪自编码器构建成深度神经网络模型,利用多层网络结构获得输入数据的低维压缩表示,充分学习数据特征,提高异常检测准确率。在误差函数中添加约束项,获取隐藏层的最佳特征表示,通过最小化误差函数优化网络参数,提高模型的重构能力从而降低漏报率。相关技术自编码器()是一种具有对称结构的无监督神经网络,由输入层、隐藏层和输出层组成,包括编码阶段和解码阶段,输入层和输出层具有相同的尺寸,而隐藏层是较低尺寸的压缩表示。其基本结构如图所示。图自编码器模型结构假设输入数据表示为,(,),数据个数为,维度为,输出数据表示为,。在编码阶段,输入向量()被压缩成隐藏层()个神经元,隐藏层中神经元的激活表达式为()()()其中,为输入向量,为参数 ,为维度大小的编码权重矩阵,是维度的偏置向量,通过对输入向量进行编码可以得到更小维度的向量。在解码阶段,隐藏层回到最开始的输入维度,解码表达式为()()()其中,为 隐 藏 层 向 量,解 码 器 的 参 数 为 ,为解码后的重构向量。在编码和解码阶段,使用的函数是非线性的激活函数,用以学习数据特征间的非线性关系。比较常用的激活函数有 、等。当训练自编码器获得输入数据的重构输出时,首要目标是优化自编码器参数使重构误差最小,即降低误差函数值。通常采用均方误差函数作为误差函数,定义为(,)()当数据个数为时,总的误差数为(,)(,)()降噪自编码器基于自编码器对训练特征添加了噪声,得到不受噪声污染的真实输入特征,从而获得更具有鲁棒性的特征表示,其结构如图所示。将损坏后的数据?作为输入数据,通过编码和解码阶段得到重构输出,优化参数使误差函数(,)最小。图降噪自编码器模型结构 系统异常检测模型 系统数据分析 系统使用 协议在应用层进行通信,其数据通常表示一个数据包正在传送到或,每个实例都包含网络流量信息和有效负载信息,其中网络流量信息表示当前系统所在的网络状态和通信方式,有效负载信息显示状态、设置和参数,可用于检测系统是否处于临界状态。通常根据数据特征值的变化作为判断是否为异常数据的依据,因此在进行异常检测模型构建前,首先对数据的特征值及特征间的关系进行分析。系统数据的前行见表,从表中可以看出 系统的数据中存在大量的特征值缺失或不存在现象,指有效载荷,整个数据集有种不同的缺失情况:一条数据的所有有效载荷全部丢失或不存在;数据中的有效载荷中只存在压力测量值;数据中的有效载荷中除了压力测量值以外的所有值都存在。因此需要在数第 卷第期满雯妍,李红娇:基于深度降噪自编码神经网络的 系统异常检测据预处理时解决特征值缺失的问题。表 数据缺失情况地址功能长度有效载荷循环冗余校验和命令响应时间戳?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?为了更直观地分析 系统数据中各个特征间的相关性,本文通过计算特征间的相关系数,得到特征相关图,计算公式为,(,),()其中,表示特征与之前的相关系数,表示协方差,表示数学期望均值。特征相关性的计算 结果 如图所示,各特征间的相关系数值在 到之间,值越大表示相关性越高。从图中可以看出 系统数据特征间的相关性较低,在进行特征学习时无需考虑因特征相关性过大而对模型训练结果造成的影响,但是在这样的特征关系下浅层的特征学习方法无法充分学习数据特征,因此本文采用深度学习方法以多层非线性变换的方式从数据中学习深层次的特征表示。图数据特征相关性 异常检测模型总体架构为了提高异常检测模型特征学习能力,获得更深层的特征表达,建立了 系统异常检测模型,模型的整体检测流 程 如 图 所 示。异 常 检 测 主 要 包 括 个 步 骤:数据预处理:包括处理数据特征缺失值,数据归一化等操作,同时添加随机噪声;构建深度降噪自编码神经网络充分学习数据特征,以重构原始数据为网络训练目标,改进误差函数并优化模型参数;异常检测,根据训练数据的重构误差设定异常阈值,将测试数据的重构误差与阈值进行对比得出检测结果。数据预处理对于本文提出的异常检测模型,数据预处理有助于提高模型的训练结果,数据预处理分为部分,分别是补全缺失值、数据归一化和添加随机噪声。()补全缺失值对于 系统数据中存在大量特征值缺失的问题,如果直接丢弃数据会造成信息丢失,直接影响模型特征学习的结果,因此需要对缺失的数据补全。本文采用后向数据填充方法,这种方法的思想是,丢失的特征值不是由于数据丢失造成的,而是这些值根本不存在,数据包的类型不支持这些特性。因此它们在数据中显示为不存在的值,并且可以从以前存在的特征值中推断出来。当后一个数据出现缺失时,用前一个数据的特征值补全后一个数据的缺失值。补全缺失值后的数据特征见表。计算机工程与设计 年图异常检测整体流程表 数据补全后特征值地址功能长度有效载荷循环冗余校验和命令响应时间戳 ,()数据归一化在处理大量数据时,不同的特征会导致数据的量纲和量级产生差异,由于 系统数据的特点,每条数据的特征值分布区间较大,因此本文中用 归一化方法对原始数据进行线性变换,使结果落到,区间内。归一化方法的公式可以表示为 ()其中,是该条数据的原始特征值,和 分别为数据中的最小特征值和最大特征值,为归一化操作后新的特征值。归一化处理后的数据有助于减小特征值间差距,加快模型收敛速度,提高检测准确率。()添加随机噪声为了使模型在训练时学习更具有鲁棒性的数据特征,本文在输入数据中添加高斯噪声,将添加了噪声的常数据作为训练集。高斯噪声的概率密度函数服从高斯分布,可以表示为()()()()其中,是期望,是标准差,添加高斯噪声并不破坏原本的数据结构。基于深度降噪自编码神经网络的构建本文分别从模型结构、目标函数和模型优化个方面详细介绍所提出的深度降噪自编码神经网络。()模型结构本文提出的深度降噪自编码神经网络()模型结构如图所示。图深度降噪自编码神经网络结构将添加了高斯噪声的数据作为模型输入层数据,在深度神经网络结构中,前一个自编码器的隐藏层作为下一个自编码器的输入,当获得最低维度的隐藏层后,通过依次解码各自编码器完成深度降噪自编码神经网络结构的构建。相比于单层的自编码器,深度降噪自编码神经网络逐层学习数据特征不仅可以得到更深层次的特征表达,还可以从带有噪声的输入数据中学习更具有代表性的特征,提高异常检测模型的准确率。本文选择 函数和 函数分别作为编码与解码过程中的 激 活 函 数,以 获 得 特 征 间 的 非 线 性 关 系,其 表达式为 ()()()()()目标函数对于 模型来说,训练目标是获得与未添加噪声的原始数据相同的重构输出,通过最小化重构误差来反向传播更新网络的参数,使每个自编码器的性能达到最佳。误差函数一般为均方误差,可以表示为 (,)(,)()在应用深度神经网络时由于复杂的模型结构,过拟合是一个常见问题。过拟合会导致测试集结果与训练集结果产生明显偏差。为了避免这样的问题出现,本文在误差函数中添加正则因子,降低模型的复杂程度和不稳定程度。范数符合高斯分布,是指权重向量各元素的平方和再求平方根,其表达式为()第 卷第期满雯妍,李红娇:基于深度降噪自编码神经网络的 系统异常检测同时,由于 系统数据的高维度特点,为了抑制隐层神经元的激活程度,减少不必要特征对模型训练的影响,本文利用散度对隐层神经元的输出进行约束以达到稀疏效果,并将其添加到误差函数中。其表达式为 ()()其中,是稀疏性权重项,()为 散度,为隐层神经元数量,散度的表达式具体可以表示为()()()()()稀疏参数常数由给出,代表第个神经元的平均激活值,当偏离时,散度会增大,因此在误差函数中增加 散度可以使隐层稀疏化,获得更佳的隐层表达。最终 模型的总误差函数表达式为(,)()以最小化总误差函数为训练目标,优化模型参数,可以提高模型的重构能力,从而降低异常检测漏报率。()模型优化在确定模型结构和目标函数后,需要考虑对不断更新网络参数的学习过程进行优化,传统的随机梯度下降算法保持单一的学习率更新所有的权重,即在训练过程中学习率不会发生改变,然而在 系统的异常检测中常常需要处理大量的数据,在这种情况下所需资源更少,收敛速度更快的优化算法才能满足 模型训练的需要,因此本文采用自适应矩阵估计()优化算法对权重和偏置进行更新。优化算法是随机梯度下降算法的改进,同时具有适应性梯度算法和均方根传播的优点,即为每一个参数保留一个学习率以提升在稀疏梯度上的性能、基于权重梯度最近量级的均值为每一个参数适应性的保留学习 率,这 表 明 在 非 稳 态 和 在 线 问 题 上 有 更 优 秀 的 性能。算法具体步骤如下式()()()()其中,为一阶矩估计,为二阶矩估计,和分别是一阶矩和二阶矩的指数衰减率,为时间步长,表示参数的梯度值()()()其中,和 分别为修正的矩估计偏差,为数值稳定小常数,为最终的参数向量。基于深度降噪自编码神经网络的异常检测使用本文提出的模型进行异常检测时,选择训练数据的重构误差作为异常检测阈值。把 系统数据中的部分正常样本作为训练集,剩下的作为测试集,测试集中包含正常和异常两种类型的数据。根据训练集中数据的重构损失确定异常检测模型的阈值,将测试