AI/논문

[논문] ADGAN 리뷰 : ANOMALY DETECTION WITH GENERATIVE ADVERSARIAL NETWORKS

슈퍼짱짱 2018. 12. 4. 16:14
반응형

ANOMALY DETECTION WITH GENERATIVE ADVERSARIAL NETWORK(ADGAN)

ICLR 2018


논문 링크 : https://openreview.net/forum?id=S1EfylZ0Z




Abstract


  • low-dimensional problems에서는 좋은 anomaly detection 방법들이 존재하지만, 이미지와 같은 high-dimensional problem에는 효과적인 방법이 없다.
  • 본 논문에서 GAN을 이용한 anomaly detection에 대한 새로운 접근을 제안한다.
  • 우리의 방법은 고려중인 sample을 감안할 때, generator의 latent space안에서 good representation을 검색하는 것에 기반한다.
    • 만약, representation이 발견되지 않으면, 해당 sample은 anomalous로 간주된다.



1. Introduction


  • 일반적으로 비정상 탐지라 불리는 이 시스템은 천문학, 의학, 결함 검출과 같은 수많은 분야에 쓰이는 기본적인 기계학습 기법이다.
  • 전통적인 알고리즘은 low-dimension에 초점맞춰 있기 때문에, image, speech등과 같은 고차원에 적용할 때, 어려움을 겪는다. 
  • 또한, feature에 대한 수동적인 engineering이 필요하다.
  • Deep learning은 수동적인 feature engineering이 없어도 되고, 고차원의 task를 처리할 수 있다.
  • 본 논문은 GAN을 사용하여 Deep learning에 기반한 anomaly detection을 제안한다.
  • GAN은 high-dimensional generating model에 좋은 성능을 냈다.
  • GAN은 두 개의 신경망이 얽혀있다.(generator, discriminator)
  • 이 과정에서 generator는 low-dimension의 random sample을 target dataset을 흉내내는 high-dimension에 map하는 것을 배운다.
  • 만약, generator가 training data의 분포에 근사하는 법을 성공적으로 배웠다면, 그 데이터의 분포로 부터 추출된 sample은 GAN의 latent space의 어떤 point가 generator를 통과한 output과 매우 유사하다고 가정할 수 있다.
  • 본 논문은 이러한 논리로 ADGAN을 수행한다.


3. Algorithm


  • ADGAN은 GAN training이 수렴 한 후에 수행된다.
  • 만약 generator가 training data의 분포를 잘 학습했다면, 새로운 sample x ~ p가 주어졌을 때, latent space에 z가 존재해야 한다. 
    • 즉, 
  • 또한, p로 부터 멀리 떨어진 point는 latent space에 representation이 없거나, 최소한의 부분만 차지할 것이다. 왜냐하면, disciminator가 p로 부터 오지 않은 것을 잘 구분하기 때문이다.
  • 따라서, test sample x가 주어졌을 때, 인 z가 존재하지 않거나, 찾기 힘들다면, x는 p로부터 분사되지 않았다고 유추할 수 있다, 즉, anomalous이다.
  • 우리의 알고리즘은 이 가설에 따른다.




3.1 ADGAN


  • z를 찾기 위해,  를 초기화 한다. 이때, 는 GAN training할 때와 같은 noise prior이다.
  • l = 1, 2, ..., k step동안,  과 x 사이의 loss를 backpropagate한다. 이는,  이 점점 x와 가까워 지도록 한다.
    • 이때, loss는 reconstruction loss이다.
  • 각각의 iteration마다, generator의 parameterization에 약간의 융통성을 허용하여,  , ..., 의 일련의 mapping이 x와 더욱 가까워 지도록 한다.
    • 즉, 원래 GAN의 를 더 update한다.
  • 를 조정하는 것은 generator에게 추가적인 representation 능력을 주어, 알고리즘의 성능을 향상시킨다.
  • 이 때, 를 조정하는 것은 GAN training 과정이 아니고, 는 새로운 test point마다 원래의 값으로 reset된다.
  • 부적합한 영역에서 시드의 위험을 제한하고, optimization problem에서 non-convex문제를 해결하기 위해 개의 개별적인 점으로 초기화되어 수행한다.
    • 즉, 위와 같은 문제 때문에 z를 한 point가 아닌 개의 point에서 수행한 다음, 각각 loss를 평균낸다.
  • ADGAN의 주요 아이디어는, 만약, generator가 x와 동일한 분포로 train했다면, 마지막 iter의 loss   는 작을것이고, 그렇지 않다면 클 것이다.
    • 즉, n개 loss들의 average가 크다면 x는 anomalous이다.

  • 이 방법은 gererator의 역 근사의 관점에서도 이해할 수 있다.
    • 즉, 위 backpropagation은  에 가까운 latent vector z를 찾는다.
    • Lipton과 Tripathi가 생성된 이미지는 latent space를 통한 backpropagation에 의해 성공적으로 복구될 수 있음을 보였다.


3.2 ALTERNATIVE APPROCHES


  • GAN을 training하면, real과 fake sample을 구분하는 discriminator도 주어진다. anomaly detection을 하는데, 이 discriminator를 직접 적용하는 것이 합리적으로 보일 수도 있다. 하지만, 일단 network가 수렴하면, discriminator는 generator에 의해 유도된 pixel 단위의 바둑판 같은 구조를 이용한다.
    • 이는, 위조된 데이터와 real data는 완벽히 구분하지만, training data와 완전히 다른 sample을 처리하는 기능은 없다.
  • 또 다른 접근으로, noise prior 하에 마지막 latent vector  를 평가하는 방법을 고려했다. -4에서 자세히
  •  Schlegl는 우리가 제안한 알고리즘과 비슷한 방식으로 GAN을 이용한 anomaly detection을 제안한다. (AnoGAN)
    • 주어진 test point x에 대해서 z를 찾고, loss를 계산한다. 또한, 중간의 discriminator layer 를 사용하여 와 의 loss를 계산한다.
  • ADGAN은 dicriminator를 사용하지 않는다. 이는, 어떠한 GAN base에서도 쉽게 접근할 수 있다.
  • 또한, 우리는 latent space에서 여러 공간에서 seeding함으로써, optimization관점에서 non-convexity를 설명한다. (algorithm에서 부분)
  • 마지막으로, 추론중에 latent vector z뿐 아니라, generator의 도 함께 update한다.


4. EXPERIMENTS



4.1 DATASETS

  • MNIST
  • CIFAT-10
  • LSUN
4.2 METHOD AND HYPERPARAMETERS
  • ADGAN VS
    • KDE with a Gaussian kernel
    • OC-SVM :  One Class Support Vector Machine
    • IF : Isolation forest
    • GMM : Gaussian Mixture Model
    • VAE
    • DCAE
  • anomaly detection이 수행되기 전에 feature 차원을 축소했다. 
    • PCA 및 Imagenet으로 pretrain된 Alexnet으로
    • KDE 및 OC-SVM의 런타임 문제 때문
  • latent space는 정규분포로 초기화
  • nseed = 8
  • k = 5 step
  • reconstruction loss : L2 loss

4.3 ONE-VERSUS-ALL CLASSIFICATION

  • 각 class별로 train한 다음, 전체 test set에서 random하게 5000개 test
    • ex) 0만 train한 곳에 1-9로 test하면 anomalous로 판별


  • ADGAN은 CIFAT-10에 비해 저차원인 MNIST에서 좋은 성능을 보인다.
  • Table1에 보면 Alexnet에 의한 차원축소는 좋은 성능을 보이지 않는다.
  • 일반 GAN의 성능은 MNIST : 0.625/ CIFAR-10 : 0.513으로 좋은 성능을 보이지 않는다.




4.4 UNSUPERVISED ANOMALY DETECTION

  • LSUN data 사용
    • http://lsun.cs.princeton.edu/2017/



  • 위 세 줄을 anomalous라고 판별된 image, 아래 세 줄을 normal image
  • ADGAN은 색상 뿐 아니라, 기하학적 특징을 고려한다는 것을 알 수 있다.


반응형