SVM Deep Dive
SVM의 기본 개념과 문제 설정
SVM(서포트 벡터 머신)은 머신러닝 분야에서 널리 사용되는 지도 학습 알고리즘으로, 주로 분류(classification) 문제를 해결하는 데 활용된다. 이 알고리즘의 목표는 주어진 학습 데이터(특징 벡터와 각 데이터의 클래스 레이블)를 이용하여 두 클래스를 구분하는 최적의 결정 경계(decision boundary)를 찾는 것이다. SVM은 특히 마진(margin)을 최대화하는 초평면(hyperplane)을 찾아 모델의 일반화 성능을 높이는 원리로 유명하다.
예를 들어 이진 분류 문제에서 클래스 레이블을 +1과 -1로 두면, SVM은 특징 공간에서 \(w^{T} * x + b = 0 \)의 형태로 표현되는 하나의 결정 초평면을 찾아 두 클래스를 분리한다. 2차원 공간에서는 이러한 결정 경계가 선분(직선)으로 표현되고, 3차원 공간에서는 평면으로 표현되며, 더 높은 차원에서는 초평면으로 일반화된다. 이때 w는 초평면의 법선 벡터이고 b는 초평면의 위치를 결정하는 상수(절편)이다. 결정 초평면은 데이터 공간을 두 부분으로 나누어 한쪽 부분공간에는 +1 클래스의 데이터가, 다른 쪽에는 -1 클래스의 데이터가 위치하도록 한다. 만약 주어진 데이터가 선형으로 완벽하게 분리 가능하다면, 이러한 분류 초평면은 무수히 많을 수 있는데 SVM은 그 중에서도 마진(결정 경계와 가장 가까운 샘플 사이의 거리)을 가장 크게 확보하는 초평면을 선택한다.
마진 최대화 원리
Svm separating hyperplanes |
위 그림은 SVM의 마진(maximum margin) 개념을 시각화한 것이다. 그림에서 H1 (녹색 선)은 두 클래스를 완전히 분리하지 못하는 잘못된 초평면이다. H2 (파란 선)는 두 클래스를 분리하긴 하지만 양쪽 클래스에 가장 가까운 점들과의 거리가 매우 좁아 마진이 작은 경우이다. 반면 H3 (빨간 선)은 두 클래스 간에 가장 넓은 여유를 두고 분리하는 최대 마진 초평면으로, SVM이 찾아내고자 하는 최적의 결정 경계에 해당한다. 즉, 마진이란 결정 경계(초평면)와 각 클래스의 데이터 점들 사이의 최소 거리이며, SVM은 이 거리를 최대화하려고 한다. 이렇게 마진을 최대화하면 이론적으로 모델의 일반화 오류(generalization error)가 줄어들어 과적합 위험이 낮아진다고 알려져 있다.
선형으로 완전히 분리되는 경우, SVM의 목표는 마진을 최대화하는 w와 b를 찾는 것이다. 일반적으로 마진의 크기는 초평면에 가장 가까운 데이터점까지의 거리로 정의되며, 이는 ||w|| (법선 벡터의 노름)의 역수에 비례한다. 따라서 마진을 최대화하는 것은 곧 ||w||를 최소화하는 것과 동치이다. SVM은 이를 최적화 문제로 정식화하여 풀 수 있는데, 하드 마진(hard margin) 상황에서는 다음과 같은 제약 조건부 최적화 문제로 표현된다:
여기서 \(y_i \in {+1, -1} \)는 i번째 데이터 포인트의 클래스 레이블을 나타낸다. 위 최적화 문제에서 제약조건 \(y_i (w^T x_i + b) \ge 1 \)은 각 데이터 점이 초평면으로부터 최소 1 이상의 거리를 두고 떨어져 있도록 강제하는 것을 의미한다 (초평면과의 거리가 1 미만이면 마진을 침해하게 된다). 이 문제는 목적함수가 이차 함수이고 제약이 선형이므로 볼록 최적화(convex optimization)에 속하며, 전역 최적해가 존재한다는 장점이 있다. 그러나 현실의 데이터는 완벽히 선형 분리가 불가능한 경우가 많기 때문에, 이러한 엄격한 마진 조건을 완화한 소프트 마진(soft margin) 기법이 필요하다.
소프트 마진과 슬랙 변수
현실 세계의 데이터에는 노이즈나 겹치는 분포 등으로 인해 완벽한 선형 분리가 불가능한 경우가 흔하다. 일부 데이터 포인트는 결정 경계의 반대편에 놓일 수밖에 없거나, 어느 정도 마진 위반을 허용해야만 하는 상황이 발생한다. SVM은 이러한 경우를 처리하기 위해 소프트 마진 개념을 도입하며, 이는 슬랙 변수(slack variable) \(\xi_i \)를 활용하여 구현된다. 슬랙 변수 \(\xi_i \ge 0 \)는 각 데이터 포인트가 마진 제한을 얼마나 위반했는지를 나타내는 값이다.
소프트 마진 SVM에서는 앞서 제시한 제약을 다음과 같이 완화한다: 모든 데이터 i에 대하여 \(y_i (w^T x_i + b) \ge 1 - \xi_i \) 로 조건을 완화하고, 대신 \(\xi_i \)의 크기에 비례한 벌점을 목적 함수에 추가로 부여한다. 최적화 문제는 다음과 같이 수정된다:
여기서 슬랙 변수 \(\xi_i \)는 i번째 데이터 점의 마진 위반 정도를 나타낸다. \(\xi_i = 0 \)이면 해당 데이터가 마진을 충족함을 의미하며, \(0 < \xi_i < 1 \)이면 해당 데이터가 마진 내부에 위치하지만 여전히 올바르게 분류된 경우를 뜻한다. 만약 \(\xi_i > 1 \)이라면 해당 데이터는 초평면 반대편에 놓여 잘못 분류된 경우다. 추가된 상수 C는 이러한 마진 위반에 대한 페널티(penalty)의 세기를 조절하는 하이퍼파라미터이다. C 값이 클수록 마진 위반에 큰 패널티를 부여하므로 모델은 오류를 최소화하는 방향으로 학습되고 (마진이 좁아지더라도 오분류를 줄이는 방향, 엄격한 모델), C가 작으면 어느 정도 오차를 허용하면서도 마진을 크게 가져가는 방향으로 학습된다. 하드 마진 SVM은 사실 \(C \to \infty \)인 극단적인 경우로 볼 수 있으며, 일반적인 현실 문제에서는 적절한 C 값을 교차검증 등을 통해 찾아 사용한다.
SVM의 듀얼 문제와 라그랑주 승수법
위에 제시한 소프트 마진 SVM의 최적화 문제는 라그랑주 승수법을 이용하여 듀얼 문제(dual problem)로 전환해 푸는 경우가 많다. 듀얼 형태로 변환하면 고차원 공간에서도 효율적으로 문제를 풀 수 있고, 나아가 커널 트릭을 적용하는 기반이 된다. 우선 제약이 있는 최적화 문제에 대해 라그랑주 함수 \(L(w,b,\xi;\alpha,\beta) \)를 구성하고 KKT 조건을 활용하면, primal 변수 \((w,b,\xi) \)와 듀얼 변수 \((\alpha_i, \mu_i) \) 간의 관계를 얻을 수 있다. 그 결과, SVM의 듀얼 최적화 문제는 \(\alpha_i \)에 대한 다음 형태로 유도된다:
위 듀얼 문제에서는 학습 데이터 \(\mathbf{x_i} \)가 오직 내적(dot product) 형태인 \(x_i \cdot x_j \)로만 등장한다는 점을 주목할 필요가 있다. 또한 \(\sum_{i=1}^N \alpha_i y_i = 0 \)라는 제약은 초평면의 절편 b에 대응하는 균형 조건이다. 듀얼 문제를 풀면 \(\alpha_i \) 값들이 나오는데, 이들 중 0이 아닌 \(\alpha_i \)에 대응되는 데이터 포인트들이 바로 SVM의 서포트 벡터(support vector)이다. 다시 말해, 결정 경계에 밀접하게 영향을 미치는 극소수의 데이터만이 \(\alpha_i > 0 \) 값을 가지며, 이러한 데이터 포인트들을 서포트 벡터라고 부른다. 반대로 \(\alpha_i = 0 \)인 데이터들은 최적의 결정 초평면을 형성하는데 기여하지 않으므로, 해당 데이터들은 모델에서 영향력이 없다고 볼 수 있다. 따라서 학습이 완료되면 모델의 가중치 벡터 w는 서포트 벡터들의 선형 결합으로 나타나게 된다. 실제로 KKT 조건을 통해 \(w = \sum_{i=1}^N \alpha_i,y_i,x_i \)임을 얻을 수 있는데, 결국 w는 서포트 벡터에 해당하는 소수의 훈련 샘플들로 표현되며 다른 수천 수만 개의 나머지 샘플들은 배제된다. 이처럼 SVM은 학습 데이터 중 본질적인 경계에 위치한 일부 데이터만을 활용하여 모델을 구성하게 된다.
커널 트릭과 커널 함수
지금까지는 선형(linear) SVM을 가정하고 설명했지만, 실제로는 원본 입력 공간에서 선형으로 분리되지 않는 복잡한 패턴의 데이터도 많다. 이때 SVM을 그대로 적용하면 높은 정확도를 기대하기 어렵다. SVM이 이런 경우에도 강력한 성능을 발휘하도록 하는 비결이 바로 커널 트릭(kernel trick)이다. 커널 트릭의 아이디어는 입력 데이터를 고차원 특징 공간(high-dimensional feature space)으로 매핑(mapping)하여, 그 공간에서는 선형으로 분리가 가능한 상태로 만든 후 다시 SVM을 적용하는 것이다. 즉, 원본 입력 공간에서는 비선형인 결정 경계도, 적절한 고차원 공간으로 변환하면 선형 초평면으로 클래스를 구분할 수 있게 될 수 있다는 가정이다.
Kernel trick |
위 그림의 왼쪽은 원래 2차원 입력 공간에서 두 클래스를 분리하기 위해 비선형 곡선 형태의 결정 경계(빨간 곡선)가 필요한 데이터 분포 예시를 보여준다. 이러한 경우 기존의 선형 SVM으로는 제대로 분류를 수행할 수 없다. 하지만 그림의 오른쪽은 동일한 데이터를 어떤 방식으로든 더 높은 차원의 공간으로 변환한 결과인데, 이 변환 공간에서는 데이터들이 선형으로 분리될 수 있어서 하나의 직선(빨간 직선)으로 두 클래스를 깔끔하게 나누는 것이 가능해진 것을 볼 수 있다. 이처럼 커널 기법을 통해 입력 데이터를 고차원으로 사상하면 원래는 비선형이었던 분류 문제가 선형 문제로 바뀔 수 있다. 커널 트릭은 이러한 매핑을 명시적으로 수행하지 않고도 동일한 효과를 얻을 수 있도록 해주는 기법으로서, SVM의 듀얼 문제에서 입력 벡터가 항상 내적 \(x_i \cdot x_j \) 형태로 등장하는 점을 활용한다. 듀얼 최적화 식에서 모든 \((x_i \cdot x_j) \)를 커널 함수 \(K(x_i, x_j) \)로 치환함으로써, 실제로는 x를 고차원 특징 공간으로 변환하지 않으면서도 수학적으로는 해당 공간에서의 선형 분류를 구현할 수 있다. 즉, \(K(x_i, x_j) = \phi(x_i)\cdot \phi(x_j) \)인 함수 K를 미리 정의해두면, \(\phi(\cdot) \)라는 고차원 매핑을 몰라도 K 값만으로 듀얼 문제를 풀 수 있다는 것이다. 이것이 커널 트릭의 핵심이며, SVM이 복잡한 분류 문제에도 유연하게 적용될 수 있게 해주는 강력한 기능이다.
SVM에서 사용할 커널 함수 K(x, z)는 문제의 특성에 따라 다양한 종류를 선택할 수 있다. 몇 가지 대표적인 커널 함수는 다음과 같다:
-
선형 커널 (Linear Kernel) – \(K(x,z) = x \cdot z \). 가장 간단한 커널로, 입력 공간에서의 일반적인 내적을 사용한다. 데이터가 원본 공간에서 선형 분리가 가능하거나 고차원 매핑이 불필요한 경우에 사용된다 (이 경우는 사실상 커널을 사용하지 않는 선형 SVM과 동일하다).
-
다항 커널 (Polynomial Kernel) – \(K(x,z) = (x \cdot z + c)^d \). 두 벡터의 내적에 상수 c를 더한 값을 d차 다항식으로 승산한 커널이다. 입력 특징들을 d차 항까지 포함하는 다항 특징 공간으로 매핑한 효과를 낸다. d=2이면 2차 곡면(쌍곡면) 형태의 결정 경계를 구현할 수 있고, d가 커질수록 더욱 복잡한 비선형 경계를 표현할 수 있다.
-
가우시안 RBF 커널 (Gaussian Radial Basis Function Kernel) – \(K(x,z) = \exp(-\gamma |x - z|^2) \). 가장 널리 활용되는 커널 중 하나로, 두 점 사이의 유클리드 거리의 크기에 따라 0에서 1 사이의 값을 내어준다. \(\gamma \)는 커널 폭을 조절하는 파라미터이다. RBF 커널은 실질적으로 무한 차원의 특성 공간을 갖는 것으로 간주될 수 있으며, 지역적인 패턴을 잘 포착하는 특성이 있어 다양한 데이터셋에 대해 우수한 성능을 보이는 경향이 있다. SVM에서 기본값(default)으로 자주 사용되는 커널이다.
-
시그모이드 커널 (Sigmoid Kernel) – \(K(x,z) = \tanh(\kappa, x \cdot z + c) \). 신경망의 한 계층에서 사용하는 활성화 함수를 커널로 차용한 형태로, 다층 퍼셉트론(MLP)과 유사한 동작을 SVM에서 구현할 수 있게 해준다. 다만 시그모이드 커널은 다른 커널에 비해 성능이 일관적이지 않고, 특정 조건에서만 유효한 경우가 많아 실제로 널리 쓰이진 않는다.
이 외에도 문제 특성에 맞게 정의되는 전용 커널(예를 들어 문자열 데이터나 그래프 데이터 전용 커널) 등 다양한 커널 함수들이 존재한다. 적절한 커널 함수를 선택하면 SVM은 매우 복잡한 비선형 분류 문제도 효과적으로 학습할 수 있다. 다만 커널 함수 종류 및 해당 파라미터(다항 커널의 차수 d, RBF 커널의 \(\gamma \) 등)의 선택은 성능에 큰 영향을 미치므로, 보통 도메인 지식과 실험을 통해 최적의 설정을 찾아야 한다.
SVM 분류기의 동작 방식
SVM 모델의 학습이 끝나면, 우리는 서포트 벡터들의 리스트와 각 \(\alpha_i \) 값 (및 b 값을 포함한 모델 파라미터)을 얻게 된다. 새로운 데이터 점 \(\mathbf{x} \)의 분류는 학습된 모델을 이용해 다음과 같이 수행된다:
여기서 \(i \in \text{SV} \)는 i번째 훈련 샘플이 서포트 벡터임을 의미하며, \(x_i \)는 해당 서포트 벡터의 입력 벡터, \(y_i \)는 그 레이블, \(K(\cdot,\cdot) \)는 선택된 커널 함수이다. 즉, 새로운 입력 \(\mathbf{x} \)에 대해 각 서포트 벡터와의 커널 값을 구하고, 그 값을 학습된 \(\alpha_i y_i \)로 가중합한 후, 최종적으로 $b$ (초평면의 절편)를 더한 값을 결정 함수 \(f(\mathbf{x}) \)로 계산한다. 이 결정 함수의 부호가 양수이면 +1 클래스로, 음수이면 -1 클래스로 예측하게 된다 (0에 매우 가까운 경우는 초평면 근처에 있는 것으로 볼 수 있다).
특히 선형 커널을 사용하는 경우 \(K(x_i, \mathbf{x}) = x_i \cdot \mathbf{x} \)이므로, 결정 함수는 \(f(\mathbf{x}) = \sum_{i \in \text{SV}} \alpha_i y_i (x_i \cdot \mathbf{x}) + b = \left(\sum_{i \in \text{SV}} \alpha_i y_i x_i\right) \cdot \mathbf{x} + b = w^T \mathbf{x} + b \)의 형태로 단순화된다. 이는 결국 학습된 w와 b를 이용한 선형 방정식과 동일하며, 선형 SVM에서 기대하는 결과와 같다. 하지만 비선형 커널의 경우에는 위 합산이 원본 공간에서의 간단한 내적 형태로 환원되지 않고, 서포트 벡터와의 유사도(커널 값)에 대한 합으로 유지된다.
흥미로운 점은, 새로운 데이터의 예측을 할 때도 서포트 벡터가 아닌 훈련 샘플들은 전혀 등장하지 않는다는 것이다. 오직 모델이 선택한 몇 개의 서포트 벡터들만이 예측 결정에 영향을 준다. 이는 SVM이 학습 데이터 중 결정 경계에 중요한 데이터만 기억하고 나머지는 효과적으로 버리는 셈이므로, 모델이 불필요하게 복잡해지는 것을 막는 역할도 한다. 새로운 데이터가 들어오면 그 데이터가 각 클래스의 서포트 벡터들과 얼마나 비슷한지(얼마나 가까이 위치해 있는지)를 보고 분류하는 것이라고 직관적으로 이해할 수도 있다. 예를 들어 새로운 샘플이 +1 클래스 서포트 벡터들에 매우 가까운 위치라면 \(f(\mathbf{x}) \) 값이 양수로 크게 나올 것이고 +1로 분류될 것이며, 반대로 -1 클래스 서포트 벡터들 쪽에 가깝다면 음수 값이 나오면서 -1로 분류될 것이다.
SVM의 장단점 요약
장점:
-
높은 일반화 성능: SVM은 마진 최대화를 통해 과적합을 방지하고 일반화 성능을 높이고자 한다. 이론적으로 마진이 큰 결정 경계가 구조적 위험을 감소시켜 새로운 데이터에 대해 더 낮은 오류율을 보일 확률이 높다. 이러한 원리는 통계학습이론의 바탕으로 입증되었고, 실무에서도 적절한 파라미터 튜닝 하에 SVM 모델이 비교적 안정적인 성능을 내는 근거가 된다.
-
글로벌 최적해 보장: SVM의 학습은 볼록 최적화 문제(이차 형태의 목적함수와 선형 제약)로 표현되므로, 전역 최적해(global optimum)가 존재하며 지역 최적해에 수렴할 걱정이 없다. 이는 신경망과 같은 비볼록 모델과 대비되는 장점으로, 초기값에 민감하지 않고 언제나 동일한 문제에 대해 동일한 결과를 얻을 수 있다.
-
고차원에서도 효과적: SVM은 차원의 저주(curse of dimensionality)에 비교적 강인한 편이다. 특징 공간의 차원이 매우 높더라도(예를 들어 유전자 데이터나 텍스트 데이터처럼 수천~수만 개의 피처) 과적합을 방지하는 정규화 효과(||w|| 최소화)가 내포되어 있어 잘 동작한다. 또한 입력 피처가 많아도 커널 함수만 적절히 정의되면 복잡한 패턴을 학습할 수 있기 때문에, 사전에 피처 선택을 반드시 해야 하는 것은 아니다.
-
커널 트릭의 유연성: 커널 함수만 바꾸면 동일한 SVM 알고리즘으로 선형 분류부터 복잡한 비선형 분류까지 모두 처리할 수 있다. 다항 커널, RBF 커널 등 다양한 선택지를 통해 도메인 지식에 맞는 형태의 결정 경계를 학습할 수 있으며, 사용자 정의 커널을 만들어 특정 문제에 특화된 학습을 시키는 것도 가능하다. 이처럼 SVM은 범용성과 유연성을 모두 갖춘 모델이다.
-
적은 유효 데이터로 모델 구성: SVM 모델은 최종적으로 서포트 벡터로 선택된 일부 데이터 포인트만으로 결정 경계를 형성한다. 데이터가 크더라도 경계 근처의 비교적 소수 샘플만 모델이 활용하므로, 메모리 측면에서 효율적일 수 있으며 모델 복잡도가 어느 정도 제어된다. (물론 최악의 경우 모든 데이터가 서포트 벡터가 될 수도 있지만, 일반적으로 적절한 C와 커널을 사용하면 서포트 벡터의 수는 전체의 일부에 불과하다.)
단점:
-
대규모 데이터에 대한 느린 학습 속도: SVM의 학습 알고리즘(특히 커널 SVM)은 훈련 샘플 개수 N에 대해 \(O(N^2) \) 이상의 복잡도를 갖는다. 수천~수만 개 이상의 데이터에 대해서는 학습에 매우 긴 시간이 걸리고 메모리 사용량도 크게 증가한다. 아주 큰 규모의 데이터셋에서는 SVM보다는 확률적 경사하강법을 사용하는 선형 모델이나, 온라인 학습 방법, 혹은 다른 효율적인 알고리즘을 고려해야 할 수 있다.
-
많은 서포트 벡터: 이상적으로는 서포트 벡터의 수가 적으면 좋지만, 데이터가 복잡하거나 겹치는 부분이 많으면 서포트 벡터의 수가 많아질 수 있다. 서포트 벡터가 많다는 것은 모델이 실질적으로 많은 훈련 샘플에 의존하고 있다는 뜻이며, 이는 예측 시에도 많은 계산을 필요로 하고 메모리 사용이 증가함을 의미한다. 최악의 경우 훈련 데이터 대부분이 서포트 벡터로 남아버리면 모델 복잡도 면에서 이득이 없게 된다.
-
하이퍼파라미터 튜닝의 필요성: SVM은 C 값 및 커널 함수의 파라미터들(예: RBF 커널의 \(\gamma \), 다항 커널의 차수 d 등)을 적절히 설정해야 최상의 성능을 발휘한다. 이러한 파라미터를 잘못 설정하면 마진이 너무 좁아서 과적합이 발생하거나 너무 넓어서 과소적합이 발생하는 등 성능 저하가 일어난다. 따라서 교차 검증 등을 통해 최적의 파라미터를 찾아야 하며, 이 과정에 시간이 소요될 수 있다.
-
확률적 해석의 부재: SVM의 출력은 이진 분류의 경우 단순히 +1 또는 -1 레이블이다(또는 결정 함수의 부호). 모델의 출력값을 확률로 직접 해석하기 어려우며, 로지스틱 회귀처럼 자연스럽게 클래스 확률을 제공하지 않는다. 필요하다면 Platt Scaling 등의 방법으로 결정 함수 값을 확률로 보정할 수 있지만 별도의 단계를 거쳐야 한다.
-
커널 선택의 어려움: 커널 함수를 자유롭게 고를 수 있다는 것은 장점이지만 역으로 말하면 문제에 최적인 커널을 찾아야 하는 부담이 있다. 선형적으로 구분이 어려운 문제라 하더라도 모든 커널이 다 잘 통하는 것은 아니며, 커널 함수를 잘못 선택하면 SVM도 좋은 성능을 내지 못한다. 어떤 커널이 적합한지는 사전에 알기 어려워 여러 후보를 시험해봐야 하며, 이는 하이퍼파라미터 튜닝과 맞물려 추가적인 복잡성을 야기한다.
-
규모가 큰 문제에서의 한계: 딥러닝 등의 등장으로, 특성이 복잡하고 데이터가 방대한 분야에서는 SVM이 최선의 선택이 아닌 경우가 많아졌다. 이미지 인식이나 음성 처리처럼 매우 복잡한 패턴 인식 문제에서는 대규모 신경망 모델이 SVM을 대체하였고, SVM으로 이러한 문제를 풀기에는 커널을 정의하기도 어렵고 데이터 양도 감당하기 힘든 경우가 많다. 따라서 최근 트렌드에서는 SVM의 활용 범위가 다소 줄어든 면이 있다.
결론
SVM은 1990년대 중반에 제안된 이후 많은 분야에 성공적으로 적용되어왔다. 특히 텍스트 분류(예: 스팸 이메일 필터링, 문서 주제 분류)나 이미지 분류, 바이오인포매틱스 분야 등에서 뛰어난 성능을 보여주었으며, 딥러닝이 본격적으로 부상하기 전까지는 최고의 범용 분류기 중 하나로 손꼽혔다. 예를 들어, 필기체 숫자 인식(MNIST) 문제에서 다층 신경망보다 성능이 좋은 결과를 내기도 했고, SVM 특유의 안정적인 일반화 성능 덕분에 텍스트 마이닝이나 유전자 데이터 분석처럼 고차원 특성공간을 가지는 문제에서 애용되었다.
오늘날에는 딥러닝으로 대표되는 신경망 모델들이 이미지나 음성처럼 복잡한 데이터에서 두각을 나타내고 있지만, SVM은 여전히 중소 규모의 데이터셋이나 특성이 잘 정제된 문제에 대해서는 강력한 도구로 활용되고 있다. 특히 데이터의 양이 많지 않고 특성 공간이 비교적 선명하게 정의된 경우(예를 들어 몇 백 개 수준의 피처를 갖는 표 형태의 데이터 등)에는 신경망보다 SVM이 오히려 적은 데이터로도 높은 성능을 낼 때가 있다. 또한 딥러닝 모델에서 추출한 특징을 입력으로 받아 최종 분류를 수행하는 단계에 SVM을 사용하거나, 앙상블의 한 구성 요소로 SVM을 포함시키는 등 다른 기법과의 조합으로도 활용된다. 무엇보다 SVM은 머신러닝 이론의 관점에서 최대 마진과 듀얼 최적화 및 커널 방법 등 중요한 개념들을 집약적으로 보여주는 알고리즘이기 때문에, 현대 머신러닝의 고전으로서 그 원리를 이해하고 응용할 수 있는 가치가 매우 크다.
추천글:
[기계학습개론] Supervised learning technique - Decision tree & Ensemble