참고 문헌:
1. 서강대 AI MBA 데이터마이닝 강의교재 (2023)
2. Müller, A. C., & Guido, S. (2016). *Introduction to Machine Learning with Python*. 1st Edition. O’Reilly Media, Inc., Sebastopol, CA. ISBN: 978-1449369415.
SVM(Support Vector Machine)은 분류와 회귀 문제를 해결하는 지도 학습 알고리즘이다. 주로 이진 분류 문제에서 효과적이며, 고차원 공간에서 데이터를 선형적으로 분리하는 초평면을 사용한다. 데이터가 복잡하거나 선형적으로 분리되지 않을 경우 커널 트릭을 통해 고차원 공간으로 사상하여 초평면으로 분류가 가능하게 한다. 이를 통해 SVM은 다양한 데이터 구조를 처리하고 최적의 초평면을 찾아 마진을 최대화한다.
1. 기본 개념
SVM의 주요 목표는 다음과 같다:
- 마진 최대화: 두 클래스 간의 마진을 최대화하여 일반화 성능을 높인다.
- 오류 최소화: 가능한 많은 데이터 포인트가 올바르게 분류되도록 한다.
또한, SVM은 선형 모델의 한계를 극복하기 위한 방법이다. 선형 모델은 다음과 같은 문제를 가진다:
- 복잡한 데이터 구조 처리의 한계: 선형 모델은 데이터의 선형 관계만 가정하며, 복잡한 비선형 패턴을 효과적으로 처리하기 어렵다. 현실 데이터는 종종 비선형적인 관계를 가지며, 선형 모델로는 이들을 충분히 분류하거나 예측하기 어렵다.
- 다차원 데이터의 한계: 고차원 공간에서도 선형 모델은 제한적이다. 데이터가 복잡한 패턴을 형성할 경우, 선형 모델은 이를 잘 반영하지 못한다.
- 상호작용 변수의 모델링 부족: 선형 모델은 변수 간의 상호작용을 반영하기 어렵다. 이를 해결하기 위해 비선형 변환을 사용하면 모델이 복잡해지고 해석하기 어려워질 수 있다.
- 비선형 경계 문제 해결의 어려움: 비선형 경계를 가진 데이터에 대해 선형 모델은 효과적인 분류를 수행하기 어렵다.
- 과적합 및 일반화 문제: 데이터의 복잡한 패턴을 잘 표현하지 못할 경우 과소적합이 발생하며, 일반화 성능이 저하될 수 있다.
결론적으로, 선형 모델은 간단하고 빠른 계산이 가능하며 해석이 쉽지만, 복잡한 패턴이나 상호작용이 중요한 경우 한계가 있다. 이를 극복하기 위해 SVM은 커널 트릭을 사용한다.
서포트 벡터 머신(SVM)에서 서포트 벡터는 초평면과 가장 가까운 데이터 포인트들로, 이들이 결정 경계를 형성하는 데 중요한 역할을 한다. 이러한 데이터 포인트들은 분류의 정확도를 높이기 위해 최적의 초평면을 정의하는 데 사용된다. 커널 트릭은 비선형 데이터를 고차원 공간으로 변환하여 선형적으로 분리 가능하도록 하는 기법이다. 이를 통해 SVM은 선형적으로 분리되지 않는 복잡한 데이터 구조도 효과적으로 분류할 수 있게 된다. SVM은 이러한 방법을 통해 선형 모델의 한계를 극복하고, 다양한 데이터 구조에서 높은 성능을 보여준다.
2. 수학적 공식
2.1 초평면
초평면은 다음과 같은 식으로 정의된다:
\[\mathbf{w} \cdot \mathbf{x} + b = 0\]
여기서 \(\mathbf{w}\)는 법선 벡터이고, \(b\)는 절편이다.
.2 마진 최대화
두 클래스 사이의 마진을 최대화하기 위해 다음과 같은 제약 조건을 설정한다:
\[y_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1 \quad \forall i\]
여기서 \(y_i\)는 클래스 레이블로, 1 또는 -1이다. 이 제약은 모든 데이터 포인트가 결정 초평면에서 올바른 쪽에 위치하도록 강제한다. 최적화 문제는 다음과 같이 정의된다:
\[\min_{\mathbf{w}, b} \ \frac{1}{2} \|\mathbf{w}\|^2\]
2.3 소프트 마진
소프트 마진을 적용하여 오류를 허용할 수 있도록 하는 경우:
\[y_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1 - \xi_i \quad \forall i\]
최적화 문제는 다음과 같다:
\[\min_{\mathbf{w}, \xi, b} \left\{ \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^{n} \xi_i \right\}\]
3. 커널 트릭 (Kernel Trick)
SVM은 비선형 문제를 해결하기 위해 커널 트릭을 사용하여 저차원 공간의 데이터를 고차원 공간으로 변환한다. 이를 통해 선형적으로 분리할 수 있게 하며, 주요 커널의 예시는 다음과 같다:
- 선형 커널: 두 데이터 포인트 간의 내적을 그대로 사용한다.
\[K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i \cdot \mathbf{x}_j\]
- 다항 커널 (Polynomial Kernel): 내적을 특정 차수로 확장하여 사용한다.
\[K(\mathbf{x}_i, \mathbf{x}_j) = (\mathbf{x}_i \cdot \mathbf{x}_j + c)^d\]
- RBF 커널 (Gaussian Kernel): 데이터 간의 유클리드 거리를 기반으로 데이터를 변환한다.
\[K(\mathbf{x}_i, \mathbf{x}_j) = \exp\left(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2\right)\]
- 시그모이드 커널: 신경망의 활성화 함수와 유사하게 동작한다.
\[K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\alpha (\mathbf{x}_i \cdot \mathbf{x}_j) + c)\]
4. SVM의 장점
- 효율성: 높은 차원의 데이터에서도 잘 작동한다.
- 유연성: 다양한 커널을 적용할 수 있어 여러 유형의 데이터에 대응 가능하다.
- 강력한 성능: 다양한 데이터셋에서 높은 정확도와 일반화 성능을 보인다.
5. SVM의 단점
- 매개변수 튜닝: 최적의 성능을 위해 C와 \(\gamma\) 등을 잘 조정해야 하며, 이는 시간이 소요될 수 있다.
- 대규모 데이터에서의 제한: SVM은 큰 데이터셋에서 학습 속도가 느려질 수 있다.
- 모델 해석의 어려움: 특히 고차원 공간으로 변환된 경우 모델을 해석하기 어렵다.
6. SVM의 활용 사례
- 텍스트 분류: 스팸 이메일 분류, 감정 분석에 사용된다.
- 이미지 인식: 얼굴 인식 및 객체 탐지와 같은 컴퓨터 비전 문제에 사용된다.
- 유전자 데이터 분석: 바이오인포매틱스 문제에서 질병 예측에 사용된다.
SVM은 고차원 데이터와 복잡한 분류 문제를 해결하는 데 매우 유용한 알고리즘이다. 하지만 최적의 성능을 위해 데이터를 잘 전처리하고 매개변수를 적절히 조정하는 과정이 중요하다.
7. 그림 설명
아래 그림은 SVM에서 두 클래스를 분리하는 초평면과 서포트 벡터의 위치를 보여준다.|
(그림 출처:
https://ko.wikipedia.org/wiki/%EC%84%9C%ED%8F%AC%ED%8A%B8_%EB%B2%A1%ED%84%B0_%EB%A8%B8%EC%8B%A0)
![]() |
![]() |
- 초평면 (Hyperplane): 데이터 포인트를 두 개의 클래스로 분류하는 경계다.
- 서포트 벡터 (Support Vectors): 결정 경계에 가장 가까운 데이터 포인트로, 이들만이 초평면을 정의하는 데 영향을 미친다.
- 마진 (Margin): 두 클래스 간의 간격으로, SVM은 이 마진을 최대화한다.
SVM은 데이터 분류에서 강력한 성능을 발휘하며, 특히 고차원 데이터에 효과적이다. 하지만, 최적의 커널과 매개변수를 찾기 위해 많은 연산이 필요할 수 있다. 또한, 데이터의 크기가 매우 큰 경우 학습 속도가 느려질 수 있다. SVM은 이러한 단점을 보완하기 위해 다양한 변형과 최적화 기법이 개발되었다.
[검토1]
서포트 벡터 머신(SVM)의 수식은 데이터를 선형적으로 분류하고 초평면을 찾으며, 마진을 최대화하는 방법에 관한 것이다. 수식의 핵심은 다음과 같다:
1. 초평면 정의
\[\mathbf{w} \cdot \mathbf{x} - b = 0\]
여기서 \(\mathbf{w}\)는 법선 벡터, \(b\)는 절편이다.
2. 마진
마진은 서포트 벡터와 초평면 사이의 거리이며, 최대 마진을 찾기 위해 최적화 문제는 다음과 같다:
\[\min_{\mathbf{w}, b} \ \frac{1}{2} \|\mathbf{w}\|^2\]
제약 조건은 다음과 같다:
\[y_i(\mathbf{w} \cdot \mathbf{x}_i - b) \geq 1 \quad \forall i\]
3. 소프트 마진
소프트 마진은 분류 에러를 허용하며, 다음과 같은 제약을 둔다:
\[y_i(\mathbf{w} \cdot \mathbf{x}_i - b) \geq 1 - \xi_i \quad \forall i\]
최적화 문제는 다음과 같다:
\[\min_{\mathbf{w}, \xi, b} \left\{ \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^{n} \xi_i \right\}\]
4. 커널 트릭
비선형 문제 해결을 위해 고차원 공간으로 데이터를 변환하고, 커널 함수 \(k(\mathbf{x}_i, \mathbf{x}_j)\)를 사용한다:
\[k(\mathbf{x}_i, \mathbf{x}_j) = \varphi(\mathbf{x}_i) \cdot \varphi(\mathbf{x}_j)\]
[검토2]
선형 커널이 선형적으로 분리되는 경우에 효율적인 이유는 다음과 같다:
1. 단순한 계산과 낮은 복잡도
선형 커널을 사용하는 SVM은 두 데이터 포인트 간의 내적을 기반으로 하며, 수식은 다음과 같다:
\[K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i \cdot \mathbf{x}_j\]
연산 비용이 낮아 대규모 데이터셋에서도 빠르게 학습할 수 있다.
2. 모델의 해석 용이성
선형 커널을 사용한 SVM은 고차원 공간에서도 직선 또는 평면 형태의 경계를 유지하므로 시각적 확인 및 해석이 용이하다. 반면, 비선형 커널은 데이터의 복잡한 변환을 포함해 해석이 어렵다.
3. 차원의 저주 완화
SVM은 고차원 공간에서도 잘 작동하도록 설계되었으며, 선형 커널을 사용하면 복잡한 변환 없이 고차원에서 최적의 초평면을 찾을 수 있다.
4. 과적합 위험 감소
선형 커널은 단순한 형태의 결정 경계를 유지해 과적합 위험을 줄이고 일반화 성능을 높인다. 반면, 비선형 커널은 데이터의 복잡한 패턴을 학습해 과적합 위험이 증가할 수 있다.
결론적으로, 선형 커널은 계산이 단순하고 빠르며, 고차원 공간에서 효율적으로 선형 경계를 찾을 수 있고, 모델이 단순하여 과적합의 위험이 적다. 이로 인해 선형적으로 분리 가능한 데이터에서 효율적이고 해석 가능한 모델을 구축할 수 있다.
'데이터분석' 카테고리의 다른 글
| Chapter 2. 지도학습(Supervised learning): 의사결정나무(Decision Trees) (0) | 2024.09.02 |
|---|---|
| Chapter 2. 지도학습(Supervised learning): Naive Bayes classifier (1) | 2024.09.02 |
| Chapter Appendix : 최대우도법(Maximum Likelihood Estimation) (0) | 2024.08.27 |
| Chapter 2. 지도학습(Supervised learning): Linear Models (0) | 2024.08.26 |
| Chapter 2. 지도학습(Supervised learning): K- Nearest Neighbors (0) | 2024.08.26 |

