데이터를 두 그룹으로 나누는 선을 긋는다고 생각해 봅니다. 선이 무수히 많이 가능한데 어떤 선이 가장 좋을까요. 직관적으로는 두 그룹 사이의 간격이 최대가 되는 선이 가장 안전할 것 같습니다. 새로운 데이터가 들어와도 여유 있게 분류할 수 있으니까요. 이 아이디어를 수학적으로 구현한 게 서포트 벡터 머신(SVM)입니다.
SVM은 1990년대에 등장해서 딥러닝이 대세가 되기 전까지 가장 강력한 분류 알고리즘이었습니다. 지금도 데이터가 적거나 고차원인 상황에서 여전히 강합니다. 특히 커널 트릭(Kernel Trick)이라는 수학적 장치로 선형으로 분리 불가능한 데이터도 분류할 수 있습니다. 이 연재에서 다룬 라그랑주 승수법과 내적이 SVM의 핵심 수학 도구입니다. 오늘은 그 원리를 실제 숫자와 함께 따라가 보겠습니다.

SVM의 핵심 아이디어 — 마진을 최대화하는 결정 경계
2D 평면에 고양이(○)와 개(×) 데이터가 있습니다. 두 그룹을 나누는 선을 그어야 합니다. 선은 무수히 많이 가능합니다. 어떤 선이 가장 좋을까요.
선 A: 두 그룹을 나누지만 한쪽 그룹에 너무 가까움
선 B: 두 그룹을 나누지만 반대쪽 그룹에 너무 가까움
선 C: 두 그룹 사이의 정중앙을 지나가는 선 ← 최선
마진(Margin): 결정 경계와 가장 가까운 데이터 사이의 거리
선 A 마진: 좁음 → 새 데이터에 불안정
선 B 마진: 좁음 → 새 데이터에 불안정
선 C 마진: 넓음 → 새 데이터에 안정적
SVM의 목표: 마진을 최대화하는 결정 경계를 찾아라
마진이 넓을수록 새로운 데이터가 들어왔을 때 분류 오류가 날 가능성이 줄어듭니다. 이게 SVM이 일반화 성능이 좋은 이유입니다. 과적합 글에서 다룬 편향-분산 트레이드오프에서 분산을 낮추는 방향입니다.
수학적 정의 — 초평면과 서포트 벡터
2D에서는 결정 경계가 선(Line)이지만 고차원에서는 초평면(Hyperplane)이 됩니다. 변수가 p개인 데이터는 p차원 공간에 있고, 결정 경계는 (p-1) 차원 초평면입니다.
w · x + b = 0
w: 가중치 벡터 (초평면의 방향)
x: 입력 데이터 벡터
b: 편향 (bias)
w · x: 내적 (벡터의 점곱)
분류 규칙:
w · x + b > 0 → 클래스 +1 (고양이)
w · x + b < 0 → 클래스 -1 (개)
서포트 벡터 (Support Vector):
결정 경계에 가장 가까운 데이터 포인트들
마진 경계선: w · x + b = +1 (양성 클래스)
마진 경계선: w · x + b = -1 (음성 클래스)
마진 폭 = 2 / ||w||
→ 마진 최대화 = ||w|| 최소화
서포트 벡터라는 이름이 여기서 나옵니다. 결정 경계를 "지지(Support)하는 벡터들"입니다. 전체 데이터 중에서 마진 경계선 위에 있는 데이터들만이 결정 경계를 결정합니다. 나머지 데이터는 마진 안쪽에 있어서 결정 경계에 영향을 주지 않습니다. 데이터가 100만 개여도 서포트 벡터가 10개면 그 10개가 모델을 결정합니다.
마진 최대화 — 라그랑주 승수법의 적용
마진을 최대화하는 것은 제약 조건이 있는 최적화 문제입니다. "모든 데이터가 올바르게 분류된다"는 제약 조건 아래에서 마진을 최대화해야 합니다. 이 연재에서 다룬 라그랑주 승수법이 바로 여기서 씁니다.
목적함수: min (1/2)||w||² (마진 최대화 = ||w|| 최소화)
제약 조건: y_i(w · x_i + b) ≥ 1 (모든 i에 대해)
y_i: 실제 클래스 (+1 또는 -1)
x_i: i번째 데이터
라그랑주 함수:
L(w, b, α) = (1/2)||w||² - Σ α_i[y_i(w·x_i+b) - 1]
α_i: 라그랑주 승수 (각 데이터 포인트의 중요도)
KKT 조건에 의해:
α_i = 0: 마진 밖의 데이터 → 결정 경계에 영향 없음
α_i > 0: 서포트 벡터 → 결정 경계를 결정
쌍대 문제로 변환하면:
w = Σ α_i · y_i · x_i
→ w는 서포트 벡터들의 선형 결합
라그랑주 승수 α_i가 0인 데이터는 결정 경계에 아무 영향도 주지 않습니다. α_i가 양수인 서포트 벡터들만 w를 결정합니다. 이게 SVM의 효율성 원천입니다. 데이터가 아무리 많아도 서포트 벡터 몇 개가 모델을 요약합니다.
소프트 마진 — 완벽하지 않은 현실 데이터 처리
현실 데이터는 완벽하게 선형 분리가 안 되는 경우가 많습니다. 고양이 데이터 중 일부가 개 영역에 있거나, 이상치가 섞여 있을 수 있습니다. 이때 하드 마진을 고집하면 해가 없거나 과적합이 됩니다.
min (1/2)||w||² + C × Σ ξ_i
ξ_i (슬랙 변수): 각 데이터가 마진을 침범한 정도
C: 규제 파라미터
C 값의 의미:
C 크게: 오분류 허용 안 함 → 하드 마진에 가까움
훈련 오차 최소, 과적합 위험
C 작게: 오분류 어느 정도 허용 → 마진 넓어짐
일반화 성능 향상, 과소적합 위험
예시:
C=0.1: 넓은 마진, 일부 오분류 허용
C=1.0: 균형
C=100: 좁은 마진, 거의 모든 데이터 올바르게 분류
→ C는 교차검증으로 최적값 탐색
소프트 마진의 C 파라미터는 과적합 글에서 다룬 λ(규제 강도)와 같은 역할입니다. C가 크면 훈련 데이터에 더 집착하고, 작으면 일반화를 더 중시합니다. 편향-분산 트레이드오프를 C로 조절하는 겁니다.
커널 트릭 — 차원을 높여서 선형으로 분리하기
SVM의 가장 강력한 도구가 커널 트릭입니다. 원래 공간에서 선형으로 분리 불가능한 데이터를 고차원으로 변환하면 선형으로 분리할 수 있게 됩니다.
1D에서 분리 불가능한 경우:
음성: x = {-1, 1}, 양성: x = {-0.5, 0.5}
→ 직선 하나로 분리 불가능
2D로 변환: φ(x) = (x, x²)
음성: (-1,1), (1,1)
양성: (-0.5, 0.25), (0.5, 0.25)
→ 2D에서는 수평선 y=0.5로 분리 가능!
커널 트릭의 핵심:
고차원 변환 φ(x)를 직접 계산하지 않아도 됨
내적 φ(x_i)·φ(x_j)만 계산하면 충분
커널 함수 K(x_i, x_j) = φ(x_i)·φ(x_j)
→ 원래 공간에서 계산하는데 고차원 내적 효과
커널 트릭이 강력한 이유는 실제로 고차원 변환을 하지 않아도 된다는 겁니다. 변환된 공간에서의 내적만 계산하면 SVM이 작동합니다. 변환된 공간이 수백만 차원이어도 원래 공간에서 커널 함수 하나로 계산할 수 있습니다. 이 연재에서 다룬 내적 개념이 여기서 핵심 역할을 합니다.
대표적인 커널 함수들
실무에서 자주 쓰는 커널 함수들입니다. 각각 다른 형태의 결정 경계를 만들 수 있습니다.
K(x_i, x_j) = x_i · x_j
→ 선형으로 분리 가능한 데이터에 사용
→ 계산 빠름, 고차원 텍스트 분류에 강함
2. 다항 커널 (Polynomial Kernel):
K(x_i, x_j) = (x_i · x_j + c)^d
d=2: 2차 곡선 결정 경계
d=3: 3차 곡선 결정 경계
→ 이미지 처리에 활용
3. RBF 커널 (Radial Basis Function):
K(x_i, x_j) = exp(-γ||x_i - x_j||²)
γ: 결정 경계의 복잡도 조절
γ 크면: 복잡한 경계, 과적합 위험
γ 작으면: 단순한 경계, 과소적합 위험
→ 가장 범용적, 실무 기본값
4. 시그모이드 커널:
K(x_i, x_j) = tanh(αx_i·x_j + c)
→ 신경망과 유사한 결정 경계
커널 선택과 하이퍼파라미터(C, γ) 설정은 교차검증으로 결정합니다. 실무에서는 먼저 RBF 커널을 시도하고, 데이터가 선형에 가까우면 선형 커널로 바꿉니다. 텍스트 분류에서는 고차원 희소 데이터 특성상 선형 커널이 더 좋은 경우가 많습니다.
SVM의 장단점과 실무 활용
SVM이 강한 상황과 약한 상황을 알아야 제대로 쓸 수 있습니다.
| 상황 | SVM 적합도 | 이유 |
|---|---|---|
| 데이터 적고 변수 많음 | 매우 적합 | 고차원에서 마진 최대화가 효과적 |
| 텍스트 분류 | 매우 적합 | 고차원 희소 데이터에 선형 커널 강력 |
| 이진 분류 | 적합 | 기본 설계가 이진 분류에 최적화 |
| 데이터 100만 개 이상 | 부적합 | 학습 시간이 O(n²~n³)으로 폭증 |
| 다중 클래스 분류 | 보통 | OvO, OvR 방식으로 확장 가능 |
| 이미지, 음성 처리 | 부적합 | 딥러닝이 압도적으로 우세 |
SVM은 데이터가 적고 변수가 많은 상황에서 딥러닝보다 나을 수 있습니다. 유전자 발현 데이터 분석(수천 개 유전자 변수, 수백 개 샘플)이나 텍스트 분류에서 지금도 SVM이 강합니다. 이 연재에서 다룬 라그랑주 승수법, 내적, 고차원 공간 개념이 SVM 하나에 모두 들어가 있습니다. 마진을 최대화하는 단순한 아이디어가 이 모든 수학 위에서 구현됩니다.
'데이터 과학 수학' 카테고리의 다른 글
| 단순한 스무고개가 AI가 되는 방법, 결정 트리(Decision Tree)와 랜덤 포레스트의 수학 (0) | 2026.04.26 |
|---|---|
| 표본이 전체를 말한다. 정규분포와 중심극한정리의 수학적 원리 (0) | 2026.04.26 |
| 표본이 전체를 말한다. 정규분포와 중심극한정리의 수학적 원리 (0) | 2026.04.25 |
| 주성분 분석(PCA): 복잡한 데이터에서 핵심만 남기는 기술 (0) | 2026.04.24 |
| 넷플릭스는 어떻게 내 취향을 아는가, 특이값 분해(SVD)의 원리 (0) | 2026.04.22 |