
고전 머신 러닝 위주로 대표적인 머신 러닝 기반 이상 탐지에는 분류(classification), nearest-neighbor, clustering 등이 있다. 그리고 추가로 reconstruction-based라는 기법이 있는데 현재 가장 대중적으로 쓰이는 방법 중 하나 이다.
데이터의 불균형 문제로 구분하는 경계를 찾기엔 제약 사항이 존재함. 분류는 데이터가 균등할 수록 잘 동작하기 때문에 이 문제를 해결하기 위해서 하나의 클래스만 학습시키는 방법들이 연구되었지만 그럼에도 분류는 이상 탐지에서 활발하게 쓰이지 않는다. 대표적인 방법으로 SVM이 존재한다.
SVM

그림을 보시면 SVM에 대해 쉽게 이해할 수 있다. 초록색 실선으로 표현된 hyperplane이 파란색 원, 빨간색 사각형을 나눌 수 있는 경계면이 되어 주고 있으며 이때 색칠된 데이터들과 hyperplane 사이의 거리를 margin이라고 부른다. 그리고 색칠된 데이터들을 support vector라고 부르며 hyperplane 형성에 가장 큰 영향을 주는 데이터들이다.

그러면 이상 탐지는 어떻게 할까?
SVM으로 novelty detection을 하기 위해 나온 것이 one class support vector machine(이하 OCSVM)이다. OCSVM의 기본적인 동작 원리는 SVM과 동일하다. 하지만 이름에서 알 수 있듯이 OCSVM은 하나의 클래스만을 학습한다. 대신에 hyperplane을 형성하는 기준에 원점이 추가되었다. 학습 데이터와 원점을 가장 잘 나눠 주는 hyperplane을 찾는 것이 OCSVM의 목적이다.
비슷한 모델로 support vector data description(이하 SVDD)이라고 하는 분류 모델도 있다. SVDD는 OCSVM과 성격이 매우 유사한데 이번에는 hyperplane이 아닌 hypersphere를 찾는 게 목적이다. 아래의 그림을 보시면 OCSVM, SVDD의 동작 과정을 쉽게 알 수 있다. 주의 사항으로 이상 탐지에서는 두 방법 모두 정상 데이터만을 학습해야 한다. 둘 중에 무엇이 더 좋다고 단언하기는 어렵고 데이터를 바라보는 관점이 다르다 정도로 이해하시면 될 것 같다.


위의 기법들은 모두 Kernel trick이라는 데이터 확장 기법과 함께 사용하는 경우가 많은데 이는 데이터의 차원을 확장하여 비선형 분류 문제를 바꿔 주는 기법이다. 2차원 공간에서는 경계면을 찾기 어려운 문제를 Kernel trick을 통해 3차우너으로 데이터 확장시켜서 경계면을 구분할 수 있다.