OCSVM(One-Class Support Vector Machine)

chanyeong yu ·2025년 6월 12일

Anomaly Detection

목록 보기
1/3

OCSVM

  • 정상 관측치와 불량 관측치를 구분 짓는 서포트 벡터 머신 알고리즘을 구축하는 방법론이다.

What is SVM?

  • OCSVM 이전에 SVM. 서포트 벡터 머신을 먼저 알아보자.
  • SVM은 원래 이상탐지를 위한 모델이 아닌 분류와 회귀를 위한 모델이다.

Hyperplane(초평면)

  • 다음과 같이 파란색 관측치와 빨간색 관측치가 존재한다고 했을때, 이를 잘 구분하는 선, 면을 우리는 hyperplane 이라고 한다. 이 용어를 잘 알아두자.

보통은 2차원에서는 선, 3차원에서는 면, 4차원 이상부터 hyperplane(초평면)이라는 용어를 사용한다고 한다. 이번 글에서는 이를 통합해서 hyperplane이라는 용어를 사용하겠다.

  • 위 그림 같은 경우는 3차원의 분류이므로 으로 된 hyperplane을 찾아야한다.
  • 일반적으로 식은 WTx+b=0W^Tx + b = 0이고, 여기서의 WWbb를 찾는 것이 목적이 되겠다.

  • 위와 같은 상황에서 무수히 많은 hyperplane이 생기게 되는데, 여기서 어떤 hyperplane이 두개의 클래스를 잘 나누는 것인지 선택해야한다.
  • 그리고 이 선택의 기준, 좋다는 것의 기준이 존재해야한다.

SVM에서의 이 선택의 기준은 training set의 margin을 최대화하는 것이다.

  • 즉, 이 방향이 generalization error를 최소화하는 것이다.

Geometric Margin

  • 그럼 이 Margin이라는 개념이 도대체 뭘까? 다음 그림을 보자.
  • 다음과 같이 두개의 클래스와 그 사이 이를 분리하는 하나의 hyperplane이 있다.
  • Margin은 각 클래스에서 이 hyperplane에서 가장 가까운 관측치 사이의 거리를 의미하는 것이다.
  • Margin을 최대화하는 가중치들을 찾는 것이 SVM 분류의 기본 개념이다.

  • 여기서 예를 들어 파란색을 +1의 값, 초록색을 -1의 값을 가진다고 한다면, Y값이 정확하게 +1, -1의 값을 가지는 값들이 가장 가까운 관측치가 될 것이다.
  • 우리는 이것을 각각 Plus-planeMinus-plane으로 표현한다. 이 사이의 거리를 최대화하는 hyperplane을 찾는 것이 목적이 되겠다.
  • X+X^+XX^-의 평행이동이라고 표현할 수 있다. 람다, WW를 곱한 방향만큼 평행이동 되었다. 라고 생각하면 되겠다.

수식으로 한번 나타내보자.

  • 따라서 이 식을 람다에 대해 정리해보면, 위와 같은 식을 얻어낼 수 있다.
  • WTWW^TW는 바로 벡터의 L2 Lorm이다. 바로 유클리디안 거리인 것이다.
  • 여기서 다시, 우리가 최종적으로 구하고자하는건 바로 Margin이고, 이 Margin최대화하는 W를 알고싶은 것이었다.
  • 그리고 MarginPlus-planeMinus-plane 거리의 차이가 될 것이기 때문에, 다음과 같은 식을 사용할 수 있다.

  • 마진은 식을 전개하면 결국 W의 2 Norm을 구함으로써 최종적으로 구할 수 있다. 이 값을 역수를 취해 최소화하는 문제로 푼다.

  • 그리고 계산상의 편의를 위해 제곱근을 풀기위해 Norm에 제곱을 취해 목적함수로 사용한다.

  • 이 목적식을 최소화하는 W를 찾고싶다.

  • 여기에 우리는 제약을 둔다.

Lagrangian Formulation

0개의 댓글