读论文-----Adversarially Learned One-Class Classifier for Novelty Detection

论文下载地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/Sabokrou_Adversarially_Learned_One-Class_CVPR_2018_paper.pdf
代码地址: https://github.com/khalooei/ALOCC-CVPR2018

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

对Novelty Detection的理解:
作者在相关工作中指出,Novelty Detection是umbrella term(概括性术语),他包括One-class classification,rare event detection, outlier detection/removal, anomaly detection。我的理解就是识别数据群,图像集或视频中的异常。

对题目的理解:
这篇论文主要构建了名为ALOCC(即为Adversarially Learned One-Class Classifier)的模型。文中提出的Novelty Detection(异常检测)实现对测试数据进行数据分类的任务,也就是识别新的或者无法解释的一组数据的过程,已确定这些数据是否符合规范,这里的规范就是符合训练数据的通用特征。模型名中之所以称为One-Class Classifier(单类分类器),是因为两者存在相似之处:都是只有或者大部分都是positive data(正常数据),最终的分类结果只有是正常数据和非正常数据。

放一个one-class,我认为最通俗的解释:
读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第1张图片
(照片来自知乎,侵删)

对论文内容的部分理解(以下图片均来自于作者论文或其博客):
(1)论文中我认为最重要的一张图: 读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第2张图片
这张图就是作者花了大量笔墨构建的模型:以GANs作为外部框架(R网络和D网络构成),其中R网络用自动编码器生成,D网络用CNN生成。

这里在放一张我认为最通俗易懂的自动编码器部分的工作图:
读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第3张图片
上图用论文中的解释大概就是:Encoder将输入的图片压缩为较低维度的特征,比如说输入一个MNIST的样本(一个样本784个像素)可以将其压缩至只有10个浮点数的矩阵,这个矩阵就是图像的特征。而Decoder将编码器产生的特征作为输入开始重构图像,并使其尽可能的接近原始图像。

(2)对整个模型的理解:
模型整体是采用GANs的架构,自动编码器生成的R网络对输入的图像重构,使生成图像接近原始真是图像,从而达到欺骗鉴别器D网络的目的。

(3)我认为的该模型与其它模型的突出之处:

  • 为了使模型更具有鲁棒性,在输入图像中加入了高斯噪音;

  • 定义了两个损失函数
    读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第4张图片损失函数2
    这里存在第二个损失函数,是因为R网络承担的另一个任务就是增强原始数据,抑制异常数据。

  • 把R(x)放入D鉴别器中,就输出结果对比更具有优势。

  • 与传统的GANs 相比,该模型只是有针对的对一类图像进行特征的提取,R网络重构时也只是针对该类特征进行恢复,所以该模型对异常数据的容错率更低。如图所示:
    -读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第5张图片
    上面可以看出,第一排是增加了高斯噪音之后的原图,第二排是R网络依据提取的特征进行重构后的图片,左边是正样本,右边是异常样本,左右识别输出能力差距十分大,且D(R(x))表现更加突出。

  • 该模型较其他模型而言,采用帧级处理技术,可以更优秀的运用至视频中。

不过在论文的最后,作者也讨论了本模型与其他模型相比Err并没有下降很多。一方面是因为模型中RD网络训练的成功与否,主要有人为判断,只是简单的认为当D网络鉴别能力出现混淆是就认为模型训练工作的完成,另一方面是由于作者在数据集中加入10%的异常数据。

模型的运用场景:检测医疗诊断问题,复杂工业系统中的故障和故障检测,结构损坏,电子安全系统中的入侵,如信用卡或手机欺诈检测,视频监控,移动机器人,传感器网络,天文目录,以及文本挖掘

最后附上作者代码中判断模型结束训练的图:
读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第6张图片
本图显示了5个阶段的R网络重构图像的loss函数值,可以大致的看到在第三阶段时,损失最小,故选择在此时进行novelty Detection。

模型检验结果:
读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第7张图片
这是对1这个数字集进行特征提取之后的重构图,上面是原图,下面是重构图
读论文-----Adversarially Learned One-Class Classifier for Novelty Detection_第8张图片
这里是输入不是1的其他数字图片(即为异常图片)进行重构后的输出。

本人是正在入门的深度学习小白,如果上述对论文的理解有出现错误的地方,请评论指出,相互进步。
若有转载需要,请注明出处,https://blog.csdn.net/sharonITlion/article/details/89299437
谢谢大家阅读

你可能感兴趣的:(读论文)