温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
注意力
机制
时序
异常
检测
模型
应用
叶柯
2023.6电脑编程技巧与维护1概述随着大数据时代的到来,物联网随之兴起,硬件计算能力也不断提升,大容量存储技术的发展及多种数据采集技术被广泛应用,国内各领域的相关数据要素正在爆发式地增长。现实中采集而来的观测数据,天然带有时间属性。将它们按照时间的先后顺序排列起来,即形成时间序列。时序数据作为分析、决策的一手资料,成为医学(医学检查心电图、血压监测)、金融(股票、期货价格、大宗商品交易价格走势)、环境监测等领域的热点。如何精确高效地分析、处理大量数据,是业界面临的挑战性问题,这进一步催生了大量有关时序分析、预测的技术研究。2发展现状近年来,深度学习技术飞速发展,不少研究人员在时间序列这一领域做了大量的工作。该领域的传统方法都是采用一些统计学知识,手动提取特征描述一个时间序列的信息,常用的传统时间序列分析方法有指数平滑法、滑动平均法、分解法等。常用的平稳时间序列模型有自回归模型、移动平均模型、自回归移动平均模型等1。20世纪末,数学家Jenkins和Box建立的自回归差分移动平均模型(ARIMA),在统计学界的贡献巨大,被广泛应用于众多领域2。但ARIMA精度有限,且如今大量的数据和特征已经不是人类能够理解的,而通过深度学习的方法可以使模型自动地提取时间序列中更加抽象而丰富的信息。因此,深度神经网络(DNN)因其提取高阶特质的能力而被大众熟知。但是,由于这些模型所做的结构假设较少,因此它们通常需要更多的训练数据集学习得到准确的模型3。结合传统统计方法与深度学习,恰好能优势互补,并据此提出一些新的预测方法。Ranga等使用循环神经网络(RNN)在每个时间点上生成线性高斯状态空间模型(LGSSM)的参数,提出了深度状态空间模型(DSSM)。对于非线性SSM,Eleftheriadis等 提 出 非 线 性 高 斯 过 程 状 态 空 间 模 型(GPSSM);Salinas等研究了多元时间序列预测问题。他们提出的深度自回归模型(DeepAR)是建立在对时间序列数据进行深度学习的基础上,为概率预测问题设计了一个类似的基于长短期记忆网络(LSTM)的自回归RNN架构。Vaswani等提出的Transformer利用Attention Mecha-nism来处理数据。与基于RNN的方法不同,Transformer允许模型访问历史的任何部分,而不考虑距离,更适合于捕捉具有长期依赖性的循环结构4。但传统Trans-former模型过大、对硬件要求过高,在此提出TST-Lite模型设计,对原生的Transformer进行精简,专用于时间序列的特征提取,并结合Encoder-Decoder架构与残差神经网络,较好地规避了梯度消失等问题,实现轻量化、实时性评估。3预处理(1)数据清洗。在数据集中去掉重复值,并且统计缺失数据,依据情况进行人工插值,或者自动插值为中位数或者平均数。(2)数据降噪。在正常的生产生活中,一般认定数据的正常值应该是一个保持平稳的过程。在利用正常序列训练时,传感器收集的数据会因为硬件导致噪声过大而对整个正常状态的高维特征描述产生影响,造成正常序列的特征损失,因此在得到传感器数据时需要先对数据进行适当的降噪。(3)在预处理阶段采用了滑动窗口的思想,对原始的时间序列进行重采样如图1所示,具体方案如下:确定一个长度固定的滑动窗口,然后将它以一定的步长从基金项目:国家级大学生创新创业训练项目(编号202210336020)。作者简介:叶柯(2002),男,本科,研究方向为文本生成、目标检测。基于注意力机制的时序异常检测模型应用叶柯,孔佳玉,周奕希,曹瀚洋,姜沁琬(杭州电子科技大学,杭州310018)摘要:在生活中处处都存在随着时间而变化的数据,例如,温度、湿度、人造卫星的运行数据、行星的运行状态等,这些数据统称为时间序列。在当今大数据环境下,对时间序列重建可以自动提取到数据的高维特征。提出了一种基于注意力机制的模型,可以无监督地进行特征提取,同时介绍了一些常用的重建模型并进行对比试验,将其运用于异常时间点检测任务。关键词:时间序列;自注意力机制;无监督重建;异常检测24DOI:10.16184/prg.2023.06.0182023.6电脑编程技巧与维护序列的开始不断向右移动,每次移动后覆盖的序列区域就是一个小样本,这样就实现了把原始长时间序列划分成多个子序列,并将其作为新的数据集用于模型的训练,之后是对每个小样本进行进一步处理和分析。4模型构建Encoder-Decoder的核心思想是降维重建,在训练过程中,低维度参数较少,迫使隐藏层学习数据中最多的模式,忽略“噪声”,如果隐藏层的神经元数量比输入层的神经元数量多,则神经网络会被赋予更多的能力来学习数据。在极端情况下,它可能只是简单地将输入值复制到输出值,包括噪声,而不提取任何基本信息(属于一种过拟合的状态)。4.1基于 PCA 方法5的编码解码器模型基于Encoder-Decoder可以采用如公式(1)的方案。通过PCA的方法(原向量x乘以矩阵W得到中间编码c,再乘以W的转置,得到x的重建,得到x的重建与原x越接近越好,从x到c的变换过程是线性的),如图2所示,将高维数据压缩到低维,但是该模型网络层数过少,适用于一些简单的情况,对于复杂的序列效果较差。(1)4.2基于 DeepAutoEncoder 的编码解码器6模型若遇到更加复杂的数据,则考虑采用更加深层的网络和一些非线性变换来构造模型,如图3所示。因此,考虑设计更多的层数,并引入激活函数Leaky-ReLU对网络进行非线性变换,使网络具有更好的泛化性,解码过程如公式(2)所示。(2)4.3基于自注意力机制的编码解码模型当序列长度较长,并且网络层数较多时,使用以上的方法会出现比较明显的梯度消失现象,于是设计以自注意力机制和MLP7为骨架的编码解码模型。利用自注意力机制8可以实现并行计算,但同时也会导致位置信息的损失,因此需要先对预处理后的数据进行位置编码,融入数据的位置特征,如公式(3)所示:(3)其中,pos为不同的时间点位置;2i和2i+1分别为某个时间点的不同维度指标,奇数维度利用sin正弦编码,偶数维度利用cos余弦编码;dmodel为数据的总维度,这里是防止10 000的指数过大而溢出。而后生成Q(query),K(key),V(value)3个矩阵,并且使用Q访问每个K,经过缩放和softmax后作为V的权重,从而计算Attention值并用于后续的MLP层和解码器进行序列重建,如公式(4)所示:(4)骨架网络结构,如图4所示:考虑到实际数据集会存在数据缺失、噪声过大等先视具体实际情况对模型进行数据过滤、去噪等一系列预图1对原始序列进行重采样Step=k+1X1,X2,XKXK+1XK+1XK+1X1,X2,XKX1,X2,XK123K+3K+1K+2图2基于PCA的Encoder-Decoder模型最小化(X-X)2XWCXWT输入层隐藏层输出层图3Deep Auto Encoder编码解码器模型图4模型的架构XXW1TTW2W2W1尽可能接近输入层层层层底层层层层输出层编码X3X1X2X4数据过滤标准化位置编码编码器自注意力机制MLP解码器逆变换输出252023.6电脑编程技巧与维护图7R2对比实验图6MSE对比实验处理操作,再将多维时间序列进行标准化,从而消除量纲的影响。该模型中引入了位置编码层,避免了后续注意力机制的并行结构导致的时间错位问题。编码部分主要由自注意力层和MLP层作为网络骨架,相比于传统的循环神经网络,它的计算不需要将上一层隐藏层的输出作为下一次的输入,而是令整个计算过程并行,大大提高了模型的效率,当维度较高时可采用多头注意力增强模型的鲁棒性。解码部分主要由一些全连接层构成,最终将维度还原为与输入序列相等的维度,并且将标准化后的数据还原,得到的序列即重建后的序列。设计结构中蕴含了残差神经网络(Resnet)的思想9,设置了相应的残差连接模块,将中间的一些层“短接”,使训练过程中远端参数可以进行有效地学习,在一定程度上缓解了梯度消失的问题。Resnet结构如图5所示。5损失函数和实验评估指标采用MSE Loss,即样本和样本重建的均方误差,如公式(5)所示。(5)同时选用MSE、R2得分作为评估指标,MSE越小、R2越大,表示重建效果越优,如公式(6)所示。(6)6实验对比为了研究不同模型的重建能力,实验在时序数据集Satimage-2上进行,该数据集来自UCI Repository,记录了36维度的日志数据信息。实验设置滑动窗口大小为20,优化器为AdamW,batch_size(批次大小)为64,学习率为5e-5,每8个轮次衰减5%。MSE对比实验和R2对比实验如图6和图7所示。从表1实验结果中可以看出,自注意力机制作为网络骨架比PCA或Deep Auto Encoder这类以线性层(Linear)为主的网络具有更强的重建能力,这说明经过编码得到的隐藏状态存储了更好的序列特征信息。7重建模型在时间序列异常检测任务中的应用7.1检测原理如果接收的数据指标在某个时间段有上升趋势,但是在这过程中的某个时间点后突然快速下降,产生了“尖刺状”的数据变化情况,如图8所示,并且这一现象在近期内未曾出现过,那么有理由推测,检测对象可能在这时为异常数据,应对该时间段进行异常标记。图5Resent结构模型骨架MSER2scorePCA73.6780.6894Deep Auto Encoder84.6550.6811Self-atten67.8680.7193表1训练80个epoch后的序列重建结果对比图8尖刺状数据变化F(x)F(x)+xxxweight layer线性整流函数个体特性weight layer线性整流函数20406080MSE lossDeep Auto EncoderPCAself-atten14012010080epoch0.70.60.50.4R2 scoreepoch20406080Deep Auto EncoderPCAself-atten262023.6电脑编程技巧与维护7.2利用重建模型自动提取特征在一段实验数据上,首先对时间序列做预处理,利用滑动窗口将其拓展为多条样本数据集,通过Encoder对每个样本进行编码,得到中间的隐藏层,并且将隐藏层控制在一个较低的维度,迫使参数去学习整个序列的宏观语义特征,同时控制训练轮次,提前停止,防止过拟合,然后通过解码器重新生成该段序列,使重建得到的序列具有原序列的特征,但不含原序列中的异常点信息,这样基于重建模型的方案可以巧妙地将异常检测问题转化成无监督学习问题,无需人力标注。将重新生成的数据与提取的时间序列数据指标进行比对分析,结合阈值设置,对序列中的每个时间点进行分析,判断是否存在异常时间点,即如果排污量或排污浓度存在|ori-gin_sequence-reconstructed_sequence|设定的阈值,则检测到数据存在异常,标记该异常点。序列重建前后对比,如图9所示。重建后的序列大体符合原序列的走势,这说明重建模型的隐藏层经过训练,已经学习了整个序列的高维特征,并且忽略了原序列中的局部异常点。将以此隐藏层重建的序列与原序列进行对比,能非常直观地判断异常点。序列重建前的一些突变点经过重建后变得比较平缓,其中重建前后差值大于设定阈值的点被标记为异常点,以此实现无监督的异常检测任务。8结语大数据时代各种数据爆炸式增长,如何利用好海量数据是一个值得深入思考的问题。在此提出一种将自注意力机制作为网络骨架进行序列重建的方法,根本目的是采用无监督的方式,让模型的隐藏层能够学习到整个序列中更高语义的特征,更好地利用数据,从而节省人力标注。在未来的研究中,可以尝试将学习序列特征的隐藏层用于序列预测、异常检测等具体任务,相信能够取得不错的效果。参考文献1李晨,陈玉松.时间序列模型研究现状及发展分析J.中外交流,2018(18):50.2JANACEK G.Time series analysis forecasting and con