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