清华/阿里巴巴开源的周期型——Donut
论文Unsupervised Anomaly Detection via Variational Auto-Encoder for Seasonal KPIs in Web Applications
源码github
文章目录
- 问题背景
- 正文
- AutoEncoder
- Variational AutoEncoder(VAE)
- 缺陷
问题背景
在智能运维领域中,由于缺少异常样本,有监督方法的使用场景受限。因此,如何利用无监督方法对海量KPI进行异常检测是我们在智能运维领域探索的方向之一。
正文
AutoEncoder
VAE跟AutoEncoder在网络整体结构上相似,都分为Encoder和Decoder模型。在AutoEncoder模型的思想中,我们期望能够利用encoder模型,将我们的输入X转换到一个对应的z,利用decoder模型,我们能够将z还原为原来的x,可以把AutoEncoder理解为有损的压缩与解压。
AutoEncoder模型有什么用呢?有两个主要功能:
- 降噪
- 将高维的特征转为低维度的特征(从X到z)。
input = Input(shape=(seq_len,))
encoded = Dense(encoding_dim, activation='relu')(input)
decoded = Dense(seq_len)(encoded)
autoencoder = Model(input, decoded)
AutoEncoder 其实是增强的 PCA:AutoEncoder 具有非线性变换单元,因此学出来的 Code 可能更精炼,对 Input 的表达能力更强
因为AutoEncoder具有降噪的功能,那它理论上也有过滤异常点的能力,因此我们可以考虑是否可以用AutoEncoder对原始输入进行重构,将重构后的结果与原始输入进行对比,在某些点上相差特别大的话,我们可以认为原始输入在这个时间点上是一个异常点。
然而,AutoEncoder模型本身没有什么多少正则化手段,容易过拟合,当训练数据存在较多异常点的时候,可能模型的效果就不会特别好,而我们要做的是无监督异常检测(要是有label的话就用有监督模型了),因此我们的场景是训练的时候允许数据存在少量异常值的,但当异常值占比较大的话,AutoEncoder可能会过拟合(学习到异常模式)
Variational AutoEncoder(VAE)
原理可参考:VAE
上面介绍了VAE的原理,看起来很复杂,其实最终VAE也实现了跟AutoEncoder类似的作用,输入一个序列,得到一个隐变量(从隐变量的分布中采样得到),然后将隐变量重构成原始输入。不同的是,VAE学习到的是隐变量的分布(允许隐变量存在一定的噪声和随机性),因此可以具有类似正则化防止过拟合的作用。
异常检测是一样的,使用重构误差来判断异常。
缺陷
- 理论上它只能对一个KPI训练单独一个模型,不同类型的KPI需要使用不同的模型,可以参考文章ROCKA,先对不同的KPI进行模板提取,然后进行聚类,对每个类训练单独一个模型。
- 需要设置异常阈值。因为我们检测异常是通过对比重构后的结果与原始输入的差距,而这个差距多少就算是异常需要人为定义,然而对于大量的不同类型的KPI,我们很难去统一设置阈值,这也是采用VAE模型比较大的一个缺陷。虽然在Dount论文中,采用的是重构概率而不是重构误差来判断异常,然而重构概率也需要设置阈值才能得到比较精确的结果。
清华/阿里巴巴开源的周期型——Donut相关推荐
- 阿里巴巴开源离线同步工具 DataX3.0 介绍
一. DataX3.0概览 DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳定 ...
- 「内部分享」阿里巴巴 开源软件列表、建议收藏!
点击上方的终端研发部,右上角选择"设为星标" 每日早9点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 往期文章 初探:Java虚拟机那 ...
- 【干货】阿里巴巴 开源软件列表
文章来源:开源中国 原文链接:http://www.oschina.net/project/alibaba?sort=view&p=5 来自:IT大佬 导读 阿里的开源项目很多,这也跟@淘宝正 ...
- 阿里巴巴开源技术汇总:115个软件(一)
阿里巴巴开源技术汇总:115个软件 摘要: 云栖社区近期策划了多期和开源产品相关的内容,如GitHub最流行的开源机器学习.大数据等项目,揭秘阿里Weex项目,Hilo开源分析等.深入挖掘,发现开源中 ...
- 阿里巴巴开源技术汇总:115个软件(五)
阿里巴巴开源技术汇总:115个软件(五) 摘要: 很高兴又和广大读者相见了!今天是第五期阿里巴巴开源技术汇总.在前面四期中我们带领大家浏览了许多阿里的开源项目,相信现在读者们跟我一样对阿里的很多优秀的 ...
- 阿里巴巴开源技术汇总:115个软件(四)
阿里巴巴开源技术汇总:115个软件(四) 摘要:阿里巴巴开源技术汇总:115个软件(四)今天发布了!在前面三期中相信大家已经浏览了很多优秀的开源作品,领略到了开源的魅力.我们相信今天第四期的内容也不会 ...
- 数据同步的终极解决方案,阿里巴巴开源的Canal框架当之无愧!!
写在前面 在当今互联网行业,尤其是现在分布式.微服务开发环境下,为了提高搜索效率,以及搜索的精准度,会大量使用Redis.Memcached等NoSQL数据库,也会使用大量的Solr.Elastics ...
- 贾扬清出任阿里巴巴开源技术委员会负责人
9月27日,杭州云栖大会上,阿里巴巴副总裁.阿里云智能计算平台事业部总经理贾扬清正式出任阿里巴巴开源技术委员会负责人.阿里巴巴开源技术委员会让开源正式升级成为阿里技术战略之一.(澎湃)
- 阿里巴巴开源项目 Druid 负责人温少访谈
本文是由转载而来. Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和SQL解析 器组成.该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服 ...
最新文章
- EOS安全漏洞再发,BCH将如何兼顾智能合约效率与安全?
- MyBatis第二天
- Java—实现 IOC 功能的简单 Spring 框架
- java javah_Java开发网 - 一个javah的问题
- 一个通用的VB磁盘文件搜索引擎类
- 取rtsp流数据_SDP在RTSP、国标GB28181、WebRTC中的实践
- H5禁用长按选取,原生拷贝功能
- python定时导出已发送文件_python定时发送数据库备份文件到邮箱
- 使用python制作pdf的格式转换程序
- 虚拟机桌面图标开机位置错乱的解决方法
- 苹果台式电脑怎么使用计算机,苹果笔记本键盘怎么用_苹果笔记本电脑键盘的使用方法-win7之家...
- double转换成百分数
- 小米手机的专用计算机连接软件,小米手机怎么连接电脑?这些方法值得收藏!...
- C语言实现三子棋?五子棋?不,是n子棋
- 有毒气体传感器代替金丝雀和老鼠在矿山
- 防止被运营商DNS劫持 作者:zzc
- 学计算机前端技术学院,百度前端技术学院(任务)
- C Primer Plus第六版第七章编程题目与参考答案⭐
- 论文领读|基于 VQVAE 的长文本生成
- Windows Server 2012 R2 搭建FTP服务