Support vector machine이란?
Support vector machine(SVM)은 신호 처리, 의료 응용 분야, 자연어 처리, 음성 및 영상 인식을 비롯한 여러 분류 및 회귀 문제에 사용되는 지도 학습 알고리즘입니다.
SVM 알고리즘의 목표는 한 클래스의 데이터 점을 다른 클래스의 데이터 점과 가능한 한 가장 잘 구분해내는 초평면을 찾는 것입니다. 여기서 "가장 잘 구분해내는"은 두 클래스 사이의 가장 큰 마진을 갖는 초평면으로 정의되며, 이는 아래 그림에서 +와 -로 표현됩니다. 마진은 내부에 데이터 점이 없는 초평면에 평행인 슬래브의 최대 너비를 의미합니다. 이 알고리즘은 선형적으로 구분되는 문제에 대해서만 이러한 초평면을 찾을 수 있으며, 대부분의 실전 문제에서는 적은 수의 오분류를 허용하고 소프트 마진을 최대화합니다.
서포트 벡터는 구분하는 초평면의 위치를 식별하는 훈련 관측값 중 일부를 가리킵니다. 표준 SVM 알고리즘은 이진 분류 문제에 대해 형성되며, 다중클래스 문제는 보통 일련의 이진 클래스 문제로 축소됩니다.
수학적인 세부 사항을 더 자세히 살펴보면, Support vector machine은 커널 함수를 사용하여 특징을 변환할 수 있는, 커널 방법이라는 머신러닝 알고리즘에 속합니다. 커널 함수는 데이터를 다른(일반적으로는 더 높은 차원의) 차원 공간으로 매핑합니다. 이런 변환 후에는 클래스를 구분하기가 쉬워지고, 이로 인해 복잡한 비선형 결정 경계가 매핑된 높은 차원의 특징 공간에서 선형 결정 경계로 단순화될 것으로 기대됩니다. 이 과정에서 데이터를 명시적으로 변환할 필요가 없습니다(명시적 변환에는 높은 연산 비용이 따름). 이를 '커널 트릭'이라고 합니다.
MATLAB®은 다음과 같은 여러 커널을 지원합니다.
SVM의 종류 | 머서 커널 | 설명 |
---|---|---|
가우스 또는 방사형 기저 함수(RBF) | \(K(x_1,x_2) = \exp\left(-\frac{\|x_1 - x_2\|^2}{2\sigma^2}\right)\) | 단일 클래스 학습. \(\sigma\)는 커널의 너비입니다. |
선형 | \(K(x_1,x_2) = x_1^{\mathsf{T}}x_2\) |
2-클래스 학습. |
다항식 | \(K(x_1,x_2) = \left( x_1^{\mathsf{T}}x_2 + 1 \right)^{\rho}\) |
\(\rho\)는 다항식의 차수입니다. |
시그모이드 | \(K(x_1,x_2) = \tanh\left( \beta_{0}x_1^{\mathsf{T}}x_2 + \beta_{1} \right)\) |
특정 \(\beta_{0}\) 및 \(\beta_{1}\) 값에 대해서만 머서 커널입니다. |
Support vector machine을 훈련시키는 것은 클래스 간 소프트 마진을 최소화하는 초평면에 피팅되도록 2차 최적화 문제를 푸는 것에 상응합니다. 변환된 특징의 개수는 서포트 벡터의 개수에 따라 정해집니다.
요점:
- Support vector machine은 널리 사용되며, 여러 분류 및 회귀 작업에서 좋은 성능을 보입니다.
- Support vector machine은 이진 분류에 대해 형성되지만, 이진 분류기를 여러 개 결합하면 다중클래스 SVM을 형성할 수 있습니다.
- 커널은 SVM을 더 유연하고 비선형 문제를 처리할 수 있도록 만듭니다.
- 결정 곡면을 생성하려면 훈련 데이터에서 선택된 서포트 벡터만 필요할 뿐입니다. 훈련된 후에는 나머지 훈련 데이터는 무의미하기 때문에 자동화된 코드 생성에 적합한 간략한 모델 표현이 생성됩니다.
예
Support vector machine은 결정 경계가 이상값 임계값을 사용하여 객체가 "정상" 클래스에 속하는지 여부를 판별하는 단일 클래스 SVM을 형성하여 이상 감지에도 사용할 수 있습니다. 이 예에서는 MATLAB이 모든 표본을 다음과 같이 이상값의 목표 비율을 토대로 단일 클래스의 파라미터로 매핑합니다. fitcsvm(sample,ones(…), ‘OutlierFraction’, …).
아래 그래프는 인간 활동 분류 작업의 데이터에 대해 OutlierFractions
의 특정 범위에 대해 구분되는 초평면을 보여줍니다.
예제 및 방법
소프트웨어 참조
참조: Statistics and Machine Learning Toolbox, MATLAB을 활용한 머신러닝, biomedical signal processing