【深度学习】李宏毅2021/2022春深度学习课程笔记 - Anomaly Detection(异常侦测)

news2024/10/6 0:33:36

文章目录

  • 一、Problem Formulation
  • 二、What is Anomaly?
  • 三、Applications
  • 四、Binary Classification?
  • 五、Categories
  • 六、Case 1:With Classifier
  • 七、Case 2:Without Labels
  • 八、Use Auto-Encoder
  • 九、More


一、Problem Formulation

假设我们现在有N个训练资料,异常侦测要做的就是给定一个输入x,判断它是否和N个训练资料相似,如果不相似,可能就是异常资料

在这里插入图片描述


二、What is Anomaly?

如果训练资料是雷丘,那么皮卡丘就是异常的
如果训练资料是皮卡丘,那么雷丘就是异常的
如果训练资料是神奇宝贝,那么数码宝贝就是异常的

在这里插入图片描述


三、Applications

诈欺侦测:检测刷卡行为是否异常

在这里插入图片描述

网络攻击侦测:检测来访的请求是否异常

在这里插入图片描述

癌细胞侦测:检测是否出现癌细胞

在这里插入图片描述


四、Binary Classification?

做异常侦测最直觉的想法就是把它当作二分类问题来做,异常或者非异常。如下图所示

在这里插入图片描述

但是把异常侦测当作二分类问题来做有一个问题,就是异常能够被当作一个类别吗?假设正常资料是神奇宝贝,那么异常的资料可能是数码宝贝,可能是茶壶,总之可能是非神奇宝贝的任何类别。也就是说异常这个类别包括的范围太大了,只要不是神奇宝贝都可以视作异常。所以,通常来说,我们不能将异常侦测问题当作简单的二分类问题来解。

在这里插入图片描述


五、Categories

异常侦测的分类如下:

  • 有标签的训练数据
  • 无标签的训练数据
    • 所有训练数据都是正常的
    • 小部分训练数据是异常的

在这里插入图片描述


六、Case 1:With Classifier

Case 1:检测数据是不是来自辛普森家庭

在这里插入图片描述

并且,训练数据还是有标签的

在这里插入图片描述

输出预测的类别和置信分数,如果置信分数低于设定的阈值,则说明是异常数据

在这里插入图片描述

怎么确定置信分数呢?最简单的方法就是,拿输出的类别概率分布中最大的概率值作为置信分数。

在这里插入图片描述

做一下测试发现,网络对辛普森家庭的成员输出的置信分数较大,而对于非辛普森家庭的成员输出的置信分数较小

在这里插入图片描述

当然也有例外

在这里插入图片描述

当然,我们也可以让网络直接输出置信分数和类别概率分布,如下图所示

在这里插入图片描述

训练资料:标签为属于辛普森家庭的哪个人物的图片
验证资料:标签为是否属于辛普森家庭的图片
测试资料:没有标签的图片,直接预测其是否属于辛普森家庭

在这里插入图片描述

下面进行模型的评估。

在这里插入图片描述

在异常侦测任务中,我们往往不会拿正确率来衡量模型的好坏,因为异常数据的数量往往是比较少的,所以,即使模型将所有数据都认定为非异常的数据,算出来的正确率也是很高的

在这里插入图片描述

其他评价方法:AUC曲线、混淆矩阵

在这里插入图片描述

当然,异常侦测也会遇到挑战,比如当正常资料是猫的时候,给定一个老虎的图片,模型很可能会认为老虎是猫,因为老虎和猫确实是有相似的地方的。

在这里插入图片描述

另外,辛普森家庭的人脸特征就是黄色,如果我们将需要侦测异常的图片涂上一些黄色,那么模型就会给出很高的置信分数,因为模型可能认为只要有黄色的头发或者脸就大概率是辛普森家庭的人物

在这里插入图片描述

当然有些方法可以解决这个问题,如下图所示。我们希望机器可以学习到在遇到异常数据的时候给出较低的置信分数。但是这样就要求我们在训练的时候拥有较多的异常数据,但是异常数据往往是难以获取的。于是,有人想出了一招,用生成式网络来生成虚假的异常数据不就可以了吗!这个想法真是太棒了,但是要注意,生成的异常数据不能和真实数据太像噢,否则会干扰真实数据的判断。

在这里插入图片描述


七、Case 2:Without Labels

如下图所示,是一个风靡一时的游戏,玩法就是很多玩家共同控制同一个角色进行游戏。

在这里插入图片描述

然而,人们相信,有一些小白藏在玩家之中,它们可能是由于不会玩这个游戏,导致按下的键会阻碍游戏的进程。在这个案例中,我们就希望通过异常侦测的手段,把这些小白的操作找出来。

在这里插入图片描述

由于训练数据是没有标签的,我们可以让模型输出一个实数,代表输入和训练数据的相似程度,当模型输出小于阈值时,则认为输入是异常的,否则输入是正常的

在这里插入图片描述

假设输入数据是一个二维向量,每个维度分别代表其说垃圾话的概率和在无政府状态下发言的概率。如下图所示,大部分人在无政府状态发言的概率较高,说垃圾话的概率较低。

在这里插入图片描述

假设数据来自一个概率密度函数f,它由参数 θ \theta θ控制,我们的目标就是找到一个参数 θ \theta θ使得似然函数值达到最大

在这里插入图片描述

假设概率密度函数为高斯分布,那么我们可以直接根据公式算出使得似然函数最大的参数

在这里插入图片描述

然后根据估计出来的参数,绘制数据x可能被该函数产生出来的概率热力图,颜色浅的地方说明由该概率密度函数产生出来的可能性小,也就代表很可能是异常数据

在这里插入图片描述

当然,我们还可以尝试为数据添加更多的特征,例如:跟大家一样的概率、唱反调的概率等

在这里插入图片描述


八、Use Auto-Encoder

我们可以用Auto-Encoder的技术进行异常侦测。我们知道,Auto-Encoder在训练时的目标是让输入和输出尽可能相近。由于训练数据大部分都是正常数据,所以训练好的Auto-Encoder模型就具备了对正常数据较强的编码和解码能力。但是,如果输入的是异常数据,Auto-Encoder的解码结果可能就会和输入相差甚远,我们可以根据这个现象来判断输入数据是否为异常数据。

在这里插入图片描述


九、More

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java之反射机制

反射机制 引出反射 我们的猫类 传统的方式 就是new 然后通过对象调用呗 用properties做的话,首先肯定是获取信息 读取配置文件的信息 然后我们需要创建对象是吧 但是这个时候 new classfullpath是不行的,因为我们实际上需要的是 类名 而不是字符串&…

2023年1月7日:fastadmin导出数据为excel格式

需求图: 实现方法: 第一种方法:fastadmin自带导出数据,直接点击下载即可 效果图第二种方法:自定义导出按钮,需要编写方法 效果图: 效果图代码实现 首先:前端按钮代码(可直接拿来用…

【HCIA-openEuler】实验手册—01【openEuler操作系统安装】

文章目录一、实验介绍1、关于本实验2、实验目的3、实验所需材料二、配置虚拟化环境步骤1:硬件准备步骤2:软件准备三、安装openEuler操作系统1、创建虚拟机步骤1:新建虚拟机步骤2:向导选择典型(推荐)步骤3:选择镜像文件…

MonoScene: Monocular 3D Semantic Scene Completion

Paper name MonoScene: Monocular 3D Semantic Scene Completion Paper Reading Note URL: https://arxiv.org/pdf/2112.00726.pdf TL;DR 2022 cvpr 论文,提出一种能在室内与室外场景均可使用的单目 SSC 方案,与特斯拉的 Occupancy Network 非常相似…

【Java基础】day12

一、Redis 的缓存穿透、缓存击穿、缓存雪崩是什么? 缓存穿透 请求不存在【 DB 和 Redis 中都不存在】的数据,导致请求直接打到持久层数据库中,导致数据库负载过高,甚至导致宕机。这样的请求几乎可以导致请求次次到达 DB &#xff…

Cesium中tif转经纬度投影或墨卡托地图瓦片 CesiumLab系列教程

Cesium 目前支持的影像切片规范有两种形式的: 1.经纬度直拉切片方式 (GeographicTilingScheme ), 2.web 墨卡托切片方式 (WebMercatorTilingScheme)。 根据常规传统,瓦片大小都是 256&#x…

数字验证学习笔记——SystemVerilog芯片验证22 ——功能覆盖率策略覆盖组

一、功能覆盖率策略 1.1 收集信息而非数据 对于一些设计,你需要关心的是合法的寄存器地址和非法的寄存器地址,可写的寄存器域和非法的寄存器域,而不是具体的寄存器地址数值。一旦关注的地方着眼于感兴趣的状态,而不是具体数值&a…

2022年中职网络安全竞赛SSH弱口令渗透测试解析(详细)

B-7 SSH弱口令渗透测试 任务环境说明: 服务器场景:Server18(关闭链接)服务器场景操作系统:Linux(版本不详)在本地PC渗透测试平台Kali中使用zenmap工具扫描服务器场景Server18-2所在网段(例如:172.16.101.0/24)范围内存活的主机IP地址和指定开放的21、22、23端口。并将…

【NI Multisim 14.0原理图环境设置——标题栏】

目录 序言 一、标题栏 🍍1.添加标题块 🍍 2.修改标题块 (1)直接修改 (2)标题块编辑器 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表…

【C++】命名空间 以及 如何理解using namespace std;

目录 命名空间 1.由来 2.概念 3.使用 方法一 方法二 方法三 4.嵌套使用 命名空间 很多人在学习C的时候,第一个代码想必是如下样子的。和C语言相比,库函数换了,同时多了一个 using namespace std; 但是,你真的了…

Allegro174版本新功能介绍之高阶Contour模式使用

Allegro174版本新功能介绍之高阶Contour模式使用 在Allegro低版本166以及172版本中,有Contour命令,但是只有沿着routekeepin和Connect Line功能,如下图 当升级到了174版本的时候,Allegro支持沿着任意目标走线,甚至是过孔和铜皮,如下图 具体操作介绍如下 以沿着这块铜皮轮…

一元三次方程求解 -- 二分查找

[NOIP2001 提高组] 一元三次方题目描述思路codetag:数学,二分查找 题目链接:洛谷P1024: [NOIP2001 提高组] 一元三次方 题目描述 思路 先对三次函数求导得到二次函数 3ax22bxc03ax^2 2bx c 03ax22bxc0 然后利用求根公式计算出两个极值点 …

Vue--》Vue3自定义组件以及新组件的使用讲解

目录 customRef Vue3提供的新组件 Fragment Teleport Suspense Vue3中全局API的改变 customRef 创建一个自定义的ref&#xff0c;并对其依赖项跟踪和更新触发进行显示控制。 <template><input type"text" v-model"keyword"><h3>…

谷粒学苑项目-第一章公共模块下的Swagger配置类-1.4

一、在common子模块下创建Swagger配置类 1. guli_parent->common子模块->service_base子模块->SwaggerConfig配置类 common子模块是pom类型 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId>…

【Java寒假打卡】Java基础-集合Collection

【Java寒假打卡】Java基础-集合Collection集合与数组之间的区别集合体系结构Collection常用的方法集合-迭代器迭代器原理分析迭代器删除方法的注意事项增强for循环集合与数组之间的区别 数组的长度是不可变的&#xff0c;集合的长度是可变的数组可以存基本数据类型和引用数据类…

Xilinx AXI4 协议

AXI4 相对复杂&#xff0c;但 SOC 开发者必须掌握。AXI 协议的具体内容可参考 Xilinx UG761 AXI Reference Guide。在这里我们简单了解一下。 AXI4 所采用的是一种 READY&#xff0c;VALID 握手通信机制&#xff0c;即主从模块进行数据通信前&#xff0c;先根据操作对各所用到的…

填满背包方案数OJ

目录 LintCode 炼码物品大小不重复的填满背包的方案数 LintCode 炼码 物品大小存在重复情况 LintCode 炼码不重复的组合个数 完全背包_牛客题霸_牛客网 LintCode 炼码物品大小不重复的填满背包的方案数 描述给出 n 个物品, 以及一个数组, nums[i]代表第i个物品的大小, 保证大…

编辑PDF文件的两种方法

PDF文件具备较好的稳定性、兼容性&#xff0c;在日常工作中的应用非常广泛&#xff0c;但想要编辑文件内容就不那么容易了&#xff0c;下面来说说编辑PDF文件的两种方法。 方法一&#xff1a; 我们知道&#xff0c;查看PDF文件只需要阅读器就可以了&#xff0c;如果想对文件内…

springboot 整合 webservice服务

目录webservice百科创建一个springboot项目并导入相关依赖编写webservice接口编写实现类发布webservice浏览器访问postman调用在前一段时间用到了webservice服务&#xff0c;今天整理了一下&#xff0c;记录下来。webservice百科 Web Service是一个平台独立的&#xff0c;低耦…

Apifox调用Security权限接口

Apifox调用Security权限接口1. SpringBoot3.0集成SpringSecurity1.1 pom1.2 properties配置2. Apifox 配置2.1 配置根目录Auth2.2 ApiFox 分享调用本地接口本教程环境&#xff1a; Apifox&#xff1a;2.2.14 &#xff08;建议更新到最新版本&#xff0c;老版本Auth从父级继承可…