目录

-

-

- 1. 引言

- 2. with labels

    - 2.1 简洁的Baseline

    - 2.2 评价指标

    - 2.3 问题:异常case太像正常case

- 3. without labels

    - 3.1 小白检测

    - 3.2 Auto-Encoder

 

概述

介绍了异常检测的基本任务形式,带标签,不带标签两种情况。

1. 引言

异常检测,想做一件事,机器能否检测出非已知情况?这件事其实并不容易。因为异常样本种类是无限的,这是一个开放数据的问题。而且这个问题,并灭有那么简单,主要任务是在正常的数据上train,然后试图检测出异常数据。

一般有一下两种,带标签的,这种情况下就是Open-set Recognition。无标签的数据,两种情况,一种是就是干净的正常数据,训练然后想让模型得到目标。第二种就是正常中带着一些异常数据。

Anomaly Detection 入门概述

2. with labels

2.1 简洁的Baseline

你可以使用任何现有分类器,拿去predict异常数据,从它们输出的distribution中计算出模型对当前分类的confidence。这个非常直观,如图,可以计算maximum,也可以直接用Entropy计算。老师指出,这个方法简单但是效果并不差。

Anomaly Detection 入门概述

2.2 评价指标

不平衡数据,准确率不是一个好的指标。

下面是其中一种评价方法。

确定超参数λ之后,我们可以写出一个表格,类似准确率,召回率,F1.

Cost table中使用的方法是设定分数,分数的取值取决于,正常和异常哪个对你来说更重要。

比如说,假如这是癌症检测,那么我们希望尽可能检测出来,宁错杀不放过,那么我们可以将anomaly but not detected设置为100,将normal but detected设置为1.

Anomaly Detection 入门概述

有一些指标不用设置λ,例如Area under ROC curve

2.3 问题:异常case太像正常case

如果现在有很多异常数据和label,那么缓解的方法可以是让模型学习输出confidence,给异常资料很低的confidence。

但是异常数据有时候并不好收集,所以还有一些其他方法,使用gan来生成异常。

ref

Kimin Lee, Honglak Lee, Kibok Lee, Jinwoo Shin, Training Confidence-calibrated Classifiers for Detecting Out-of-Distribution Samples, ICLR 2018

Mark Kliger, Shachar Fleishman, Novelty Detection with GAN, arXiv, 2018

3. without labels

 

3.1 小白检测

任务背景:

twich中一个直播游戏,所有人可以线上操作。但出现的问题是,操作难以进行,于是,人们假设有小白玩家,如下图,它们

  • 不懂怎么玩
  • 恶意乱按

那么,可以将它们检测出来吗?

Anomaly Detection 入门概述

以两个特征为例。

  • 说废话——和操作无关的话。
  • 喜欢在无政府状态下发言——游戏中有两种模式,规定时间投票决定和随机选取。

Anomaly Detection 入门概述

于是现在的问题是,尽管我们向量化数据,但是我们只有x并没有标签y,怎么办?

无标签检测

Anomaly Detection 入门概述

只要换一种角度考虑就可以,很简单,知道x,我们需要找到一个f,使得f(x) = p得到一个概率p,设定阈值lambda判断是否异常。

这是对二维输入的分析,可以看出,高玩喜欢在无政府状态下并且少说废话,其余两种人都是小白。

Anomaly Detection 入门概述

现在的问题是,我们如何找到这个function。

这是一个无监督问题,下面使用Probabilistic Generative Model对这个问题进行简单的求解。

Anomaly Detection 入门概述

这个解法并不重要,你可以安装人类对于“小白”的先验知识进行特征设计,训练出更强的模型。

Anomaly Detection 入门概述

3.2 Auto-Encoder

Anomaly Detection 入门概述

 

相关文章: