노력에는 지름길이 없으니까요

MATLAB 딥러닝 기반 이상 탐지 기법 - ① 이상탐지와 데이터 형식에 따른 접근방법의 차이 본문

Python

MATLAB 딥러닝 기반 이상 탐지 기법 - ① 이상탐지와 데이터 형식에 따른 접근방법의 차이

데건 2024. 9. 23. 21:50
728x90

https://www.youtube.com/watch?v=-h9yK4FUykc

 

 

이상탐지란?

대다수의 데이터와 다른 거동을 갖는 unusual한 관찰을 탐지, 식별하는 것.

정상 샘플들과 비정상 샘플들을 구별해내는 것.

 

Anomaly Detection

Outlier Detection

Novelty Detection

Fault Detection

등 다양한 방식으로 불림

 

 

 

 

라벨링된 데이터 / 언라벨드 데이터

 

데이터의 종류에 따라 다른 접근방식을 가지고 있다.

지도학습을 활용함 -> 라벨링 값으로 판단

비지도학습 -> 정상 상태를 알 수 없고 학습을 통해 일부가 anomaly일 거라고 가정을 하고 접근

 

보통 두 데이터 형식이 섞여있는 semi-supervised 데이터도 존재함

 

 

라벨링된 데이터

정상 데이터와 비정상 데이터가 둘 다 데이터셋에 존재하기 때문에 두 군집에 대한 분류기만 모델링하면 됨

두 군집의 비율이 어느 정도 밸런스가 갖춰진 상태라면 좋은 모델을 만들 수 있음

가장 큰 문제는 비정상 데이터가 유의미한 모델을 만들 수 있을 정도로 모이려면 많은 자본과 시간이 필요함

수백만 정상, 한두장 비정상 -> 많은 비정상 데이터를 모으기까지 시간이 걸릴 것임

 

극히 일부만 abnormal 5% 미만이 가장 많음

-> 비정상적으로 치우친 데이터의 경우, 예 95%가 노멀이기 때문에 모델의 정확도가 기하급수적으로 높아짐

ex) 대부분 정답이 1인 데이터이기 때문에, 그냥 1이라고 답변을 놓는다면 그걸로 정확도가 높은 모델을 작성하게 되는 것

 

참고로, 이번에 팀 프로젝트가 무산된 건 유의미한 모델 작성에 실패한 것이 가장 큰 이유였다.

 

치우친 데이터를 다루는 방법?

1. 언더샘플링(Undersampling) 기법

이러한 메이저리티한 데이터의 일부를 추출하는 언더샘플링(Undersampling) 기법을 사용할 수 있다.

비율을 맞춰서 앱노멀한 데이터를 최대한 활용.

이 때, 언더샘플링을 통해 압축되는 데이터는 기존 데이터에 대한 대표성을 띠고 있어야 하기 때문에, 쉬운 기법은 아니다.

기존 정상 데이터에 대한 큰 손실이 발생!

 

2. 오버샘플링(Oversampling) 기법

복제 등을 사용하여 부족한 쪽의 데이터셋을 반대쪽 데이터셋의 양과 비슷하게 맞추는 기법.

오버피팅 가능성이 크다!

 

한정된 데이터를 어떻게 사용해야 하는가?

-> 이 때 필요한 것이 semi-supervised anomaly detection

728x90
반응형