李宏毅异常检测笔记

本文是李宏毅视频的笔记

1. 异常检测定义?

给定一组训练数据 {x^1,x^2,...,x^N }

找到一个函数检测 输入 x 是否相似于训练数据。

不同的方法使用不同的方式决定相似性。

2. 应用领域

  • Fraud(欺诈) Detection        
    • Training data: 正常刷卡行为, 𝑥x: 盜刷?
      • Ref: https://www.kaggle.com/ntnu-testimon/paysim1/home
      • Ref: https://www.kaggle.com/mlg-ulb/creditcardfraud/home
  • Network Intrusion(入侵 Detection
    • Training data: 正常连线,  x: 攻击行為?
      • Ref: http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html
  • Cancer Detection
    • Training data: 正常細胞 x: 癌細胞?
      • Ref: https://www.kaggle.com/uciml/breast-cancer-wisconsin-data/home

3. 解决方法:

场景1:训练数据有标注

方法1:  2分类?

 缺点:

  1. 异常数据不能被认为是一个类
  2. 在某些情况下,很难找到异常样本......


方法2: 借助分类器

先训练一个分类器

 输出一个置信度分数(比如 softmax),取最大类别概率和阈值进行比较

缺点:

  1. 可能有的样本会得到很高的置信度,但是是异常样本

 上图为训练领域内的样本输入得到的置信度输出,显然大部分都有很高的置信度。

而下图是非训练领域的样本输入的结果,只有10%样本得到很高的输出。

进阶算法:待研究

Terrance DeVries, Graham W. Taylor, Learning Confidence for Out-of-Distribution Detection in Neural Networks, arXiv, 2018

  • Learning a network that can directly output confidence


方法2 总结

训练集:

  • 训练数据按分类准备
  • 训练一个分类器,使用某种方法(上面说了两种)从分类器得到置信度。
  • 根据阈值判断是否异常

验证集:

  • 标注每张图像是否为异常数据(2分类)
  • 计算上面训练的模型f(x)的的性能,从而调整 阈值 和 其他超参数

测试集:(上线)

  • 输入图像,f(x) 判断是否异常

那么如何计算一个异常检测模型的性能好坏?

不能直接用accuracy 来衡量,因为异常的样本可能特别少,模型啥都不干可能得到很高的accuracy。

性能好坏的评估与任务有关,看需求!

两种错误:

  • 正常样本识别为异常 (False alarm)
  • 异常样本判定为正常(missing)

根据任务,给它们不同的权重,如下图所示:

缺点:

老虎和狼可能会有很大的置信度。

解决手段:



场景2:训练数据无标注

解决手段:

方法1:极大似然估计

 

 

 

 

方法2:自编码器重建 

 

其他方法 

 参考链接:【 李宏毅机器学习:异常检测 】Anomaly Detection(合辑)(中文)_哔哩哔哩_bilibili 


 评价:该教程只是简单的介绍,细节不够,仍需要具体尝试和看论文!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

理心炼丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值