🔗 관련 문서: Wikipedia - Support Vector Machine
SVM은 지도 학습(Supervised Learning)에 속하는 분류(Classification) 및 회귀(Regression) 알고리즘이다. 분류 문제에서는 두 클래스를 구분하는 여러 초평면 중에서 마진(margin)을 최대화하는 결정 경계를 찾는 것이 핵심이다. 기본 형태는 이진 분류기이며, 다중 클래스 문제는 일대일(One-vs-One) 또는 일대다(One-vs-Rest) 방식으로 확장할 수 있다.
SVM의 결정 경계는 모든 학습 데이터가 아니라, 경계에 가장 큰 영향을 주는 서포트 벡터(support vector)에 의해 주로 결정된다.
선형 SVM의 결정 함수는 다음과 같이 표현할 수 있다.
$f(\mathbf{x}) = \mathbf{w}^{T}\mathbf{x} + b$
결정 경계는 $f(\mathbf{x})=0$인 초평면이며, 일반적인 이진 분류에서는 $f(\mathbf{x})$의 부호에 따라 클래스를 예측한다. 여기서 $\mathbf{w}$는 초평면의 방향을 결정하는 가중치 벡터이고, $b$는 절편이다.
정규화된 선형 SVM에서 결정 경계부터 한쪽 서포트 초평면까지의 거리는 $1/\lVert\mathbf{w}\rVert$이고, 두 서포트 초평면 사이의 전체 마진 폭은 $2/\lVert\mathbf{w}\rVert$이다. 따라서 $\lVert\mathbf{w}\rVert$을 작게 만드는 것은 마진을 넓히는 것과 같다.
실제 적용 전에는 특징별 단위 차이가 거리와 내적 계산에 영향을 줄 수 있으므로, 표준화(Standardization) 또는 정규화(Normalization)를 함께 사용하는 경우가 많다.
학습 데이터가 마진 안으로 들어오거나 잘못 분류되는 것을 어느 정도 허용하는지에 따라 하드 마진(Hard Margin)과 소프트 마진(Soft Margin)으로 구분한다.
소프트 마진 SVM의 대표적인 최적화 문제는 다음과 같다.
$\displaystyle \min_{\mathbf{w},b,\xi}\; \frac{1}{2}\lVert\mathbf{w}\rVert^2 + C\sum_{i=1}^{n}\xi_i$
$\displaystyle y_i(\mathbf{w}^{T}\mathbf{x}_i+b) \ge 1-\xi_i,\qquad \xi_i\ge0$
| $C$의 크기 | 오분류 페널티 | 일반적인 경향 |
|---|---|---|
| 큰 $C$ | 큼 | 학습 오류를 줄이려 하므로 마진이 좁아지고 과적합 위험이 커질 수 있음 |
| 작은 $C$ | 작음 | 일부 오류를 허용하여 마진이 넓어지고 규제가 강해지는 경향 |
원래 입력 공간에서 선형으로 분리되지 않는 데이터는 특징 변환 $\phi(\mathbf{x})$를 통해 더 높은 차원의 특징 공간에서 선형 분리가 가능해질 수 있다. 그러나 고차원 좌표를 실제로 모두 계산하면 계산량과 메모리 사용량이 크게 증가할 수 있다.
커널 트릭(kernel trick)은 변환된 특징 벡터를 명시적으로 계산하지 않고, 다음과 같이 변환 공간에서의 내적을 커널 함수로 직접 계산하는 방법이다.
$K(\mathbf{x},\mathbf{z}) = \phi(\mathbf{x})^{T}\phi(\mathbf{z})$
따라서 커널 트릭은 데이터를 더 낮은 차원으로 매핑하는 방법이 아니다. 개념적으로는 원래 공간보다 높은 차원, 경우에 따라 무한 차원의 특징 공간을 이용한다. 또한 명시적 특징 변환 계산을 피할 수는 있지만, 데이터 수와 커널 종류에 따라 전체 계산량이 항상 감소한다고 단정할 수는 없다.
장점
한계
다음은 SVM의 결정 경계, 마진 및 서포트 벡터를 나타낸 예시이다.
그림에서 중앙의 결정 경계와 양쪽 서포트 초평면 사이의 거리가 마진이다. 마진 위에 있거나 마진 안쪽으로 들어온 데이터가 서포트 벡터가 되어 결정 경계에 직접 영향을 줄 수 있다.
서포트 벡터 머신(SVM)에 대한 설명으로 옳지 않은 것은?
정답: ④
① 옳은 설명: SVM의 핵심은 두 클래스 사이의 마진을 최대화하는 결정 경계를 찾는 것이다.
② 옳은 설명: 서포트 벡터는 결정 경계에 가장 가깝거나 마진을 침범한 데이터로, 최적 초평면의 위치에 직접 영향을 준다.
③ 옳은 설명: $C$가 커지면 오분류와 마진 침범에 대한 페널티가 커진다. 학습 오류를 줄이려는 압력이 강해져 마진이 좁아지는 경향이 있다.
④ 옳지 않은 설명: 커널 트릭은 데이터를 더 낮은 차원으로 매핑하는 기법이 아니다. 변환된 고차원 특징을 직접 계산하지 않고, 커널 함수로 그 공간에서의 내적을 계산한다. 따라서 명시적 변환을 피할 수는 있지만 연산량이 항상 감소하는 것은 아니다.