Novelty Detection(이상치 탐지) - Overview

이 카테고리에서 앞으로 다룰 이상치 탐지(Novelty Detection)기법들에 대해 자세히 알아보기 전 과연 이상치 탐지란 무엇인가에 대해 간단히 살펴보도록 하겠습니다.

이 글은 고려대학교 강필성 교수님의 Business Analytics 강의를 정리했음을 밝힙니다.

Machine Learning

먼저 머신러닝을 정의해보자면 다음과 같이 정의할 수 있습니다.

“A computer program is said to learnfrom experience Ewith respect to some class of tasks Tand performance measure P,if its performance at task in T, as measured by P, improves with experience E,” –Mitchell (1997)

알고리즘이 경험(E)을 통해 성능(T)이 조금씩 향상되는것이 측정(P)되는걸 머신러닝이라고 할 수 있는 것이죠. 그리고 크게 두 가지의 기법으로 나뉩니다.

Supervised learning

먼저 supervised learning은 다음과 같은 특징을 가지고 있습니다.

  • Target variable을 예측하는게 목적이다.
  • X와 Y에 대한 관계를 찾는다.
  • Target variable을 알고 있는 학습 데이터로 학습한다.
  • Target variable이 무슨 값을 가지고 있는지 모르는 데이터로 평가를 한다.

즉 $x$와 $y$가 주어져 있을 때 $y=f(x)$의 $f(x)$가 과연 무엇인가 맞추는 작업이라고 할 수 있습니다. 대표적인 기법들로는 다중 회귀 분석, SVM, 의사결정나무, 인공신경망 등이 있습니다.

Imgur

Unsupervised learning

Unsupervised learning은 다음과 같은 특징을 가지고 있습니다.

  • 데이터가 본질적으로 가지고 있는 특징을 찾아낸다.
  • 데이터에 내재된 분포를 추정한다.
  • 데이터를 의미있는 그룹으로 묶거나 패턴을 찾아낸다.
  • 분류하거나 예측하기 위한 target variable이 존재하지 않는다.

이에 해당하는 대표적인 머신러닝 기법들은 클러스터링, 연관 규칙 분석 등이 있으며 요즈음 뜨고 있는 딥러닝 방법론 중 하나인 GAN(Genarative adversarial network) 또한 unsupervised learning 기법입니다.

Imgur

Novelty Detection

What is novel data(outliers)?

Supervised learning, unsupervised learning 모두 이상치 탐지를 위한 모델링 방법이 있습니다. 그렇다면 이상치, 즉 novel data(outliers)란 과연 무엇일까요? 이상치에 대해 정확한 정의는 아래와 같이 내릴 수 있습니다.

“Observations that deviate so much from other observations as to arouse suspicions that they were generated by a different mechanism(Hawkins, 1980)” “Instances that their true probability density is very low(Harmelinget al., 2006)”

쉽게 말해서 다른 관측치랑 비교해서 많이 벗어나 있는 관측치가 이상치라고 정의내릴 수 있겠습니다. 여기서 주의해야할 점은 novel data와 noise data는 다르다는 점입니다. Noise는 random error로서 이상치 탐지 전에 데이터 전처리 과정에서 제거해줘야 할 부분이며 outlier는 우리가 찾고자 하는 관측치라고 할 수 있습니다.

Imgur

위 그림에서 outlier가 발생한 부분을 찾을 수 있다면 왜 그런 현상이 발생했는가 분석을 통해서 의미 있는 결과를 뽑아낼 수 있을 것입니다.

## Application

그렇다면 이러한 이상치 탐지 기법은 과연 어디에 쓰일까요? 제조업부터 신용카드회사 등 매우 폭넓게 쓰입니다. 대표적인 예를 들자면 신용카드 도난 탐지에도 쓰입니다. 평소 패턴과는 완전히 다른 소비 습관이 나온다면 이를 이상치로 감지해서 카드회사가 재빠르게 카드 잠금을 할 수 있게 도와줄 수 있습니다. 제조업에서도 공정 불량 원인을 감지하는데 사용할 수 있고 자연어 처리 분야에서는 소비자 의견을 취합하여 이상치 탐지 기법을 적용하면 다른 사람들과는 다른 독특한 의견을 쉽게 파악할 수도 있습니다. 이 외에도 healthcare 부문이나 IT 보안업계 등 여러 방면에서 활용이 가능합니다.

## Classification vs. Novelty Detection - 1

여기까지 설명을 읽어보면 이러한 의문을 가지는 분도 계실 것입니다. 과연 분류와 이상치 탐지를 정확하게 정의내리면 어떤 면에서 다른 것일까? 그림으로 쉽게 설명 드리겠습니다.

Imgur

여기서 classification은 가르는 영역을 만드는 것입니다. 쉽게 말해서 경계면을 찾는 것이라고 할 수 있습니다. 하지만 novelty detection은 다수 범주 데이터만 가지고 접근을 합니다. 이상치가 아닌 데이터들의 영역을 칠해주는 것이라고 볼 수 있습니다. 예를들어 100만건 중 3건이 불량이라면 classification으로는 접근이 불가능합니다. 하지만 이상치 탐지 기법으로는 접근이 가능하기 때문에 분류기법으로 접근 못했을 때 사용하는 대안으로 쓰기도 합니다.

## Type of novel Data(Outliers)

Novel data에도 총 3가지 종류가 있습니다.

Global outlier

우리가 “outlier”를 들었을 때 가장 먼저 머리에 떠오르는 종류라고 할 수 있습니다. 일반적인 관측치들과 많이 동떨어진 관측치들을 global outlier라고 합니다. 이러한 이상치들을 찾을 때는 얼마나 떨어져 있는가 측정을 어떻게 하는지가 중요합니다.

Imgur

Contextual outlier(local outlier)

특정 부분에서 다른 부분과는 다른 양상을 띄는 이상치들을 뜻합니다. 예를 들어 사하라 사막의 온도를 측정하는데 어떤 한 부분의 온도가 영상 5도라면 이 관측치는 이상치라고 할 수 있을 것입니다. 여기서는 관측치들의 context를 어떻게 설정하는가(사막의 온도는 몇도부터 몇도까지인가)가 중요할 것입니다.

Imgur

Collective outlier

관측치 하나하나가 outlier가 아닐지라도 전체 데이터를 봤을 때 편차가 심하게 난다면 이를 collective outlier라고 합니다. 만약 서버가 ddos 공격을 받는다면 전체적으로 봤을 때는 접속자 하나하나의 패킷 흐름은 전부 동일합니다. 그러나 동일한 패킷이 갑자기 엄청 많은 수가 한 번에 들어온다면 이 부분을 ddos 공격이라고 할 수 있습니다. ddos 공격도 collective outlier 종류 중 하나입니다.

Challenges

이상치 탐지 기법에도 다음과 같은 어려움이 있습니다. 먼저 정상 데이터와 이상 데이터와의 경계가 매우 모호하다는 것입니다.어디까지 경계를 설정해야 적절한지는 설정하기가 매우 어렵습니다.
다음으로는 domain마다 편향 정도가 모두 다릅니다. 예를 들어 clinic data의 경우 작은 편차도 outlier가 될 수 있지만, 마케팅 분석 분야에서는 큰 편차를 outlier로 설정합니다. 마지막으로 완전히 설명이 어렵습니다. 이상치를 잡긴 잡았는데 얘가 왜 이상치인가 설명하는건 매우 어렵습니다. 이렇게 설명하면 이상치라고 할 수 있지만, 저렇게 설명하면 또 정상 데이터라고 볼 수 있는 모호함을 정확하게 정해주는게 어려운 부분입니다.

Classification vs. Novelty Detection - 2

이상치 탐지의 특징과 어려운 점을 설명드렸으니 다시 한 번 분류와 비교해보도록 하겠습니다. 아래 그림은 사과와 바나나를 분류하는 간단한 그림입니다. 이 그림에서는 비슷한 수의 사과와 바나나가 존재하고 이 데이터를 통해서 분류 모델(가운데 하늘색 선)을 학습시켰습니다.

분류 문제는 간단합니다. 두 범주에 대한 데이터가 어느정도 존재하고 “사과와 바나나” 이렇게 간단하게 나눌 수 있습니다. 하지만 이상치 탐지에서는 이러한 접근방법이 달라집니다.

위 그림을 보면 사과의 경계에 빨간 원을 쳤습니다. ‘어? 분류가 잘 됬네..?’라고 생각할 수 있지만 여기서 문제가 발생합니다. 과연 수박도 모양만 봤을때는 동그란데 사과라고 해야하나? 조금 더 자세히 들여다 보니까 청사과는 빨간색이 아닌데 사과의 범주에 넣어야하나..? 계속 경계를 어떻게 설정할지 생각을 해줘야 합니다.

Generalization vs. Specialization

이를 과일 개념이 아닌 일반 개념으로 생각하면 Generalization vs. Specialization으로 볼 수 있습니다. Generalization을 더 한다면 청사과는 포함시킬 수 있지만 너무 과도하면 수박까지 사과로 취급해버립니다. 하지만 specialization이 과하면 청사과를 사과로 생각하지 않게 될 수도 있습니다. 이를 잘 조절하려면 도메인에 대한 지식 그리고 이상치 탐지 모델에 대한 이해도가 높아야 할 것입니다.

Performance Measures

Confusion matrix

이상치 탐지 결과에 대한 confusion matrix는 아래와 같습니다.

Classification confusion matrix와 다른 점은 1이 novel로 바뀐 것 밖에 없습니다. 우리가 알고자 하는 데이터가 이상치이기 때문에 기존 confusion matrix의 1 자리를 novel로 바꿔주었습니다.

Imgur

여기서 detection rate은 기존 데이터마이닝 성능 평가 척도에서 recall과 같다고 보시면 됩니다. 전체 이상치 중에서 제대로 예측한 이상치 비율이 얼마나 되는가를 나타낸 비율로 가장 중요한 척도이기도 합니다. FRR은 False-Negative Rate과 같습니다.

EER & IE

Confusion matrix을 사용하여 구한 metric을 가지고 나타낸 그래프입니다. 기존 ROC Curve를 알고있으면 이해하기 어렵지 않은 그림으로, 아래 검은색 부분인 IE(Integrated Error)가 적으면 적을수록 좋은 모델이라고 볼 수 있습니다. EER(Equal error rate)은 FAR과 FRR이 만나는 부분으로 이 역시 작으면 작을수록 좋다고 볼 수 있습니다. 분류 문제에서는 AUROC가 크면 클수록 좋지만 이상치 탐지 문제에서는 반대로 IE가 작으면 작을수록 좋은 방법론입니다.