ICML2018(Anomaly Detection):Deep SVDD-论文解读《Deep One-Class Classification》

原文地址

http://data.bit.uni-bonn.de/publications/ICML2018.pdf

论文阅读方法

三遍论文法

初识

本文主要提出一种全新的异常检测方法:Deep SVDD(Deep Support Vector Data Description)用于图像级别的异常检测。采用神经网络提取图像特征,构造单分类目标函数。

相知

2. Related Work

① 介绍了基于核函数的单分类模型:OC-SVM以及SVDD。其中OC-SVM构造单分类超平面,SVDD构造超球面。

计算可扩展性差,难以用于高维数据集。

② 基于深度学习的异常检测模型:AE与GAN(自编码器与生成对抗网络)

不是针对异常检测设计的范式,并且主要基于重构误差判断是否异常。

3. Deep SVDD

如上图所示。Deep SVDD的核心思想就是:利用神经网络提取数据特征,并且将正常的样本收缩在超球面(中心为C,半径为R,中心c需要提前确定)内,异常的样本远离超球面,落于球外。主要存在有两种形式:

① soft-boundary Deep SVDD

在这种范式下,训练数据即存在正样本也存在负样本,目标函数如下所示:

目标函数的第一项表示需要最小化超球的半径R,第二项为落在超球面外的样本的损失项,其中v∈(0,1]用于权衡超球面的体积与边界损失(即,允许部分样本点落于球外),最后一项为L2正则化。

通过优化上述的目标函数让所有数据点离球心越近,为了网络学到训练数据中的共有特征,所有正常样本会距离中球心尽可能近,而异常样本会距离球心尽可能远甚至落于球外。

② One-Class Deep SVDD

训练样本大多数都为正常样本(单分类)时,可以利用该范式,目标函数如下:

目标函数第一项要求所有样本提取到的特征都要离中心尽可能近,第二项为L2正则化。

通过优化上述目标函数让所有样本的平均距离都距离中心越近,在此过程中网络也会学到共有特征。

测试

①②两种方法在进行测试时都很简单,利用测试样本距离中心的欧式距离来决定异常分数:

也可以利用超平面的R来决定,落在球外为异常。

训练

One-Class Deep SVDD直接利用SGD进行优化,而soft-boundary范式在进行优化时需要借用minimization/block coordinate descent的方法:固定R,网络训练k轮优化参数W;每经过k轮,利用最新更新的W来优化参数R,R可以通过line search进行搜索。

特性

作者紧接着介绍了该方法的四大特性,前三个介绍了导致“超球面崩塌”的情况,后

① W0参数为0的网络,由于该网络参数均为0,那么输入任何样本都能得到同样的结果,表示为C0。那么球心C不能为C0

这是很容易理解的,因为如果为C0网络可能会直接将参数优化为0,那么每个数据点都离中心很近。因此,作者使用初始化后的网络,对所有样本求得特征后取平均作为球心

神经网络中不能存在偏置项b

如果存在偏置项b,当某一层参数W为0时,那么所有x的输出均为一个与b相关的常数(假设为B)。那么后续的层所接受到的特征均为常数,那么网络后续的层的更新策略只需要将B映射到C(球心)即可。

③ 网络激活函数不能选用边界激活函数(饱和函数),因此首选ReLU作为激活函数

假设网络存在一个上节为B的饱和激活函数,如果某个特征k对于所有输入样本都为正数,那么网络可能只保留该特征,并且增大wk,使其输出B。这样就和上述②中提到的情况一致了,后续层只需要将B映射到C即可。

④ v-property

在soft-boundary Deep SVDD中,v∈(0,1],其是离群点的上界留在超球面边界上/球外的样本点的下界

证明没太看懂,反正意思是v参数能够控制允许多少样本点留在超球面外,可以训练模型时融入先验知识“训练数据中异常样本的占比”。

4. Experiments

回顾

《Deep one-class classification》发表于ICML2018,并且后续有很多基于它进行改进的工作。

整篇文章的思想不是很难,相当于将SVDD的核函数提取特征改为利用神经网络来提取特征。对于异常检测的话,One-Class Deep SVDD更加符合任务要求,因为在现实生产环境中难以收集异常样本,并且无法预知异常样本的种类以及出现方式,只利用正常样本来构建模型或许更符合现实需求。

代码

官方代码(基于Pytorch):https://github.com/lukasruff/Deep-SVDD-PyTorch

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值