기계 학습의 분야 중 하나로 패턴 인식, 자료 회귀 분석을 위한 지도 학습 모델이며, 주로 분류와 분석에 사용된다. 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델을 만든다. 분류 용도의 신경망은 학습 데이터에 대한 오류를 최소화하는 가중치를 찾는 것이 학습 단계의 목표이다. 다층 퍼셉트론의 경우에 오차 함수 E를 최소화하는 가중치를 찾는다.

다시말하면 SVM은 원 훈련데이터를 비선형 매핑을 통해 고차원으로 변환한다. 이 새로운 차원에서 초평면을 최적으로 분리하는 선형 분리를 찾는다. 즉 최적의 Decision Boundary(의사결정 영역)을 찾는다.

왜 데이터를 고차원으로 보낼까?

2차원에서 비선형 분리가 있다면 이를 한 차원 높은 3차원으로 Mapping하게 되면 선형분리할수 있게 된다. 따라서 충분히 큰 차원으로 적절히 비선형 매핑을 사용하여 두개의 부류를 가진 데이터는 초평면에서 항상 분리될 수 있다..

SVM은 복잡한 비선형 의사결정 영역을 모형화 할 수 있기 때문에 매우 정확하며, 다른 모델들 보다 Over Fitting되는 경향이 적다.

아래 그림은 부류가 2개인 데이터를 분류하는 분류기의 결정 경계에 해당하는 직선들을 보인 것이다. 결정경계 h1은 회색점과 노란점들을 제대로 구별하지 못하기 때문에 바람직하지 않다. h2와 h3는 모두 두 부류를 젣로 분류하기 때문에 오차 함수 관점에서 두 결정 경계가 같은 정도로 우수한 것으로 판정된다. 학습에 사용되지 않은 데이터를 얼마나 잘 분류하는지를 의미하는 일반화 특성 관점에서 h2와 h3를 비교해 보자. h2는 결정 경계 바로 근처에 학습 데이터가 존재하지만, h3는 학습 데이터에서 멀리 떨어져 있다. 학습 데이터와 조금 차이가 있는 데이터가 발생할 때, h3가 h2보다 더 일관되게 판단을 할 수 있다. 결정 경계와 가장 가까이에 있는 학습 데이터까지의 거리를 여백(margin)이라고 한다. 여백 관점에서 보면 h3가 h2보다 우수하다고 할 수 있다.

SVM은 Vladimir Vapnik이 제안한 분류기로, 분류 오차를 줄이면서 동시에 여백을 최대로 하는 결정 경계를 찾는다. 이때 결정 경계로부터 가장 가까이에 있는 학습 데이터들을 서포트 벡터 라고 한다.

 

1) 초평면(Hyperplane)

데이터를 분류하는 선을 초평면이라하고 ' 데이터 embeding 공간에서 한 차원 낮은 부분 공간' 으로 정의 한다. 즉 n 차원의 공간에서의 hyperplane은 n-1차원의 subspace를 의미하는 것이며, 3차원의 경우 hyperplane은 2차원의 면이 되고, 2차원의 경우는 hyperplane은 1차원의 선이 된다.

SVM알고리즘은 서포트 벡터와 여유간격을 통해 두 클래스 데이터 사이를 분류하는 최적의 초평면을 구한다.

 

2) SVM의 학습

SVM은 2개의 부류가 있는 분류 문제에 적용되는 분류기이다. 긍정 결과는 +1, 부정 결과는 -1로서 하나의 값을 갖는다. 아래 그림은 2차원 데이터로서 선형적으로 분리가 가능하며 분리할 수 있는 직선은 무수히 많지만 분류 오류를 최소화하는 최적의 직선을 찾아야 하고 3차원 이상에서는 직선이 아닌 최적의 평면을 찾아야 한다. 최적의 초평면(Decision Boundary)을 찾아 분리하는 것이다

 

 

 아래 그림은 위 그림을 세분화하여 데이터를 분리하지만 직관적으로 볼때 오른쪽 그림의 초평면이 더 정확해 보인다

 

식으로 표현해보면 아래와 같다. 가중치 벡터위 그림에서 2차원이 두개의 속성값이 있을 것이다. 예를 들어 

는 속성 의 값이고 b와 w를 추가적으로 사용한다

초평면의 모든것은 위 식을 만족하는 서포트 벡터라고 한다. 아래 그림의 노란색이 그것이고 분류하기 가장 어렵지만 가장 중요한 정보를 준다 분리 초평면으로 부터 H1위의 점까지의 거리는 이고, 이며 w의 유클리드 norm이다. 최대 margin은 이다.

 

 

 

여기서 SVM은 최대 마진 초평면과 서포트벡터를 KKT(Karush-Kunh Tucker)조건과 라그랑지 방법을 이용하여 구한다.

이것은 SVM의 학습문제가 아래와 같은 제약조건 최적화 문제(Constrained Optimization Problem)가 되고

 

이것이 라그랑주 승수를 도입하여 단일 목적 함수인 라그랑주 함수(Lagrangian function) L( )을 최적화하는 문제로 변환될 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts