SVM (Support Vector Machine)

서포트 벡터 머신(SVM)은 매우 강력하고 선형, 비선형 분류, 회귀, 이상치 탐색에도 사용할 수 있는 다목적 머신러닝 모델입니다.
두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 카테고리에 속할지 판단하는 모델입니다.
SVM은 특히 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이터셋에 적합합니다.

SVM의 분류 방법

< Fig. 1. SVM 분류 예시 1 >


Fig. 1을 보면 '빨간 원'과 '녹색 사각형'을 구분하는 3개의 직선 (Line 1 ~ 3)이 있는 것을 확인할 수 있습니다.

SVM에서는 어떠한 선을 사용하여 구분할까? 정답은 Line 2입니다.


< Fig. 2. SVM 분류 예시 2 >


Fig. 2를 보면 마찬가지로 '빨간 원'과 '녹색 사각형'을 구분하는 3개의 직선 (Line 1 ~ 3)이 있는 것을 확인할 수 있습니다.

SVM에서는 어떠한 선을 사용하여 구분할까요? 아마도 Line 2를 선택할 것이다. 왜냐하면, SVM에서는 Margin이 가장 큰 Line을 사용하기 때문이다. 여기서 Margin이란 Boundary(Line)에 가까이 있는 요소(Element)에서 Boundary까지 거리의 합을 의미합니다. (얼마나 가까이에 있는 원소까지 사용할 것인지는 Parameter 설정에 따릅니다.)

또한, 강건함(Robust) 관점에서 Line 1과 Line 3은 적절하지 않다. Line 1의 경우 왼쪽 위의 빨간 원의 위치가 조금 바뀌면 Boundary를 넘어 다른 Label을 침범하게 됩니다.


< Fig. 3. SVM 분류 예시 3 >


그렇다면 Fig. 3에서는 어떨까? '빨간 원' 원소 중 하나가 '초록 사각형' 원소들 가까이 위치하고 있습니다.

여기에서는 Line 1을 선택하게 됩니다. SVM은 먼저 Classification 한 다음 Margin이 가장 큰 선을 선택하기 때문입니다.


< Fig.  4. SVM의 Outlier 예시 >


Fig. 4에서는 SVM에서의 Outlier를 표현하는 그래프가 나타나있다. 빨간 원 중 하나가 초록 사각형 사이에 분포하고 있습니다.

여기에서는 어떠한 선을 선택하게 될까요? 정답은 Line 1입니다. 선형 SVM은 Outlier를 어느정도 무시하며 최선의 선택을 진행합니다.


References

  • http://hiuaa.tistory.com/78
  • 오렐리앙 제롱, '핸즈온 머신러닝', 한빛미디어, 2018


+ Recent posts