天天看点

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

本篇文章是对论文 Deep Learning for Anomaly Detection: A Review 的精读,一共会分为三次来讲,如果你也是深度学习或者异常检测未入门的同学,这篇文章也许会很适合你哦,那我们现在开始吧!
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

目录

论文简介

发表信息

作者信息

论文摘要

文章结构

第一章:Introduction

异常检测(Anomaly Detection)

深度异常检测(Deep Anomaly Detection)

⭐️小结

第二章:Complexities and Challenges

Complexties

1.Unknownness  

2. Heterogeneous anomaly classes.

3.Rarity and class imbalance

4.Diverse types of anomaly

🌸补充知识:异常类别

Challenges

1.Low anomaly detection recall rate

2.Anomaly detection in high-dimensional

3.Data-efficient learning of normality/abnormality

🌸补充知识:全/半/无/弱监督

4.Noise-resilient anomaly detection.

5.Detection of complex anomalies.

6.Anomaly explanation

🌸补充知识:端到端

⭐️小结

第三章:Addressing the challenges

 Preliminaries

🌸补充学习:深度神经网络

🌸补充学习:激活函数

总结

论文简介

发表信息

论文链接:https://dl.acm.org/doi/10.1145/3439950

ACM Computing Surveys, Vol. 54, No. 2, Article 38. Publication date: March 2021.

作者信息

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

Guansong Pang 论文列表:dblp: Guansong Pang

Chunhua Shen 论文列表: https://dblp.uni-trier.de/pid/56/1673.html

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

两人从2019年至今分别发表了十余篇与Anomaly Detection相关的论文

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

论文摘要

Anomaly detection, a.k.a. outlier detection or novelty detection, has been a lasting yet active research area in various research communities for several decades. There are still some unique problem complexities and challenges that require advanced approaches. In recent years, deep learning enabled anomaly detection, i.e., deep anomaly detection, has emerged as a critical direction. This article surveys the research of deep anomaly detection with a comprehensive taxonomy, covering advancements in 3 high-level categories and 11 fine-grained categories of the methods. We review their key intuitions, objective functions, underlying assumptions, advantages, and disadvantages and discuss how they address the aforementioned challenges. We further discuss a set of possible future opportunities and new perspectives on addressing the challenges.

文章结构

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

对着这个文章结构图,我们简单了解一下这篇文章讲了些什么内容。一共是8章。

第一章 introduction 简单介绍了什么是异常检测,以及什么是深度异常检测

第二章 problem and challenges 主要介绍了异常检测中存在的4个复杂性问题,随后讲了由于这些问题存在给深度异常检测带来了哪些挑战,一共介绍了6个挑战。这一部分也是本次论文分享的重点

第三章 addressing the challenges with deep anomaly detection 在这个章节中作者介绍了一些神经网络的预备知识,引入了层次分类法,从建模角度将深度异常检测方法分为三个主要类别。

第四,五,六章 是分别详细介绍三个类别第七章讲了算法与数据集,最后一章是总结以及讨论未来的机会

总体来说:讲述了当前深度检测方法的形成,目标函数,基本假设,以及他们在解决异常检测中一些挑战上的弱点与优点,帮助我们更好的去理解为什么需要深度异常检测。本次的主要是对前三章的学习成果进行一个分享 

第一章:Introduction

异常检测(Anomaly Detection)

  • Anomaly Detection,又名outlier detection or novelty detection
  • 指的是检测与大多数数据实例明显偏离的数据实例的过程。
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
在网上看到一个比较有意思的图片,通过这张图片想强调的是,对于什么是异常取决于训练集。如果你给的训练集只有雷丘,那么比卡丘就是“异常”;相反,如果你给的训练集是比卡丘,那雷丘就是“异常”

 异常检测:「无监督或者弱监督下的非平衡数据多分类问题,并要求一定的解释性」

这是在其他论文中看到的一句总结,最开始的时候看不太懂,学习了前两章之后,回头来看这句话觉得总结得很精辟

深度异常检测(Deep Anomaly Detection)

  • 用于异常检测的深度学习,简称深度异常检测(Deep Anomaly Detection)
  • 旨在通过神经网络来学习特征表示或 anomaly scores("异常点",指不平衡数据中较少的那一部分) ,以便进行异常检测。
  • 目前已经引入了大量深度异常检测方法,在解决各种现实应用中的具有挑战的检测问题方面,表现出比传统异常检测明显更好的性能。

⭐️小结

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
 这一小节我们就快速地过一下,重点是第二章,第一节中提到的众多概念在后面也会详细解释

第二章:Complexities and Challenges

在这个章节中作者讨论了异常检测背后的一些独特的问题的复杂性以及由此产生的大量未解决的挑战

Complexties

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
 一共介绍了异常检测的四个复杂问题,我把他们总结为【未知】,【差异】,【稀少】,以及【多类】。前三个复杂点比较好理解因此就不赘述了,第四个部分会展开来分享

1.Unknownness  

  • 【未知】

异常与许多未知因素有关,例如,具有未知且突发性质的行为(新的恐怖袭击、欺诈和网络入侵)

它们在实际发生之前一直是未知的。

2. Heterogeneous anomaly classes.

  • 【差异】:异构的异常类

异常是不规则的,一类异常可能表现出与另一类异常完全不同的异常特征。

比如视频监控中,抢劫、交通事故、入室盗窃等异常事件在视觉上差别很大。

3.Rarity and class imbalance

  • 【稀少】:稀有和类不平衡

正常实例占绝大部分而异常的实例通常是罕见的,异常实例的归类通常比正常实例的归类要难很多,这也加剧了类不平衡问题

知识点补充:类别不平衡问题:一类数据的总数远小于另一类数据(负)的总数的问题

这里作者想要论述的是,异常数据的总数远远小于正常数据的数量

4.Diverse types of anomaly

  • 【多类】:不同种类的异常
作者在此处没有对这三种类型进行详细的论述,但是后文中还会继续提到这些概念,所以参考了论文Anomaly detection: A survey 做了一个大概的了解

🌸补充知识:异常类别

1)Point anomaly

  • 点异常:
    • 如果单个数据实例相对于其余数据可以被认为是异常的,那么该实例被称为点异常
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

图片来源于参考文献[28]-Anomaly detection: A survey

点o1和o2以及区域o3中的点位于正常区域N1N2的边界之外,他们是点异常

举例: 对于【个人的信用卡交易金额】这个数据集来说,金额非常高的那一次交易便是一个点异常。

2)Conditional anomalies

  • 条件异常:
    • 如果数据实例在特定的上下文/条件中是异常的,但是在其他条件下不是,那么它被称为条件异常
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

图片来源于参考文献[28]-Anomaly detection: A survey

时间t1的温度与时间t2的温度相同,但是发生在不同的上下文中,因此t2是条件异常,而t1不是异常

3)Group anomalies

  • 集合异常:
    • 如果相关数据实例的集合相对于整个数据集是异常的,则称之为集合异常。
    • 集合异常中的单个数据实例本身可能不是异常,但是它们作为一个集合一起出现是异常的
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

 图片来源于参考文献[28]-Anomaly detection: A survey

上图是一个显示人体心电图输出的例子,红色标注的区域表示异常,因为相同的低值存在异常长的时间。但是对于该低值本身而言,它并不是异常值。

Challenges

上一小节描述的各种复杂性问题(【未知】,【差异】,【稀少】,【多类】)为异常检测带来了很多挑战,下图中描述的六点是由这些复杂性问题引起的挑战。接下来会先展开介绍这六个挑战。
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

1.Low anomaly detection recall rate

  • 异常检测召回率低:
    • 因为异常很难识别,所以许多正常情况被错误地报告为异常,而真正复杂的异常却容易被遗漏。
    • 虽然多年来已经 引入了很多的异常检测方法,但是当前最先进的方法,比如说无监督的方法在真实数据集上仍然经常导致高误报。如何减少误报和提高检测召回率是最重要也是最困难的挑战之一。
 无监督异常检测在后文会补充介绍

2.Anomaly detection in high-dimensional

and/or not-independent data.

  • 高纬度或非独立数据集中的异常检测
    • 异常通常在低维空间中表现出明显的异常特征,但在高维空间中变得隐藏且不引人注意。
    • 很难从可能相互依赖的实例中检测异常,例如通过时间、空间、基于图形和其 他相互依赖关系。

3.Data-efficient learning of normality/abnormality

  • 正常/异常的数据高效学习:
    • 全监督异常检测,收集大规模标记异常数据很困难
    • 无监督异常检测,很大程度上依赖于对异常分布的假设。
    • 半监督异常检测,更加适用,因为收集标记的正常数据和一小部分标记的异常数据往往并不难
    • 弱监督异常检测,适用于有一部分异常类的标签,但是类标签是不完整,或者不准确的场景
  • 挑战:
    • 如何用少量的标记异常数据表达正常情况或非正常情况
    • 如何训练一个根据已有的少量的标记异常检测出新异常的模型

上文中提到了全/半/弱/无监督等,在这里先做补充学习,然后再来看这段话才比较好理解

  参考:https://blog.csdn.net/limiyudianzi/article/details/78921450

🌸补充知识:全/半/无/弱监督

1)全监督学习(supervised learning):

  • 概念:已知数据和这些数据一一对应的标签,训练一个智能算法,将新的输入数据映射到标签的过程。
  • 说明:监督学习是最常见的学习问题之一,就是人们口中常说的分类问题。
  • 举例:比如已知一些图片是猫,一些图片不是猫,那么训练一个算法,当一个新的图片输入算法的时候算法告诉我们这张图片是不是猫。

2)无监督学习(unsupervised learning):

  • 概念:已知数据不知道任何标签,按照一定的偏好,训练一个智能算法,将所有的数据映射到多个不同标签的过程。
  • 说明:相对于有监督学习,无监督学习是一类比较困难的问题,所谓的按照一定的偏好,是比如高于某个高度,等人们认为属于一类的事物应具有的一些特点。
  • 举例:猫和长颈鹿混杂在一起,算法会测量高度,发现动物们主要集中在两个高度,一类动物身高30厘米左右,另一类动物身高两米左右,那么算法按照就近原则,高的那一类会被标记为长颈鹿,矮的那一类被标记为猫。

3)半监督学习(semi supervised learning) :

  • 概念:已知数据和部分数据一一对应的标签,有一部分数据的标签未知,训练一个智能算法,学习已知标签和未知标签的数据,将输入数据映射到标签的过程。
  • 说明:半监督通常是应用于数据的标注非常困难的场景
  • 举例:比如说医院的检查结果,医生也需要一段时间来判断健康与否,可能只有几组数据知道是健康还是非健康,其他的只有数据不知道是不是健康。

4)弱监督学习(weakly supervised learning):

  • 概念:已知数据和这些数据一一对应的弱标签,训练一个智能算法,将输入数据映射到一组更强的标签的过程。
  • 说明:标签的强弱指的是标签蕴含的信息量的多少
  • 举例:比如相对于分割的标签来说,分类的标签就是弱标签,如果我们知道一幅图,告诉你图上有一只猫,然后需要你把猫在哪里,猫和背景的分界在哪里找出来,那么这就是一个已知弱标签,去学习强标签的弱监督学习问题。
另外,还有一个在上文中没有提到的强化学习也很重要

5)强化学习(reinforcement learning):

  • 概念:智能算法在没有人为指导的情况下,通过不断的试错来提升任务性能的过程。
  • 说明:“试错”需要有一个衡量标准
  • 举例:棋类游戏中,我们并不知道棋手下一步棋是对是错,不知道哪步棋是制胜的关键,但是我们知道结果是输还是赢,如果算法这样走最后的结果是胜利,那么算法就学习记忆,如果按照那样走最后输了,那么算法就学习以后不这样走。

4.Noise-resilient anomaly detection.

  •  抗噪声异常检测:
    • 噪声的数量可能与数据集显著不同,并且噪声实例可能不规则地分布在数据空间中
    • 许多弱/半监督异常检测方法前提是标记的训练数据是干净的, 当存在大量噪声时,这些检测方法会变得很脆弱。
    • 这里的噪声可能是错误标记的数据,也可能是未标记的异常。

5.Detection of complex anomalies.

  • 复杂异常的检测:
    • 点异常➡️集合异常:现有的检测方法多针对点异常,一个主要挑战是将条件/集合异常的概念合并到异常模型中
    • 单源异常➡️多源异常:一些异常只有在考虑两个或更多数据源时才能被检测到,比如,音频、图像。

6.Anomaly explanation

  • 异常解释:
    • 即一个数据为什么会被识别为异常
    • 对于复杂的模型,从特定的检测方法中导出异常解释是一个未解决的问题
    • 在许多安全关键领域,如果异常检测模型直接用作黑盒模型,可能会有一些主要风险。
    • 举例:犯罪检测系统中,数据集合中被标记为犯罪的异常数据很少,这就会导致检测算法会倾向于对数据集内部那些同样数量很少的行为检测为异常,或者倾向于将数量较多的数据检测为非异常。
到这里,上文已经讲述了异常检测存在的四个复杂性问题,以及由这些问题带来的六点挑战,接下来作者表明了深度学习的方法相较于传统的检测方法而言能更好的应对这些挑战。
  • 深度方法
    • 能够实现整个异常检测管道的端到端优化,能够学习专门为异常检测定制的表达式。
    • 大大提高标记数据的利用率, 减少在完全监督中对大规模标记数据的需求
    • 提供了将异常检测和解释统一到单一框架中的选项,对特定模型发现的异常做出更真实的解释。
    • 擅长从不同类型的数据中学习复杂的结构和关系。

🌸补充知识:端到端

end-to-end

参考:什么是 end-to-end 神经网络? - 知乎

  • 端到端指的是输入是原始数据,输出是最后的结果
  • 之前,输入端并不是直接的原始数据,而是在原始数据中提取的特征

举例:这一点在图像问题上尤为突出,因为图像像素数太多,数据维度高,会产生维度灾难,所以原来一个思路是手工提取图像的一些关键特征,这实际就是就一个降维的过程。

那么问题来了,特征怎么提?特征提取的好坏异常关键,甚至比学习算法还重要

举例:对一系列人的数据分类,分类结果是性别,如果你提取的特征是头发的颜色,无论分类算法如何,分类效果都不会好,如果你提取的特征是头发的长短,这个特征就会好很多,但是还是会有错误,如果你提取了一个超强特征,比如染色体的数据,那你的分类基本就不会错了。

  • 这就意味着,特征需要足够的经验去设计,这在数据量越来越大的情况下也越来越困难。
  • 于是就出现了端到端网络,特征可以自己去学习,所以特征提取这一步也就融入到算法当中,不需要人来干预了。

⭐️小结

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

在第二章中我们了解了异常检测面临的四个复杂性问题,可以总结为:

【未知】【异常】【稀少】和【多类】

以及带来的六个挑战,可以总结六个关键词:

【召回率】【高纬度】【无监督】【噪声】【集合/条件】【解释】

第三章:Addressing the challenges

With deep anomaly detection

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

 Preliminaries

第一部分主要是介绍深度神经网络的基础知识

这一段在论文中讲得比较简单,对我这种完全没有深度学习基础的同学来说比较晦涩,所以接下来这一部分也是先做补充学习,之后再来看论文中的论述就会好理解很多

🌸补充学习:深度神经网络

神经网络基于感知机的扩展,首先来简单了解感知机

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

 感知机的模型,它是一个有若干输入和一个输出的模型,输出和输入之间学习到一个线性关系,得到中间输出结果:

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

 接着是一个神经元激活函数:

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

 从而得到我们想要的输出结果1或者-1。这个模型只能用于二元分类,且无法学习比较复杂的非线性模型,因此在工业界无法使用。而神经网络则在感知机的模型上做了扩展,总结下主要有三点:

1)加入了隐藏层,隐藏层可以有多层,增强模型的表达能力,如下图实例,当然增加了这么多隐藏层模型的复杂度也增加了好多。

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

2)输出层的神经元也可以不止一个输出,可以有多个输出,这样模型可以灵活的应用于分类回归,以及其他的机器学习领域比如降维和聚类等。多个神经元输出的输出层对应的一个实例如下图,输出层现在有4个神经元了。

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

3) 对激活函数做扩展,感知机的激活函数是𝑠𝑖𝑔𝑛(𝑧)虽然简单但是处理能力有限,因此神经网络中一般使用的其他的激活函数,比如Sigmoid函数,即:

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

还有后来出现的tanx, softmax,和ReLU等。通过使用不同的激活函数,神经网络的表达能力进一步增强。

对于各种常用的激活函数,在论文中也有提到,自然又产生了一个疑问,激活函数到底是什么?在这里先按下不表,学习完深度神经网络的大致概念之后再来解决这个问题。

到这里,我们了解了神经网络基于感知机的扩展,而DNN可以理解为有很多隐藏层的神经网络。

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

 从DNN按不同层的位置划分,DNN内部的神经网络层可以分为三类,输入层,隐藏层和输出层。第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是从小的局部模型来说,还是和感知机一样,即一个线性关系加上一个激活函数。

🌸补充学习:激活函数

参考:https://zhuanlan.zhihu.com/p/25279356

激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题。

举个例子,在下图中想要将三角形和圆形分开,如果只用线性关系是不可能的,但是加入了激活函数之后,引入非线性的要素,通过训练就能将两者很好地区分开
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

另一种说法:激活函数是对各个路径的输入求和之后进一步增强的函数

可以看到常用的几个激活函数确实是有增强效果,个人觉得这个说法也有道理。
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
做好这两个补充学习之后,我们再来看作者写的这段话,就很好理解了

Deep neural networks leverage complex compositions of linear/non-linear functions that can be represented by a computational graph to learn expressive representations

深度神经网络利用 可由计算图表示的 线性/非线性函数 的复杂组合 来学习表达表示

Two basic building blocks of deep learning are activation functions and layers. Activation functions determine the output of computational graph nodes (i.e., neurons in neural networks) given some inputs.

深度学习的两个基本构件是激活函数和层。给定一些输入,激活函数决定计神经网络中的神经元的输出。

They can be linear or non-linear functions. Some popular activation functions include linear, sigmoid, tanh, Rectified Linear Unit (ReLU) and its variants.

它们可以是线性或非线性函数。一些流行的激活函数包括线性、sigmoid、tanh、整流线性单元(ReLU)及其变体。

A layer in neural networks refers to a set of neurons stacked in some forms.

神经网络中的一层指的是以某种形式堆叠的一组神经元。

Commonly used layers include fully connected, convolutional and pooling, and recurrent layers. These layers can be leveraged to build different popular neural networks.

常用的层包括全连接层、卷积层和池层以及循环层。这些层可以用来构建不同的流行神经网络(MLP,CNN,RNN,LSTM)。

fixme:接下来作者做了这样一段描述,看了很多遍着实没有看懂😂,我猜想应该是前置的知识没有储备好导致的,所有这一段话在后面学好了之后再和大家分享。
【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结

总结

😄😋今天的论文分享到这里就结束啦✿✿ヽ(°▽°)ノ✿,接下来做一个简单的总结:

首先对作者以及整个文章的基本结构做了一个介绍,在第一章中,作者简单介绍了异常检测以及深度异常检测。第二章讲了四个关于异常检测的复杂性难题,此处我们补充学习了三种类型的异常,接着讲了由这些复杂性问题带来的六个挑战,这一部分补充学习了全/半/无/弱监督以及端到端的概念。第三章主要讲了用深度异常检测的方法去解决以上提到的六个挑战,先学习了预备知识(深度神经网络),随后会将目前存在的异常检测模型分为三类分别讨论,这一部分会在下次的论文分享中一起学习,同时下次也会解决这次存留的疑问。

论文原文:https://download.csdn.net/download/qq_39328436/20223367

本篇论文分享ppt:https://download.csdn.net/download/qq_39328436/20223377

【精读】Deep Learning for Anomaly Detection: A Review(上)论文简介第一章:Introduction第二章:Complexities and Challenges第三章:Addressing the challenges总结
 我开始读研啦,以后会经常以这样的形式精读深度学习,神经网络,异常检测等方向的论文,如果这篇文章有帮助到你的话,麻烦👍❤️⭐️

继续阅读