이상치 데이터란? #
세 가지(Novelty, Anomaly, Outlier)로 분류할 수 있다.
Novelty #
데이터의 본질적인 특성은 같지만 유형이 다른 관측치 호랑이가 정상 데이터라고 볼 때 ‘백호’
Outlier #
대부분의 데이터와 본질적인 특성이 다른 관측치 호랑이가 정상 데이터라고 볼 때 ‘사자’
Anomaly #
대부분의 데이터와 특성이 다른 관측치 호랑이가 정상 데이터라고 볼 때 ‘라이거’
이상치 탐지 사례 #
문자/이메일과 같은 메시지의 스팸 분류, 장비의 이상을 사전에 감지, 차량의 이상을 사전에 감지, 물류의 불량 탐지 및 원인 탐지, …
이상치 탐지 알고리즘 #
Rule Based Anomaly Detection (규칙 기반) #
Density Based Anomaly Detection Methods (밀도 기반) #
✔︎ (Mixture) Gaussian Density Estimation
✔︎ Univariate Control Charts
✔︎ Local Outlier Factor
✔︎ Isolation Forest
Model Based Anomaly Detection Methods (모델 기반) #
✔︎ Multivariate Control Charts
✔︎ One-class Support Vector Machines
✔︎ Support Vector Data Descriptions
Reconstruction Based Anomaly Detection Methods (재구축 기반) #
✔︎ Principal Component Analysis
✔︎ Autoencoder
✔︎ Transformer
✔︎ Generative Models: Generative Adversarial Networks, Diffusion Models
Prediction Based (예측 기반) #
Rule Based Anomaly Detection (규칙 기반) #
예를 들면, if 분기문으로 규칙을 처리하는 알고리즘이 되겠다. 데이터가 필요하지 않다. 단순한 절차에는 간단히 적용시킬 수 있고 정확도를 보장할 수 있다. 복잡한 상황에서 적용이 쉽지 않다. 정확한 기준을 정하기 어렵다.
Density Based Anomaly Detection Methods (밀도 기반) #
정상 데이터로부터 추정된 밀도(데이터의 분포?)를 기반으로 각 객체의 정상/이상 여부를 판단한다.
(Mixture) Gaussian Density Estimation (분포 기반) #
각 객체(데이터)가 생성될 확률을 하나의 정규 분포로 가정하는 방법론이다. 새로운 객체가 생성될 확률이 높은 경우 : 정상 관측치로 판단한다.
- 예를 들어, 평균으로부터 오른쪽, 왼쪽으로 표준편차 2배 내에 존재(95%)하는 경우 정상 관측치로 판단한다. 새로운 객체가 생성될 확률이 낮은 경우 : 불량 관측치로 판단한다.
- 예를 들어, 평균으로부터 오른쪽, 왼쪽으로 표준편차 2배 내에 존재하지 않는 경우 이상 관측치로 판단한다. 데이터의 분포도가 정규 분포로 구성되어 있다는 전제가 필요하다. ⭐
Univariate Control Charts (단변량 관리도) #
‘관리한계선’ 이내의 객체는 정상 관측치로 판단한다. ‘관리한계선’ 이외의 객체는 이상 관측치로 판단한다.
’관리한계선’ 은 어떻게 설정할 수 있는가? 🤔 품질 관리를 위해 자주 사용되는 기법이다. 통계 이론에 근거한 객관적이고 과학적인 방법이라고 한다.
Local Outlier Factor #
한 객체 주변 데이터 밀도를 고려한 이상치 탐지 알고리즘이다. 이상치는 단독으로 존재한다는 가정이다. 정상 객체는 그 주변에 데이터가 많이 존재한다. 불량 객체는 그 주변에 데이터가 많이 존재하지 않는다.
Isolation Forest #
한 객체를 고립시키는 의사결정나무 모델을 구축하는 방법론이다. 관측치를 고립시키기 위한 분리 횟수(path length)를 이상치 점수(anomaly score)로 활용한다. 분리 횟수가 높다면(= 이상치 점수가 낮다면), 정상 관측치로 판단한다. 분리 횟수가 낮다면(= 이상치 점수가 높다면), 이상 관측치로 판단한다.
Model Based Anomaly Detection Methods (모델 기반) #
정상/이상을 판단할 수 있는 분류 모델을 사용한다. 정상 데이터로부터 학습한 모델을 기반으로 각 객체의 정상/이상 여부를 판단한다.
Multivariate Control Charts (다변량 관리도) #
P개의 변수(파라미터)를 사용하는데, P개의 변수 데이터를 하나의 점수로 관리할 수 있어야 한다. 하나의 점수로 만들었다면 ‘단변량 관리도’ 알고리즘 처럼, ‘관리한계선’ 이내의 객체는 정상 관측치로 판단한다. ‘관리한계선’ 이외의 객체는 이상 관측치로 판단한다.
One-class Support Vector Machines #
정상 관측치가 최대한 원점에서 멀리 떨어지도록 Hyperplane 을 구축한다. 객체가 원점과 hyperplane 사이에 존재하지 않으면, 정상 관측치로 판단한다. 객체가 원점과 hyperplane 사이에 존재하면, 이상 관측치로 판단한다.
Support Vector Data Descriptions (SVDD) #
정상 데이터를 아우르는 원을 구축한다. 한 객체가 원 안에 존재하면 정상 관측치로 판단한다. 한 객체가 원 밖에 존재하면 이상 관측치로 판단한다.
Reconstruction Based Anomaly Detection Methods (재구축 오차 기반) #
최근에 활발하게 사용되고 있다. 모델 기반의 알고리즘과 동일하게 정상 데이터를 기반으로 모델을 구축한다. 원본 데이터와 압축/복원된 데이터의 차이(= 재구축 오차, reconstruction error)를 계산하고 재구축 오차가 크면 이상치로 판단할 수 있다. 정상 데이터의 경우 재구축 오차가 작을 것이다. 이상 데이터의 경우 재구축 오차가 클 것이다.
- 정상 데이터를 이용해서 특징을 추출(= 압축)한다.
- 압축 데이터를 복원 과정을 통해 다시 정상 데이터로 만든다.
X(정상 데이터) → f(압축) → Z(압축 데이터) → f'(복원) → X'(압축/복원 과정을 거친 정상 데이터)
압축, 복원 과정에서 나온 차이(|X-X’|↓)를 줄이는 방향으로 모델을 학습한다.
압축, 복원에 사용되는 모델의 종류가 다양하다. 초창기에는 선형 모델을 사용했고 최근에는 딥러닝 모델을 사용하고 있다.
Principal Component Analysis #
AutoEncoder #
입력된 데이터의 특성을 요약하는 인코더(= 압축)와 요약된 정보를 복원하는 디코더(= 복원)의 형태를 포함한다. AutoEoncoder 에서 변형된 알고리즘이 많다.
- Variational Autoeoncoer (VAE)
- LSTM-VAE
- GAN
- TranAD (Transformer)
- Anomaly Transformer (Transformer)
References #
[2025 데이터 컨퍼런스] 규칙에서 학습으로: 이상치 탐지의 새로운 패러다임 - 한국데이터마이닝학회 회장 김성범 교수