10. 비선형 서포트 벡터 머신 (Non-linear SVM)
지난 글에서 선형 SVM인 하드 마진 SVM과 소프트 마진 SVM을 다뤘다.
이번에는 선형으로 분류할 수 없는 문제를 해결하는 비선형 SVM인 커널 SVM을 알아보자.
커널 SVM은 커널 함수Kernel Function$(\phi)$를 통해 데이터의 차원을 올려서 분류를 수행한다.
즉, 커널 SVM도 결정 경계는 선형이다.
다만 데이터 $X$를 Feature Map의 내적을 통해 차원 증가 시켜서, 데이터의 Original Space가 아닌 분류가 쉬운 고차원의 Feature Space에서 분류를 수행하는 것이다.
커널 함수
데이터의 차원을 증가시키는 커널 함수는 효율적인 방법이 있다.
$$ \phi(x_1, x_2) = (x_1, x_2, x_1^2, x_2^2, x_1x_2) $$
2D 데이터를 5D데이터로 변환했다.
커널 매핑
커널의 계산 효율성을 위해 $\phi(X)$와 $\phi(Y)$를 따로 계산하여 내적하는 것보다, 둘의 내적을 바로 구하는 것이 효율적이다. 이 함수를 커널 함수라 한다.
$$\begin{align*}K(X,Y) = (X, Y)^2 &= <(x_1, x_2), (y_1, y_2)>^2\\
&= <x_1y_1 + x_2y_2>^2\\
&= x_1^2y_1^2 + x_2^2y_2^2 + 2x_1x_2y_1y_2\\
&= <\phi(X), \phi(Y)>^2 \end{align*}$$
커널 함수의 종류
커널 SVM을 위한 몇가지 함수가 나와있는데, 특별히 어떤 데이터에 어떤 커널이 좋은지는 알려져있지 않으므로 실험이 필요하다.
- Linear Kernel
$$K(x_1, x_2) = <x_1, x_2> $$ - Polynomial Kernel
$$K(x_1, x_2) = (a<x_1, x_2> + b)^d $$ - Sigmoid Kernel
$$K(x_1, x_2) = \tanh (a<x_1, x_2> + b) $$ - Gaussian Kernel (RBF Kernel)
$$K(x_1, x_2) = \exp(\frac{-||x_1 - x_2||_2^2}{2\sigma^2})$$
이진 분류기로 다중 분류하기
SVM은 이진 분류밖에 할 수 없다. 이런 분류기로 여러 클래스를 분류하려면 하나-나머지 방법이나 하나-하나 방법을 쓸 수 있다.
- 하나-나머지 방법: 클래스 A와 나머지, 클래스 B와 나머지 등을 분류하는 분류기들을 만들고, $x$에 대한 이항 분류 값이 가장 큰 모델의 결과를 예측값으로 삼는다.
- 하나-하나 방법: 클래스 A와 B, B와 C 등을 분류하는 분류기들을 만들고, 투표를 통해 가장 많이 분류된 결과를 최종 결과 삼는다.
'학부 수업 > 머신러닝' 카테고리의 다른 글
12. 차원 축소 (Dimension Reduction) (0) | 2020.12.16 |
---|---|
11. 군집화 (Clustering) (0) | 2020.12.15 |
9. 서포트 벡터 머신 (Support Vector Machine: SVM) (0) | 2020.11.25 |
8. 의사 결정 트리 (Decision Tree) (0) | 2020.10.23 |
7. 판별 분석 (Discriminant Analysis) (0) | 2020.10.21 |
댓글
이 글 공유하기
다른 글
-
12. 차원 축소 (Dimension Reduction)
12. 차원 축소 (Dimension Reduction)
2020.12.16 -
11. 군집화 (Clustering)
11. 군집화 (Clustering)
2020.12.15 -
9. 서포트 벡터 머신 (Support Vector Machine: SVM)
9. 서포트 벡터 머신 (Support Vector Machine: SVM)
2020.11.25 -
8. 의사 결정 트리 (Decision Tree)
8. 의사 결정 트리 (Decision Tree)
2020.10.23