본문 바로가기
딥러닝

이상탐지 알고리즘 종류에 대해 (1)

by 제리의 세계 2023. 5. 18.

안녕하세요! 제리입니다.

오늘은 이상탐지 알고리즘 종류에 대해서 알아볼까 합니다.

ae

- encoder와 decoder는 원본 데이터와 복원된 데이터의 차이(reconstruction loss)를 back-propagation하여 가중치를 반복적으로 업데이트
- encoder와 decoder의 깊이 및 latent vector의 차원(dimension)을 정교하게 잘 결정할 필요
- overfitting을 유발 => 본적없는 새로운 데이터를 생성하는 생성 모델로서는 사용이 불가능
- 복원 오차는 이상 점수(anomaly score)가 되어 threshold와 비교를 통해 이상 여부를 결정
- 단층 구성하고, non-linear 활성함수 추가하지 않을 시 PCA처럼 단순 선형 transformation됨

vae

- 과적합을 피하고 latent space가 새로운 데이터 생성할 수 있도록 좋은 특성을 가지도록 훈련 (최적의 병목 구간 크기를 갖게 해줌)
- ae의 경우 병목 크기 클 수록 이상 탐지 성능이 떨어지지만 vae는 성능이 오름 => 튜닝할 필요 없음
- VIB 제공하여가상의 information bottleneck을 가짐 (KLD 항 최소화)
- 가우시안 형태에 가까워지지만 실제로는 가우시안 분포를 따르지 않음

aae (adversarial autoencoder)

- latent 분포를 검사하는 discriminator(주로 GAN에 쓰이고 평가를 구분자, 판별기) 도입 => 원하는 형태의 분포로 강제 시킴
- latent 변수의 확률값 구하는데 활용 가능

isolation forest

- 정상 데이터로부터 학습한 모델을 기반으로 판단
- 의사결정 트리기반(iTree) => 계산량 매우 적음
- 정상적 관측치면 고립 어려울 것이고 이상 관측치면 고립 쉬울 것
- robust 장점
- 이상치 점수 산축하기에 cut-off 적용 가능

lstm-ae

- 이상 데이터를 입력시 이상 데이터를 재구성하여 재구성 오류 (reconstruction error)가 정상보다 크게 발생하기에 threshold와 비교해 초과시 이상 데이터로 판단
- ae는 시간적 특성을 담을 수 없기에 lstm 레이어 이용해 구성하고 encoder와 decoder를 더 깊게 쌓아 깊은 추록 하게끔 함

abod (angle based outlier detection)

- 다변량 공간에서 세개의 데이터 포인트 집합이 형성하는 각도를 통해 분산으로 판단
- 고차원 공간에서 잘 작동한다는 장점
- 다른 두 점과의 각도를 계산하여 분산이 작으면 이상값 (다수의 군집과 멀리 떨어져있다는 것을 의미)
- 높은 복잡도를 가지기에 fast abod (knn 특성으로 가장 가까운 k 이웃만 고려)

 

우선 전체적인 흐름은 이정도라고 생각하기에 다음 글에서 좀 더 하나씩 깊게 소개해볼까 합니다.

참고 사이트


https://zeroact.tistory.com/6
https://kh-kim.github.io/blog/2019/12/15/Autoencoder-based-anomaly-detection.html

https://blog.paperspace.com/outlier-detection-with-abod/

https://pizzathief.oopy.io/isolation-forest-shap

'딥러닝' 카테고리의 다른 글

one class svm (1-svm)에 대해서  (0) 2023.05.19
isolation forest에 대해서  (0) 2023.05.19
autoencoder에 대해서 - (2) 코드  (0) 2023.05.19
autoencoder에 대해서 - (1) 전체적인 흐름  (0) 2023.05.19