재구축 오차 기반 이상 탐지 알고리즘
이상 탐지를 공부하기 전까지는 잘 몰랐던 개념이다.
이 방법은 정상 데이터만을 학습에 사용해, 정상 데이터의 특징을 학습하고 정상과 다른 패턴이 발견되면 이를 이상치로 판단하는 방식이다.
구체적으로는,
- 정상 데이터는 낮은 이상치 스코어 (Anomaly Score) 를 기록하고,
- 이상치 데이터는 높은 이상치 스코어를 기록하도록 설계된다.
이러한 이상치 스코어를 기준으로 데이터를 분류하게 된다.
재구축 오차 기반 이상 탐지의 개념
본격적으로 PCA나 AutoEncoder를 이용한 이상 탐지 알고리즘을 정리하기 전에, 이 두 가지를 포괄하는 재구축 오차 기반 이상 탐지 알고리즘 (Reconstruction Error-Based Anomaly Detection Algorithm) 에 대해 먼저 다뤄보려 한다.
일부에서는 이 방법들을 Semi-Supervised Learning이나 Half-Supervised Learning이라고 부르기도 하지만, 이 글에서는 One-Class 혹은 Reconstruction Error-Based라는 용어를 사용하겠다.
이 알고리즘의 핵심 아이디어는 간단하다.
- 정상 데이터만으로 모델을 학습한 뒤,
- 해당 모델이 데이터를 재구축(reconstruct) 했을 때,
- 재구축 오차(원본 데이터와 재구축된 데이터 간의 차이)를 기준으로 이상 여부를 판단하는 것이다.
재구축 오차가 크면 이상치로, 작으면 정상으로 분류하는 구조다.
다음 글에서는 이를 기반으로 한 구체적인 알고리즘인 PCA와 AutoEncoder 기반 이상 탐지 방법에 대해 살펴볼 것이며, 이번 포스팅에서는 지도학습/비지도학습 방법과 차이를 중심으로 다루어보겠다.
1. 이상 탐지에서의 지도 학습 (Supervised Learning)
지도 학습(Supervised Learning)은 정답이 주어진 머신러닝 학습 방법론이다. 즉, 데이터에 대한 입력(X) 과 출력(Y) 이 명확히 주어지고, 알고리즘은 이를 기반으로 입력과 출력 사이의 관계를 학습한다.
이상 탐지(Anomaly Detection)의 관점에서 보면, 정상 샘플과 비정상 샘플이 명확하게 라벨링되어 있는 데이터를 사용해 모델을 학습시키는 방식이다. 이 과정에서 알고리즘은 정상과 비정상 데이터를 구분할 수 있는 최적의 경계(boundary)를 찾는다.


1.1. 지도 학습을 활용한 이상 탐지
지도 학습에서의 이상 탐지는 데이터를 두 가지 클래스로 나누는 이진 분류(Binary Classification) 문제로 접근한다:
- 정상 (Normal): 시스템이나 데이터의 정상적인 상태
- 비정상 (Anomaly): 이상 현상이나 오류, 문제 발생
이 방법을 적용하면, 모델이 새로운 데이터가 주어졌을 때 정상인지 비정상인지 분류할 수 있다.
예시
- 제조업에서 정상 제품과 불량 제품을 구분
- 금융 거래 데이터에서 정상 거래와 사기 거래 탐지
- 네트워크 트래픽에서 정상 접근과 해킹 시도 구분
1.2. 지도 학습 이상 탐지의 한계
지도 학습은 이상 탐지에서 몇 가지 한계가 존재한다:
- 데이터 불균형(Class Imbalance)
대부분의 경우, 비정상 샘플의 수가 정상 샘플보다 현저히 적다. 예를 들어, 제조업에서는 수백만 장의 정상 데이터가 수집되지만, 비정상 데이터는 몇 장밖에 없는 경우가 많다. - 라벨링 비용
비정상 샘플에 대한 라벨링은 시간과 비용이 많이 든다. 특히 드문 이벤트일수록 라벨링하기가 어렵다. - 일반화 문제
학습한 데이터셋에 없는 새로운 유형의 이상치(새로운 형태의 불량 등)에 대해서는 제대로 대응하기 어렵다.
1.3. 이상 탐지에서 주로 사용하는 지도 학습 알고리즘
- 의사결정나무 (Decision Tree): 데이터의 특성에 따라 정상과 비정상을 구분하는 규칙을 만든다.
- 랜덤 포레스트 (Random Forest): 여러 개의 의사결정나무를 조합해 이상 탐지 성능을 높인다.
- 로지스틱 회귀 (Logistic Regression): 이상 여부를 확률로 예측해 분류한다.
- 서포트 벡터 머신 (SVM): 데이터 사이의 최적의 경계를 찾는다. 이상 탐지에서는 One-Class SVM이 주로 사용된다.
1.4. 한계점
지도 학습을 통한 이상 탐지는 명확한 라벨이 존재하는 경우 효과적이다. 하지만 비정상 샘플 확보의 어려움과 데이터 불균형 문제로 인해 실제 환경에서는 한계가 명확하다. 이런 이유로, 이상 탐지 분야에서는 비지도 학습(Unsupervised Learning), 반지도 학습(Semi-Supervised Learning), 혹은 One-Class Classification 같은 대안적 접근이 자주 활용된다.
2. 비지도 학습 (Unsupervised Learning)


비지도 학습은 정답이 없는 머신러닝 학습 방법이다. 즉, 데이터에 대한 정답(라벨)이 주어지지 않은 상태에서 알고리즘이 스스로 패턴이나 유사성을 찾아내도록 학습한다.
이 방법은 데이터의 숨겨진 구조나 관계를 찾는 데 주로 사용되며, 크게 두 가지로 나눌 수 있다: 군집화(Clustering) 와 차원 축소(Dimensionality Reduction).
2.1. 군집화 (Clustering)
군집화는 비슷한 데이터를 자동으로 그룹화하는 작업이다. 예를 들어, 다양한 모양의 이미지 데이터를 입력하면, 라벨 없이도 비슷한 모양끼리 그룹을 나눌 수 있다.
대표적인 알고리즘은 다음과 같다:
- K-Means Clustering: 데이터를 미리 설정한 개수의 그룹으로 나눈다. 가장 많이 사용되는 간단한 군집화 알고리즘이다.
- Hierarchical Clustering: 데이터를 비슷한 것끼리 묶어 나무 형태로 그룹을 만들어가는 방식이다.
2.2. 차원 축소 (Dimensionality Reduction)
차원 축소는 복잡한 데이터를 더 단순하게 만드는 작업이다. 예를 들어, 100가지 특성을 가진 데이터를 2~3개의 주요 특성만 남겨서 처리하면 계산이 더 쉬워지고 시각화도 편해진다.
대표적인 차원 축소 방법은 다음과 같다:
- PCA (Principal Component Analysis): 데이터에서 가장 중요한 특징만 추려서 복잡성을 줄이는 방법이다. 주로 데이터 압축이나 시각화에 사용된다.
- t-SNE: 데이터를 2차원이나 3차원으로 변환해 쉽게 시각화할 수 있도록 도와준다. 주로 데이터의 패턴을 눈으로 확인할 때 사용된다.
3. One-Class Anomaly Detection
Supervised Anomaly Detection 방식의 가장 큰 문제는 비정상 샘플을 확보하는 데 시간과 비용이 많이 든다는 점이다. 특히 제조업에서는 이 문제가 더욱 두드러진다. 예를 들어, 수백만 장의 정상 샘플을 수집하는 동안 비정상 샘플은 고작 1~2장밖에 얻을 수 없는 경우가 자주 발생한다.

제조업에서 Supervised Learning 방식을 적용하려면, 각 클래스당 최소 100장의 이미지를 확보해야 한다고 가정해보자. 이 경우, 비정상 샘플 100장을 확보하려면 실제로 1억 장에 달하는 데이터를 모아야 할 수도 있다. 이런 상황에서는 데이터셋을 구축하는 데 매우 오랜 시간이 걸리게 된다.
3.1 Class Imbalance 문제의 해결법: One-Class Classification
이처럼 Class Imbalance 문제가 심각한 경우, 정상 샘플만을 이용해 모델을 학습하는 방법이 사용된다. 이를 One-Class Classification 또는 Semi-Supervised Learning이라고 한다.
이 방법론의 핵심 아이디어는 다음과 같다:
- 정상 샘플들이 위치한 영역을 기준으로 경계를 설정한다.
- 이 경계를 최대한 좁게 설정해, 경계 밖에 위치한 데이터는 이상치로 간주한다.
대표적인 알고리즘으로는 One-Class SVM이 있다. 이 알고리즘은 정상 데이터를 기준으로 분류 경계를 설정하고, 이 경계 밖에 위치한 데이터를 이상치로 판단한다.
또한, 이를 확장한 딥러닝 기반 접근 방식인 Deep SVDD도 널리 사용된다. 이 방법은 고차원 데이터에서도 강력한 성능을 발휘하며, 더욱 정교한 이상 탐지를 가능하게 한다.

앞으로 포스팅에서는 PCA와 오토인코더를 이용한 재구축 오차 기반의 이상탐지에 대해 다루어보겠다.
참고한 글 1 :https://hoya012.github.io/blog/anomaly-detection-overview-1/
참고한 글 2: https://velog.io/@nadagyeong/%EC%9D%B4%EC%83%81-%ED%83%90%EC%A7%80Anomaly-Detection
'데이터 분석 > Anomaly Detection 이상탐지' 카테고리의 다른 글
| PCA(Principal Component Analysis) 이상탐지 - 실습, 코드구현 (1) | 2025.03.09 |
|---|---|
| PCA(Principal Component Analysis) 이상탐지 - 개념, 수식 (0) | 2025.02.25 |
| LOF(Local Outlier Factor) 실습 - PYOD 사용 및 직접 구현 (1) | 2024.12.26 |
| LOF(Local Outlier Factor) - 이론,개념 (0) | 2024.12.24 |
| [Anomaly Detection] 이상탐지 개요 (2) | 2024.12.18 |