Deep Semi-Supervised Anomaly Detection论文阅读

提出深度SAD和端到端的训练策略,提出了一个信息理论框架,根据潜在的分布的熵来作为论文方法的理论解释。
异常检测的假设就是:检测那些不平常(出现较少)的数据。
one-class分类:目标是找到包含大多数数据的小度量,那些不包含在内的就是异常。
浅无监督异常检测方法:one-class svm,核密度估计,独立森林。
数据设置特点:n个无标签数据(大部分为正常数据但是也包括一些异常污染),m个标注数据(+1表示正常,-1表示异常)
两种不同的AD设置:1)只标注正常数据 2)也标注异常(这里没有说是否进行正常数据的标注)
聚类假设

深度SAD的创新点:

1)深度SAD是无监督深度SVDD的一般化,它修改了实验设置,将实验设置为半监督类型。
如何将深度SVDD进行的半监督设置
2)提出一个信息理论框架用来解释Deep SAD和相似方法。
3)为一般半监督建立实验场景,在实验场景中引入新的baseline。

关于深度异常检测的信息理论:

1.信息瓶颈原则:最小化特征X和潜在表达Z之间的互信息,而最大化潜在表达Z与标签Y之间的互信息。主要是找到一种平衡,对于压缩与预测之间的表达平衡。
p(z|x)由神经网络来建立模型。
2.信息准则:信息准则是由于无监督深度学习缺少了标签Y,所以替代了上面的信息瓶颈原则。信息目标是最大化X,Z之间的互信息:
通常在表示Z的某些附加约束或正则化R(Z)下完成此操作。
使用的地方为:独立成分分析,聚类,生成模型和一般的无监督表达学习。
自编码是一种最大信息话准则的应用实例。
正则化的选择包括稀疏性,潜在先验分布的距离和通过kL差异的测量和对抗损失或者是简单的维度瓶颈。
这种潜在的限制表明正常数据应该在某种意义上紧凑。
论文使用了无监督的处理公式来处理半监督问题:因为在半监督和监督学习中,有个潜在的假设就是模型会以训练数据中相似的一类为相同类。但是由于异常是不相似的,所以将这种方法该进成无监督的问题。
论文使用基于熵的新颖表示学习正则化目标R(Z)=R(Z;Y)

深度半监督异常检测

1.深度SVDD

1.DSVDD实验设置:这个是此论文的基础,看一下改了哪个方面

通过损失函数来看:网络提取到超球体c的均方距离最小也即数据集中最稳定的共同变化因子。
对此式子的理解:正常数据多所以对于此损失函数来说,正常数据在c中心进行映射,而异常数据在远离c中心的地方进行映射才能使损失最小。
网络的初始化:首先预训练一个自编码器,然后初始化神经网络的权重。c是初始网络前向输出的平均值。
异常分数如何进行获得:
在概率上进行深度SVDD的分析:潜在分布的熵最小化,
假设条件是:Z是联合高斯分布即潜在分布是联合高斯分布

推导过程为:

当Z符合一个各向同性的高斯分布。

各项同性的高斯分布:
指的是各个方向方差都一样的多维高斯分布,协方差为正实数单位矩阵相乘。因为高斯的圆对称性,只需要让每个轴上的长度一样就能得到各向同性,也就是说分布密度值仅跟到均值距离相关,而不和方向有关。
最小化信息熵,熵越小则所含信息量越小
论文中通过概率分析将深度SVDD目标转化成最小化经验方差。
深度SVDD的解释:遵循信息最大化准则和另外的紧凑性目标(即潜在分布应该有最小化熵)

2.深度SAD

实验设置:有n个无标记数据和m个有标记数据(其中+1代表正常数据,-1代表异常数据)。
论文定义深度SAD目标为:

实验假设:无标签数据中的大多数数据都是正常数据。
通过观察式子:当没有标注数据的时候,其实SAD就回归为深度SVDD方法。
对于标注数据,论文使用了一种新的损失项,使用了一个超参数来调节标注数据和未标注数据在损失函数中所占的比重。
使用异常的距离倒数来进行惩罚,以使异常数据能够映射到远离中心c的地方。
异常分数的获取:
深度SAD的优化:
mini-batch来处理非凸问题,SGD反向传播优化网络参数,L2权重下降正则化,
神经网络的初始化:
自编码器预训练来进行初始化,这个符合信息最大化原则。
中心c的初始化:
1)由自编码器的前向传播产生的网络表征(除了标注的异常数据)
2)如果标注的正常数据足够多,那么只使用这些数据平均初始化,尽可能减小受污染未标注训练数据所引起的失真。
防止超几何体塌陷:神经网络没有偏差项和边界激活函数。如果标记异常足够多,那么会由于相对的标记和未标记物体不会出现超几何塌陷问题。
损失函数的对比实验:
1)负的规范平方损失函数:但是此损失函数没有下界,会出现不适定优化问题,导致优化发散。
2)负鲁棒损失:使用了Hampel loss,网上找不到相关的资料
3)hinge loss:链损失对于这个损失来说,是为了解间距最大化的问题
利用正常数据和异常数据的潜在分布的信息熵来进行最大化原则式子的实例化。
潜在分布的公式:

实验

Deep Semi-Supervised Anomaly Detection论文阅读_第1张图片

浅层无监督方法:带有高斯核的OC-SVM,SVDD;Isolation Forest
深度无监督方法:自编码器;无监督深度SVDD
如果说上述方法仅仅通过标记的正常数据进行训练,则我们称上述方法为半监督方法
对于一般利用标注异常的半监督异常方法,论文使用带有高斯核的浅层SSAD方法
SSAD和编码器进行结合,混合SSAD基线
论文将混合变体应用于所有无监督浅比较器上。
与以分类为下游任务的深度半监督方法进行比较,论文采用了半监督深度生成模型
完全监督深度分类器
为了控制神经网络结构对深度学习方法的影响,所有深度网络都使用LeNet类型。

网络结构:

对于图像都是LeNet结构,只不过对于不同的数据集使用的卷积核的大小和数量不同。在附录D中详细进行了介绍。
对于benchmark数据集使用多层感知器作为网络结构,但是网络设置参数不同。
对于自编码器网络,使用与上述网络相同的结构构建编码器,对于解码器依据编码器进行构建。

比较方法的细节处理:

OC-SVM/SVDD:参数的选择,争取在测试集的子集上(10%)最大化AUC,建立一个更加强大的基线。
Isolation Forest:论文设置树的数量为100,和子采样尺寸到256.
Kernel Density Estimator(KDE):选择高斯核的带宽为h
**SSAD:**论文中故意授予先进半监督异常检测核方法一个不对等的优势条件,最佳选择超参数来最大化测试数据集的子集的AUC。
**AE:**MSE重构损失作为作为异常分数
Hybrid Variants:混合变体,将OC-SVM,IF,KDE和SSAD与自编码器进行融合。
无监督深度SVDD:将软界限深度SVDD和one-class 深度SVDD都作为无监督的baseline,将最好的结果作为无监督结果。
深度SAD:就是论文中的方法,进行了参数的一些设置
SS-DGM:论文使用半监督DGM的类概率分布作为异常分数的一个原始选择。这种方法也说明有聚类假设,并且存在过拟合的问题。
监督深度二分类器:数据标签设置:将无标注的标签都看作是正常数据,将有标注的标签保留原来的标签设置。
对于深度方法的SGD优化细节:使用带有默认参数的Adam优化器并执行BN。

实验场景设置

数据集都有10个类,所以论文对每个数据集派生出10个AD设置。在设置中,论文设置10个类中的一个作为正常类其他的九个类代表异常。
1)将各个正常类的原始数据作为训练数据集的未标注部分。其他9个异常类构成了提取异常的数据库(池),正常数据标签为1,9个类的异常数据标签为-1,数据的预处理步骤为:将像素值缩放到0,1之间。
2)实验场景:三个实验参数:训练数据的标注率;无标注训练数据的污染率(异常类进行污染);标注训练数据类中的异常类别数
3)实验场景:场景介绍:
增加异常标注的数量,提高第一个参数。这样,最后的实验数量为109。其中训练集中只包括一个异常标记,测试时所有异常均使用,其中其余8个是新奇类。(这个标注是只标注异常还是也有正常数据被标注?)
对训练数据进行污染:调查不同方法的鲁棒性。将标注率定为0.05,标注的异常类类别数为1,也是实验90次,每一次的污染率都相同。污染是指在未标注的正常数据中加入未标注的异常数据,这个异常数据从异常池中抽取。
已知异常类的数量:论文希望通过这种方式让有监督分类器可以捕捉到一些点。固定训练数据集中的标记率为0.05,污染率为0.1,这个实验设置为10个选择种子,所以对于每一个标注异常数会进行10
10次实验,最后结果为平均结果。
结果:场景一到三的结果,图二表示了场景一的结果,证明了半监督方法的有利性,还证明了监督方法的脆弱性,对于新颖的异常,此方法的效果比较差。通过比较深度SAD可以推广到新颖的异常同时也可以利用标注的例子。论文中提出的混合SSAD基线总是表现的很好。
图三表示了场景三的结果,结果显示随着数据污染率的升高,模型的性能都在降低。深度SAD再次被证明是最鲁棒的模型。
图四显示在训练集中有更多种类的标记异常。深度SAD仍然表现最好的检测表现。对于监督学习来说,对于标记的种类还是非常敏感的。
总体来说,深度SAD在更复杂的数据上更加有利。

实验敏感性分析

1)标注数据与未标注数据在损失函数中的占比参数的敏感性分析。设置实验中其他参数为默认参数。训练集中的标记率为0.05,污染率为0.1,标记中包括的异常种类只有1类。结果就是模型结果没有很大的变化,表现的很稳定。
2)输出(特征)维度对深度SAD的敏感性影响:固定参数为1,其他不变,维度参选了几个值。与混合SSAD基线(这个需要看代码来分析与论文中的深度SAD的差距)进行比较。发现:维度越大效果越好,也就是说在压缩紧凑特征之前保存最大的互信息有利于模型的性能。

实验异常检测基准数据集

这种不是图像的基准数据集在异常检测的文章里出现的较少。论文中观察到相对较小,维度较低的基准数据集在浅层核方法上表现良好。
深度SAD证明是有竞争性的,观察到的细微差异可以用我们在其超参数选择中授予浅层方法的优势来解释。
由于同时使用深度和浅层网络,论文期望预计深度SAD可以很好的扩展到其他的数据类型。

结论和未来工作

此方法是将深度学习的方法应用到一般的半监督异常检测中去。此方法是无监督深度SVDD方法到半监督设置的一个扩展。
论文中基于最大信息原则制定了一个信息理论框架:解释异常为:对正常数据最小化其潜在分布的熵,对于异常数据最大化潜在分布的熵。

你可能感兴趣的:(机器学习,pytorch,深度学习)