| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> (二)GANomaly论文及代码解析 -> 正文阅读 |
|
[人工智能](二)GANomaly论文及代码解析 |
欢迎访问个人网络日志🌹🌹知行空间🌹🌹 文章目录
1.介绍
这篇文章是期望提出一种可以只在正常数据上训练,但却能识别异常图像的方法。其提出了由对抗训练框架组成的通用异常检测模型。本文作者在编码-解码-编码式的架构中使用了对抗自编码器,获取训练数据在图像和隐式向量中的分布。 这篇文章主要贡献:
2.GANomaly网络组成2.1 GAN简介生成对抗网络 2.2 问题定义异常检测问题的正式定义:
2.3网络结构网络结构如上图, 3.模型训练因训练时只使用了正常类别的数据,可以假设即使生成器的编码器可以将输入数据 X X X映射到隐向量 z z z,判别器却不能够判别异常。因此生成器的输出 X ^ \hat{X} X^将会是去掉异常特征后的图像数据,再通过编码器 E E E,将 X ^ \hat{X} X^映射到特征向量 z ^ \hat{z} z^上,此时生成器中的编码器 G E G_E GE?输出的隐向量 z z z与 z ^ \hat{z} z^因一个包含图像异常,一个不包含,因此对于异常数据两者将有较大的差异,故可以识别出输入的异常数据。
3.1对抗损失
L a d v = E x ~ p x ∣ ∣ f ( x ) ? E x ~ p x f ( G ( x ) ) ∣ ∣ 2 L_{adv} =\mathop{E}\limits_{x\sim px}||f(x) - \mathop{E}\limits_{x\sim px}f(G(x))||_2 Ladv?=x~pxE?∣∣f(x)?x~pxE?f(G(x))∣∣2? 上式中 p x px px是 x x x的分布 3.2 上下文损失
L c o n = E x ~ p x ∣ ∣ x ? G ( x ) ∣ ∣ 1 L_{con} = \mathop{E}\limits_{x\sim px}||x-G(x)||_1 Lcon?=x~pxE?∣∣x?G(x)∣∣1? 3.3 编码器损失
L e n c = E x ~ p x ∣ ∣ G E ( x ) ? E ( G ( X ) ) ∣ ∣ 2 L_{enc} = \mathop{E}\limits_{x\sim px}||G_E(x) - E(G(X))||_2 Lenc?=x~pxE?∣∣GE?(x)?E(G(X))∣∣2? 最终, L = ω a d v L a d v + ω c o n L c o n + ω e n c L e n c L = \omega_{adv}L_{adv}+\omega_{con}L_{con} + \omega_{enc}L_{enc} L=ωadv?Ladv?+ωcon?Lcon?+ωenc?Lenc? 4.模型测试测试阶段模型使用 L e n c L_enc Le?nc作为一个输入图像异常程度的评分。因为通过训练阶段最小化 L e n c L_{enc} Lenc?,则对于异常图像 z z z与 z ^ \hat{z} z^差异会比较大。 A ( x ) = ∣ ∣ G E ( x ^ ) ? E ( G ( x ^ ) ) ∣ ∣ 1 \mathcal{A(x)} = ||G_E(\hat{x})-E(G(\hat{x}))||_1 A(x)=∣∣GE?(x^)?E(G(x^))∣∣1? 为了评估整体的异常性能,对测试数据集 D ^ \hat{\mathcal{D}} D^中的每个 x ^ \hat{x} x^计算其异常评分 A ( x ) \mathcal{A(x)} A(x),得测试数据集上每个数据对应的评分集合 S = { s i : A ( x i ^ ) , x i ^ ∈ D ^ } \mathcal{S}=\{s_i:\mathcal{A(\hat{x_i})}, \hat{x_i}\in\hat{\mathcal{D}}\} S={si?:A(xi?^?),xi?^?∈D^},对 S \mathcal{S} S中的元素缩放到 [ 0 , 1 ] [0,1] [0,1]上 s i ′ = s i ? m i n ( S ) m a x ( S ) ? m i n ( S ) s'_i = \frac{s_i-min(S)}{max(S)-min(S)} si′?=max(S)?min(S)si??min(S)? 5.代码分析
5.1数据加载
这样的格式将数据存放好即可。
5.2 损失定义
损失函数的使用如上述代码 6.测试效果
注,上图分类评估指标可参考(二)sklearn.metrics.classification_report中的Micro/Macro/Weighted Average指标求得。 参考资料欢迎访问个人网络日志🌹🌹知行空间🌹🌹 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:51:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |