사쿠의 데이터 블로그

Anomaly Detection with AE (3) 본문

카테고리 없음

Anomaly Detection with AE (3)

토스트먹어 2019. 8. 11. 23:27

 

★★ 이상점 탐지 ★★

0. Auto Encoder 개념 -링크

1. Anomaly Detection with AE (1) - 링크

2. Anomaly Detection with AE (2) - 링크

 

 

 

그림1 Auto Encoder를 이용한 정상데이터와 비정상 데이터 분류

이전 포스팅에서 정상 데이터와 비 정상 데이터간 분리가 잘되는 모습을 확인 했습니다. 

오늘은 어떤 원리로 작동하는지 살펴보겠습니다. 

 

 

그림2. Auto Encoder가 어떻게 비 정상 데이터를 탐지하는지.

그림2는 AutoEncoder를 간단히 표현한 그림입니다. 

 

  1.   3 Input 이미지가 들어오면 Encoder는 (0.1, 0.3)으로 압축을 합니다. 
  2.   Decoder는 이를 이용해 원본과 최대한 비슷하게 만듭니다
  3.   비 정상 데이터가 들어와도 Encoder는 열심히 일을 하고 (0.7, 0.5)로 압축합니다.
  4.   이 때, Decoder는 어떤 Output을 만들어 낼까요?

 

4번 질문에 대답하기 위해서는 Latent Space를 관찰할 필요가 있습니다. 

Latent Space는 앞서 Encoder가 (0.1, 0.3)으로 보낸 공간을 의미합니다. 

 

 

그림3. Latent Spcae

그림3의 왼쪽 그림을 보면 Mnist의 0 ~ 9가 적절히 배치된 모습을 확인할 수 있습니다. 

number관점에서 0(회색)과 1(분홍)은 굉장히 가깝지만, Latent Space상에서는 가장 거리가 멀게 mapping 되었습니다.

 

오른쪽 그림의 진한 녹색은 노이즈 이미지를 의미합니다. 

자세히 보면 특정 영역에서 굉장히 겹쳐보이는게 확인됩니다. 

 

!!!! 이 사실은 노이즈를 Auto Encoder를 이용해 구별 할 수 있다는 의미가 됩니다. 

그림4. 노이즈 이미지와 Auto Encoder의 만남

 

잠시 정리를 해보자면,  지금까지의 프로세스는 다음과 같습니다. 

 

1. 정상 & 비정상 데이터를 함께 Auto Encoder 학습

   (AE는 비 정상 데이터를 제대로 복원하지 못한다는 가정)

   (왜? - Latent Space 상의 표현 한계 때문)

 

2. MSE를 측정

 

3. 임계값(Trash hold)를 구해 정상과 비 정상 데이터 구분

 

 

 

그림5. Latent Space (Epoch 변화)

 

다음 포스팅에서는 다양한 실험을 해보려 합니다. 

 

1. anomaly 데이터가 많으면 성능문제는 없을까?
2. AE 모델은 원본 + alpha * 노이즈(noise)를 어디까지 구분할 수 있을까? (alpha 변형해보면서 실험)

 

 

 

코드 확인