Adversarially Learned One-Class Classifier for Novelty Detection(用于单类异常检测的对抗学习分类器)

好像好久没写博客了,嘿嘿,中间回去放了个高温假,这个人呐,一旦闲下来就不想起来。最近又回归正常了,看了些东西,乱七八糟的码上来,话不多讲,以后尽量每周二更吧,其他时间,我想多把看的文章实践实践,感觉自己编程能力还是太弱了以及把以前看过的文章再回头复习复习,好久不看的东西,自己写过博客也是会生疏的。

写在前面的话

这篇文章是讲one-class分类问题的,他与传统的二分类很相似,但是却有着本质的区别,这一点我在下面会详细的描述一下。作者针对one-class这个问题,在回顾之前看的GAN,所以提出来R和D两个网络,对抗训练,提高框架的性能。并且针对性的通过R网络,增强了网络的半监督学习性质,我觉着文中的这些trick仔细研读还是很有意思的。

(1)Novelty detection

又称异常检测,目的是为了识别出检测过程中没有在训练过程中出现的,或者与训练数据某些方面存在明显差距的数据。它的输出结果也是二类的,即是异常数据或者不是异常数据。

有同学也许会说了,这不就是二分类学习嘛,其实是存在着明显差异的。首先,二分类的正负或者两类样本在训练过程中是等权重的,它的数据结果是针对两类的,是a或者是b;而异常检测针对的是异常数据检测,畸变的数据,或者负样本没法采集这样的情况,它的训练数据只有大量的正样本,所以它的输出模式为是a或者不是a。而这个不是a包括了二分类的是b,但是远远不止b这一种结果。

(2)GAN

本文思路的提出是基于GAN做的改动,所以要想了解本文思路,对于GAN的了解就显得很有必要。

对抗学习GAN,还是得由这样一个故事进行引导:有一伙犯罪分子想要去制造假钞混进市场使用,从而不法牟利。而银行系统则需要依靠相关技术鉴别出假钞来。不法分子为了让自己利益最大化,需要不断地提高自身的造价能力;而银行系统为了能够准确的识别出假钞也需要不断地提高自己的识别能力。双方的技术在这个竞争的过程中得到不断地提高,最后达到一个最佳的水平是什么呢,就是银行系统的是必然率为50%,双方都达到最高的要求,没有办法再进一步了。

具体的过程可以去看一下我之前写的一篇博客https://blog.csdn.net/weixin_40955254/article/details/81045488,我相信看完这篇博客之后会对您接下来的阅读有所帮助。

(3)Architecture in this paper

Adversarially Learned One-Class Classifier for Novelty Detection(用于单类异常检测的对抗学习分类器)_第1张图片

整个框架就是如上图所示,很明了,我们可以看到它由R和D两个网络组成,其中R部分包括了一个自动编码和自动译码器,而D部分则是一个CNN网络,用于对进过R重新生成的数据进行分类。看下标我们可以看到这是一个从X到抽象向量Z到X'再到【0,1】分类的过程。

在典型的GAN网络中,生成器部分是要生成尽可能可以让判别器误以为真的信息,而判别器是为了尽可能识别出真的信息。而在这篇文章中这种状况发生了变化,由于训练数据只有a类的,所以我们在训练过程中的R部分,只可以针对性的将与训练样本同一类的数据恢复出来,而异常数据则会被造成一定量的损坏,所以对于判别器就可以更加容易的区分出,这个数据是样本类数据还是异常类数据。经过R部分的数据恢复出来的结果可以借鉴下图。可以看到a中书训练数据,都是企鹅,在b中第一行是原始测试数据,第二行是经过R之后的测试数据,对于包含企鹅的图片,效果得到了增强,而对于非目标类的图片,则被很大程度上削弱了。通过图片下方判别器输出结果的对比,我们也可以得出这个结论。

Adversarially Learned One-Class Classifier for Novelty Detection(用于单类异常检测的对抗学习分类器)_第2张图片

文中这样对输入数据进行定义:

其中x是服从target样本分布的真实数据,而同时会引入一个噪声η,引入这个高斯噪声,是为了增强R部分网络的鲁棒性。

同时我们像GAN网络那样定义了R和D两个网络的混合目标函数,这个目标函数的训练过程是为了同时提高两个网络的性能,R网络的数据恢复性能以及D网络的分类性能。

Adversarially Learned One-Class Classifier for Novelty Detection(用于单类异常检测的对抗学习分类器)_第3张图片

当然在本文中,R网络还被赋予了另外一个作用,增强原始数据,抑制异常数据,所以作者又加入了这样一个损失函数:

最终的目标函数,就是上述两个损失函数加起来。

到这里关于Adversarially Learned One-Class Classifier for Novelty Detection这篇文章,我就讲的差不多啦。

我是钱多多,欢迎大家有空交流指正。

学术交流可以关注我的公众号,后台留言,粉丝不多,看到必回。卑微小钱在线祈求

你可能感兴趣的:(可怕的生成网络系列(GAN,VAE。。。。。))