Code › ai-engineering-study

SVM의 Margin과 Support Vector

결정 경계의 여백을 최대화하는 SVM의 분류 기준과 Support Vector의 역할

로지스틱 회귀는 선형 점수를 시그모이드에 넣어 특정 클래스일 확률을 예측했다. 같은 선형 분류 문제를 확률 대신 결정 경계와 데이터 사이의 여백(margin)으로 푸는 방법도 있는데, 이번에 배운 서포트 벡터 머신(Support Vector Machine, SVM)이 그 방식이다.

수업에서는 두 클래스 사이에 여러 경계선을 그려놓고 어느 선이 더 좋은지 비교했다. 데이터를 분리하는 데 성공한 선이 여러 개라면, SVM은 단순히 분류가 가능한 선에서 멈추지 않고 두 클래스와 가능한 한 멀리 떨어진 경계선을 선택한다.


선형 점수의 부호로 분류하기

SVM의 기본 선형식도 로지스틱 회귀와 같은 형태다.

f(x)=wTx+bf(x)=w^{\mathsf{T}}x+b

결정 경계는 선형 점수가 0이 되는 지점이다.

wTx+b=0w^{\mathsf{T}}x+b=0

f(x)f(x)가 0보다 크면 한 클래스, 0보다 작으면 다른 클래스로 분류한다. 기본적인 SVM의 출력은 로지스틱 회귀처럼 0부터 1 사이의 확률이 아니라 결정 경계를 기준으로 한 점수이며, 최종 분류에서는 그 부호를 사용한다.

이를 계단 함수(step function) 형태로 표현하면 0보다 작은 구간은 한 클래스, 0보다 큰 구간은 다른 클래스로 나눌 수 있다. 다만 SVM을 학습할 때 계단 함수를 직접 미분하는 것은 아니고, 경계와 데이터 사이의 여백을 기준으로 최적화한다.


좋은 경계선의 기준은 여백

두 클래스를 정확히 나누는 선이 여러 개라면 어느 선을 선택해야 할까. SVM은 결정 경계와 가장 가까운 학습 데이터 사이의 거리를 확인하고, 이 여백이 충분한 경계선을 찾는다.

경계선이 한쪽 클래스에 지나치게 가까우면 학습 데이터는 구분하더라도 새로운 데이터가 조금만 달라졌을 때 분류 결과가 바뀔 수 있다. 두 클래스와 충분한 여백을 두는 경계는 가까운 데이터가 조금 움직이더라도 같은 쪽에 남을 가능성이 커진다.

SVM은 이 여백이 최대가 되는 wwbb를 찾는다. 선형 분리가 가능한 기본 형태에서는 각 데이터의 라벨을 yi{1,1}y_i\in\{-1,1\}로 두고 다음 조건을 만족하도록 정리할 수 있다.

yi(wTxi+b)1y_i(w^{\mathsf{T}}x_i+b)\ge 1

이 조건에서 여백을 넓히는 문제는 가중치 벡터의 크기를 줄이는 문제로 바꿔 쓸 수 있다.

minw,b12w2\min_{w,b}\frac{1}{2}\lVert w\rVert^2

아직 이 최적화 식을 직접 계산하는 단계까지는 배우지 않았다. 이번에는 여러 경계선 가운데 가장 가까운 데이터까지의 거리가 가장 큰 선을 고른다는 기준을 이해하는 데 집중했다.


서포트 벡터가 경계선을 결정한다

결정 경계와 가장 가까워 여백의 기준이 되는 학습 데이터를 서포트 벡터(support vector)라고 부른다. 경계선에서 멀리 떨어진 데이터보다, 경계에 가장 가까운 데이터들이 여백의 폭과 경계의 위치를 직접 결정한다.

두 클래스를 나누는 여러 경계선
  → 각 경계선과 가장 가까운 데이터의 거리 확인
  → 최소 거리가 가장 큰 경계선 선택
  → 그 거리를 결정한 데이터가 서포트 벡터

경계에 가장 가까운 데이터가 분류선의 위치와 여백을 결정한다. 이 데이터를 서포트 벡터라고 하며, 서포트 벡터를 기준으로 분류 경계를 만드는 모델이 SVM이다.


로지스틱 회귀와 SVM의 차이

두 모델 모두 기본 형태에서는 선형 결정 경계를 만들지만, 학습 결과를 해석하는 방식이 다르다.

구분로지스틱 회귀SVM
기본 출력클래스 확률결정 경계 기준 점수
분류 기준sigmoid 확률과 threshold선형 점수의 부호
학습 초점Cross-Entropy 감소여백 최대화
경계에 중요한 데이터전체 데이터의 확률 오차경계에 가까운 서포트 벡터

로지스틱 회귀는 스팸일 확률처럼 확률값이 필요한 문제에 바로 사용할 수 있고, SVM의 기본 출력은 확률로 해석하지 않는다. SVM도 별도의 확률 보정 과정을 붙일 수 있지만, 수업에서 배운 기본 차이는 확률적으로 예측하는 로지스틱 회귀와 여백을 기준으로 분류하는 SVM이었다.

딥러닝이 널리 사용되기 전에는 SVM이 여러 분류 문제에서 좋은 성능을 내는 대표적인 모델로 사용됐다고 한다. 이번 수업에서는 복잡한 수식보다 어떤 경계가 더 좋은 경계인지 판단하는 기준이 있다는 점이 먼저 들어왔다. 데이터를 나누기만 하는 것이 아니라, 가장 가까운 데이터와의 여백까지 고려한다는 것이 SVM의 핵심이었다.