异常检测 and GAN网络(2)

文章目录

  • 前言
  • 一、DCGAN(算法改进)
  • 二、WGAN / WGAN-GP(算法改进)
  • 三、GANomaly(用于异常检测)
    • 1、GANomaly概括
    • 2、GANomaly框架
    • 3、GANomaly判断异常依据
    • 4、GANomaly优势
  • 总结


前言

  这里主要介绍一些GAN网络的变种网络——DCGAN网络、WGAN / WGAN-GP网络以及用于异常检测的GANomaly网络,其在性能上较GAN网络都有一定的提升。大家一起学习呀~


一、DCGAN(算法改进)

  DCGAN是继GAN之后比较好的改进,其主要的改进主要是在网络结构上,到目前为止,DCGAN的网络结构还是被广泛的使用,DCGAN极大的提升了GAN训练的稳定性以及生成结果质量。
异常检测 and GAN网络(2)_第1张图片
  DCGAN把上述的G和D用了两个卷积神经网络(CNN)。同时对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度,这些改变有:

  • 在D和G中均使用批处理规范化;
  • 去掉全连接层,使网络变为全卷积网络;
  • G网络中使用ReLU作为激活函数,最后一层使用tanh函数;
  • D网络中使用LeakyReLU作为激活函数;
  • 取消所有池化层。G网络中使用转置卷积(transposed convolutional layer)进行上采样,D网络中用加入stride的卷积代替池化层。

文章链接:Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks

二、WGAN / WGAN-GP(算法改进)

  GAN 的训练问题一直被诟病,很容易出现训练不收敛和模式崩塌的现象。WGAN主要从损失函数的角度对GAN做了改进,从理论层面分析了原始的 GAN 使用 JS 散度存在的缺陷,并提出了可以使用 Wasserstein 距离来解决这个问题。在 WGAN-GP中,作者提出了通过添加梯度惩罚项,从工程层面很好的实现了 WGAN 算法,并且实验性证实了 WGAN 训练稳定的优点。具体的来说,WGAN对GAN的改进有:

  • 判别器最后一层去掉sigmoid 生成器和判别器的loss不取log;
  • 对更新后的权重强制截断到一定范围内,以满足论文中提到的lipschitz连续性条件;
  • 论文中也推荐使用SGD, RMSprop等优化器,不要基于使用动量的优化算法,比如adam。

文章链接:Wasserstein GAN

  WGAN虽然理论上有极大贡献,但在实验中却发现依然存在着训练困难、收敛速度慢的问题,这个时候有人提出了WGAN-GP,它的贡献是:

  • 提出了一种新的lipschitz连续性限制手法—梯度惩罚,解决了训练梯度消失梯度爆炸的问题;
  • 比标准WGAN拥有更快的收敛速度,并能生成更高质量的样本;
  • 提供稳定的GAN训练方式,几乎不需要怎么调参,成功训练多种针对图片生成和语言模型的GAN架构;

文章链接:Improved Training of Wasserstein GANs

三、GANomaly(用于异常检测)

1、GANomaly概括

  随着 GAN 的提出,对抗的思想越来越引人注意,利用 GAN 做异常检测的文章在实验上有了一定的突破,从 AnoGAN学习到正常样本的分布,一旦送入异常样本数据发生改变从而检测出异常,这种方法的局限性很强,往往也会带来计算成本的昂贵(需要严格的控制先验分布 z)。在此基础上,为了找到更好用作生成的先验分布 z,在 AnoGAN 的基础上提出了 Efficient-GAN-Anomaly同样由于做个一次重新映射导致计算成本上也是庞大的。

  GANomaly 算是在前两篇文章的基础上做了一次突破,不再比较图像(同理可以应用在其他方面)分布了,而是转眼到图像编码的潜在空间下进行对比。对于正常的数据,编码解码再编码得到的潜在空间和第一次编码得到的潜在空间差距不会特别大。但是,在正常样本训练下的 AE 用作从未见过的异常样本编码解码时,再经历两次编码过程下往往潜在空间差距是大的。

  当两次编码得到的潜在空间差距大于一定阈值的时候,我们就判定样本是异常样本,这就是 GANomaly 的思路。

2、GANomaly框架

  如下图所示是GANomaly网络的模型,整体框架由三部分组成(其内部结构使用了DCGAN的结构):

异常检测 and GAN网络(2)_第2张图片
   G E ( x ) G_E(x) GE(x) G D ( z ) G_D(z) GD(z) 统称为生成网络,可以看成是第一部分。这一部分由编码器 G E ( x ) G_E(x) GE(x) 和解码器 G D ( z ) G_D(z) GD(z)构成,对于送入数据 x x x 经过编码器 G E ( x ) G_E(x) GE(x)得到潜在向量 z z z z z z 经过解码器 G D ( z ) G_D(z) GD(z) 得到 x x x 的重构数据 x ^ x̂ x^

  模型的第二部分就是判别器 D D D,对于原始图像 x x x 判为真,重构图像 x ^ x̂ x^ 判为假,从而不断优化重构图像与原始图像的差距,理想情况下重构图像与原始图像无异(GAN网络的博弈过程)。

  模型的第三部分是对重构图像 x ^ x̂ x^ 再做编码的编码器 E ( x ^ ) E(x̂) E(x^) 得到重构图像编码的潜在变量 z ^ ẑ z^

  如果将模型看成两部分,则第一行的编码器 G E ( x ) G_E(x) GE(x)、解码器 G D ( z ) G_D(z) GD(z) 、编码器 E ( x ^ ) E(x̂) E(x^)可以看做GAN网络的生成网络,而下面的 D D D则可以看做GAN网络的判别器,因此整体上呈现出博弈过程。

3、GANomaly判断异常依据

  对于正常的数据,编码解码再编码得到的潜在空间和第一次编码得到的潜在空间差距不会特别大。但是,在正常样本训练下的 AE(自编码器) 用作从未见过的异常样本编码解码时,再经历两次编码过程下往往潜在空间差距是大的。

4、GANomaly优势

  • 半监督异常检测:编码器-解码器-编码器流水线内的新型对抗自动编码器,捕获图像和潜在向量空间内的训练数据分布
  • 引入了生成对抗网络(GAN)中的对抗训练思想,实现在毫无异常样本训练下对异常样本做检测
  • 学习“原图->重建图”和“原图的编码->重建图的编码”两个映射关系,当两次编码得到的潜在空间差距大于一定阈值的时候,就判定样本是异常样本
  • 功效:一种有效且新颖的异常检测方法,可在统计和计算上提供更好的性能。

损失函数、模型测试和实验结果等部分这里就不多加讲解了,大家想了解的可以去参考网站自行查阅~

文章链接:GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training


总结

  GAN网络的变种参考网站如下,其中还讲述了Conditional GAN网络、InfoGAN网络、CycleGAN网络、Self-Attention GAN和BigGAN:
  生成对抗网络(GAN)
  GAN变种介绍 - DCGAN、InfoGAN、CycleGAN、WGAN、Self-Attention GAN、BigGAN

  GANomaly网络的介绍参考以下网站:
  杜伦大学提出GANomaly:无需负例样本实现异常检测
  【论文】Skip-GANomaly: Skip Connected and Adversarially Trained Encoder-Decoder Anomaly Detection
  GANomaly复现总结

你可能感兴趣的:(异常检测,生成对抗网络,深度学习,GAN,安全,算法)