서포트 벡터 머신

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
선형 SVM이 두 자료(흰색 원, 검은색 원)을 직선으로 분리하고 있다.

서포트 벡터 머신(support vector machine, SVM)은 지도 학습에서 사용되는 방법으로, 주어진 자료에 대해서 그 자료들을 분리하는 초평면 중에서, 자료들과 가장 거리가 먼 초평면을 찾는 방법이다.

이 기법은 비선형 분류에서도 커널 트릭을 사용하여 적용할 수 있다.

SVM의 개념적 특징[편집]

다음과 같은 학습데이터집합 D가 주어졌다고 생각해보자.

\mathcal{D} = \{ (\mathbf{x}_i, c_i)|\mathbf{x}_i \in \mathbb{R}^p, c_i \in \{-1,1\}\}_{i=1}^n

ci 는 1이나 -1의 값을 갖는 변수로 \mathbf{x}_i 가 속한 클래스를 의미하며, \mathbf{x}_i p차원 실수벡터이다.

H3은 두 클래스의 점들을 제대로 분류하고 있지 않다. H1과 H2는 두 클래스의 점들을 분류하는데, H2가 H1보다 더 큰 마진을 갖고 분류하는 것을 확인할 수 있다.

신경망을 포함하여 많은 학습 알고리즘들은, 이러한 학습데이터가 주어졌을때 c_i=1인 점들과 c_i=-1인 점들을 분리하는 hyperplane을 찾아내는 것이 공통의 목표인데, SVM이 다른 알고리즘과 차별화되는 특징은 단지 점들을 분리하는 hyperplane을 찾는 것으로 끝나는 것이 아니라, 점들을 분리할 수 있는 수많은 후보평면들 가운데 마진이 최대가 되는(maximum-margin) hyperplane을 찾는다는 것이다. 여기서 margin이란 hyperplane으로부터 각 점들에 이르는 거리의 최솟값을 말하는데, 이 margin을 최대로 하면서 점들을 두 클래스로 분류하려면, 결국 클래스1에 속하는 점들과의 거리 중 최솟값과 클래스 -1에 속하는 점들과의 거리 중 최솟값이 같도록 hyperplane이 위치해야 하며, 이러한 hyperplane을 maximum-margin hyperplane이라고 한다. 결론적으로 SVM은 두 클래스에 속해있는 점들을 분류하는 수많은 hyperplane들 중, 최대한 두 클래스의 점들과 거리를 유지하는 것을 찾아내는 알고리즘이라 할 수 있다.