신경망과는 다른 철학으로 분류 문제에 접근하는, 매우 강력하고 우아한 알고리즘인 **서포트 벡터 머신(Support Vector Machine, SVM)**의 모든 것을 알아본다.
1. SVM의 핵심 아이디어: 가장 넓고 안전한 길 찾기
두 개의 마을(클래스 A, 클래스 B)이 평야에 흩어져 있다고 상상해 보자. 우리는 두 마을 사이에 길(결정 경계)을 하나 내려고 한다.
- 로지스틱 회귀는 단순히 두 마을을 가르는 길을 긋는 데 집중한다.
- SVM은 "단순히 길을 내는 것을 넘어, 두 마을 모두로부터 최대한 멀리 떨어져서, 양쪽 모두에게 가장 안전하고 널찍한 길을 만들자!" 라고 생각한다.
이 "가장 널찍하고 안전한 길"의 폭이 바로 **마진(Margin)**이다. 기술적으로 마진은 결정 경계와, 그 경계에서 가장 가까운 양쪽 클래스의 데이터 포인트까지의 거리를 의미하며, SVM의 유일하고 명확한 목표는 바로 이 마진을 최대화하는 것이다. 넓은 마진은 모델의 일반화 성능을 높여 새로운 데이터에 더 강인(robust)하게 만든다.
서포트 벡터 (Support Vectors): 갓길을 떠받치는 말뚝
이 '가장 널찍한 길'의 위치와 폭은 무엇으로 결정될까? 바로 길의 가장자리에 위치한 '최전방의 집들'이다.
SVM은 이 "최전방의 집들", 즉 마진의 경계에 아슬아슬하게 걸쳐있는 데이터 포인트들을 **서포트 벡터(Support Vectors)**라고 부른다. SVM은 결정 경계를 만들 때 오직 이 서포트 벡터들에게만 관심을 가지며, 이들이 전체 경계를 지지(support)하는 '말뚝' 역할을 한다.
2. SVM의 수학적 원리: 목표와 제약
2.1. Hard & Soft Margin SVM
- Hard Margin: 데이터가 완벽하게 분리될 때,
(1/2)||w||²(마진의 역수)를 최소화하는 것을 목표로 한다. 단,yᵢ(w·xᵢ + b) ≥ 1라는 엄격한 제약, 즉 모든 데이터는 마진 밖에 있어야 한다는 조건을 지켜야 한다.
- Soft Margin: 현실의 노이즈 섞인 데이터를 위해, **"느슨한 변수(Slack Variable)"
ξ(크사이)**를 도입해 약간의 오류를 허용한다. - 최적화 목표:
(1/2)||w||² + C * Σξᵢ를 최소화. (1/2)||w||²: 마진을 넓히려는 힘.C * Σξᵢ: 마진 침범(오류)에 대한 페널티.C가 클수록 오류를 용납하지 않으려는 성향이 강해진다.
2.2. Hinge Loss: SVM의 비용 함수
Soft Margin SVM의 목표는 Hinge Loss라는 비용 함수로 표현할 수 있다.
J(w) = ||w||² (정규화 항) + C * Σ [max(0, 1 - yᵢ(w·xᵢ + b))] (Loss 항)
- Hinge Loss:
max(0, 1 - y(w·x+b))
- 특징:
y(w·x+b) ≥ 1이 되면(데이터가 마진 밖에 있으면) Loss가 0이 된다. 즉, 마진을 침범할 때만 비용이 발생한다. 이는 모든 데이터에 대해 비용이 발생하는 로지스틱 회귀의 Log Loss와 근본적으로 다른 점이다.
3. SVM의 마법: 커널 트릭 (The Kernel Trick)
데이터가 직선으로 나눌 수 없는 복잡한 구조일 때, SVM은 커널 트릭을 사용한다.
- 핵심 아이디어: "현재 차원에서 나눌 수 없다면, 데이터를 더 높은 차원으로 보내서 나누면 된다!"
- 비유: 평평한 고무판 위의 구슬들을 나눌 수 없을 때, 고무판 중앙을 눌러 3D 그릇 모양으로 만든 뒤, 수평으로 칼로 잘라내는 것과 같다.
- 커널(Kernel): 실제로 데이터를 고차원으로 보내는 복잡한 계산을 수행하는 대신, 마치 고차원으로 보낸 것과 동일한 효과를 효율적으로 얻게 해주는 수학적 함수(지름길).
- 종류: 선형(Linear), 다항식(Polynomial), 가우시안 RBF(Gaussian RBF) 커널 등이 있다.
4. SVM의 최적화 방법
- SMO (Sequential Minimal Optimization): 전통적인 SVM 해법. '쌍대 문제'로 변환 후, 한 번에 2개의 변수만 골라 최적화하는 과정을 반복한다. 빠르고 정확하다.
- 경사 하강법 (Gradient Descent): Hinge Loss를 직접 미분하여 기울기를 계산한다. 미니배치 학습이 가능하여 대용량 데이터셋에 적합하다.
5. 딥러닝 시대, SVM의 위상: 역할의 변화
SVM이 "만능 해결사"의 왕좌를 딥러닝에 내준 것은 사실이다.
- SVM이 밀리는 이유:
- 비정형 데이터(이미지, 텍스트)에서의 성능: 딥러닝은 피처를 '스스로 학습'하지만, SVM은 '만들어서 넣어줘야' 한다. 이 차이가 비정형 데이터에서 압도적인 성능 격차를 만들었다.
- 데이터 규모(확장성): 딥러닝은 GPU 병렬 처리와 미니배치 학습으로 빅데이터 시대에 완벽히 부합하지만, 전통적 SVM은 대용량 데이터 훈련에 한계가 있다.
- SVM이 여전히 강력한 이유:
- 중소 규모의 정형 데이터: 데이터가 아주 크지 않고 잘 구조화된 경우, 딥러닝보다 빠르고 좋은 성능을 보이는 경우가 많다.
- 이론적 기반: '마진 최대화'라는 명확한 수학적 원리 위에 세워져 있어 해석이 용이하다.
- 고차원 데이터: 피처 수가 샘플 수보다 훨씬 많은 경우(p >> n)에도 과적합에 강한 모습을 보인다.
결론: "항공기(딥러닝) 시대에 자동차(SVM)는 저물었다"고 말할 수 없다. 역할과 주력 분야가 바뀌었을 뿐, SVM은 중소 규모의 정형 데이터를 다루는 강력한 전문가로서 여전히 중요한 위치를 차지하고 있다.