CVPR 2018:对抗训练的异常分类器

Adversarially Learned One-Class Classifier for Novelty Detection

code paper

1. Novelty Detection

Novelty Detection 字面翻译是新颖性检测。本质上就是发现输入的新的对象/模式,其实就是Anomaly Detection,不同名字而已。发现一些与目标类某些方面存在差异的现象。异常类型总是缺失的或者是不能被列举的,所以要区分开正常和异常,通过直接训练端到端异常分类器是不可能完成的任务。

在这里插入图片描述

2. 本文主要idea

既然没有办法去找到异常的样本,那么通过更好的描绘正常样本的边界(或者准确来说是正常的边界),异常应该能更好的被发现。那么怎样去描绘这个正常样本的边界呢?

首先在实际的场景中,输入的图片是可能会有各种噪音的(光照、摄像头等等因素),所以一个健壮的分类器应该能够在噪音图片中获取到信息,当然绝大多数的训练数据都是高质量的,那么可以通过自己加噪音来增强数据,同时这也增强分类器对于正常样本的边界的描绘能力。

单纯加噪音只是数据增强的technique。除此之外,本文用了在VAD常用的方法,通过Conv-Autoencoder来重构图像。正常样本应该能够在训练中,Encoder知道如何抽取合适的特征以让Decoder重构。非训练类,Encoder抽取的特征会较差,Decoder重构就会更差,误差逐层放大,那么非训练类经过这个AutoEncoder得到的结果就会和原图片差异较大。通过重构的差其实就可以作为一个指标来判断是否是异常类,不过这可能有点弱。

1543489624512

本文却在最后加上了一个Discriminator,意在通过类似GAN的对抗训练方式,一方面增强图片重构能力,另一方面增强分类的能力。将AutoEncoder训练成一个健壮的DeNoise-AutoEncoder,让denoise效果能够和原图片相近,让分类器分不出这图片是原图片还是经过加noise然后再去noise的图片。

这种操作能够产生针对目标类的特征提取与还原,并且在训练集上确保了这种操作不会被分类器所发现,也就是这种方法不会对后续判断造成误差。期望的是,测试集类似训练集,重构的误差较小,那么对于分类器的判断不会带来太大的误导信息。

1543489899110

但是对于非目标类的内容,会带来更大的误差,毕竟经过针对目标类的特征和还原的AutoEncoder,应该是会带来更多的噪音信息,这样就能给分类器一个更强的指示,就更能区分开这两者。

3. 具体模型

模型主要包括有重构模块和生成模块。

3.1 重构模块结构

由于重构模块是训练来重构目标类的样本的,你那么对于异常样本来说,应该重构损失是高的。

首先需要强调的是,这里输入的图片是经过噪声处理的图片,输入的噪声是基于正态分布1543490309523在这里插入图片描述产生的。当然图片在加噪声前先得做个归一化。
在这里插入图片描述

本文没有采用U-Net来重构图片,也没有采用Pooling来下采样(为了提高网络的稳定性),只是一直在做卷积,以5x5的卷积核在做Encoder和decoder。Encoder中采用了lrelu的激活函数

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值