본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Anomaly Detection; 이상 탐지
데이터 대부분이 따르는 정상 패턴에서 크게 벗어난 관측값이나 사건을 찾아내는 기술

이상 탐지(Anomaly Detection)는 데이터에서 예상된 정상 패턴을 따르지 않는 드문 관측값, 사건, 구간을 찾아내는 일이다. 이상치 탐지(Outlier Detection)라고도 한다. 카드 도용 거래, 네트워크 침입, 공장 설비의 고장 징후, 서버 지표의 급변, 센서 오류, 의료 영상의 병변처럼 '평소와 다른 것'을 찾는 문제가 모두 여기에 속한다. 통계학의 이상치 개념에 대해서는 이상치, Outlier (Data Science) 문서 참고.

통계학자 더글러스 호킨스는 이상치를 "다른 관측값들과 너무 달라서 다른 메커니즘에서 생겨났다고 의심하게 만드는 관측값"이라는 취지로 정의했다[1]. 이 정의처럼 이상 탐지의 핵심은 '정상'이 무엇인지 모델링하고 그 모델에서 얼마나 벗어나는지를 점수로 매기는 데 있다. 이상 사례는 드물고 종류가 다양하며 미리 알 수 없는 경우가 많아, 일반적인 분류 문제와 달리 정답 꼬리표 없이 정상 데이터만으로 학습하는 방식이 중심이 된다.

이상치가 생기는 원인은 입력 실수, 측정 장비 오류, 표본 추출 오류 같은 '잘못된 데이터'와, 실제로 드문 현상(사기, 고장, 공격, 키가 아주 큰 사람)인 '의미 있는 데이터'로 나뉜다. 전자는 데이터 정제 단계에서 걸러 내야 하고, 후자는 오히려 찾아내야 할 대상이다.

이상 탐지 연구를 정리한 찬돌라 등의 2009년 서베이는 이상을 다음 세 가지로 분류했고, 이 분류가 널리 인용된다[2].

유형 정의 예
점 이상(point anomaly) 개별 데이터 하나가 나머지 전체와 비교해 이상함 평소 몇만 원을 쓰던 카드에서 한 번에 수천만 원 결제
맥락 이상(contextual anomaly) 값 자체는 흔하지만 특정 맥락(시간, 장소)에서는 이상함 한여름이면 정상인 30도가 한겨울에 측정됨, 새벽 3시의 대량 파일 다운로드
집단 이상(collective anomaly) 하나하나는 정상이지만 모여서 이루는 패턴이 이상함 개별로는 평범한 접속 요청이 특정 순서로 이어지는 공격, 심전도의 비정상 파형 구간
설정 학습 데이터 특징
지도 이상 탐지 정상과 이상 모두 꼬리표가 있음 일반 분류 문제와 같지만 이상 사례가 극히 적은 클래스 불균형 문제를 다뤄야 함. 처음 보는 유형의 이상은 놓치기 쉬움
준지도(새로움 탐지) 정상 데이터만 있음 정상 데이터의 분포나 경계를 학습하고, 거기서 벗어난 새 관측을 이상으로 판정. 이를 새로움 탐지(novelty detection)라고도 함
비지도 이상치 탐지 꼬리표 없이 이상이 섞여 있음 데이터가 가장 몰린 영역을 정상으로 보고 동떨어진 점을 찾음

파이썬 기계 학습 라이브러리 scikit-learn 문서는 학습 데이터에 이상치가 섞여 있는 경우를 이상치 탐지, 깨끗한 정상 데이터로 학습해 새 관측을 판정하는 경우를 새로움 탐지로 구분하고, 격리 숲·LOF·단일 클래스 SVM·타원 외피(EllipticEnvelope) 등의 추정기를 제공한다[3].

데이터가 따르는 확률 분포를 가정하고, 그 분포에서 나올 확률이 매우 낮은 값을 이상으로 본다.

  • Z-점수: 평균 μ와 표준편차 σ로 z=(x−μ)/σ를 구해, 보통 |z|>3이면 이상으로 본다. 정규 분포에서 평균 ±3σ 밖에 있을 확률은 약 0.3%다. 다만 평균과 표준편차 자체가 이상치에 끌려가므로, 중앙값과 중앙값 절대 편차(MAD)를 쓰는 강건한 변형이 함께 쓰인다.
  • IQR 규칙: 1사분위수 Q1과 3사분위수 Q3의 차이 IQR = Q3 - Q1을 구해, Q1 - 1.5×IQR보다 작거나 Q3 + 1.5×IQR보다 큰 값을 이상치로 본다. 존 튜키가 1977년 『탐색적 자료 분석』에서 상자 그림과 함께 제시한 방법이다. 분포 가정이 필요 없다. 자세한 내용은 사분위수, 박스 플롯 참고.
  • 가설 검정: 그럽스 검정처럼 '가장 극단적인 값이 이상치가 아니다'라는 귀무가설을 검정한다[4].
  • 다변량 거리: 변수 사이 상관관계를 고려한 마할라노비스 거리가 크면 이상으로 본다.
  • 분포 추정: 가우시안 혼합 모델이나 커널 밀도 추정으로 확률 밀도를 구해 밀도가 낮은 점을 이상으로 본다. 자세한 내용은 혼합 분포 군집 참고.

거리·밀도 기반 기법

편집 원본 편집
  • k-최근접 이웃 거리: k번째로 가까운 이웃까지의 거리가 먼 점일수록 이상하다고 본다.
  • LOF(Local Outlier Factor): 2000년 브로이니히 등이 제안했다. 어떤 점 주변의 국소 밀도를 그 이웃들의 국소 밀도와 비교한 비율로, 1에 가까우면 정상이고 1보다 크게 높을수록 이상이다[5]. 밀도가 서로 다른 군집이 섞인 데이터에서 전역 거리 기준보다 잘 동작한다.
  • 군집 기반: K-평균 군집화로 묶은 뒤 군집 중심에서 먼 점이나 아주 작은 군집을 이상으로 보거나, DBSCAN이 어느 군집에도 넣지 않은 잡음 점을 이상으로 본다.

격리 숲(Isolation Forest)은 2008년 류페이톤(Fei Tony Liu), 팅 카이 밍, 저우즈화가 제안했다[6]. 정상 패턴을 모델링하는 대신, 이상치는 수가 적고 값이 동떨어져 있어 '고립시키기 쉽다'는 점을 이용한다. 무작위로 변수를 고르고 그 변수의 최솟값과 최댓값 사이에서 무작위 분할점을 골라 데이터를 계속 나누는 트리를 여러 개 만들면, 이상치는 뿌리에서 가까운 얕은 깊이에서 혼자 떨어져 나온다. 여러 트리에서 잰 평균 경로 길이가 짧을수록 이상 점수가 높다. 거리나 밀도를 계산하지 않아 빠르고 고차원·대용량 데이터에 잘 맞아 실무에서 기본 기법으로 쓰인다. 무작위 트리를 여러 개 쓴다는 점은 랜덤 포레스트와 닮았다.

단일 클래스 SVM과 SVDD

편집 원본 편집

단일 클래스 SVM(One-Class SVM)은 서포트 벡터 머신을 정상 데이터만으로 학습하도록 바꾼 것이다. 커널로 고차원 공간에 옮긴 데이터를 원점과 최대한 멀리 떨어뜨리는 초평면을 찾아, 그 경계 밖의 점을 이상으로 본다[7]. 비슷한 발상으로 정상 데이터를 감싸는 가장 작은 초구(hypersphere)를 찾는 SVDD(Support Vector Data Description)가 있고, 이를 신경망 특징과 결합한 Deep SVDD도 제안되었다. 이상치 비율을 정하는 매개변수 ν와 커널 폭 선택에 성능이 민감하다.

재구성 기반 딥 러닝

편집 원본 편집

오토인코더를 정상 데이터로만 학습하면, 정상 입력은 잘 복원하지만 처음 보는 이상 입력은 잘 복원하지 못한다. 이때 입력과 복원값의 차이인 재구성 오차를 이상 점수로 쓴다.

score(x)=‖x−x^‖2,x^=g(f(x))

f는 인코더, g는 디코더다. 주성분 분석으로 저차원에 투영했다가 복원하는 선형 버전도 같은 원리다. 변분 오토인코더는 재구성 확률을, GAN 기반 방법은 판별기 출력이나 생성기로 복원한 결과와의 차이를 점수로 쓴다. 오토인코더가 너무 강력하면 이상 데이터까지 잘 복원해 버리는 문제가 있어 병목 크기와 규제를 조절해야 한다. 이미지에서는 사전학습된 합성곱 신경망 특징을 써서 정상 특징 분포에서 먼 영역을 찾는 방법이 제조업 결함 검사에 쓰인다.

기법 가정 장점 단점
Z-점수, IQR 단변량, (Z-점수는) 정규성 단순하고 해석 쉬움 다변량 관계와 맥락을 못 봄
마할라노비스 거리, 가우시안 모델 다변량 정규 분포 상관관계 반영 분포가 여러 봉우리면 부정확
k-NN 거리, LOF 이상치는 이웃이 멀거나 밀도가 낮음 분포 가정 없음, 국소 이상 탐지(LOF) 대용량에서 느림, 고차원에서 거리 의미 약화
격리 숲 이상치는 적고 동떨어짐 빠르고 확장성 좋음, 매개변수 적음 축에 평행한 분할만 써서 일부 분포에 약함
단일 클래스 SVM 정상 데이터가 한 영역에 모임 비선형 경계 학습 매개변수 민감, 대용량에서 느림
오토인코더 정상 패턴을 저차원으로 압축 가능 이미지·시계열 등 복잡한 데이터 학습 비용, 점수 해석 어려움

시계열 이상 탐지

편집 원본 편집

서버 지표, 센서 값, 거래량처럼 시간 순서가 있는 데이터에서는 값 자체보다 시간적 맥락이 중요하다. 같은 값도 평소 추세와 계절성(요일, 시간대)에 비춰 판단해야 한다.

  • 예측 기반: ARIMA, 지수 평활, LSTM 같은 모델로 다음 값을 예측하고, 실제 값과 예측의 차이(잔차)가 임계값을 넘으면 이상으로 본다. 자세한 내용은 시계열 분석 참고.
  • 분해 기반: 시계열을 추세, 계절성, 나머지로 분해하고 나머지 성분에 통계적 검정을 적용한다.
  • 재구성 기반: 슬라이딩 윈도로 자른 구간을 오토인코더나 트랜스포머로 복원해 오차를 본다.
  • 변화점 탐지: 평균이나 분산이 바뀌는 시점을 찾는다(CUSUM 등).
  • 다변량 시계열: 여러 센서 사이의 상관관계가 깨지는 것을 찾는다. 하나하나는 정상 범위여도 관계가 무너지면 이상이다.

보안: 침입 탐지

편집 원본 편집

도로시 데닝은 1987년 사용자와 시스템의 정상 행위 프로필을 통계적으로 만들고 거기서 벗어난 행위를 침입으로 의심하는 침입 탐지 모델을 제시했다[8]. 침입 탐지 방식은 알려진 공격 패턴(시그니처)을 찾는 오용 탐지와, 정상에서 벗어난 행위를 찾는 이상 탐지로 나뉜다. 이상 탐지는 시그니처가 없는 제로데이 공격이나 내부자 위협을 찾을 수 있다는 장점이 있지만, 오탐(정상을 공격으로 판정)이 많다는 약점이 있다. 자세한 내용은 침입탐지시스템, 통계적 침입탐지, 규칙기반 침입탐지 참고.

사용자와 단말의 평소 행위를 기준선으로 삼아 이상 행동을 찾는 UEBA, 여러 보안 장비의 로그를 모아 분석하는 SIEM, 단말 행위를 감시하는 EDR·XDR이 이상 탐지를 핵심 기능으로 쓴다. 국내 ISMS-P 인증 기준에도 이상행위 분석과 모니터링 항목이 있다. 자세한 내용은 ISMS-P 인증 기준 2.11.3.이상행위 분석 및 모니터링 참고.

공격자 쪽에서는 탐지 임계값을 넘지 않도록 트래픽과 행위를 낮은 빈도로 오래 나눠 수행하는 '낮고 느린(low and slow)' 기법으로 이상 탐지를 피하려 한다. APT 공격이 이런 방식을 쓰는 경우가 많다.

금융: 사기 탐지

편집 원본 편집

카드 결제, 계좌 이체, 보험 청구에서 평소와 다른 금액, 장소, 시간, 기기, 거래 순서를 찾아 사기를 막는다. 국내 금융권은 이를 이상금융거래탐지시스템(FDS)으로 운영한다. 자세한 내용은 이상금융거래탐지시스템 참고. 사기 거래는 전체의 극히 일부라 클래스 불균형이 심하고, 사기범이 탐지를 피하려고 수법을 계속 바꾸므로 모델을 자주 갱신해야 한다.

  • 제조: 설비 진동·온도 센서로 고장 징후를 미리 찾는 예지 정비, 제품 영상으로 결함 검사. 자세한 내용은 스마트 팩토리 참고
  • IT 운영: 서버·네트워크 지표, 로그의 이상 급증, 장애 조기 감지
  • 의료: 심전도 이상 파형, 의료 영상 병변
  • IoT: 센서 오류와 기기 오작동, 기기 해킹 감지
  • 데이터 품질: 입력 오류와 측정 오류를 걸러 분석 결과 왜곡 방지

평가의 어려움

편집 원본 편집
  • 정답 부족: 이상 사례는 드물고 꼬리표를 붙이기 어렵다. 실제 운영 데이터에는 아직 발견되지 않은 이상이 정상으로 섞여 있을 수 있다.
  • 정확도의 함정: 이상이 0.1%인 데이터에서는 모든 것을 정상이라고 답해도 정확도가 99.9%다. 그래서 정밀도, 재현율, F1 점수, 정밀도-재현율 곡선 아래 면적(PR-AUC)을 본다. 이상 비율이 매우 낮으면 ROC 곡선의 AUC는 성능을 실제보다 좋아 보이게 할 수 있다. 자세한 내용은 혼동 행렬, 클래스 불균형 참고.
  • 임계값 설정: 대부분의 기법은 이상 점수를 내고 사람이 임계값을 정한다. 임계값을 낮추면 놓치는 이상이 줄지만 오탐이 늘어 담당자가 경보 피로에 빠진다.
  • 시계열 평가 관행: 시계열 이상 탐지 연구 다수는 이상 구간 안에서 한 점만 맞혀도 구간 전체를 맞힌 것으로 치는 '점 조정(point adjustment)' 뒤에 점수를 매기는데, 2021년 김시원 등은 이 방식이 성능을 크게 부풀릴 수 있으며 무작위 점수조차 최신 기법처럼 보이게 만들 수 있다고 지적했다[9].
  • 개념 변화: 정상의 기준 자체가 시간에 따라 바뀐다(새 서비스 출시, 계절, 사용자 증가). 모델을 주기적으로 다시 학습해야 한다.
  • 설명 가능성: 운영자가 경보를 처리하려면 왜 이상인지 알아야 하는데, 복잡한 모델일수록 이유를 설명하기 어렵다.
  1. ↑ D. M. Hawkins, 《Identification of Outliers》, Chapman and Hall, 1980.
  2. ↑ Varun Chandola, Arindam Banerjee, Vipin Kumar, 〈Anomaly Detection: A Survey〉, ACM Computing Surveys 41(3), 2009. doi:10.1145/1541880.1541882
  3. ↑ scikit-learn 사용자 안내서, Novelty and Outlier Detection
  4. ↑ Frank E. Grubbs, 〈Procedures for Detecting Outlying Observations in Samples〉, Technometrics 11(1), 1969.
  5. ↑ Markus M. Breunig, Hans-Peter Kriegel, Raymond T. Ng, Jörg Sander, 〈LOF: Identifying Density-Based Local Outliers〉, SIGMOD 2000. doi:10.1145/342009.335388
  6. ↑ Fei Tony Liu, Kai Ming Ting, Zhi-Hua Zhou, 〈Isolation Forest〉, ICDM 2008. doi:10.1109/ICDM.2008.17
  7. ↑ Bernhard Schölkopf 외, 〈Estimating the Support of a High-Dimensional Distribution〉, Neural Computation 13(7), 2001.
  8. ↑ Dorothy E. Denning, 〈An Intrusion-Detection Model〉, IEEE Transactions on Software Engineering SE-13(2), 1987.
  9. ↑ Siwon Kim, Kukjin Choi, Hyun-Soo Choi, Byunghan Lee, Sungroh Yoon, 〈Towards a Rigorous Evaluation of Time-series Anomaly Detection〉, 2021. arXiv:2109.05257
  • John W. Tukey, 《Exploratory Data Analysis》, Addison-Wesley, 1977.
  • Charu C. Aggarwal, 《Outlier Analysis》 2판, Springer, 2017.
  • Lukas Ruff 외, 〈Deep One-Class Classification〉, ICML 2018. PMLR 80