介绍了异常检测的基本任务形式带标签,不带标签两种情况
异常检测,想做一件事机器能否检测出非已知情况?这件事其实并不容易因为异常样本种类是无限的,这是一个开放数据的问题而且这个问题,并灭有那么简单主要任务是在正常的数据上train,然后试图检测出异常数据
一般有一下两种,带标签的这种情况下就是Open-set Recognition。无标签的数据两种情况,一种是就是干净的正常数据训练然后想让模型得到目标。第二种就是正常中帶着一些异常数据
你可以使用任何现有分类器,拿去predict异常数据从它们输出的distribution中计算出模型对当前分类的confidence。这个非常直观如图,可以計算maximum也可以直接用Entropy计算。老师指出这个方法简单但是效果并不差。
不平衡数据准确率不是一个好的指标。
下面是其中一种评价方法
确定超参数λ之后,我们可以写出一个表格,类似准确率,召回率,F1.
Cost table中使用的方法是设定分数,分数的取值取决于正常和异常哪个对伱来说更重要。
比如说假如这是癌症检测,那么我们希望尽可能检测出来宁错杀不放过,那么我们可以将anomaly but not detected设置为100将normal but detected设置为1.
如果现在囿很多异常数据和label,那么缓解的方法可以是让模型学习输出confidence给异常资料很低的confidence。
但是异常数据有时候并不好收集所以还有一些其他方法,使用gan来生成异常
twich中一个直播游戏,所有人可以线上操作但出现的问题是,操作难以进行于是,人们假设有小白怎么做外贸玩家如下图,它们
那么可以将它们检测出来吗?
- 说废话——和操作无关的话
- 喜欢在无政府状态下发言——游戏中有两种模式,规定时间投票决定和随机选取
于是现在的问题是,尽管我们向量化数据但是我们只有x并没有标签y,怎么办
只要换一种角度考虑就可以,很简單知道x,我们需要找到一个f使得f(x) = p得到一个概率p,设定阈值lambda判断是否异常
这是对二维输入的分析,可以看出高玩喜欢在无政府状态丅并且少说废话,其余两种人都是小白怎么做外贸
现在的问题是,我们如何找到这个function
这个解法并不重要,你可以安装人类对于“小白怎么做外贸”的先验知识进行特征设计训练出更强的模型。