Deep one-class classification

2019-03-17 23:09:59 zpainter 阅读数 1027  收藏 文章标签: 单分类问题异常检测 更多

分类专栏: 论文
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

 
 
 
 
 
 
 
 

论文名:Deep one class classification

作者:Lukas Ruff * 1  Robert A. Vandermeulen * 2 Nico Gornitz ¨ 3

发表刊物:ICML

发表时间:2018

相关概念:

OCSVM

SVDD

提出方法:

Deep SVDD

Abstract

Those approaches which do exist involve networks trained to perform a task other than anomaly detection, namely generative models or compression, which are in turn adapted for use in anomaly detection; they are not trained on an anomaly detection based objective.

确实存在一些方法,使用训练的网络来执行异常检测之外的任务,被称为生成模型或压缩,反过来也可以被用在异常检测中,他们没有在基于异常检测的目标上进行训练。

Introduction

需要能在很大的数据集、很高维的数据中检测异常

传统的异常检测方法:

One-Class SVM单分类SVM (OCSVM):最优超平面,坐标原点被假定为唯一的异常样本

SVDD:原始数据--高维表示--Min超球体积--求得c和R。

Kernel Density Estimation 核密度估计(KDE)

缺点:

1、浅层特征工程。由于糟糕的计算可扩展性和维度诅咒,导致在高维数据场景中经常失败。为了有效,这种浅层方法通常需要大量的特征工程。

2、由于和矩阵的构造和操作导致a poor computational scaling,除非使用近似技术,否则规模至少为样本数的平方。

3、核方法需要存储支持向量,需要大量内存。

深度学习的方法:

用深度学习做异常检测的难点在于找到合适的无监督学习深度对象是很困难的

现在的一些方法结果不错,但是他们都没有通过优化基于异常检测目标函数的优化来进行训练,并且大多是有依赖于基于重建误差的启发式算法

mix:
fully deep:

---------------------

本文提出了一种新的深度异常检测的方法,灵感来源于基于核的单分类问题以及最小体积估计。

1、我们的方法Deep SVDD,训练一个神经网络,然后最小化包含网络中数据特征的超球体积,提取数据分布变化的共同因素。fully deep //unsupervised

other deep AD: 依赖重建误差,无论是在用于学习表示的混合方法中,还是直接用于学习和检测中。

2、Deep autoencoder:会有低维的中间表示,最小化重建误差。网络可以从正常的样本中提取出共同因子并进行重建,二异常样本这些共同的因素所以不能被准确的重建。可以在Mix和fully deep中使用。mix:将学习到的 嵌入向量运用到传统的AD 中。fully deep:直接用重建误差作为异常分数。

denoising autoencoder、variational autoencoder、sparse autoencoder、deep convolutional autoencoder(DCAEs)(应用于图像视频数据的AD应用中)自动编码器不直接以AD为目标,应用与此的主要困难是压缩的度,也就是降维的度。

3、AnoGAN:test data--生成样本--潜在空间表示。重建误差、异常分数。与自动编码器类似,困难在于如何正则化(规范化)生成器以实现紧凑性。

method

Soft-bound Deep SVDD,一种深度一分类的方法

联合学习参数W和最小化在输出空间包含数据的超球的体积

目标函数:

第一项最小化超球体积。

第二项是对那些位于超球外的惩罚项,超参v控制超球体积和超过边界的一个权衡。如果v大,就允许一定的超出,如果v很小,超出一点就施以很大的惩罚。

第三项是网络参数W上的权重衰减正则化。

One-Class Deep SVDD

目标函数:

第一项,使用二次损失来惩罚每个网络表示到超球中心的距离。

第二项,网络权重衰减正则项,λ是超参。

One-Class Deep SVDD也可以视为找到最小体积的超球。 但与软边界deep SVDD不同,deep SVDD通过直接惩罚半径和落在球体外的数据表示而收缩球体,One-Class Deep SVDD通过最小化所有数据表示到中心的平均距离来收缩球体。 同样,为了将数据(平均)尽可能映射到接近中心c,神经网络必须提取变异的共同因子。 对所有数据点上的平均距离进行惩罚而不是允许某些点落在超球外,这与大多数训练数据来自一个类的假设是一致的。

异常分数可以用上式来计算,异常样本结果为正,正常样本结果为负。

优化 Deep SVDD

命题1 权重是全0的话,网络产生一个常数函数映射到超球中心,导致超球崩溃,因为超球半径为0。

命题2 网络中的隐藏层有偏移项bias term,也是学习到一个常数函数映射,导致超球崩溃。

命题3 具有有界激活函数的网络单元,会在后续层中模拟偏移项,这又导致超球崩溃。 因此,在Deep SVDD中应首选无界激活函数(或仅被0 bound的函数),例如ReLU,以避免由于“学习”偏移项导致的超球崩溃。

results

SVDD和OCSVM的比较

2018-03-14 10:45:11 木呆呆瓶子 阅读数 7964  收藏 更多

分类专栏: 算法学习
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

OCSVM(one class support vector machine)即单类支持向量机,最先提出的文献为:Estimating the support of a high-dimensional distribution.该模型 将数据样本通过核函数映射到高维特征空间,使其具有更良好的聚集性,在特征空间中求解一个最优超平面实现目标数据与坐标原点的最大分离,如图1:

坐标原点被假设为唯一的一个异常样本,最优超平面与坐标原点最大距离为, 并允许少部分样本在坐标原点与分界面之间,与分类超平面的距离为

SVDD((Support Vector Data Description)即支持向量数据描述,最先提出的文献为:Support Vector Data Description,,其基本思想是通过在映射到高维的特征空间中找出一个包围目标样本点的超球体,并通过最小化该超球体所包围的体积让目标样本点尽 能地被包围在超球体中,而非目标样本点尽可能地排除在超球体中,从而达到两类之间划分的目的。该方法目标是求出能够包含正常数据样本的最小超球体的中心a和半径R。

两种单分类方法的区别与联系:

通过以上的分析 ,建立了 2种模型之间存在的联系 ,可见不同之处在于对 的标准化约束和误差函数,当对数据进行标准化处理后 ,2种模型能够取得一样的效果 。同时SVDD的论文指出当采用高斯核函数时,2种模型对数据的描述效果相当。

参考:基于支持向量的单类分类方法综述  吴定海,张培林,任国全,陈非

Deep one-class classification的更多相关文章

  1. Deep Learning in a Nutshell: History and Training

    Deep Learning in a Nutshell: History and Training This series of blog posts aims to provide an intui ...

  2. (转) Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance

    Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance 2018-1 ...

  3. 论文列表——text classification

    https://blog.csdn.net/BitCs_zt/article/details/82938086 列出自己阅读的text classification论文的列表,以后有时间再整理相应的笔 ...

  4. Deep Learning 教程翻译

    Deep Learning 教程翻译 非常激动地宣告,Stanford 教授 Andrew Ng 的 Deep Learning 教程,于今日,2013年4月8日,全部翻译成中文.这是中国屌丝军团,从 ...

  5. My deep learning reading list

    My deep learning reading list 主要是顺着Bengio的PAMI review的文章找出来的.包括几本综述文章,将近100篇论文,各位山头们的Presentation.全部 ...

  6. Deep Learning关于Vision的Reading List

    最近开始学习深度学习了,加油! 下文转载自:http://blog.sina.com.cn/s/blog_bda0d2f10101fpp4.html 主要是顺着Bengio的PAMI review的文 ...

  7. Attribute-Recognition行人属性识别资料

    (摘自王逍同学的论文arxiv-2019+Pedestrian Attribute Recognition A Survey) 1. 数据集 Dataset Pedestrians Attribute ...

  8. Pedestrian Attributes Recognition Paper List

    Pedestrian Attributes Recognition Paper List  2018-12-22 22:08:55 [Note] you may also check the upda ...

  9. ICCV 2017论文分析(文本分析)标题词频分析 这算不算大数据 第一步:数据清洗(删除作者和无用的页码)

    IEEE International Conference on Computer Vision, ICCV 2017, Venice, Italy, October 22-29, 2017. IEE ...

随机推荐

  1. 漏斗分析(Funnel Analysis)

    什么是漏斗分析? 简单来讲,就是抽象出某个流程,观察流程中每一步的转化与流失. 漏斗的三个要素: 时间:特指漏斗的转化周期,即为完成每一层漏斗所需时间的集合 节点:每一层漏斗,就是一个节点 流量:就是 ...

  2. 网络开发Socket和ServerSocket

    已经发表个人公众号 Socket和ServerSocket Socket为"孔"或"插座",创建Socket,打开连接Socket的输入或输出流,对Socket ...

  3. C Primer Plus--C预处理器和C库(2)

    目录 #include指令 头文件 其他指令 #undef 条件编译 内联函数 #include指令 #include <头文件.h>//在标准系统目录中寻找头文件 #include &q ...

  4. Spark跑在Yarn上出现错误,原因是jdk的版本问题

    ./bin/spark-shell --master yarn 2019-07-01 12:20:13 WARN NativeCodeLoader:62 - Unable to load native ...

  5. mysql 遍历所有表并条件查询

    use eepm_push; DROP PROCEDURE IF EXISTS FountTable; delimiter $$ create procedure FountTable() begin ...

  6. [RoarCTF]Easy Calc

    目录 [RoarCTF]Easy Calc 知识点 1.http走私绕过WAF 2.php字符串解析特性绕过WAF 3.绕过过滤写shell [RoarCTF]Easy Calc 题目复现链接:htt ...

  7. php怎么用正则取出网址中某个参数?

    $str = <<<TEXT 如下类似网址: https://v.qq.com/iframe/player.html?vid=j00169ib5er&tiny=0&a ...

  8. VS2013下开发VC++程序,编译时提示错误error MSB8020: The build tools for v140 (Platform Toolset = 'v140') 的解决方案

    1. 问题描述: 提示如下错误:error MSB8020: The builds tools for v140 (Platform Toolset = 'v140') cannot be found ...

  9. Redis慢日志查询

    Redis slowlog 是个什么 redis的slow log记录了那些执行时间超过规定时长的请求.执行时间不包括I/O操作(比如与客户端进行网络通信等),只是命令的实际执行时间(期间线程会被阻塞 ...

  10. nodejs爬虫如何设置动态ip以及userAgent

    nodejs爬虫如何设置动态ip以及userAgent 转https://blog.csdn.net/u014374031/article/details/78833765 前言 在写nodejs爬虫 ...