SVM(서포트 벡터 머신) 알고리즘

서포트 벡터 머신(SVM, Support Vector Machine)

SVM이란 두 개의 그룹(데이터)을 분리하는 방법으로 데이터들과 거리가 가장 먼 초평면(Hyperplane)을 선택하여 분리하는 방법

 

- 데이터를 분리하기 위해 직선이 필요

- 직선이 한쪽 데이터로 치우쳐져 있으면 데이터에 변동이나 노이즈가 있을 때 제대로 구분하지 못할 수 있음

- 이러한 문제점을 해결하기 위해 margin(마진)을 이용

 

Optimal Hyperplane(초평면)

Support Vector은 데이터를 의미

margin은 초평면과 가장 가까이 있는 데이터와의 거리를 의미

마진을 최대로 만드는 직선을 계산하여 데이터를 분류하는 방법이 서포트 벡터 머신(SVM)

 

 

- C값은 사용자가 설정하는 파라미터

- C값을 크게 설정하면 오분류 에러는 작아지지만 마진은 작아지게 됨

- C값을 작게 설정하면 마진이 커지는 대신 오분류 에러가 커질 수 있음

 

비선형 데이터 분리

SVM은 선형 분류 알고리즘이다.

하지만 실제 데이터는 비선형으로 분포할 수 있음

비선형 데이터의 차원을 확장하면 선형으로 분리 가능

차원 확장에 이용되는 함수를 매핑 함수(Mapping Function)이라고 함

 

이렇게 차원을 확장하게 되면 선형으로 분리 가능

 

 

커널 트릭 - Kernel Trick

매핑 함수를 직접 사용하는 대신 SVM 초평면 계산에서 사용되는 벡터 내적 연산을 대체하는 비선형 커널 함수를 정의하여 사용 가능

 

[1] 다항식 커널(Polynomial)

[2] 방사 기저 함수(Radial basis function)

[3] 하이퍼볼릭 탄젠트 커널

TAGS.

Comments