读论文OCGAN: One-class Novelty Detection Using GANs with Constrained Latent Representations

OCGAN 的目的在于使得正常类输入样本real经过编码、解码后得到的fake与输入real尽可能的相似。并且强制经过编码后得到潜在空间服从均匀分布,实现方法是用gan。这样异常输入经过编码得到向量也会服从均匀分布,解码后得到的fake会像正常类。

比如说数字2作为正常类训练,数字8作为异常。数据8输入模型得到重构图像fake会像数字2。这样输入与输出差别会比较大,相对数字2输入和得到的数字2输出。即

2->2 差别小

8->2 差别大 

这样就能检测出8是异常的

还有一个问题是负采样:

目的是为了找出服从均匀分布,但是还没有被挖掘出的向量。

 

题目:使用具有约束潜在表征的GAN进行One-class异常检测

摘要:

我们针对单类经典的异常检测问题,提出了一种新的模型ocgan。给定一个特定的实例集,目的可以判断出查询是实例是否来自于同一个类。我们的解决方案基于使用去噪自编码器网络学习类内示例的潜在表示。我们的工作主要贡献在于约束潜在空间,使其只表示给定的类。为了实现这一目标,我们通过在编码器的输出层引入tanh 激活函数来使得获得的潜在空间是有限的。第二,在潜在空间下,使用判别器对抗训练,确保类内样例的编码表示类似于从同一空间随机获得的均匀随机样本。第三,在输入空间使用第二个判别器,确保随机潜在样本生成的样例看起来都是真实的。最后我们介绍一种基于梯度下降的采样技术,该技术探索潜在空间中的点,这些点生成潜在的类外示例,反馈给网络,进一步训练它网络这些点中产生类内样例。使用四个公开的数据集合和两个单类异常检测协议来证明该方法的有效性,比其他方法先进。 

1. Introduction

单类异常检测解决了量化测试样本属于训练样本定义的分布的概率问题。不同于其他机器学习任务,在一个类的异常检测中,在训练时只观察到一个类的例子。在推理过程中,期望得到训练后的模型。接受类内示例并拒绝类外样例。由于问题方法假设没有任何负面的培训数据,所以很难在实践中解决。然而,它在异常检测入侵者检测、生物医学数据处理学习不平衡,有许多应用。随着深度学习的到来,单类异常检测受到了国内外学者的广泛关注。在单类异常检测任务中,重点为学习给定类的代表性的潜在空间,一旦这样的一个空间被学习,异常检测将图像映射到学习的潜在空间上来执行。在文献中,有两种不同的策略通常用来达到这一目的,第一种策略,区别查询图像和它的逆像(重建)被用作一种新颖的检测器。第二种策略,是使用分布学习潜在空间。在这项工作中,我们考虑前一个异常检测策略。我们研究现有的表示学习技术的局限性,以及建议学习只在单类样例产生的潜在空间,以提高异常检测。

  现有的工作重点是生成一个保留给定类的细节的潜在表示。这样做时,假设出现类外对象时对于网络来说,它在描述对象方面做得很差,因此报告的重建误差相对较高。对文献中的数字进行的实验[16,1]建议对自动编码器等网络进行培训在具有简单形状(如0和1),的数字上具有异常检测精度。相反,复数形状,如数字8,具有相对较弱的异常检测精度。

这是因为为具有复杂形状的类学习的潜在空间本质上也学习表示一些类外对象。例如,在数字8上学习的潜在空间也可以表示其他数字,如1、3、6、7,相当好地产生类外示例的极低距离误差值为如图1所示(中间)。

我们注意到新颖性检测的要求不是只是为了确保类内样本得到很好的表示;它也是为了确保不合格样品的代表性很差。据我们所知,以前没有工作已经解决了后一个要求。在这项工作中,我们提出一类OCGAN,双重潜在空间同时考虑这些要求的学习过程。

在高层次上,我们学习到一个潜在的空间,它代表给定类的对象。第二,我们保证从所学的潜在空间中产生的例子确实是
来自已知道的类。换句话说,如果网络经过8位数字的训练,我们可以确保当用于生成图像时,抽取的样本来自潜在空间的图像对应于数字8的图像。这样可以确保类外样本不能很好地由网络表示。因为整个潜在空间对应于来自数字8,所有投射到潜在空间的反射都会产生数字8的图像。

2. Related Work

单类异常检测是一个定义明确的研究问题,具有标准的评价指标,近年来备受关注。传统上,它被视为一个表征学习问题。单类异常检测的最早方法是主成分分析法(PCA)以及它的内核扩展来找到一个子空间描述给定的概念。随着神经网络和深度学习的出现,使用自动编码网络寻求类似的映射。

正如上一节所讨论的,一旦学习了这种映射,就可以进行异常检测,要么基于重构误差,要么通过显式建模已知类的正常行为空间。在[5]和[21]中,采用了前一种策略使用均方误差作为异常函数。在[20]中,一个生成的敌对网络(GAN)训练[3]对给定的噪声样本进行去噪。这里,判别器对图像空间进行预测用于量化重构误差。后另一种稍微不同的策略是,[23]提出学习属于给定的类随机分布和图像流形之间的映射。在[23]中,最接近查询的图像是通过反向传播寻找,其中异常检测是基于两幅图像之间的差异来执行的。后一种策略,即已知类的行为在潜隐空间的建模中,也受到了相当多的关注。这种性质的早期作品使用单类建模工具,如单类SVM [24]支持向量数据描述符(SVDD) [25]获得的一个潜在表示。在[16]中,首先,GAN是
用于获取潜在表示。然后,将潜在空间的概率分布建模为乘积两个边际分布学到了经验。与此相反,在[1]中,潜在分布是使用自回归网络来建模的学习了随着参数的自动编码器。使用另一种方法,deep-SVDD[19]试图学习a类内方差低的潜在空间。该方法
由[19]提出的在概念上类似于[15],但确实如此不要使用任何外部数据来寻找解决方案后者的工作。

异常检测和单分类器。

异常检测[28]和单分类[24]都是与单类异常检测相关的问题。两者都有相似的目标——在给定一组类内样本的情况下检测类外样本。一个硬标签被期望分配给一个给定的图像在一个类分类;因此,采用检测精度和F1评分来衡量其性能。相比之下,新奇度检测只期望将一个新奇度得分与给定的图像相关联;因此,异常检测的性能是通过一个接收机工作特性(ROC)曲线来测量的。而基于边界的单类分类方法,如单类SVM、SVDD等,则可以将距离决策边界的距离作为异常得分,相比之下,异常检测(也称为离群点检测)是一种无监督学习任务[28]。对于类内未标记和类外未标记的混合实例,异常检测的目标是类内分离类外的例子。由于异常检测和新奇性检测遵循不同的协议,所以我们注意,这两个任务是不可比较的。因此,用于异常检测和新奇性检测的工具不能互换使用。

对抗学习

在给定一组图像的情况下,[3]中引入的生成对抗性网络在生成器网络和鉴别器网络之间进行双人游戏。这里,生成器网络试图从给定的图像分布生成真实的图像(假图像),而鉴别器网络则试图将假图像与真实图像区分开来。在平衡状态下,生成网络学习给定图像集的分布。为了达到这种状态,GAN理论指出,两个网络的容量之间应该保持平衡。在[9]中,GAN被扩展到条件设置。在此基础上,GAN算法被广泛应用于图像到图像的转换中。在[17]中,GANs甚至可以用来学习稳定的表示使用深度卷积网络,前提是要做出某些设计选择。受[20]网络架构的启发,遵循[17]中概述的原则,我们提出了一个深度卷积GAN架构作为我们解决方案的主干。

3. Proposed Method: OCGAN

3.1动机

在介绍中,我们给出了一个示例,在这个示例中,训练用来表示给定类的网络最终为其他类的图像提供了良好的表示。当一个给定的类的图像足够多样化时,在类内图像中一个类在潜在空间中的投影到另一个类的投影之间可以沿着无穷多个不同的路径平滑进行转换——对于高维的潜在空间尤其如此。在训练自动编码器时,我们只将观察到的例子投影到潜在空间中,而不是在相应的潜在点之间建立所有可能的路径。在图2中,我们想象一个潜在空间两点之间对应的两种不同的给定类(类8)图像的路径跟踪。该可视化显示,当我们从一个点沿指定路径,到另一潜在空间,某些中间潜伏样本看起来像数字1。当网络观察到一个数字1的实例时,它会投射到这些样本上。由于数字1在网络中很好地表示,所以重构误差会很低,虽然他属于外类。我们提出方法的核心思想就是基于这一观察。我们认为,如果整个潜在空间被限制为表示给定类的图像,那么类外样本的表示将是最小的——从而为它们产生高重构误差。

有了这个策略,我们显式地强制整个潜在空间只表示给定的类。当应用于图2中的示例时,沿两个8之间任意路径的所有潜在样本都将重构为一组数字8图像。路径的可视化,如图所示。图2(b)验证了这个声明。结果,当一个类外数字1提出的模型,在数字和重建的数字(现在看起来更像一个数字8)。将会有一个和大的区别,因此,该方法能够产生异常检测性能优越。

3.2. Proposed Strategy

提出的解决方案OCGAN由四个部分组成:一个去噪自动编码器、两个鉴别器(潜在的和视觉的鉴别器)和一个分类器。
该网络采用对抗性原则进行训练。我们将在下面详细描述这些组件。去噪自动编码器:在前面的工作之后,我们使用一个去噪自动编码器网络来学习给定概念的表示。自动编码器是一种编码器(En)-解码器(De)结构,其训练目标是最小化网络输入和输出之间的距离。通常的做法是在瓶颈之间有一个比输入维度小的存储空间。由于这个瓶颈,自动编码器只能在重建所需的潜在空间中保留必要的信息。在去噪自动编码器中,向输入图像中添加噪声,期望网络重构图像的去噪版本。文献表明,与常规的自动编码器相比,对自动编码器进行去噪可以减少过拟合,提高网络的泛化能力。因此,去噪自动编码器打开了潜在维数大于输入图像维数[27]的可能性。

此外,我们的策略围绕着从潜在空间密集采样。为了方便这一操作,为了对潜在空间提供有限的支持,我们在编码器的输出层中引入了tanh激活。因此,潜在空间的支撑为(1,1)d,其中d为潜在空间的维数。在我们的实现中,我们将均值为零,方差为0.2的高斯白噪声添加到输入图像中,利用均方误差损失训练自动编码器,如下图所示:

其中x是一个输入图像和n∼n(0,0.2)。此外,下面介绍的对抗性损失术语也用于学习自动编码器的参数。由于自动编码器的解码器部分也充当来自潜在空间的图像的生成器,所以我们在文本的其余部分中交替使用解码器和生成器。潜在鉴别器:我们方法的动机是获得一个潜在空间,其中来自潜在空间的每个实例表示给定类的一个图像。如果给定类的表示仅局限于潜在空间的子区域,则不可能实现此目标。因此,我们显式地强制类内示例的潜在表示在潜在空间中均匀分布。我们使用一个在潜在空间中运行的鉴别器来实现这一点,我们称之为潜在鉴别器Dl。该潜在鉴别器被训练来区分给定类的真实图像的潜在表示和
从U((1,1)d分布中抽取的样本。我们认为损失函数

读论文OCGAN: One-class Novelty Detection Using GANs with Constrained Latent Representations_第1张图片

Px是类内样本分布,我们使用自编码器网络即最大化En最小化Dl来训练判别器。因此,潜在空间是一个d维的(-1,1),的立方体,在平衡状态下,来自给定类的样例的潜在空间被期望服从(-1,1)d维的均匀分布。

视觉鉴别器:为了使网络不代表任何类外对象,我们建议对潜在空间进行详尽的采样,确保对应的图像不来自类外。由于在训练中没有负类,这种情执行况是困难的。相反,我们确保生成所有图像来自潜在样本的图像空间分布与给定类相同。为了加强这种约束,我们使用第二个鉴别器,我们称之为视觉鉴别器(Dv)。视觉识别器被训练来区分给定类的图像和使用解码器De(s)从随机潜在样本生成的图像,其中s为潜在的随机样本。在本文的其余部分,我们将后面的图像称为伪图像。当视觉识别器被欺骗时,随机选择的假图像通常看起来与给定类中的示例相似。我们评估对抗性损失Lvis如下:

我们使用maxDe minDv与自动编码器网络一起学习视觉识别器lvisual。

信息负挖掘:

到目前为止描述的组件构成了所提出的网络的核心。信息负挖掘:到目前为止描述的组件构成了所提议的网络的核心。
如图3(a)所示,是利用这三个子网络联合训练得到的伪图像的可视化数字9。图3(a)表明所提议的网络为能够为大多数随机潜在样本生成给定类的可信图像。然而,随着表示在图中,有很少生成的输出看起来与给定类不同的情况。例如,图3(a)中突出显示的数字看起来更像0而不是9。这一结果表明,尽管提出了训练程序,但仍有一些潜在的空间区域不会生成给定类图像。这是因为在训练过程中不可能从潜在空间的所有区域进行采样——尤其是当潜在维度很大时。一个简单的解决方法是降低潜在空间的维数。然而,随着维度的降低,网络保存的细节量会下降。因此,虽然所有的潜在样本都会产生一个类内图像,但非常低的维数会降低异常检测的性能。作为一种选择,我们建议在潜在空间中积极寻找产生低质量图像的区域。

Classifier:

分类器:分类器的作用是确定给定图像与给定类的内容的相似性。理想情况下,这样的分类器可以使用给定类的正例和反例来训练。然而,由于没有可用的负训练样本,我们转而训练一个较弱的分类器。在该机制中,如果内容属于给定的类,则分类器认为它是正的,如果内容与正的,没有相似之处,分类器将其视为负数。

我们训练分类器使用类内样本的重构作为正例,利用潜在空间中随机样本生成的伪图像作为负例子。该分类器采用二进制交叉熵损失l分类器,独立于其他网络元素进行训练。也就是说,在学习生成器和鉴别器参数时,没有考虑分类器的损失。首先,由于伪样本的质量较差,分类器能够获得非常低的损失值。随着训练提高了伪图像的质量,识别变得更加困难,这迫使分类器变得更加智能。

需要注意的是,分类器将给定的图像预测为负可能意味着,也可能不意味着,给定的图像总是对应于一个信息负的潜在样本。即使没有,这样的形象也不会妨碍整个培训过程,培训照常进行。由于信息负分类器不参与GAN博弈,因此不需要平衡分类器与生成器的容量(而其他两个判别器都是如此)。因此,有可能使分类器非常强大,以增加其在类内重构的信心。Informative-negative挖掘。图4通过几个示例展示了信息负挖掘过程的影响。图中显示了负挖掘前后的图像对。我们在底部一行显示了原始图像没有很大变化的情况。在第一行中,我们展示了几个示例,其中输入图像由于信息负挖掘而发生了很大的变化。例如,数字2的左上角样本在处理后显示为数字7。在图3(b)中,我们通过可视化从数字9的随机潜在样本中生成的一些伪图像来展示这个过程的影响。从图中可以明显看出,信息负挖掘有助于在整个潜在空间中更一致地生成所需类的数字。

全OCGAN模型:

图5所示为全OCGAN网络及其各组成部分的分解图。网络训练分为两个迭代步骤。在第一步中,除分类器网络外的所有子网络都被冻结。分类器网络由重构的类内实例和生成的伪实例训练而成。然后对其进行冻结,并对自动编码器和两个鉴频器进行反向训练。潜在判别器基于类内图像的潜在投影和从U(1,1)分布中随机抽取的样本来训练。利用随机潜在样本生成的伪图像和给定类的真实图像对视觉识别器进行训练。鉴别器是通过最小化损失来训练llant+ lvisual来训练。

在每个生成器步骤之前,使用从U((1,1)分布中抽取的一批随机样本,并使用分类器在潜在空间中损失的梯度下降步骤,在潜在空间中寻找信息负样本。

在每个生成器步骤之前,使用从U((1,1)分布中抽取的一批随机样本,并使用分类器在潜在空间中损失的梯度下降步骤,在潜在空间中寻找信息负样本。利用(噪声注入)的信息负性样本和潜在投影对自动编码器进行训练。给出了使用10×lMSE+lvisual+ llant类的实例。为了获得良好的重建效果,lMSE项被赋予了更大的权重。该系数是基于重建质量的经验选择的。在我们的实现中,我们只是在网络开始生成质量合理的假图像后才开始挖掘信息负样本。算法1总结了训练步骤:

读论文OCGAN: One-class Novelty Detection Using GANs with Constrained Latent Representations_第2张图片

网络架构与超参数选择:
自动编码器是一个对称网络,有三个5×5的卷积,步长为2,然后是三个转置卷积。所有的卷积和转置卷积之后都要进行批量归一化和泄漏ReLU(斜率为0.2)操作。在最后一个卷积层之后立即进行tanh激活,以限制对潜在维数的支持。我们为自动编码器使用64的基本通道大小,每层增加2倍通道。

视觉鉴别器和分类器是由三个5×5的卷积和步长2构成的网络。选择两个网络的基信道大小分别为12和64。潜在鉴别器是一个具有层次的全连接网络。

视觉鉴别器和分类器是由三个5×5的卷积和步长2构成的网络。选择两个网络的基信道大小分别为12和64。潜在鉴别器是一个完全连通的网络,层数分别为128、64、32和16。在所有网络中,每一层之后都使用批处理规范化和ReLu激活。

在训练结束时,我们选择验证集上MSE最小的模型进行评估。模型超参数,如学习速度,潜在空间大小根据验证集的(MSE)。选择验证集的大小每个网络中的基信道数和系数损失条款是根据每个网络组件培训损失的情况确定的。

4. 实验结果
4.1。评价方法
我们使用四个公开的多类目标识别数据集测试了该方法的有效性。为了模拟一个类设置,每次将每个类视为已知类,如
[1][16][19]。该网络仅使用已知类的样本进行训练。在测试期间,我们对待工会将其余类作为类外示例。后在前面的工作中,我们比较了我们的方法的性能利用接收机工作曲线下面积(AUC)特征(ROC)曲线。在这里,我们注意到存在文献中有两种用于一类新颖检测的协议。

方案一:类内80%的样例用于训练。其余20%的类内数据用于测试。负例样本随机选取,使它们构成了测试集的一半。
方案2:使用给定的训练-测试分割数据集训练。已知的类用于培训/验证。全部测试数据
类用于测式。

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