A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Serie...

论文信息

名称:A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Series Data 

出处:AAAI19

下载地址:https://arxiv.org/abs/1811.08055

原作者代码:https://github.com/7fantasysz/MSCRED 

论文介绍

2.0 研究背景

    时间序列异常检测发现,一般是解决一个这样的问题:对于一串时序数据,比如传感器采集空调的能耗,每分钟采集一次,采集了1000分钟,想要找出这1000个点中,哪一个点是异常的。那么什么样的点算是异常的呢?异常通常分为以下两种:一种是缺失的数据,这没啥好检测的;一种是和周围明显不一样的,比如说一堆都是-1到1之间数,忽然来了个1000,那这个1000就算异常,这种一般是定义一个阈值,再定义一个滑动窗口,计算滑动窗口内的均值,如果当前点的值减去均值和均值的比值超过了指定阈值,就将其判断为异常点。在的异常检测算法一般针对于后面这种数据。

    用过的方法很多,可以大致分为两大类,一类是监督学习的,其实就是一个二分问题,用一下各种机器学习里的分类器,像SVM、贝叶斯啥的就行,其实没啥可以做的;而现实世界中,其实有标签的数据是远小于无标签的数据,所以一般异常检测做的都是无监督或者半监督的。一般的思想有两种,一种就是对原数据进行变换,比如傅立叶变换啊,小波变换啊等等,这样想让原来不是那么明显的异常点变得比较尖锐明显,从而很容易和周围的正常点区分开,从而可以检测异常。另外一种是想办法使用正常的时序数据,把原来的时间序列的模式学出来,重构一个时间序列出来,基于VAE、基于GAN、基于LSTM都行,那么对于测试数据,输入模型以后,得到一个重构的时间序列,如果测试数据和重构的时间序列相差太远了,就认为是异常。其实这样也不能算完全的无监督,因为训练的时候,用的都是正常数据,所以只能算半监督。

2.1 研究问题

    对于多个时间序列的异常发现和异常诊断。有30个传感器,每隔1分钟采集一次,采集了10000分钟的数据,那么输入就是一个30 * 10000的矩阵。对于这样的数据,想找出对于时刻T,有没有传感器发生异常,如果有的话,是哪一个传感器造成的。

    这个问题和常用的时间序列异常检测不一样的地方在于:

    一、是对多个时间序列进行同时分析,之前都是针对于单个时间序列,论文认为不同的时间序列之间是有一定的关联的,而挖掘这种关联对时间序列异常检测是有益的。

    二、之前的异常检测对于异常都是判断它是异常就行,并没有对异常的重要程度进行划分。论文对异常分了一下轻重缓急,将异常分成三类,一类是轻微异常,一类是中度异常,一类是重度异常。前提是默认异常持续的时间越长,异常便越重要。比如说吧,服务器宕机了30分钟比服务器宕机了1分钟,造成的损失更多,因而也更重要一些。

2.2 研究方法

    那么它是怎么做的呢?大致可以分为三个步骤:特征抽取;重构;评估。

一、特征抽取

    还是上面的例子,针对于30个传感器的10000分钟的数据,输入是30 * 10000的矩阵。特征抽取,就是设定一个窗口大小w(比如10),和时间间隔g(比如20),将不同时间序列的窗口内的时间序列片段进行内积。比如说第10分钟,将每一个时间序列的前10分钟的值取出来,即有30个长度为10的向量,互相进行内积,得到一个30*30的矩阵。那么对于30*10000的数据,得到的特征矩阵个数应为10000 / 20 = 500,每个特征矩阵大小为30*30。论文中设置了三个窗口长度,分别是10,30,60,所以得到500个30*30*3的特征矩阵。 


                                                                        图1  神经网络架构

二、重构

    特征抽取以后,就可以把它输入神经网络,对它进行重构了,神经网络的结构如图一所示。简单来说,就是经过4次卷积,因为卷积使得矩阵尺寸变小,而要想重构尺寸肯定得一样啊,要变回来和原来一样尺寸,那要经过反卷积,经过了4次反卷积。而在反卷积的过程中,在L层反卷积以后,都先加上L-1层卷积层经过基于attention的LSTM卷积得到的结果。比如说,在第四层卷积后,得到4*4*256的矩阵,反卷积后,得到8*8*128的矩阵,这是将这个矩阵和第三层卷积经过基于attention的LSTM卷积得到的结果(一个8*8*128)的矩阵进行拼接,得到8*8*256的矩阵,然后再进行下一次反卷积。最后得到重构矩阵。

    由于在训练时,用的都是正常的数据,于是乎,认为神经网络学出了一个正常模式下的时间序列,对于测试数据,如果测试数据和将测试数据输入网络得到的重构矩阵差别很大的话,就认为它是异常的。

    在实际实验中,作者将h设为5,什么意思呢?就是每一个输入单元为5*30*30*3。之前说,输入为500个30*30*3的矩阵,他将它们拆成500个5*30*30*3的块,即

    然后对于每一个输入(共有5个小单元),他只想重构最后一个小单元,即对于第一块来说,只想重构1,对于-3、-2、-1、0不重构,第二块只想重构2。而在基于attention的lstm中,它想对于每一个输入单元,学出这5个小单元每个小单元对于重构最后一个小单元应该占的比重是多少。

    总的来说,整个流程是这样:

    对于一个输入5*30*30*3:

    卷积得到5*30*30*32矩阵cnn1,基于attention的lstm卷积得到一个30*30*32矩阵lstm1;

    将cnn1卷积,得到5*15*15*64矩阵cnn2,基于attention的lstm卷积得到一个15*15*64矩阵lstm2;

    将cnn2卷积,得到5*8*8*128矩阵cnn3,基于attention的lstm卷积得到一个8*8*128矩阵lstm3;

    将cnn3卷积,得到5*4*4*256矩阵cnn4,基于attention的lstm卷积得到一个4*4*256矩阵lstm4;

    然后对lstm4的4*4*256进行反卷积,得到8*8*128的矩阵,再和lstm3连接,得到8*8*256,然后进行反卷积,得到15*15*64,再和lstm2连接,得到15*15*128,再反卷积得到30*30*32,再和lstm1连接,得到30*30*64,再反卷积,得到30*30*3即完成。

三、判断异常与否

    对于测试集,也是先对它进行特征抽取,得到特征矩阵,对特征矩阵进行重构,对重构矩阵进行对应元素相减再求平方,对于每个元素,比较其和设定的阈值的大小,计算超过阈值的元素的个数。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容