| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> (二) OGNet 论文笔记 -> 正文阅读 |
|
[人工智能](二) OGNet 论文笔记 |
欢迎访问个人网络日志🌹🌹知行空间🌹🌹
简介这篇是韩国科技大学在2020年CVPR上发表文章,聚焦在使用生成对抗网络做单分类如异常检测的任务,在 以前的基于生成对抗式网络做异常检测时,都是在训练时使用生成器和对抗器,在测试推理阶段,则只使用生成器,然后计算输入数据和生成器输出之间的差异性,来评估输入数据是否是异常数据.这种方法的前提假设是网络只在正常数据上进行训练,因此不管何种数据输入生成器后,生成器的输出都更像正常数据。这种方法有个漏洞,就是在推理时使用的生成器有可能可以比较好的重建没见过的数据,简而言之就是输入是异常数据时还能比较好的恢复异常数据,这时输入和生成器的输出差异较小,导致异常检测判断失效。 一个自然的想法是同时使用生成器和判别器来做异常检测,但同时使用判别器和生成器时训练时,使用 项指标来判断何时停止训练也是一个问题,同时使用判别器和生成器训练时,可以看到模型的评估结果振荡的也比较厉害. 将判别器的作用从判断生成器的输出是否是真实数据改成评估生成器重建图像的效果对于异常检测应该 更合适,因仅使用了正常数据训练,因此对于正常数据的重建效果应该更好.根据这种想法,这篇文档的 方法为,分两阶段训练 stage one 中的 low-epoch Generator被当作 G^{old},用于生成stage two 中的训练数据 anomaly data, 不需要特定epoch中的G,stage two中对D的训练,只需要较少的迭代即可实现,因为其已经在 模块介绍(1).模型整体结构异常数据增强模块, (2).目标函数
上式中 G G G是生成器, D D D是判别器, X X X是输入图像, X ~ \tilde{X} X~表示的是在 X X X上加上噪声 N σ N_\sigma Nσ?后得到的异常图像, p t p_t pt?表示的是输入数据的分布。 除了上面的常规 L R = m i n G ∣ ∣ X ? G ( X ) ∣ ∣ 2 L_R = \mathop{min}\limits_{G}||X - G(X)||^2 LR?=Gmin?∣∣X?G(X)∣∣2 综合方程(1)和(2),则 L = L G + D + λ L R L = L_{G+D} + \lambda L_R L=LG+D?+λLR?
综上, m a x D ( α E X [ l o g ( 1 ? D ( X ) ) ] + ( 1 ? α ) E X ^ [ l o g ( 1 ? l o g ( D ( X ^ ) ) ) ] + β E X ^ l o w [ l o g ( D ( X ^ l o w ) ) ] + ( 1 ? β ) E X ^ p s e u d o [ l o g ( D ( X ^ p s e u d o ) ) ] ) \mathop{max}\limits_{D}(\alpha\mathop{\mathbb{E}}\limits_{X}[log(1-D(X))]+(1-\alpha)\mathop{\mathbb{E}}\limits_{\hat{X}}[log(1-log(D(\hat{X})))] + \beta\mathop{\mathbb{E}}\limits_{\hat{X}^{low}}[log(D(\hat{X}^{low}))] + (1-\beta)\mathop{\mathbb{E}}\limits_{\hat{X}^{pseudo}}[log(D(\hat{X}^{pseudo}))]) Dmax?(αXE?[log(1?D(X))]+(1?α)X^E?[log(1?log(D(X^)))]+βX^lowE?[log(D(X^low))]+(1?β)X^pseudoE?[log(D(X^pseudo))]) 3.模型测试测试时对于单分类任务,使用判别器的输出
c
o
n
f
i
d
e
n
c
e
=
D
(
G
(
X
)
)
confidence = D(G(X))
confidence=D(G(X))作为评分,
c
o
n
f
i
d
e
n
c
e
>
τ
confidence \gt \tau
confidence>τ为异常类,否则为正常类。 总结一下本文的工作:
实验本文原作者在 复现的结果: 源码分析
模型的训练使用的时
这段代码在新版本的 本文中
上述代码对原作者开源的代码做了三处改动,其实这里有个疑问,更新生成器参数计算梯度时,会计算判别器的梯度,而计算的梯度并没有用来更新判别器的参数,在进行下一个iteration的训练之前又被.zero_grad的置 此外,在复现论文结果时,使用的方法与原代码有所不同,原作者的方式是每个一定的 参考资料欢迎访问个人网络日志🌹🌹知行空间🌹🌹 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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:40:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |