Deep one-class classification SVDD security
Ruff L, Vandermeulen R, Goernitz N, et al. Deep one-class classification[C]International conference on machine learning. 2018: 4393-4402.
2019-12-24
本文提出的DL用于分类的方法(作者说是用于AD的方法,但是文中内容就是分类)
Introduction
单分类器旨于学习正常数据集的特征,在使用时偏离正常过多的视为异常。而OC-SVM(oneclass-SVM)缺点是需要特征提取,并不擅长处理高维特征。
DL在AD上应用一直较少。
本文提出了名为Deep Support Vector Data Description(DSVDD),思路为:在最小化网络数据表示的超球体积的同时训练神经网络,如图1。由于神经网络需要将单类数据点闭图到超球的中心区域,因此最小化超球体积会强制网络抽取变量的相同因子。
Relate Work
本文的relate work中介绍了OC-SVM和SVDD,并总结其缺点:特征提取困难;无法计算大尺度数据。
DL在AD中有两类使用方式:混合和深度;混合方法为先学其表示,再使用分类器进行分类;深度方法为表示与分类在一起进行。其中自编码器技术可将数据降维表示,可用于混合,也可将重构误差用于打分而直接用于深度。混合的方法主要使用有:High-dimensional and large-scale anomaly detection using a linear one-class SVM with deep learning;深度方法有:Outlier detection with autoencoder ensembles;还有一种自编码器的变体如deep convolution autoencoders(DCAE)主要用于图象或video的AD应用。
自编码器应用于AD的难度为:选择压缩程度;而本文通过最小化超球体积将压缩表示引入DSVDD。
Deep SVDD
DSVDD object 构建基于核的SVDD并通过找数据的最小闭合球面来最小化体积。在实现单分类目标的同时学习有用的特征表示。本文使用神经网络将数据映射到最小体积的超球面,输入集: ,输出集: ,映射记为: ,权重 ,L为隐藏层数。DSVDD目标为最小化轮子现空间F的超球体积同时学习W,球心 ,球半径 。对给定的数据集 : ,定义soft-boundary DSVDD 目标:
第一个式子最小化R以最小化超球体积;第二个式子为点在球外的惩罚因子;最后一个式子为网络权重的Frobenius范式正则化。
公式(3)通过学习参数W将原始数据尽可能映射到c附近,而异常数据映射后就会离C较远。因为在单类分类器中本文认为数据全为单类,因此提出另一个OC-DSVDD目标函数:
即最小化到中心点的平均距离。
对于给定测试集 ,定义打分s:
本分类方法使用内存低,使用方便。
在训练多分类器时需要分类多次,有没有可能多个超球全重叠?
Optimazation of Deep SVDD 本文使用随机梯度下降与反向传播算法,收敛后停止训练。当存在大量的训练数据时SGD可以降低计算复杂度,同时允许迭代训练。网络参数W与R分开计算,即每k次迭代后用最新的W更新R以加快训练效率。
Properties(特征) of DSVDD 这里将properties翻译成特性更准确。本节使用 和 分别指代soft-bound和OC—SVDD的目标函数,即式(3)和(4)。
特性1:当 时会使 ,会导致 ,经此分析,c需要选择一个固定且不为0的点而不能随网络训练而变化。根据经验得:将c初始化为第一次结果的均值会使得效果偏好。
特性2:当有偏置时又会出现一种不好的情况,即: ,即 会使得对任何输入样本x的输出均为: 。该情况说明偏置不便用于在DSVDD中。这也解释了为什么autoencoder不宜用偏置。
特征3:当激活函数是上限的,则当 取值任意大时会使网络的下一层获得近似上限的值,因此在DSVDD中应取无限制的激活函数,如:ReLU。
以上三点总结为:c不能为0,不要偏置,激活函数要是unbounded的。
特性4:式(3)中的v对离群点是上限,对球外面点或球面上的点是下限。本文定义 为每个训练点到c的距离,并已降序排列。 为离散点数,即:其距离c的距离大于R。到此可将soft-bound目标函数写作:
可见该式中要想实现目标函数,只要保持 的同时减少R提高 即可,这最终会导致 越来越多,因此我们还要限制:
Expriments 本文提供了源码:DSVDD-pytorch版 ,论文原始代码 ;Deep SAD pytorch版 ;CVDD-pytorch版 。
实验数据集有:MNIST,CIFAR-10,将本文中的算法的分类效果与其他算法作对比。
对比算法
shallow Baselines:
OC-SVM/SVDD
Kernel density estimation(KDE
Isolation Forest(IF)
Deep Bawselines and Deep SVDD
DCAE(Deep Convolutional AutoEncoders)
DSVDD:每k=5次迭代计算一次R;v取值:[0.01-0.1];c取初始化映射后的均值;使用DCAE的训练后的权重作其初始化权重;优化使用的是Adam optimizer和Batch Normalization。学习率使用二段法,初始的使用10e-4,后续使用10e-5。
AnoGAN
其他深度方法的权重使用Understanding the difficulty of training deep feedforward neural networks中的方法初始化;迭代次数:DCAE为250+100次,DSVDD使用150+100次;激活函数使用ReLU,其中leakiness
One-class classification on MNIST and CIFAR-10
setup:数据源有10标签,轻此本文需要10个OC分类器。所有数据使用L1-norm归一化。
Network architecture:本文使用LeNet的CNN,用ReLU激活和 最大池化;对MINIST数据集使用有两个模块的CNN结构: -filters和 -filters,并将最终密度层定义30个单元。对于CIFAR-10,使用三个模块的CNN结构: ,最终密度层定义为128个单元。batch size定为200,weight decay pyperparameter设为: 。
结果:见表1可见DSVDD明显优于其他方法。图2,图3分别展示了对DSVDD和KDE的正常和异常分类样例。KDE中分类正常案例内图形规整,这表明网络结构的选择很重要;SVDD分类器效果略优于soft-boundary,可能是因为训练集均为正例的原因。(作者的意思是不同的网络结构适合的分类对象不同 )
Adversarial attacks on GTSRB stop signs
setup:用German Traffic Sign Recognition Benchmark(GTSRB)数据集再测一次,并在测试集中加入恶意样例。训练集:780个stop 标志,测试集中有260个正常样例和一些恶意样例。本文将10%的标志的border去掉再resize照片到32X32像素。所有的样例都用L1-norm归一化。
Result:测试结果见表2,可见DSVDD效果最好。