본문 바로가기
데이터 분석

서포트 벡터 머신(SVM) - 결정 경계, soft margin vs hard margin

by 데이널 2023. 10. 26.

이번 글에서는 서비스 벡터 머신에 대해 알아보도록 하겠습니다. 영문으로는 Support Vector Machine이며 약자로 'SVM'로 주로 이야기 합니다. SVM은 분류(classification) 및 회귀(regression) 분석에 모두에 사용할 수 있습니다. 딥러닝에 나오기 전까지 생각보다 많은 분야에서 활용되었던 알고리즘이라는 것을 알고 놀랐습니다. 그러면 좀 더 자세히 들어가 보도록 하겠습니다. 

 

 

서포트 벡터 머신이란

우선 결론부터 말하면 서포트 벡터 머신(이하 SVM)은 쉽게 말해 결정 경계(Decision Boundary)를 만드는 모델이라고 할 수 있습니다. 그래서 분류를 하기 위해 기준 선(또는 면)을 정의하는 모델이라는 것을 알 수 있습니다. 분류되지 않은 새로운 점이 나타나면 경계의 어느 쪽에 속하는지 확인해서 분류하는 작업을 수행하게 됩니다.

 

결론적으로 이 결정 경계라는 걸 어떻게 잘 정의하고 계산할지 이해하는 게 알고리즘 원리의 중요한 포인트라고 할 수 있습니다. 요약하면, SVM은 데이터 포인트를 고차원 공간으로 매핑하여 데이터를 분류하고, 이를 통해 최적의 경계면(결정 경계)을 찾아내는데 중점을 둡니다. 

 

만약 데이터에 2개 속성(feature)만 있다면 결정 경계는 그림과 같이 간단한 선 형태가 되겠죠. 그리고 3차원이면 '결정 평면', 만약 다차원이라면 '초평면(hyperplane)'이라고 부릅니다. 그렇다면 이 알고리즘은 최적의 결정 경계를 어떻게 찾아내는지 알아보도록 하겠습니다. 

 

최적의 결정 경계(Decision Boundary)

가만히 생각해 보면, 결정 경계는 데이터 군으로부터 최대한 멀리 떨어지는 것이 좋습니다. 그래야 구분이 확실히 되겠죠. 

$w^tx + b = 0$ 가 결정 경계에 대한 수식입니다. 이 식에서 최적의 결정 경계가 되는 w와 b를 찾는 것이 궁극적인 목적입니다.

 

1. 서포트 벡터 (Support Vector)

우리는 w와 b를 찾아 결국 최적의 결정 경계를 그렸습니다. 여기서 서포트 벡터는 직역하면 지지하는 Point(점)입니다. 실제로는 결정 경계와 가장 가까이 있는 데이터 포인트(point)를 의미합니다. 아래 그림에서 처럼 경계 주변의 가장 가까운 포인트를 말하죠. 

 

2. 마진(Margin)

마진은 결정 경계와 서포트 벡터 사이의 거리를 의미합니다. 다시말해, 결정 경계와 가장 가까운 점과의 거리가 바로 ‘마진(Margin)’입니다. 최적의 결정 경계는 Margin(여백)을 최대화 하는 것입니다. SVM에서는 결정 경계를 정의하는 것이 결국은 서포트 벡터입니다.

 

그런 이유로 데이터 포인트 중에서 서포트 벡터만 잘 골라내면 그 것을 학습에 사용할 수 있습니다. 나머지 서포트 벡터가 아닌 수많은 데이터 포인트들을 무시할 수 있습니다. 그렇게 다른 포인트는 신경쓰지 않기 때문에 알고리즘이 매우 빠릅니다. 

 

서포트 벡터 머신(SVM)
서포트 벡터 머신(SVM)

 

Hard margin vs Soft margin

 

결정 경계의 분류를 잘하기 위해서는 클래스 사이에 폭이 넓을 도로 같을 때 유리합니다. SVM의 핵심 아이디어는 클래스 간의 최대 마진을 찾는 것입니다. 이것을 최대 마진(Maximum margin) 또는 라지 마진(Large margin) 분류라고 합니다.

 

그런데 생각해 볼 문제가 있습니다. 데이터에 따라 완벽한 선형 분리는 어렵다는 것이 현실이라는 것입니다. 그래서 현실 데이터를 고려해 margin안에 데이터를 허용하자는 아이디어가 나왔습니다. 그래서 허용 정도에 따라 아래 두가지 방법이 있습니다. 

1. hard margin

  • 위 그림처럼 아웃라이어를 허용하지 않고 기준을 까다롭게 적용
  • 개별적인 학습 데이터 다 놓치지 않으려고 아웃라이어를 처리하면 마진이 매우 작아져서 오버피팅 문제 발생

2. soft margin

  • 아래 그림처럼 아웃라이어를 마진 안에 어느정도 포함되도록 너그러운 기준 적용
  • 아웃라이어를 너무 허용하다 보면 마진이 너무 커지고 언더피팅 우려 발생

 

hard margin vs soft margin
hard margin vs soft margin

 

 

하드 마진(hard margin)은 데이터가 완벽하게 선형 분리될 때 사용됩니다. 그러나 실제 데이터는 종종 노이즈와 이상치를 포함하므로 소프트 마진이 더 일반적으로 사용됩니다. 소프트 마진(soft margin) SVM은 일부 오류를 허용하며 최대 마진을 찾으려고 노력합니다.