ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Anomaly Detection] PCA, Autoencoder, GAN
    Learn/머신러닝 2022. 8. 12. 15:26

    # 재구축 오차

    원본 데이터를 압축했다가 다시 원본과 같은 차원으로 복원하는 과정을 거침. 

    복원력이 좋다면 X는 X'과 거의 같을 것이다. 

        > 원본 데이터와 복원된 데이터의 차이를 통하여 재구축 오차(reconstruction error) 계산

     

    # 재구축 오차 기반 이상치 탐지 알고리즘

    - 이상 관측치(anomaly)들은 잘 복원되지 않을 것이라는 가정으로 접근

    - 잘 복원되지 않은, 즉 재구축 오차가 큰 관측치를 찾아 이상으로 정의

        > 정상 데이터로 학습해야한다. 

    # Principal Component Analysis (PCA)

    원본 데이터의 분산을 최대한 보존하는 새로운 축을 찾고, 그 축에 데이터를 projection 시키는 기법

    재구축된 데이터와 기존 데이터 사이의 차이를 재구축 오차로 정의

     

    # Autoencoder

    입력된 데이터의 특성을 요약하는 인코더와, 요약된 정보를 복원하는 디코더의 형태

    Encoder, Decoder쪽 각각 neural network가 있다. 

    가정: 정상 관측치들은 불량 관측치보다 더 잘 복원될 것이다. 

    재구축 오차가 특정 임계값보다 크면 이상치로 판단 

        > thresholding은 평균으로부터 얼마나 떨어졌는지를 써도 되고 다른 방법도 많이 있다. 

     

    # LSTM-Autoencoder

    - Sequence 데이터를 위한 LSTM 구조를 사용하는 autoencoder

         *sequence: 이전 관측치와 현재 관측치 사이에 관계가 있는 모든 데이터를 뜻함

    - Encoder, Decoder에 LSTM을 적용한 방식

     

    # EncDec-AD

    - Training은 정상 데이터 사용

    - hidden vector는 이전 단계의 hidden vector(h)와 입력값(x)을 활용

    - Decoder의 복원은 Encoder 데이터의 역순으로 진행

     

     

    정상데이터로 error vector를 구해서 정규분포로 추론

        > μ까지의 마할라노비스 거리를 계산해서 멀면 이상값으로 판단 (임계치 τ는 정해야함)

     

    Autoencoder는 Convolutional, Variational, Adversarial 등 종류가 많다. 

     

    # Robust Deep Autoencoders

    기존의 Robust PCA를 활용 (RPCA)

        - 데이터를 최저 계수 행렬(low rank matrix)과 희소 행렬(sparse matrix)로 분할

    Robust Deep Autoencoders는 RPCA에서 나온 깨끗한 데이터(low rank matrix)를 가지고 autoencoder하겠다는 것

     

    # Generative Adversarial Network (GAN)

    ※ Adversarial(적대적인)은 크게 중요한 단어가 아님. 

     

    generator: 임의의 값으로부터 가짜 데이터를 생성

    discriminator: 생성된 데이터와 원본 데이터를 구분

     

    이상치 탐지가 목적이니 정상 데이터를 기반으로 학습 진행

    이상치 탐지에 유명한 GAN은 AnoGAN과 

     

    #  AnoGAN

    심층 합성곱 GAN (DCGAN)을 기반으로 이상 이미지를 탐지 (CNN으로 대충 봐도됨)

     

    정상 데이터에 특화된 Generator를 생성

    잠시 기존의 Generator와 Discriminator의 학습은 멈춤. 

    그리고 랜덤 이미지로 학습 진행

        > 정상 이미지의 잠재 공간을 찾는 단계 (how...?)

     

    새로운 이미지로 이상치 점수를 계산

        > 두 이미지의 점수 차이가 비슷하면 정상, 크면 비정상으로 간주

     

    # GANomaly

    두 단계로 이루어진 AnoGAN을 한 번에 진행하도록 제안된 방법론

     

    1. 생성된 이미지가 정상 이미지의 특성을 잘 반영하도록 학습

        (위의 식은 loss function)

     

    2. 정상 이미지의 요약된 특성과 생성된 이미지의 요약된 특성의 차이가 적도록 학습

    3. Discriminator 모델이 생성된 이미지와 원본 이미지를 잘 구분하지 못하도록 학습

    Anomaly Score: 이미지가 아닌 latent vector의 차이를 점수로 사용

    (주의 - 두 이미지의 차이를 사용하는게 아님!)

     

    참고: https://youtu.be/TXESAGRF1Hc

    댓글

Designed by Tistory.