서포트 벡터 머신 (SVM)
1. 개요
1. 개요
서포트 벡터 머신은 지도 학습 기반의 분류 및 회귀 분석 모델이다. 주로 이진 분류 문제에 사용되며, 패턴 인식과 통계적 학습 이론에 기반을 둔다. 핵심 아이디어는 데이터를 분류하는 결정 경계와 가장 가까운 데이터 포인트들 사이의 거리, 즉 마진을 최대화하는 것이다. 이때 결정 경계에 가장 가까이 위치한 데이터 포인트들을 서포트 벡터라고 부른다.
SVM은 선형 분류가 가능한 경우와 불가능한 경우 모두에 적용된다. 선형으로 분리 가능한 데이터에서는 하드 마진을 사용하여 완벽한 분류를 시도한다. 그러나 현실 세계의 데이터는 노이즈나 이상치를 포함하는 경우가 많아 완벽한 선형 분리가 어렵다. 이를 위해 소프트 마진과 슬랙 변수 개념을 도입하여 일부 오분류를 허용하면서도 마진을 최대화하는 방식으로 일반화 성능을 높인다.
선형 분리가 불가능한 데이터를 다루기 위해 SVM은 커널 트릭이라는 기법을 사용한다. 이 기법은 원본 특성 공간의 데이터를 고차원의 특성 공간으로 비선형 매핑하여, 그 공간에서 선형 분리가 가능하도록 만든다. 실제 계산은 고차원 공간에서 직접 수행되지 않고, 커널 함수를 통해 효율적으로 이루어진다. 대표적인 커널 함수로는 선형 커널, 다항식 커널, RBF 커널 등이 있다.
SVM은 1990년대에 블라디미르 배프니크와 알렉세이 체르보넨키스에 의해 제안되었다[1]. 비교적 적은 수의 데이터로도 좋은 성능을 보이며, 특히 고차원 데이터 처리에 효과적이다. 그러나 대규모 데이터셋에 대한 학습 시간이 길고, 하이퍼파라미터 설정과 커널 선택에 성능이 크게 의존한다는 단점도 있다.
2. 수학적 배경
2. 수학적 배경
서포트 벡터 머신의 핵심 수학적 개념은 데이터를 분류하는 최적의 결정 경계를 찾는 것이다. 이는 초평면을 이용하여 두 클래스 사이의 마진을 최대화하는 문제로 공식화된다.
최대 마진 분류기
이상적인 상황에서, SVM은 데이터가 선형적으로 분리 가능하다고 가정한다. 목표는 두 클래스의 데이터 포인트들 사이에 가장 넓은 간격을 만드는 초평면을 찾는 것이다. 이 간격을 마진이라고 하며, 마진의 경계에 위치한 데이터 포인트들을 서포트 벡터라고 부른다. 최종 결정 경계는 이 서포트 벡터들에 의해서만 결정된다[2]. 수학적으로 이 문제는 이차 계획법 문제로 귀결되며, 라그랑주 승수법을 통해 효율적으로 해결할 수 있다.
커널 트릭
실제 데이터는 선형적으로 분리되지 않는 경우가 많다. 커널 트릭은 이러한 데이터를 고차원 특성 공간으로 매핑하여 선형 분리가 가능하도록 만드는 기법이다. 핵심은 데이터를 명시적으로 고차원으로 변환하지 않고, 원본 공간에서의 내적 연산만으로 고차원에서의 분리 초평면을 계산할 수 있다는 것이다. 이를 가능하게 하는 함수가 커널 함수이다. 대표적인 커널 함수로는 선형 커널, 다항식 커널, RBF 커널 등이 있다.
소프트 마진과 슬랙 변수
모든 데이터가 완벽하게 분리되기를 기대하는 것은 현실적이지 않다. 노이즈나 이상치로 인해 마진 안쪽으로 침범하는 데이터가 존재할 수 있다. 이를 허용하기 위해 소프트 마진 개념이 도입되었다. 이 접근법은 슬랙 변수를 사용하여 각 데이터 포인트가 마진을 얼마나 위반하는지를 정량화한다. 그 후, 마진의 최대화와 분류 오류의 최소화를 함께 고려하는 새로운 목적 함수를 최적화한다. 이를 조절하는 매개변수인 C 하이퍼파라미터는 마진의 폭과 오분류 허용 정도 사이의 트레이드오프를 결정한다.
2.1. 최대 마진 분류기
2.1. 최대 마진 분류기
최대 마진 분류기는 서포트 벡터 머신의 핵심 개념으로, 두 클래스를 구분하는 결정 경계를 찾을 때, 경계로부터 가장 가까운 데이터 샘플(서포트 벡터)까지의 거리, 즉 마진을 최대화하는 원리에 기반한다. 이는 단순히 데이터를 분류하는 것뿐만 아니라, 미래에 관측될 새로운 데이터에 대한 일반화 성능을 최대화하는 것을 목표로 한다. 마진이 클수록 결정 경계는 더욱 견고해지며, 잡음에 덜 민각해진다.
수학적으로, 이 문제는 이차 계획법 문제로 공식화된다. 선형으로 분리 가능한 데이터를 가정할 때, 결정 경계는 w·x + b = 0 형태의 초평면으로 표현된다. 여기서 w는 법선 벡터, b는 편향이다. 이때, 모든 데이터 포인트에 대해 y_i(w·x_i + b) ≥ 1의 제약 조건을 만족하면서, 법선 벡터 w의 노름(||w||)을 최소화하는 w와 b를 찾는 것이 목표이다. ||w||를 최소화하는 것은 사실상 마진(2/||w||)을 최대화하는 것과 동일하다.
이 최적화 문제의 해는 데이터 샘플 중 일부, 즉 마진의 경계에 위치하는 샘플들에 의해서만 결정된다. 이 샘플들을 서포트 벡터라고 부른다. 최종 결정 함수는 다음과 같은 형태를 띤다.
f(x) = sign( Σ α_i y_i (x_i·x) + b )
여기서 α_i는 라그랑주 승수로, 서포트 벡터에 대해서만 0보다 큰 값을 가진다. 이는 모델이 전체 데이터가 아닌 서포트 벡터만을 기억함으로써 효율적인 표현이 가능함을 의미한다.
2.2. 커널 트릭
2.2. 커널 트릭
커널 트릭은 서포트 벡터 머신이 선형 분리가 불가능한 데이터를 처리하기 위해 사용하는 핵심 기법이다. 이 방법은 원본 입력 공간의 데이터를 고차원의 특성 공간으로 비선형 매핑하여, 그 공간에서 선형 분리 가능하도록 만든다. 직접적인 고차원 변환은 계산 비용이 매우 높을 수 있지만, 커널 트릭은 실제 변환을 수행하지 않고도 변환된 공간에서의 내적 값을 효율적으로 계산할 수 있게 해준다.
구체적으로, 두 데이터 포인트 x와 z가 특성 함수 φ에 의해 고차원 공간으로 매핑될 때, 그 공간에서의 내적 φ(x)·φ(z)를 계산하는 대신, 원래 공간에서 정의된 커널 함수 K(x, z)의 값을 직접 계산한다. 가장 널리 사용되는 커널 함수로는 RBF 커널과 다항식 커널이 있다. 이 트릭을 적용하면, 최적화 문제의 목적 함수와 결정 경계는 오직 데이터 포인트 간의 커널 함수 값에만 의존하게 된다.
커널 함수 종류 | 수식 (예시) | 주요 특징 |
|---|---|---|
선형 커널 | K(x, z) = x·z | 고차원 변환을 수행하지 않음 |
다항식 커널 | K(x, z) = (γ x·z + r)^d | 차수 d에 따라 결정 경계의 복잡도 조절 |
RBF 커널 | K(x, z) = exp(-γ \ | \ |
이 접근법의 핵심 이점은 계산의 복잡성이 원본 데이터의 차원이 아닌, 데이터 포인트의 개수에 좌우된다는 점이다. 따라서 매우 고차원의 특성 공간(심지어 무한 차원의 공간[3])을 암묵적으로 사용하면서도, 실제 계산은 원본 차원에서 효율적으로 수행할 수 있다. 이는 서포트 벡터 머신을 비선형 분류 및 회귀 문제에 매우 효과적으로 적용할 수 있는 기반을 제공한다.
2.3. 소프트 마진과 슬랙 변수
2.3. 소프트 마진과 슬랙 변수
완벽하게 분리 가능한 데이터는 현실에서 드물다. 노이즈나 이상치가 존재하거나 클래스 간 경계가 명확하지 않은 경우, 최대 마진 분류기의 엄격한 제약 조건은 과적합을 초래하거나 해를 찾지 못하게 만든다. 이를 해결하기 위해 도입된 개념이 소프트 마진이다. 소프트 마진은 모든 데이터 포인트가 마진 경계 바깥에 위치해야 한다는 조건을 완화하여, 일부 샘플이 마진 내부나 심지어 반대 클래스 영역에 침범하는 것을 허용한다.
이러한 침범을 허용하는 대가로, 슬랙 변수 ξ_i (제타)가 각 학습 데이터 포인트마다 도입된다. 슬랙 변수는 해당 데이터 포인트가 마진 경계를 얼마나 위반했는지를 수치화한다. 슬랙 변수가 0이면 샘플은 마진 경계 바깥에 올바르게 위치하며, 0과 1 사이면 마진 내부에 있지만 올바른 쪽에 있으며, 1보다 크면 결정 경계를 넘어 반대 클래스로 잘못 분류된 것이다.
소프트 마진 SVM의 최적화 문제는 다음과 같이 재정의된다. 목표는 마진을 최대화하는 동시에 모든 슬랙 변수의 합을 최소화하는 것이다. 이는 새로운 하이퍼파라미터 C를 통해 조절된다. C는 오분류에 대한 페널티의 강도를 결정하는 규제 매개변수이다. C 값이 크면 슬랙 변수의 합에 대한 페널티가 커져 마진이 좁아지고 오분류를 허용하지 않으려는 경향이 강해진다. 반대로 C 값이 작으면 마진이 넓어지는 대신 일부 오분류를 더 허용하게 된다.
C 값의 영향 | 마진 크기 | 오분류 허용도 | 모델 복잡도 |
|---|---|---|---|
C 값이 큼 | 좁아짐 | 낮음 (엄격) | 높아짐 (과적합 가능성 증가) |
C 값이 작음 | 넓어짐 | 높음 (관대) | 낮아짐 (과소적합 가능성 증가) |
결국, 소프트 마진과 슬랙 변수의 도입은 SVM을 이론적인 이상화된 설정에서 벗어나 실세계의 복잡하고 잡음이 섞인 데이터에 적용 가능하게 만드는 핵심 기법이다. 하이퍼파라미터 C를 조정함으로써 모델의 복잡도와 일반화 성능 사이의 균형을 찾을 수 있다.
3. 커널 함수의 종류
3. 커널 함수의 종류
커널 함수는 서포트 벡터 머신이 선형 분리가 불가능한 데이터를 고차원 특징 공간으로 매핑하여 선형 분리 가능하게 만드는 핵심 기법이다. 이 과정에서 실제 고차원 공간으로의 변환을 계산하지 않고, 원본 공간의 데이터 점들 간의 내적만으로 고차원 공간에서의 내적 값을 구할 수 있게 해주는 것이 커널 트릭이다. 주로 사용되는 커널 함수에는 몇 가지 표준적인 형태가 존재한다.
가장 기본적인 형태는 선형 커널이다. 이는 데이터를 다른 공간으로 변환하지 않고 원본 공간에서의 선형 분리를 수행한다. 수식은 $K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i \cdot \mathbf{x}_j$ 로 표현된다. 매개변수가 없고 계산이 빠르다는 장점이 있어, 데이터가 원래부터 선형 분리가 가능하거나 고차원 특성을 이미 가지고 있을 때 유용하게 적용된다.
비선형 관계를 모델링하기 위해 널리 쓰이는 커널은 다항식 커널과 RBF 커널(방사 기저 함수 커널, 또는 가우시안 커널)이다. 다항식 커널은 $K(\mathbf{x}_i, \mathbf{x}_j) = (\gamma \mathbf{x}_i \cdot \mathbf{x}_j + r)^d$ 의 형태를 가지며, 차수 $d$에 의해 결정되는 다항식 경계를 생성한다. RBF 커널은 $K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2)$ 로 정의되며, 매개변수 $\gamma$가 결정하는 반경을 가진 지역적 영향력을 바탕으로 매우 유연한 결정 경계를 형성한다. RBF 커널은 특별한 사전 지식이 없는 한 가장 일반적으로 먼저 시도되는 커널이다.
그 외에 시그모이드 커널이 있다. 이 커널은 $K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\gamma \mathbf{x}_i \cdot \mathbf{x}_j + r)$ 의 형태를 가지며, 다층 퍼셉트론의 활성화 함수와 유사한 형태이다. 그러나 이 커널이 양의 준정부호 행렬을 생성한다는 보장이 없기 때문에[4], 수렴이 보장되지 않는 경우가 발생할 수 있다. 따라서 시그모이드 커널의 사용은 다른 커널에 비해 제한적이다.
커널 종류 | 수식 | 주요 매개변수 | 특징 |
|---|---|---|---|
선형 커널 | $K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i \cdot \mathbf{x}_j$ | 없음 | 계산 효율적, 선형 분리 |
다항식 커널 | $K(\mathbf{x}_i, \mathbf{x}_j) = (\gamma \mathbf{x}_i \cdot \mathbf{x}_j + r)^d$ | 차수($d$), $\gamma$, $r$ | 다항식 결정 경계 |
RBF 커널 | $K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \ | \mathbf{x}_i - \mathbf{x}_j\ | ^2)$ |
시그모이드 커널 | $K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\gamma \mathbf{x}_i \cdot \mathbf{x}_j + r)$ | $\gamma$, $r$ | 퍼셉트론 유사, 조건부 사용 |
3.1. 선형 커널
3.1. 선형 커널
선형 커널은 서포트 벡터 머신에서 사용되는 가장 기본적인 커널 함수이다. 이 커널은 입력 데이터를 고차원 특성 공간으로 변환하지 않고, 원본 입력 공간에서의 내적을 직접 계산한다. 수식으로 표현하면 두 데이터 포인트 $\mathbf{x}_i$와 $\mathbf{x}_j$ 사이의 선형 커널 값은 $K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i \cdot \mathbf{x}_j$ 또는 $K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T \mathbf{x}_j$로 정의된다. 이는 본질적으로 선형 분류기를 구성하는 것과 같으며, 최대 마진 분류기의 원형에 해당한다.
선형 커널의 주요 특징은 매개변수가 없다는 점이다. 다른 커널 함수들과 달리 튜닝할 하이퍼파라미터가 존재하지 않아 모델 선택 과정이 단순하다. 또한 계산 복잡도가 낮고 실행 속도가 빠르다는 장점이 있다. 이 커널은 데이터가 원본 특성 공간에서 선형적으로 분리 가능할 때, 즉 두 클래스를 구분하는 결정 경계가 초평면으로 표현될 수 있을 때 가장 효과적이다.
특징 | 설명 |
|---|---|
수식 | $K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T \mathbf{x}_j$ |
하이퍼파라미터 | 없음 |
주요 장점 | 계산 효율성 높음, 과적합 가능성 낮음, 해석 용이 |
주요 단점 | 복잡한 비선형 관계를 모델링할 수 없음 |
적합한 경우 | 특성 수가 많을 때, 데이터가 선형 분리 가능할 때 |
선형 커널은 일반적으로 매우 많은 수의 특성을 가진 데이터셋에서 좋은 성능을 보인다. 예를 들어, 텍스트 분류 문제에서 각 단어를 특성으로 사용하는 Bag-of-words 모델은 수만 개의 특성을 가지는 경우가 많다. 이런 고차원 공간에서는 데이터가 선형 분리될 가능성이 높아지므로, 복잡한 비선형 커널을 사용하지 않고도 선형 커널로 충분한 분류 성능을 얻을 수 있다. 또한 모델의 가중치 벡터를 분석하여 어떤 특성이 분류에 기여하는지 직접 해석할 수 있어 모델의 투명성이 높다는 장점도 있다.
3.2. 다항식 커널
3.2. 다항식 커널
다항식 커널은 입력 공간의 데이터를 고차원의 특성 공간으로 매핑할 때, 원래 변수들의 다항식 조합을 사용하는 커널 함수이다. 이 커널은 비선형 결정 경계를 학습하는 데 효과적이며, 특히 데이터 간의 상호작용(교호작용)을 포착하는 데 유용하다.
다항식 커널의 일반적인 형태는 다음과 같다.
K(x, y) = (γ * x^T * y + r)^d
여기서 x와 y는 입력 벡터, γ(감마)는 스케일 매개변수, r은 상수항, d는 다항식의 차수를 나타낸다. γ와 r은 커널의 형태를 조절하는 하이퍼파라미터이다. 가장 간단한 형태는 γ=1, r=1인 (x^T * y + 1)^d이다. 이 커널을 사용하면 서포트 벡터 머신은 원본 특성들의 d차 다항식으로 구성된 새로운 고차원 공간에서 최적의 초평면을 찾는다.
다항식 커널의 주요 매개변수와 특징은 다음과 같다.
매개변수 | 역할 | 영향 |
|---|---|---|
차수( | 다항식의 최고 차수를 결정 | 값이 클수록 더 복잡한(유연한) 결정 경계를 생성하지만, 과적합 위험이 증가함 |
계수( | 내적 항의 스케일을 조정 | 값이 크면 각 데이터 포인트의 영향력이 커져 결정 경계가 더 불규칙해질 수 있음 |
상수항( | 상수 특성의 가중치를 조정 | 차수 |
차수 d가 1이고 r=0인 경우, 다항식 커널은 선형 커널과 동일해진다. 따라서 다항식 커널은 선형 모델을 일반화한 형태로 볼 수 있다. 그러나 차수가 높아질수록 계산 비용이 증가하고, 수치적 불안정성이 발생할 수 있다는 단점이 있다. 이 커널은 두 데이터 포인트의 유사성을 그들 사이의 다항식 함수로 정의하며, 텍스트 분류나 특정 유형의 패턴 인식 문제에서 역사적으로 널리 사용되었다.
3.3. RBF 커널
3.3. RBF 커널
RBF 커널 또는 방사 기저 함수 커널은 서포트 벡터 머신에서 가장 널리 사용되는 커널 함수 중 하나이다. 이 커널은 K(x_i, x_j) = exp(-γ * ||x_i - x_j||^2)의 수학적 형태를 가지며, 여기서 γ(감마)는 커널의 폭을 조절하는 하이퍼파라미터이고 ||x_i - x_j||는 두 데이터 포인트 사이의 유클리드 거리이다. 이 함수는 입력 데이터를 무한 차원의 특성 공간으로 매핑하는 효과를 가지며, 복잡한 비선형 결정 경계를 학습하는 데 매우 효과적이다.
RBF 커널의 주요 특징은 두 데이터 포인트 간의 유사성을 거리의 함수로 측정한다는 점이다. 거리가 가까울수록 커널 값은 1에 가까워지고, 거리가 멀어질수록 0에 수렴한다. γ 파라미터는 이 감쇠 속도를 결정하는데, γ 값이 크면 결정 경계가 더 복잡해지고 개별 데이터 포인트에 민감하게 반응하며, γ 값이 작으면 더 부드럽고 일반화된 경계를 형성한다. 이는 과적합과 과소적합 사이의 균형을 맞추는 데 중요한 역할을 한다.
RBF 커널의 성능은 주로 정규화 파라미터 C와 커널 파라미터 γ의 선택에 크게 의존한다. 일반적으로 그리드 탐색이나 무작위 탐색과 같은 방법을 통해 최적의 하이퍼파라미터 조합을 찾는다. 다른 커널과 비교했을 때 RBF 커널은 선형적으로 분리할 수 없는 대부분의 문제에 대해 좋은 성능을 보이는 경향이 있어, 기본 선택으로 권장되는 경우가 많다. 다만, 데이터의 특성과 규모에 따라 선형 커널이나 다항식 커널이 더 적합할 수도 있다.
파라미터 | 역할 | 영향 |
|---|---|---|
| 커널 폭 조절 | 값이 크면 복잡한 경계(과적합 위험), 값이 작으면 부드러운 경계(과소적합 위험) |
| 정규화 강도 조절 | 값이 크면 마진 위반에 대한 패널티 강화(과적합 위험), 값이 작으면 패널티 완화(과소적합 위험) |
3.4. 시그모이드 커널
3.4. 시그모이드 커널
시그모이드 커널은 퍼셉트론이나 다층 퍼셉트론의 활성화 함수로 널리 알려진 시그모이드 함수의 형태를 취하는 커널 함수이다. 이 커널은 두 데이터 포인트의 내적을 시그모이드 함수에 통과시켜 비선형 매핑을 수행한다. 수학적으로 시그모이드 커널은 $K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\alpha \mathbf{x}_i^T \mathbf{x}_j + c)$ 형태로 정의되며, 여기서 $\alpha$는 스케일 매개변수, $c$는 상수항이다.
이 커널은 일부 조건에서 다층 퍼셉트론 신경망의 동작을 모방할 수 있다는 점에서 역사적 의미가 있다. 초기 서포트 벡터 머신 연구에서 시그모이드 커널을 사용하면 특정 매개변수 설정 하에서 2층 신경망과 유사한 성능을 보일 수 있음이 지적되었다[5]. 그러나 실제 응용에서는 다른 커널에 비해 덜 일반적으로 사용된다.
시그모이드 커널의 주요 특징과 주의점은 다음과 같다.
조건부 양정값 성질: 시그모이드 커널은 모든 매개변수 $\alpha$와 $c$에 대해 양정값 커널이 되지 않을 수 있다. 이는 최적화 문제가 볼록 최적화가 아닐 수 있어 해의 수렴을 보장하기 어렵게 만든다.
매개변수 민감도: 성능이 $\alpha$와 $c$의 선택에 매우 민감하게 의존하며, 적절한 값을 찾기 위한 하이퍼파라미터 탐색이 필요하다.
사용 영역: 주로 신경망 이론과의 연관성 때문에 학문적 관심을 받았으나, 실무에서는 성능과 안정성 면에서 RBF 커널이나 다항식 커널이 더 선호되는 경향이 있다.
따라서 시그모이드 커널은 커널 트릭의 한 유형으로 이해되지만, 현대의 머신러닝 실무에서 첫 번째 선택지로 고려되지는 않는다.
4. 학습 알고리즘
4. 학습 알고리즘
서포트 벡터 머신의 학습은 주어진 훈련 데이터로부터 최적의 결정 경계를 정의하는 서포트 벡터와 모델 매개변수를 찾는 과정이다. 이는 본질적으로 이차 계획법 문제를 푸는 것과 같다. 기본적인 하드 마진 SVM의 목표 함수는 마진을 최대화하는 동시에 모든 데이터 포인트를 정확히 분류하는 초평면의 가중치 벡터 w와 편향 b를 찾는 것이다. 이 최적화 문제는 라그랑주 승수법을 적용하여 듀얼 문제로 변환하여 해결하는 것이 일반적이다. 듀얼 문제는 원래의 프라이멀 문제보다 계산상의 이점이 있으며, 해는 라그랑주 승수 α_i로 표현되는 서포트 벡터에만 의존한다는 특징이 있다.
이차 계획법 문제를 해결하기 위한 범용 QP 솔버도 사용 가능하지만, SVM의 특수한 구조를 효율적으로 활용하는 전용 알고리즘들이 개발되었다. 그 중 가장 널리 알려진 것은 존 플랫이 제안한 SMO 알고리즘이다. SMO 알고리즘은 큰 이차 계획법 문제를 여러 개의 작은 부분 문제로 분해하여 순차적으로 해결한다. 매 단계에서 두 개의 라그랑주 승수 α_i, α_j만을 선택하여 최적화하고, 나머지는 고정시킨다. 이 작은 부분 문제는 해석적 해가 존재하여 매우 빠르게 계산될 수 있다. 수렴할 때까지 이 과정을 반복함으로써 전체 문제를 효율적으로 해결한다. SMO 알고리즘의 등장은 SVM의 실용적 적용을 크게 촉진시켰다.
알고리즘 | 주요 특징 | 장점 |
|---|---|---|
큰 QP 문제를 2변수 부분 문제로 분해 | 메모리 효율적, 빠른 수렴, 구현이 비교적 간단 | |
범용 이차 계획법 솔버 | 표준 최적화 도구 활용 | 소규모 문제에 직관적 적용 가능 |
한 번에 하나의 변수씩 최적화 | 개념이 단순함 |
소프트 마진 SVM을 학습할 때는 슬랙 변수 ξ_i와 규제 하이퍼파라미터 C가 목적 함수에 추가된다. 이는 오분류나 마진 내부의 데이터를 허용하는 정도를 조절한다. C 값이 크면 오분류에 대한 패널티가 커져 하드 마진에 가까운 모델이 학습되고, 작으면 마진이 넓어지지만 오분류를 더 허용한다. 학습 알고리즘의 내부는 달라지지만, 최종적으로 듀얼 문제를 푸는 형태로 귀결되며, 커널 트릭을 통해 비선형 문제로 자연스럽게 확장 적용될 수 있다.
4.1. SMO 알고리즘
4.1. SMO 알고리즘
SMO(Sequential Minimal Optimization) 알고리즘은 서포트 벡터 머신의 학습 문제를 효율적으로 해결하기 위해 1998년 존 플랫에 의해 제안된 방법이다[6]. 이 알고리즘은 기존의 이차 계획법 솔버를 사용하는 전역 최적화 방식과 달리, 문제를 작은 부분 문제로 분해하여 순차적으로 해결함으로써 계산 효율성을 크게 향상시킨다.
알고리즘의 핵심은 두 개의 라그랑주 승수를 선택하여 그 값만을 최적화하고, 나머지 변수는 고정시키는 과정을 반복하는 것이다. 이렇게 최적화할 변수를 두 개로 제한하면 부분 문제에 대한 해가 분석적으로, 즉 폐쇄형 해를 통해 빠르게 구해질 수 있다. 일반적인 선택 전략은 첫 번째 변수를 KKT 조건을 위반하는 변수 중에서 선택하고, 두 번째 변수는 첫 번째 변수와의 차이를 최대화하는 기준으로 선택한다. 이 과정은 모든 변수가 KKT 조건을 만족할 때까지 반복된다.
SMO 알고리즘의 주요 장점은 메모리 사용량이 적고 구현이 비교적 간단하다는 점이다. 또한, 수렴성이 보장되어 있다. 이는 대규모 데이터셋에 대해 서포트 벡터 머신을 실용적으로 적용할 수 있는 길을 열었다. 알고리즘의 성능은 변수 선택 휴리스틱에 크게 의존하며, 다양한 개선된 휴리스틱이 이후 연구를 통해 제안되었다.
특징 | 설명 |
|---|---|
개발자 | 존 플랫 (John C. Platt) |
발표 연도 | 1998년 |
핵심 아이디어 | 두 개의 라그랑주 승수에 대한 부분 문제를 순차적 최적화 |
주요 장점 | 메모리 효율성 높음, 구현 용이, 수렴 보장 |
주요 용도 | 대규모 SVM 학습 문제 해결 |
이 알고리즘은 LibSVM, Scikit-learn의 SVM 모듈 등 대부분의 현대 서포트 벡터 머신 구현체의 핵심 학습 엔진으로 채택되어 널리 사용되고 있다.
4.2. 이차 계획법
4.2. 이차 계획법
서포트 벡터 머신의 학습 문제는 이차 계획법 문제로 정식화된다. 이차 계획법은 목적 함수가 변수들의 이차 함수이고, 제약 조건이 선형 등식 또는 부등식으로 주어지는 최적화 문제의 한 종류이다. SVM의 핵심 목표인 마진을 최대화하는 것은, 제약 조건 하에서 라그랑주 승수법을 도입하여 유도된 이차 목적 함수를 최소화하는 문제와 동치이다.
표준적인 소프트 마진 SVM의 최적화 문제는 다음과 같은 형태를 가진다. 여기서 $w$는 초평면의 법선 벡터, $C$는 규제 매개변수, $\xi_i$는 슬랙 변수이다.
최적화 문제 구성 요소 | 수학적 표현 |
|---|---|
목적 함수 (최소화) | $\frac{1}{2}\ |
제약 조건 | $y_i (w \cdot x_i + b) \geq 1 - \xi_i$, for $i = 1, ..., n$ |
$\xi_i \geq 0$, for $i = 1, ..., n$ |
이 문제는 볼록 최적화 문제이며, 전역 최적해가 존재한다는 것이 보장된다. 이를 풀기 위해 라그랑주 듀얼 문제로 변환하는 것이 일반적이다. 듀얼 문제는 원문제보다 더 효율적으로 풀 수 있으며, 그 결과 서포트 벡터에 해당하는 데이터 점들에 대해서만 라그랑주 승수 $\alpha_i$가 0보다 큰 값을 가지게 된다[7]. 최종적인 분류 함수는 이 서포트 벡터들과 그에 대응하는 $\alpha_i$ 값들, 그리고 선택된 커널 함수 $K(x_i, x)$에 의해 결정된다.
이차 계획법 솔버는 이러한 문제를 해결하는 일반적인 도구이지만, 대규모 데이터셋에는 비효율적일 수 있다. 이 때문에 SMO 알고리즘과 같은 전용 최적화 알고리즘이 개발되었다. SMO 알고리즘은 큰 이차 계획법 문제를 여러 개의 작은 부분 문제로 분해하여 순차적으로 해결함으로써 효율성을 높인다.
5. 장단점
5. 장단점
서포트 벡터 머신은 고차원 공간에서 효과적으로 작동하며, 특히 특징의 수가 샘플 수보다 많을 때 유용하다. 이는 과적합을 잘 통제하면서도 강력한 일반화 성능을 보여준다. 또한, 커널 트릭을 통해 비선형 결정 경계를 명시적으로 구성하지 않고도 복잡한 분류 문제를 해결할 수 있다. 메모리 사용 측면에서도, 최적의 결정 경계를 정의하는 데는 서포트 벡터만이 필요하므로 모델이 비교적 효율적이다.
그러나 서포트 벡터 머신에는 몇 가지 단점도 존재한다. 학습 데이터의 크기가 매우 클 경우, 학습 시간이 길어지고 계산 비용이 크게 증가할 수 있다. 또한, 커널 함수와 관련된 하이퍼파라미터 (예: RBF 커널의 감마 값, 소프트 마진의 C 값)의 선택이 모델 성능에 매우 민감하게 영향을 미친다. 이러한 파라미터를 튜닝하는 과정은 종종 계산 집약적이다.
장점 | 단점 |
|---|---|
고차원 데이터에 효과적 | 대규모 데이터셋에서 학습 속도가 느림 |
과적합에 강한 일반화 성능 | 하이퍼파라미터 선택에 민감함 |
결정 경계를 정의하는 서포트 벡터만으로 모델 표현 가능 (메모리 효율적) | |
커널 트릭을 통한 유연한 비선형 모델링 | 모델 해석이 상대적으로 어려움 |
마지막으로, 서포트 벡터 머신은 기본적으로 이진 분류기에 해당하며, 다중 클래스 분류 문제를 해결하기 위해서는 일대일 또는 일대다 방식과 같은 추가적인 전략이 필요하다. 또한, 생성된 모델의 해석이 로지스틱 회귀나 의사결정 나무에 비해 직관적이지 않을 수 있다.
6. 응용 분야
6. 응용 분야
서포트 벡터 머신은 이진 분류 문제에 특화된 강력한 지도 학습 모델로, 다양한 실제 문제에 적용된다. 그 핵심 원리인 최대 마진 분류와 커널 트릭은 고차원 또는 비선형 데이터를 처리하는 데 효과적이어서 여러 분야에서 성공적으로 활용된다.
주요 응용 분야 중 하나는 이미지 분류이다. 얼굴 인식, 필기체 숫자 인식, 물체 검출 등 컴퓨터 비전 작업에서 널리 사용된다. 특히 RBF 커널을 사용하면 이미지 픽셀 간의 복잡한 패턴을 잘 포착할 수 있다. 텍스트 분류 및 자연어 처리 분야에서도 뛰어난 성능을 보인다. 스팸 메일 필터링, 감성 분석, 문서 카테고리 분류 등에 적용되며, 고차원의 희소 행렬 데이터(예: TF-IDF 벡터)를 처리하는 데 효율적이다.
생물정보학 및 의료 분야에서도 중요한 역할을 한다. 유전자 발현 데이터 분석을 통한 암 세포 분류, 단백질 구조 예측, 질병 진단 지원 시스템 등에 활용된다[9]. 또한, 금융 분야에서는 신용 평가 모델 구축이나 사기 탐지에, 지리정보 시스템에서는 토지 피복 분류나 원격 탐사 이미지 분석에 사용된다.
6.1. 이미지 분류
6.1. 이미지 분류
서포트 벡터 머신은 초기 기계 학습 연구에서 이미지 분류를 위한 핵심 알고리즘 중 하나로 널리 사용되었다. 특히 MNIST 데이터셋과 같은 필기체 숫자 인식 문제에서 높은 정확도를 보이며 주목을 받았다. SVM은 이미지의 각 픽셀 값을 특징 벡터로 변환하여 고차원 공간에서 최적의 결정 경계를 찾는 방식으로 작동한다. 이는 본질적으로 이진 분류에 강점을 보이는 알고리즘이며, 일대다 또는 일대일 전략을 통해 다중 클래스 분류 문제로 확장 적용되었다.
SVM이 이미지 분류에 효과적인 이유는 커널 트릭을 통해 복잡한 특징 공간을 명시적으로 계산하지 않고도 데이터를 분리할 수 있기 때문이다. 예를 들어, RBF 커널은 픽셀 값 사이의 비선형적 관계를 포착하는 데 유용하다. 또한 최대 마진 원리에 기반하여 과적합에 대한 저항력이 비교적 강하고, 특히 특징의 수가 샘플 수보다 많은 경우(예: 고해상도 이미지)에도 좋은 일반화 성능을 보이는 경향이 있다.
그러나 합성곱 신경망과 같은 딥러닝 기법의 등장 이후, 대규모 이미지 데이터셋을 처리하는 주류 알고리즘의 위치는 대체되었다. CNN은 계층적 특징 추출 능력에서 뛰어나 복잡한 시각적 패턴을 학습하는 데 SVM보다 훨씬 효과적이다. 그럼에도 불구하고 SVM은 계산 자원이 제한적이거나 데이터 양이 상대적으로 적은 경우, 또는 전처리된 특징 맵을 분류하는 최종 단계의 분류기로 여전히 유용하게 활용된다.
6.2. 텍스트 분류
6.2. 텍스트 분류
서포트 벡터 머신은 텍스트 분류 작업에서 높은 성능을 보이는 대표적인 알고리즘 중 하나이다. 특히 이진 분류 문제, 예를 들어 스팸 메일 탐지나 감성 분석과 같은 작업에 효과적으로 적용된다. 텍스트 데이터는 일반적으로 Bag-of-Words나 TF-IDF와 같은 방법을 통해 고차원의 희소 벡터로 표현되는데, SVM은 이러한 고차원 공간에서 최적의 결정 경계를 찾는 데 탁월한 능력을 발휘한다[10].
텍스트 분류를 위한 SVM의 주요 장점은 과적합에 대한 강건함과 차원의 저주 문제를 상대적으로 잘 극복한다는 점이다. 텍스트 특성 벡터의 차원은 수만에서 수십만에 이를 수 있지만, SVM은 서포트 벡터라는 일부 중요한 데이터 포인트만을 사용하여 모델을 구축하기 때문에 효율적이다. 또한, 선형 커널을 사용하는 경우가 많아 계산 비용이 비교적 낮고 해석이 용이하다는 장점이 있다.
커널 종류 | 텍스트 분류에서의 주요 특징 |
|---|---|
가장 널리 사용됨. 고차원 텍스트 특성 공간에서 이미 효과적인 선형 분리가 가능한 경우가 많음. 빠르고 해석이 쉬움. | |
비선형 관계를 모델링할 수 있으나, 텍스트 데이터에서는 오히려 과적합을 초래할 수 있어 주의가 필요함. |
실제 적용에서는 문서를 특성 벡터로 변환한 후, 정규화 파라미터 C를 조정하여 마진의 크기와 오분류 허용 정도를 균형 있게 설정한다. Scikit-learn과 같은 머신러닝 라이브러리는 텍스트 전처리 파이프라인과 SVM 분류기를 쉽게 결합할 수 있는 인터페이스를 제공한다.
6.3. 생물정보학
6.3. 생물정보학
서포트 벡터 머신은 생물정보학 분야에서 복잡한 패턴 인식과 분류 문제를 해결하는 데 널리 활용된다. 특히 고차원의 데이터가 많고 샘플 수가 상대적으로 적은 생물학적 데이터셋의 특성에 잘 맞는다. 단백질 서열, 유전자 발현 프로파일, DNA 마이크로어레이 데이터, 단백질 구조 예측 등 다양한 문제에 적용된다.
주요 응용 사례로는 질병 분류가 있다. 예를 들어, 암 세포와 정상 세포의 유전자 발현 데이터를 학습하여 새로운 샘플을 분류하는 데 사용된다. 또한 단백질 상호작용 예측, 단백질 2차 구조 예측, 유전자 선택 문제에서도 중요한 도구로 여겨진다. 서포트 벡터 머신의 커널 트릭은 DNA 서열이나 단백질 서열과 같은 비수치적 데이터를 수학적으로 처리할 수 있는 특징 공간으로 변환하는 데 유용하게 작용한다.
응용 분야 | 설명 | 사용되는 데이터 유형 |
|---|---|---|
질병 분류 및 진단 | 암의 아형 분류, 질병 위험도 예측 | |
단백질 구조/기능 예측 | 단백질의 2차 구조, 막횡단 영역, 기능적 부위 예측 | 아미노산 서열, 물리화학적 특성 |
유전자 선택 | 마이크로어레이 데이터, RNA-seq 데이터 | |
시스템 생물학 | 단백질-단백질 상호작용, 대사 경로 예측 | 다양한 오믹스 데이터의 통합 |
이러한 생물학적 문제들은 종종 선형적으로 분리되지 않는 복잡한 결정 경계를 요구한다. RBF 커널이나 다항식 커널과 같은 비선형 커널을 사용한 서포트 벡터 머신은 이러한 복잡한 관계를 모델링하는 데 효과적이다. 생물정보학에서의 성공은 데이터의 고차원성과 커널 방법이 제공하는 유연한 모델링 능력의 시너지에서 비롯된다[11].
7. 다른 알고리즘과의 비교
7. 다른 알고리즘과의 비교
서포트 벡터 머신은 로지스틱 회귀, 신경망, 랜덤 포레스트와 같은 다른 인기 있는 머신 러닝 알고리즘과 비교하여 고유한 특성과 적합한 문제 영역을 가진다.
로지스틱 회귀와의 주요 차이는 결정 경계의 형성 방식에 있다. 로지스틱 회귀는 데이터의 가능성을 최대화하는 최대우도추정을 통해 결정 경계를 찾는 반면, 서포트 벡터 머신은 결정 경계와 가장 가까운 데이터 포인트인 서포트 벡터까지의 거리(마진)를 최대화하는 원리를 따른다. 이로 인해 SVM은 마진이 큰 결정 경계를 선호하며, 특히 고차원 공간에서 효과적일 수 있다. 또한, SVM은 커널 트릭을 통해 비선형 분류를 명시적으로 모델링할 수 있는 강력한 장치를 갖추고 있다. 반면, 로지스틱 회귀는 해석이 비교적 용이하고 출력을 확률로 직접 얻을 수 있다는 장점이 있다.
심층 신경망과 비교했을 때, SVM은 전통적으로 중소 규모의 데이터셋에서 강력한 성능을 보여주었다. 신경망은 매우 복잡한 패턴과 대용량 데이터를 학습하는 데 뛰어나지만, 그 성능을 위해서는 상당한 양의 데이터와 하이퍼파라미터 튜닝, 계산 자원이 필요하다. SVM은 상대적으로 적은 수의 하이퍼파라미터(예: 커널 선택, 규제 파라미터 C, 커널별 파라미터)를 가지며, 이차 계획법 문제로 공식화되어 전역 최적해를 보장한다는 이론적 장점이 있다. 그러나 매우 복잡한 비선형 문제나 이미지, 음성과 같은 원시 데이터의 특징 학습에는 딥 러닝이 일반적으로 더 우수한 성능을 발휘한다.
앙상블 방법인 랜덤 포레스트와의 비교에서는 모델의 특성이 뚜렷하게 구분된다. 랜덤 포레스트는 다수의 결정 트리를 구축하고 그 결과를 평균내어 과적합을 줄이는 배깅 방식을 사용한다. 이는 고차원 데이터에서도 잘 작동하며, 변수의 중요도를 쉽게 해석할 수 있고, 기본적으로 다중 클래스 분류를 지원한다. SVM은 기본적으로 이진 분류기에 가까우며, 다중 클래스 문제는 일대다 또는 일대일 전략을 통해 해결해야 한다. 또한, 랜덤 포레스트는 데이터 스케일링에 덜 민감한 반면, SVM은 커널 함수의 성질상 특성 스케일링이 성능에 큰 영향을 미칠 수 있다.
비교 항목 | 서포트 벡터 머신 (SVM) | 로지스틱 회귀 | 신경망 | 랜덤 포레스트 |
|---|---|---|---|---|
핵심 원리 | 마진 최대화 | 우도 최대화 | 계층적 특징 학습 | 다수결 앙상블 |
비선형 모델링 | 커널 함수 활용 | 변환된 특성 필요 | 내재적 비선형성 | 결정 트리의 분할 |
데이터 규모 | 중소 규모에 적합 | 중소~대규모 | 대규모 필수 | 소~대규모 |
해석 가능성 | 중간 (서포트 벡터) | 높음 (계수) | 낮음 (블랙박스) | 중간 (변수 중요도) |
주요 강점 | 고차원, 명확한 마진 | 확률 출력, 효율성 | 복잡한 패턴 학습 | 강건성, 변수 중요도 |
7.1. 로지스틱 회귀
7.1. 로지스틱 회귀
서포트 벡터 머신과 로지스틱 회귀는 모두 지도 학습의 이진 분류 문제를 해결하는 데 널리 사용되는 알고리즘이다. 두 방법 모두 데이터 포인트를 두 개의 클래스로 구분하는 결정 경계를 학습하지만, 그 접근 방식과 최적화 목표에는 근본적인 차이가 존재한다.
로지스틱 회귀는 주어진 데이터가 특정 클래스에 속할 확률을 직접 모델링한다. 시그모이드 함수를 사용하여 선형 결합의 결과를 0과 1 사이의 확률 값으로 변환한다. 이 모델은 최대 우도 추정을 통해 파라미터를 학습하며, 모든 훈련 데이터 포인트의 확률을 최대화하는 것을 목표로 한다. 반면, 서포트 벡터 머신은 확률적 해석보다는 기하학적 마진을 최대화하는 결정 경계를 찾는 데 중점을 둔다. SVM은 두 클래스 사이의 마진을 최대화하는 초평면을 찾는 반면, 로지스틱 회귀는 데이터의 전체적인 분포를 고려하여 결정 경계를 설정한다.
두 알고리즘의 성능 특성도 다르다. 일반적으로 SVM은 고차원 공간에서 효과적이며, 커널 트릭을 통해 비선형 결정 경계를 구성하는 데 뛰어난 능력을 보인다. 로지스틱 회귀는 해석이 용이하고, 출력이 확률이라는 점에서 모델의 불확실성을 정량화할 수 있는 장점이 있다. 다음 표는 주요 차이점을 요약한다.
특성 | 로지스틱 회귀 | 서포트 벡터 머신 (SVM) |
|---|---|---|
목표 | 데이터의 우도를 최대화 (확률 기반) | 클래스 간 마진을 최대화 (기하학적) |
결과 해석 | 클래스에 속할 확률을 직접 출력 | 결정 함수의 부호로 클래스 분류 |
비선형성 | 일반적으로 명시적 커널 사용 없음 | 커널 함수를 통해 비선형 분류 가능 |
장점 | 해석 용이성, 확률 출력, 계산 효율성 | 고차원 데이터 적합성, 마진 최대화로 인한 강건성 |
실제 응용에서는 데이터의 특성과 문제의 요구사항에 따라 선택이 달라진다. 확률적 예측이 필요하거나 모델의 해석 가능성이 중요한 경우에는 로지스틱 회귀가 선호된다. 반면, 분류 정확도를 극대화해야 하거나 특징의 차원이 샘플 수보다 훨씬 큰 경우, 또는 명확한 마진을 갖는 결정 경계가 유리한 경우에는 SVM이 더 적합할 수 있다.
7.2. 신경망
7.2. 신경망
서포트 벡터 머신과 신경망은 모두 강력한 지도 학습 모델이지만, 그 접근 방식과 특성에서 뚜렷한 차이를 보인다.
서포트 벡터 머신은 주로 이진 분류 문제에 초점을 맞추어, 두 클래스를 구분하는 최적의 결정 경계를 찾는 것을 목표로 한다. 이 결정 경계는 서포트 벡터라고 불리는 가장 가까운 데이터 샘플들로부터 최대의 마진을 확보하는 초평면이다. 특히 커널 트릭을 통해 비선형 문제를 효율적으로 처리할 수 있으며, 모델의 복잡도를 조절하는 하이퍼파라미터가 비교적 적은 편이다. 반면, 신경망은 인간의 뉴런 구조에서 영감을 받은 다층 구조로, 입력층, 은닉층, 출력층으로 구성된다. 이 구조는 순전파와 역전파 알고리즘을 통해 학습하며, 활성화 함수를 통해 복잡한 비선형 관계를 모델링한다. 신경망은 이진 분류뿐만 아니라 다중 분류, 회귀, 생성 모델 등 훨씬 더 광범위한 문제에 적용된다.
두 모델의 성능과 적합성은 데이터의 특성과 규모에 따라 달라진다. 서포트 벡터 머신은 중간 규모의 데이터셋에서 강력한 성능을 발휘하며, 특히 특징의 수가 샘플 수보다 많을 때 잘 작동하는 경향이 있다. 또한, 구조적 위험 최소화 원리에 기반하여 과적합에 비교적 강건한 모델을 생성한다. 신경망은 대규모 데이터셋과 고차원의 복잡한 패턴(예: 이미지, 음성, 텍스트)을 학습하는 데 매우 뛰어난 성능을 보인다. 그러나 일반적으로 서포트 벡터 머신보다 더 많은 데이터를 요구하며, 하이퍼파라미터(층의 수, 뉴런의 수, 학습률 등) 튜닝이 복잡하고 계산 비용이 높을 수 있다.
특성 | 서포트 벡터 머신 (SVM) | 신경망 (Neural Network) |
|---|---|---|
핵심 원리 | 마진 최대화와 서포트 벡터 | 계층적 특징 학습과 역전파 |
주요 강점 | 중소 규모 데이터, 커널을 통한 비선형 분류, 과적합 방지 | 대규모 복잡 데이터 처리, 다양한 태스크 적용 가능성 |
데이터 요구량 | 상대적으로 적음 | 일반적으로 많음 |
해석 가능성 | 결정 경계가 비교적 명확함 | 내부 동작이 복잡하여 해석이 어려움 (블랙박스) |
적합한 문제 | 이진 분류, 특징 수가 많은 경우 | 이미지/음성 인식, 자연어 처리, 복잡한 비선형 관계 모델링 |
요약하면, 서포트 벡터 머신은 명확한 이론적 배경과 함께 제한된 데이터로 강건한 분류기를 구축할 때 유리한 선택이다. 반면, 신경망은 충분한 데이터와 계산 자원이 주어졌을 때 극도로 복잡한 함수를 근사하고 다양한 인공지능 과제를 해결하는 데 탁월한 유연성을 제공한다.
7.3. 랜덤 포레스트
7.3. 랜덤 포레스트
랜덤 포레스트는 앙상블 학습의 일종으로, 다수의 결정 트리를 구성하고 그 결과를 종합하여 예측을 수행하는 알고리즘이다. 서포트 벡터 머신이 하나의 복잡한 결정 경계를 찾는 데 집중한다면, 랜덤 포레스트는 비교적 단순한 모델인 결정 트리를 여러 개 만들어 그 결과를 평균하거나 투표하는 방식으로 동작한다. 이는 배깅과 랜덤 서브스페이스 방법을 결합한 것으로, 과적합에 강하고 높은 일반화 성능을 보이는 특징이 있다.
두 알고리즘의 핵심적인 차이는 모델의 복잡성과 해석 가능성에 있다. 서포트 벡터 머신은 특히 고차원 공간에서 강력한 분류 성능을 발휘하지만, 그 결정 경계는 커널 트릭을 사용할 경우 블랙박스에 가까워 해석이 어렵다. 반면 랜덤 포레스트는 각 트리의 분기 조건을 확인할 수 있어 상대적으로 모델의 결정 과정을 이해하기 쉽다. 또한, 피처 중요도를 계산하여 각 입력 변수의 영향력을 추정할 수 있는 장점이 있다.
다음 표는 두 알고리즘의 주요 특성을 비교한 것이다.
특성 | 서포트 벡터 머신 (SVM) | 랜덤 포레스트 |
|---|---|---|
모델 유형 | 단일 모델 (대규모 마진 분류기) | 앙상블 모델 (다수 결정 트리) |
주요 강점 | 고차원 데이터, 복잡한 비선형 경계 | 과적합 방지, 노이즈에 강함, 해석 가능성 |
하이퍼파라미터 | 커널 선택, C(규제), 감마 등 | 트리 개수, 최대 깊이, 분할 기준 등 |
학습 속도 | 대규모 데이터셋에서 상대적으로 느림 | 병렬 처리 가능, 일반적으로 빠름 |
데이터 스케일 영향 | 매우 민감함 (표준화 필수) | 영향이 상대적으로 적음 |
적용 측면에서도 차이가 나타난다. 서포트 벡터 머신은 샘플 수보다 피처 수가 훨씬 많은 데이터(예: 유전자 발현 데이터)나 명확한 마진을 정의할 수 있는 문제에 적합하다. 랜덤 포레스트는 결측치를 잘 처리하며, 다양한 스케일의 피처가 혼재되어 있거나 이상치가 많은 데이터에 대해 강건한 성능을 보인다. 따라서 문제의 성격과 데이터의 특성, 해석 가능성에 대한 요구사항에 따라 적절한 알고리즘을 선택하는 것이 중요하다.
8. 실습 예제
8. 실습 예제
Scikit-learn 라이브러리는 서포트 벡터 머신 구현을 위한 svm 모듈을 제공한다. 가장 기본적인 사용법은 SVC(Support Vector Classification) 클래스를 임포트하고, 데이터를 적절한 형식으로 준비한 후 fit 메서드를 호출하는 것이다. 데이터는 특성 행렬 X와 레이블 벡터 y로 구성된다. 학습 전에 특성 스케일링을 적용하는 것이 일반적이며, StandardScaler나 MinMaxScaler를 사용하여 각 특성의 범위를 조정하면 성능이 향상될 수 있다.
학습된 모델을 평가하기 위해 데이터를 훈련 세트와 테스트 세트로 분리하는 것이 중요하다. train_test_split 함수를 사용하여 이를 수행할 수 있다. 모델의 예측은 predict 메서드로, 성능 평가는 정확도, 정밀도, 재현율, F1 점수 등의 지표를 사용한다. classification_report 함수를 활용하면 주요 분류 지표를 한 번에 확인할 수 있다.
하이퍼파라미터 | 설명 | 주요 값/옵션 |
|---|---|---|
| 규제 강도. 값이 작을수록 마진이 넓어지고 오분류를 더 허용한다. | 기본값 1.0, 보통 로그 스케일(0.001, 0.01, 0.1, 1, 10, 100)로 탐색 |
| 사용할 커널 함수의 종류를 지정한다. | 'linear', 'poly', 'rbf', 'sigmoid' |
| RBF, 다항식, 시그모이드 커널의 계수. 값이 클수록 결정 경계가 복잡해진다. | 'scale'(기본), 'auto', 또는 수치값 |
| 다항식 커널의 차수를 지정한다. | 기본값 3, 정수값 |
하이퍼파라미터 튜닝을 위해 그리드 서치나 랜덤 서치를 사용하는 것이 효과적이다. GridSearchCV 클래스를 사용하면 탐색할 파라미터 그리드를 정의하고 교차 검증을 통해 최적의 조합을 찾을 수 있다. 교차 검증 폴드 수(cv 파라미터)는 일반적으로 5 또는 10으로 설정한다. 최적의 파라미터 조합은 best_params_ 속성으로, 최고의 성능은 best_score_ 속성으로 확인할 수 있다. 최종적으로 튜닝된 모델로 테스트 세트를 평가하여 일반화 성능을 확인한다.
8.1. Scikit-learn 활용
8.1. Scikit-learn 활용
Scikit-learn 라이브러리는 서포트 벡터 머신 모델을 구현한 svm 모듈을 제공한다. 주로 사용되는 클래스는 선형 및 비선형 분류를 위한 SVC, 회귀 분석을 위한 SVR, 그리고 대규모 선형 분류에 최적화된 LinearSVC이다. 이 클래스들은 일관된 fit, predict, score 인터페이스를 따르므로 다른 Scikit-learn 추정기와 동일한 패턴으로 사용할 수 있다.
기본적인 사용법은 데이터 준비, 모델 인스턴스 생성, 학습, 예측의 단계로 이루어진다. 다음은 간단한 예시 코드이다.
```python
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# 데이터 로드 및 분할
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3)
# SVM 모델 생성 및 학습
clf = svm.SVC(kernel='rbf', C=1.0, gamma='scale')
clf.fit(X_train, y_train)
# 예측 및 평가
accuracy = clf.score(X_test, y_test)
print(f"정확도: {accuracy}")
```
주요 하이퍼파라미터는 다음과 같다.
파라미터 | 설명 | 주요 값 |
|---|---|---|
| 사용할 커널 함수의 종류 |
|
| 규제 강도 (소프트 마진) | 양의 실수 (기본값 1.0) |
| RBF, 다항, 시그모이드 커널의 계수 |
|
| 다항식 커널의 차수 | 정수 (기본값 3) |
데이터 전처리는 SVM 성능에 큰 영향을 미친다. SVM은 거리 기반 알고리즘이므로 특성 스케일을 정규화 또는 표준화하는 것이 일반적으로 권장된다. 이를 위해 StandardScaler나 MinMaxScaler를 사용할 수 있다. 또한, 텍스트 데이터나 고차원 희소 데이터의 경우 선형 커널을 사용하는 LinearSVC가 메모리 효율성과 속도 면에서 유리한 경우가 많다.
8.2. 하이퍼파라미터 튜닝
8.2. 하이퍼파라미터 튜닝
서포트 벡터 머신의 성능을 최적화하기 위해서는 모델의 동작을 제어하는 하이퍼파라미터를 조정하는 과정이 필수적이다. 이 과정은 주어진 데이터에 맞춰 모델의 복잡도와 일반화 성능 사이의 균형을 찾는 것을 목표로 한다. 주요 튜닝 대상은 커널 함수의 종류와 그에 따른 파라미터, 그리고 규제 파라미터이다.
가장 널리 사용되는 RBF 커널을 기준으로 할 때, 핵심 하이퍼파라미터는 다음과 같다.
하이퍼파라미터 | 역할 | 영향 |
|---|---|---|
| 소프트 마진에서 오분류에 대한 패널티 강도 | 값이 크면 훈련 데이터에 맞추려고 과적합될 위험이 있고, 값이 작으면 과소적합될 수 있다. |
| 단일 데이터 샘플의 영향 범위를 결정 | 값이 크면 결정 경계가 복잡해져 과적합되기 쉽고, 값이 작으면 경계가 완만해져 과소적합될 수 있다. |
튜닝 방법으로는 그리드 서치와 랜덤 서치가 일반적이다. 그리드 서치는 사전에 정의된 파라미터 값의 모든 조합을 체계적으로 평가하여 최적 조합을 찾는다. 이는 철저하지만 계산 비용이 높은 방법이다. 랜덤 서치는 정의된 분포에서 파라미터 값을 무작위로 샘플링하여 평가하며, 상대적으로 적은 시도로도 좋은 조합을 찾을 가능성이 있다. 더 효율적인 방법으로는 베이지안 최적화가 있으며, 이전 평가 결과를 바탕으로 유망한 파라미터 조합을 탐색한다.
튜닝 과정에서는 반드시 교차 검증을 사용하여 모델의 일반화 성능을 추정해야 한다. 일반적으로 K-겹 교차 검증을 적용하며, 훈련 세트를 다시 나누어 검증 세트의 역할을 하는 내부 루프를 구성한다. 이를 통해 특정 훈련/테스트 분할에 의존하지 않는 견고한 파라미터 값을 선택할 수 있다. 최종적으로 선택된 파라미터 조합으로 전체 훈련 데이터를 사용해 최종 모델을 학습시킨다.
