Support Vector Machine

Support vector machine이란?

Support vector machine(SVM)은 신호 처리, 의료 응용 분야, 자연어 처리, 음성 및 영상 인식을 비롯한  여러 분류 및 회귀 문제에 사용되는 지도 학습 알고리즘입니다.

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의 특정 범위에 대해 구분되는 초평면을 보여줍니다.

단일 클래스 SVM을 통한 HAR 이상값 감지

참조: Statistics and Machine Learning Toolbox, MATLAB을 활용한 머신러닝, biomedical signal processing