서포트 벡터 머신(SVM)이란?
서포트 벡터 머신(Support Vector Machine, SVM)은 통계학습 이론에 그 뿌리를 두고 있는 분류 기법으로, 손글씨 숫자 인식부터 텍스트 분류에 이르기까지 다양한 실제 응용 분야에서 뛰어난 성능을 입증해 온 방법입니다.
SVM은 고차원 데이터를 효과적으로 처리할 수 있으며, 차원의 저주(curse of dimensionality) 문제를 예방하는 강점이 있습니다. 또한 이 기법의 핵심 요소 중 하나는 '서포트 벡터(support vectors)'라고 불리는 훈련 데이터의 일부 인스턴스들을 활용해 결정 경계를 정의한다는 점입니다.
초평면과 선형 분리
SVM은 선형 분리가 가능한 데이터에서 초평면(hyperplane)을 명확하게 시각화할 수 있습니다. 나아가 SVM 방법론을 비선형 분리 데이터로 확장하는 방식도 학습할 수 있습니다. 데이터 집합이 선형 분리 가능하다는 것은, 모든 사각형이 한쪽 면에, 모든 원이 반대편 면에 위치하도록 하는 초평면을 발견할 수 있다는 의미입니다.
마진과 일반화 오차의 관계
선형 모델의 용량(capacity)은 마진(margin)과 반비례 관계에 있습니다. 마진이 작은 모델은 유연성이 높아 다양한 훈련 집합에 맞출 수 있기 때문에 용량이 더 큽니다. 반면 마진이 큰 모델은 그렇지 않습니다. 구조적 위험 최소화(SRM) 원리에 따르면, 용량이 커질수록 일반화 오차 상한도 증가할 수 있습니다. 따라서 결정 경계의 마진을 최대화하는 선형 분류기를 설계하는 것이 바람직하며, 이를 통해 최악의 경우 일반화 오차를 줄일 수 있습니다.
선형 SVM은 가장 큰 마진을 가진 초평면을 찾는 분류기로, '최대 마진 분류기(maximal margin classifier)'라고도 불립니다. SVM이 이러한 경계를 어떻게 학습하는지 이해하려면, 선형 분류기의 결정 경계와 마진에 대한 기본적인 분석에서 출발하는 것이 좋습니다.
SVM의 주요 특징
1. 볼록 최적화 문제로의 공식화
SVM 학습 문제는 볼록 최적화(convex optimization) 문제로 공식화할 수 있으며, 목적 함수의 전역 최솟값(global minimum)을 찾는 효율적인 알고리즘이 존재합니다. 반면 규칙 기반 분류기나 인공 신경망과 같은 다른 분류 기법들은 탐욕(greedy) 기반 접근법으로 가설 공간을 탐색하기 때문에 지역 최적해(local optimum)만 찾는 경우가 많습니다.
2. 용량 제어(Capacity Control)
SVM은 결정 경계의 마진을 넓히는 방식으로 용량을 제어합니다. 사용자는 사용할 커널 함수(kernel function)의 종류와 각 슬랙 변수(slack variable)에 대한 비용 함수 C 등 여러 매개변수를 직접 지정해야 합니다.
3. 범주형 데이터 처리
SVM은 더미 변수(dummy variables)를 학습함으로써 범주형 데이터도 처리할 수 있습니다. 예를 들어 결혼 여부 속성이 '미혼', '기혼', '이혼'이라는 세 개의 값을 가진다면, 각 속성 값마다 하나의 이진 변수를 학습시켜 데이터를 표현할 수 있습니다.