Machine Learning/Algorithm

Anomaly detection - PCA, Autoencoder, GAN

고슴군 2022. 7. 4. 14:53
  • 간단하면서도 성능이 좋은 경우가 많아서, 현업(on-product)에 많이 활용됨
  • 변수이 개수를 줄여서 압축함
    • original 데이터의 정보의 손실을 최소화하면서 압축되었다는 전제

 

  • 복원 : 예를 들어, 5차원으로 압축된 것을 100차원으로 돌려놓는 것
    • X'은 압축된 데이터에서 복원하기 때문에, X와 X'이 같을 순 없다.
    • Z에 정보가 대부분 보존되었다면 X와 X'은 매우 비슷할 것이다

 

  • X와 X'은 압축이 잘 되었다면 이론적으로 같을 수는 있지만, 현실적으로는 같을 수 없다. 손실된 것이 존재할 수 밖에 없음. 

 

  • 잘 복원되지 않은 데이터를 이상치라고 하는 것이다. 
    • original 데이터인 X 는 정상 데이터만 사용해서 학습해야 할 것이다. 따라서 정상 데이터가 들어오면 잘 복원하고
    • anomaly 데이터가 들어오면, 복원을 잘 못할 것이다. 

 

  • PCA

 

 

  • Autoencoder 

 

  • 정상데이터만을 가지고 모델을 학습해야 함

 

 

  • Threshold : 평균값, 95%에 해당하는 값 등의 다양한 방법으로 설정 가능

 

  • LSTM-Autoencoder
    • Sequence 데이터 : 이전 관측치와 현재 관측치가 어떤 관계가 있는 데이터.
      • Time series는 sequence 데이터의 극히 일부분일 뿐이다.
      • 시계열 데이터 이더라도, 이전 관측치와 현재 관측치가 서로 관련이 없는 데이터도 있다. 그런 데이터는 sequence 데이터가 아니다. 이런 데이터의 경우 LSTM을 사용하면 안될 것.

 

 

  • encoder의 마지막 hidden vector를 latent vector로 활용

 

  • 정상데이터 만을 이용해서 error vector를 계산하고, 정규분포 추론
  • 대상 데이터의 error vector와 추론한 통계값을 이용하여 마할라노비스 거리 계산
    • 정상 데이터라면, 이 분포 안에 혹은 가깝게 데이터가 존재할 것이므로 거리 작을 것. 이상 데이터는 반대.

 

 

  • Robust Deep Autoencoders 

 

  • 우리 데이터가 아무리 정상 데이터라고 가정하더라도, 조금의 이상 데이터가 포함될 수도 있음. 정말 pure한 정상 데이터만을 사용해서 auto-encoder 학습하자.

 

  • 목적식에 regularization term 추가한 것

 

  • Generative Adversarial Network (GAN)

 

  • Generator : 정상데이터에 특화된 generator
    • 이상치가 들어가면, gap이 많이 생기 럯

 

 

 

[참조] 김성범 교수님의 https://www.youtube.com/watch?v=TXESAGRF1Hc&t=574s (Anomaly Detection - PCA, Autoencoder, GAN) 을 요약한 것입니다. 

 
반응형