A Survey on GANs for Anomaly Detection 리뷰

2019. 6. 29. 20:41관심있는 주제/GAN

728x90

도움이 되셨다면, 광고 한번만 눌러주세요.  블로그 관리에 큰 힘이 됩니다 ^^

한번 썼다가 와이파이가 끊겨 다 날아가서... 힘든 마음으로 다시 쓴다..ㅠㅠㅠㅠㅠ

Anomaly detection은 몇몇의 연구 분야에서 중요한 문제이다. 

눈에 보이지 않는 것을 비정상적인 것으로 감지하고 올바르게 분류하는 것은 수년 동안 여러 가지 다른 방식으로 다루어졌던 도전적인 문제다.

GAN과 Adversarial training 과정이 이 Anomaly detection 분야에서 최근 좋은 성과를 내고 있다고 한다.

본 논문에서는 GAN 기반의 이상 징후 탐지 방법을 조사하여 장단점을 강조한다.

 

여기서 괜찮은 것은 다시 한번 또 리뷰를 해야겠다.

볼 논문은 넘쳐난다... 졸꾸졸꾸.... (파파고와 함께라면....)

 

우리의 기여는 이상 징후 감지를 위한 주요 GAN 모델의 경험적 검증, 서로 다른 데이터 세트에 대한 실험 결과의 증가, 그리고 GAN을 사용한 이상 징후 감지를 위한 완전한 오픈 소스 툴박스의 공개 등이다.

 

추후에 나중에 코드를 제공할 예정인 것 같다.  기대 기대

 

GAN은 알고 있듯이 복잡한 데이터의 차원을 잘 학습하는 알고리즘이다.

GAN을 이용한 이상 징후 검출은 상대적 훈련 과정을 이용하여 정상 행동을 모델링하고 이상 점수를 측정하는 이상 징후를 탐지하는 작업이다.

우리가 아는 한, 모든 GAN 기반의 이상 징후 탐지 접근 방식은 Adversarial Feature Learning 아이디어를 기반으로 함

Adversarial Feature Learning Paper :   https://arxiv.org/pdf/1605.09782v2.pdf 

이 논문은 BiGAN을 기반으로 하였다. 

큰 특징으로는 일반 GAN에다가 추가로 inverse mapping을 더했다.

생성된 데이터를 다시 latent representation으로 mapping 한다 해서 inverse mapping이라 한다.

Generator :  입력 데이터를 그 잠재 표현에 반대되는 함수와 함께 매핑하는 학습된 함수

이 Generator는 GANs을 사용한 anomaly detection의 기저가 된다.

 

이 논문에서는 다음과 같은 순서로 소개한다.

Section-1 GAN, Conditional GAN , BiGAN 설명
Section-2 anomaly detection 관련 GAN들 architecture  설명
Section-3 분석된 architecture를 경험적으로 평가
Section-4 결론과 미래 연구 방향

1.1. GANs

Loss만 보여주고 Passs! (다른 좋은 자료가 많으니 패스)

1.2. Conditional GANs

여기선 기존 y 조건을 주는데, y는 auxiliary information을 주는 것이다.

개인적으로 이 Y라는 것을 Continuous 하게 줄 수 있는 방법에 대해서 알고 싶다.

그것만 알면 Numeric 한 경우에도 마음대로 분포를 만들 것 같은데...

1.3. BiGAN

이것은 Bidirectional GAN에다가 encoder를 포함하여 연장한 것이다.

E라는 것은 G^{-1}로써 Generator의 Inverse를 학습하는 것이다. 

먼가 Arhitecture만 보면 쉽게 구현할 수 있을 것 같은 기분이다. 

찾아보니 구현이 많다. https://github.com/nihalsid/BiGAN/blob/master/BiGAN.py

BiGAN 같은 경우 latent space에서 data로 또는 그 반대를 동시에 mapping 해서 학습을 한다. 

여기서 Conditional GAN처럼, discriminator는 반드시 실제와 가짜를 분류할 뿐만 아니라, 그림에 나와있는 Pair도 구분할 줄 알게 학습되어야 한다. 

 

2. GANs for anomaly detection

Paper URL 변종 사례
AnoGAN https://arxiv.org/abs/1703.05921

많이 자료가 나오고 적용도 한 사례들이 있는 것 같다.

f-ANOGAN [201901]

https://www.sciencedirect.com/science/article/abs/pii/S1361841518302640

철강에 적용한 사례

https://meeta.io/@lilpoohlila/2

EGBAD (Efficient GAN Based Anomaly Detection) https://arxiv.org/abs/1802.06222    
GANomaly https://arxiv.org/abs/1805.06725    

일단 GAN을 활용한 Anomaly detection은 현재 이미지에서 적용이 많이 되고 있다.


2.1 AnoGAN

표준 GAN 모델에 positive sample만으로 훈련시킨다. 

오직 Normal data로만 학습을 함으로써, normal samples의 manifold를 Generator가 학습을 하게 합니다.

그래서 나중에 비정상적인 데이터가 들어왔을 때 reconstrue의 차이를 높으면 비정상이라고 탐지하는 방식입니다.

저자들은 입력 샘플의 잠재적 공간에 대한 매핑을 반복적인 과정으로 정의했다.

목표는 Positive Samples의 매니폴드 X에 위치한 쿼리 값 x와 유사한 생성 값 G(z)에 해당하는 잠재 공간에서 점 z를 찾는 것이다.

`residual loss` 는 쿼리 샘플과 생성된 샘플 사이에서 불일치성을 측정한다. 

`discriminator loss`는 discriminator 반응을 고려한다. 

2가지의 다른 방법이 있다고 한다.

  1. sigmoid cross entropy를 계산한다. 실제 데이터로부터 나온 인풋 샘플의 discriminator의 신뢰성을 고려한다.
  2. feature matching loss를 계산하기 위해서 discriminator layer f로부터 추출한 다음에 생성된 샘플과 인풋 특징 사이에 유사한지 안 한 지를 고려합니다.

Γ-th 단계에서 해당 값이 anomaly score와 일치함

A(x)는 상한선이 없으며, 높은 값은 x가 비정상적일 높은 확률에 해당한다.

 

Pros Cons
  • GAN이 Anomaly detection 사용되는 것을 보여줌
  • 잠재된 공간에서 입력 데이터 공간까지 새로운 매핑 체계를 도입했다.
  • anomaly score를 정의하기 위해서 같은 매핑 체계를 사용함.
  • Γ 최적화 step을 모든 새로운 인풋에 필요하다.
    • 시간이 오래 걸림
  • GAN 목적함수가 Inverse mapping learning을 위한 필요성이 고려하지 않게 구성함.
  • Anomaly score는 확률 범위내에 있지 않아서 해석하기가 어렵다.

2.2. EGBAD

anomaly detection domain에 BiGAN을 도입함.

AnoGAN의 단점을 해결하고자 노력한 논문

단점은 adversarial training 동안, E가 입력 샘플을 상대적 훈련 동안 잠재 표현에 매핑할 수 있는 인코더를 학습할 수 있게 하는 것. 

최대로 기여한 점은  Γ optimization steps 없이 할 수 있다는 점!

The main contribution of the EGBAD is to allow computing the anomaly score without Γ optimization steps during the inference as it happens in AnoGAN (Schlegl et al., 2017).

2.3. GANomaly

AnoGAN과 BiGAN의 영감을 받아서 만든 것

그들은 정상적인 샘플에 발전기 네트워크를 훈련시켜 그들의 매니폴드 X를 학습하는 동시에 자동 인코더는 그들의 잠재된 표현에서 효율적으로 이미지를 인코딩하는 방법을 배우도록 훈련받는다.

Generator

3가지로 요소로 이루어짐.  G_E , G_D , E 

실제 이미지를  autoencoder처럼 만들고, 생성된 이미지를 다시 encoding 해서 그것 간의 mae loss를 계산한다.

2가지를 기여했다고 한다.

  1. autoencoder 구조를 넣었다는 점 
    • normal 데이터를 다시 생성하는 x_hat을 함으로써, 결국 generator는 정상 데이터만 생성할 것이다. 
      • 그래서 비정상이 나타나면 높은 값이 나와서 탐지가 가능할 것이다.
  2. generator 마지막 구조에 encoder는 학습하는 동안 x_hat의 재구 조를 이끌기 위해서 x의 representation을 가능한 할 수 있게 도와줄 것이다.

Discriminator

standard gan구조인 것 같다.

 

기여한 점은 Generator를 3가지 Loss를 이용한 방식이 기여한 점이다!

 

Generator Loss

Adversarial Loss

feature matching loss

f는 discriminator의 layer다 

인풋의 특정 representation을 뽑기 위해 사용한다.

대안적인 방법으로는

binary cross entropy를 사용한다.

Contextual Loss

Generator가 인풋 데이터에 대한 contextual 정보를 학습하게 하기 위해 사용

L1-Norm 사용해서 더 나은 시각적은 결과를 얻을 수 있다고 함.

Encoder Loss 정상 이미지를 최적으로 encode하게 학습하는데 사용함.
total loss

w를 다르게 줌으로써 중요도를 조절할 수 있다. 

test 단계에서는 저자는 anomaly score를 계산하기 위해서 Lenc를 사용한다고 함

. 쉽게 해석하기 위해서, 각 샘플 x_hat에 대한 anomaly score를 계산하는 것을 제안함

개별적인 anomaly score의 셋을 모으고 feature scaling을 적용하여서 확률적인 범위인 [0,1]에 모아서 평가한다.

Pros Cons
  • 학습하는 동안 encoder는 학습되어진다.
    • 그러므로 AnoGan의 resarch process를 할 필요가 없어짐
  • autoencoder architecture를 사용하여서 더 빠르게 학습할 수 있게 됨.
  • anomaly score가 해석하기 쉬워짐
  • contextual loss는 anomaly를 지역화하는데 사용되어진다.
  • 인풋 공간과 잠재 공간 모두에서 이상 징후를 탐지할 수 있지만, 결과는 일치할 수 없었다.
    • 더 높은 이상 징후 점수는 컨텍스트 손실 값이 낮고 따라서 입력과 매우 유사한 생성 샘플과 연관될 수 있다. (latent 차원에서 보기 때문에 그렇다) 
  • 새로운 anomaly score를 정의했다.

3. Experiments

 

Dataset

  1. MNIST
  2. Fashion MNIST
  3. CIFAR-10
  4. KDD

Result!

Area Under Precision and Recall Curve(AUPRC)로 측정

AnoGAN은 unfeasible 하다 왜냐면 Gamma를 찾아야 하기 때문에 그래서

We intentionally left out the performance evaluation of the AnoGAN model.

 

 

 

BiGAN/EGBAD

좋은 성능을 냈는데, Table 1을 보면 조합이 나와있다.

BCE (Binary Cross Entropy Loss) , FM ( Feature Matching)

 

GANomaly

AnoGAN

기존 논문을 확인하라고 한다.

 


4. Conclusions

 

Tensor flow로 통일해서 만들었다고 한다.

나중에는 오픈한다고 한다.

 

나의 결론

일단 전부 이런 과정이 이미지에서만 GAN을 활용해 Detection이 된 것 같다.

이것을 어떻게 하면, Tabular 데이터에 적용을 할 수 있을까

먼가 으음 구조는 어떻게 적용하면 될 것 같은데, Loss를 평가하는 방식이든지 사용하는 방식이든지 동일하게 해도 되는지는 모르겠지만, 암튼 신선했다!

728x90