서포트 벡터 머신
IT 위키
더 많은 작업
(SVM에서 넘어옴)
- SVM; Support Vector Machine
- 대상을 분류할 때 마진이 가장 커지는 Decision Boundary를 그려 분류하는 방법
- 딥러닝 이전 기계학습 모델에 해당한다.
- Support Vector
- Decision Boundary
- (1차원) Decision Value(Threshold)
- (2차원) Decision Line
- (3차원) Decision Plane
- (4차원 이상) Decision Hyperplane
- (2차원 곡선) Decision Curve
- (3차원 곡면) Decision Surface
- (4차원 이상 곡면) Decision Hypersurface
- Margin
- Hard Margin: Decision Boundary에서 여유를 두지 않는 최대 Margin
- Soft Margin: Decision Boundary에서 일반화를 위해 약간의 여유를 두는 Margin
| 장점 | 단점 |
|---|---|
| 마진을 최대화하므로 과적합에 강하다 | 데이터가 많으면 학습 속도가 느리다 |
| 커널 함수(선형·다항·RBF·시그모이드 등)로 비선형 분류도 할 수 있다 | 커널 종류, 비용 C, 감마 같은 초매개변수를 최적화해야 성능이 나온다 |
| 고차원 자료에도 쓸 수 있다 | 결과 해석이 어렵다 |
- 결정 경계에 가장 가까운 점들이 서포트 벡터이며, 여러 개일 수 있다.
- SVM은 신경망이 아니므로 딥러닝에 속하지 않는다.
선형으로 나눌 수 없는 데이터를 더 높은 차원의 특성 공간으로 옮기면 초평면으로 나눌 수 있게 된다. SVM 은 이 변환을 직접 계산하지 않고, 두 점의 고차원 내적값만 커널 함수 K(x, y) 로 바로 구한다. 이를 커널 트릭(kernel trick)이라 한다.
| 커널 | 식 | 특징 |
|---|---|---|
| 선형(Linear) | x·y | 변환 없이 원래 공간에서 직선(초평면)으로 나눈다. 특성이 많은 텍스트 분류 등에 쓴다 |
| 다항(Polynomial) | (γ x·y + r)d | 차수 d 의 다항식 경계를 만든다 |
| RBF(가우시안) | exp(−γ‖x − y‖2) | 비선형 데이터에 가장 많이 쓴다 |
| 시그모이드(Sigmoid) | tanh(γ x·y + r) | 신경망의 활성화 함수와 비슷한 형태이다 |
- 비선형 데이터에 일반적으로 쓰며, 가장 많이 쓰는 커널이다. scikit-learn 의 SVC 도 기본 커널이 RBF 이다.
- 데이터에 대한 사전 지식이 없을 때 먼저 시도하는 커널이다.
- 두 점의 거리가 가까울수록 1 에, 멀수록 0 에 가까운 값을 준다. γ 가 크면 경계가 복잡해져 과적합되기 쉽고, 작으면 경계가 단순해진다.
- RBF 커널은 무한 차원 특성 공간으로 사상하는 것과 같다. "2차원의 점을 3차원의 점으로 변환한다" 는 RBF 의 설명으로 틀리다. 2차원 점 (x1, x2) 를 3차원 (x12, √2 x1x2, x22) 로 옮기는 것은 2차 다항 커널 (x·y)2 에 해당하는 예이다.

