**서포트 벡터 머신**은 기계 학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도 학습 모델이며, 주로 분류와 회귀 분석을 위해 사용한다. 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델을 만든다. 만들어진 분류 모델은 데이터가 사상된 공간에서 경계로 표현되는데 SVM 알고리즘은 그 중 가장 큰 폭을 가진 경계를 찾는 알고리즘이다. SVM은 선형 분류와 더불어 비선형 분류에서도 사용될 수 있다. 비선형 분류를 하기 위해서 주어진 데이터를 고차원 특징 공간으로 사상하는 작업이 필요한데, 이를 효율적으로 하기 위해 커널 트릭을 사용하기도 한다.

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

## 정의
일반적으로, 서포트 벡터 머신은 분류 또는 회귀 분석에 사용 가능한 초평면 또는 초평면들의 집합으로 구성되어 있다. 직관적으로, 초평면이 가장 가까운 학습 데이터 점과 큰 차이를 가지고 있으면 분류 오차가 작기 때문에 좋은 분류를 위해서는 어떤 분류된 점에 대해서 가장 가까운 학습 데이터와 가장 먼 거리를 가지는 초평면을 찾아야 한다.
일반적으로 초기의 문제가 유한 차원 공간에서 다루어지는데, 종종 데이터가 선형 구분이 되지 않는 문제가 발생한다. 이러한 문제를 해결하기 위해 초기 문제의 유한 차원에서 더 높은 차원으로 대응시켜 분리를 쉽게 하는 방법이 제안되었다. 그 과정에서 계산량이 늘어나는 것을 막기 위해서, 각 문제에 적절한 커널 함수 
높은 차원 공간의 초평면은 점들의 집합과 상수 벡터의 내적 연산으로 정의된다. 초평면에 정의된 벡터들은 데이터 베이스 안에 나타나는 이미지 벡터 매개 변수들과의 선형적 결합이 되도록 선택된다. 이 선택된 초평면에서, 초평면에 대응된 점 는 다음과 같은 관계가 성립한다.
만약 가 높은 차원으로 대응되었을 때 오히려 더 복잡하고 어려워질 수도 있는데 이런 부분을 주의해야 한다.

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

### 패턴 인식에 있어서의 학습
패턴 인식을 실현하기 위해서는, 우선, 인식 대상으로부터 특징량을 계측(추출)할 필요가 있다.일반적으로는, 특징량은 1 종류 만이 아니고, 복수의 특징량을 계측해, 그것들을 동시에 이용하는 것이 많다. 그러한 특징량은, 통상, 정리해 특징 벡터

로서 표현된다. 여기서,
는, 벡터
의 transpose를 나타낸다.
-->

## 목표 및 아이디어
데이터를 분류하는 것은 기계학습에 있어서 일반적인 작업이다. 주어진 데이터 점들이 두 개의 클래스 안에 각각 속해 있다고 가정했을 때, 새로운 데이터 점이 두 클래스 중 어느 곳에 속하는지 결정하는 것이 목표이다. 서포트 벡터 머신에서, 데이터 점이 -차원의 초평면으로 분류할 수 있는지를 확인하고 싶은 것이다.
이러한 작업을 선형 분류라고 말한다.
데이터를 분류하는 초평면은 여러 경우가 나올 수 있다. 초평면을 선택하는 타당한 방법 중 하나는 두 클래스 사이에서 가장 큰 분류 또는 마진(margin)을 가지는 초평면을 선택하는 것이다. 그래서 우리는 초평면에서 가장 가까운 각 클래스의 데이터 점들 간의 거리를 최대로 하는 초평면을 선택한다. 만약 그런 초평면이 존재할 경우, 그 초평면을 최대-마진 초평면 이라 하고 선형 분류기를 최대-마진 분류기라고 한다.

## 선형 SVM
주어진 학습용 데이터 집합 D(N 개의 점으로 이루어진 집합)를 다음과 같이 정의해보자.

각  가 어떤 클래스에 속해있는지를 나타내는 값으로 1 혹은 -1의 값을 가진다.

위의 학습용 데이터 집합이 값에 따라 선형적으로 분리될 수 있을 때, 데이터 집합을 분리하는 것을 초평면이라 하며 다음의 조건을 만족하는 점 X의 집합으로 나타낼 수 있다.
은 초평면의 법선 벡터(normal vector)이다.

주어진 초평면의 서포트 벡터()는 다음과 같이 정의된다.

주어진 초평면과 같은 법선벡터를 가지면서 를 지나는 초평면은
으로 나타낼 수 있고 비슷한 방식으로 를 지나는 초평면은
이와 같이 나타낸다.

초평면의 마진은 각 서포트 벡터를 지나는 초평면 사이의 거리를 의미한다.
기하학적으로 두 초평면 사이의 거리 즉, 마진을 구하면 라는 것을 알 수 있으며 서포트벡터머신은 마진을 최대로 만드는 알고리즘이다.

서포트벡터를 지나는 초평면 사이엔 데이터 포인트가 존재하지 않아야 하므로 다음과 같은 식이 성립한다.

위 두 식은 아래와 같은 식으로 나타낼 수 있다.

초평면의 조건을 따르며 마진의 최댓값을 구하고자 하는 서포트 벡터 머신 문제는 다음과 같은 최적화 문제로 표현할 수 있다.

### 원 형식
위에서 설명한 최적화 문제는 로 치환을 하게 되면 위의 문제는 2차 계획법 최적화 문제가 된다. 치환된 최적화 문제는 아래와 같이 나타낼 수 있다.

라그랑주 승수법을 이용하면 위의 문제를 다음과 같은 안장점을 찾는 문제로 나타낼 수 있다.
안장점을 찾는 과정에서 가 0으로 지정되기 때문에 영향을 미치지 않는다.
이제 이 문제는 정규 2차 계획법 기법으로 해결할 수 있다. 정적 Karush-Kuhn-Tucker 조건에 따르면, 문제의 해는 훈련 벡터의 선형 조합으로 표현될 수 있다.
적은 수의 에 대한 정의를 유도할 수 있다.
에 대해서 평균을 취하는 것이 좋다.

### 쌍대 형식
분류 규칙을 비제약 쌍대 형식으로 나타내면, 최대 마진 초평면과 분류 작업이 오직 마진 위에 놓여있는 서포트 벡터들로부터만 영향을 받는다는 것을 알 수 있다. 로 치환하면 SVM의 쌍대 형식이 다음과 같은 최적화 문제로 바뀐다.

여기서 를 최소화하는 과정에서 생기는 제약이다.

커널은 로 정의된다.

 항에 의해서 계산될 수 있다:

### 편향된 초평면과 비편향된 초평면
필요에 의해서 초평면이 좌표계의 원점을 지나야하는 경우가 존재한다. 이때 원점을 지나는 초평면을 비편향된 초평면이라 말하며, 그렇지 않은 초평면은 편향된 초평면이라 말한다. 원 형식에선 의 조건을 풀어줌으로써 구할 수 있다.

## 소프트 마진
1995년에 Corinna Cortes와 Vladimir N. Vapnik은 잘못 분류된 자료들을 허용하는 변형된 최대 마진 분류기 아이디어를 제안했다.)에서와 같이 경첩 함수 표기법을 이용하면, 이 최적화 문제는 다음과 같이 쓰일 수 있다.

(2)에서의 제약조건은 목적함수에서

### 듀얼 형식
선형 페널티 함수의 핵심 장점은 상수 ''C''가 오직 라그랑주 승수법의 추가적인 제약조건에 등장함으로써, 듀얼 문제에서는 느슨한 변수가 사라진다는 점이다. 위의 공식화와 이것의 실제상황에서 미치는 큰 영향에 대해서 Cortes와 Vapnik은 2008년에 ACM Paris Kanellakis Award를 수상하였다. 비선형 페널티 함수들도 특히 분류기에서 이상치의 효과를 줄이는데 사용되고 있다. 그러나 이를 사용하는데 주의를 기울이지 않는다면 문제는 볼록하지 않게 되고, 그러면 이는 전역해를 찾는데 상당히 어려운 문제가 된다.

## 비선형 분류
최적의 초평면을 구하는 알고리즘의 시초는 1963년도 vapnik이 제안한 선형 분류였다.
하지만 1992년에 Bernhard E. Boser, Isabelle M. Guyon and Vladimir N. Vapnik 이 최대 마진 초평면 문제에 커널 트릭을 적용해서 비선형 분류를 제안하였다.{{서적 인용

최대 마진 분류는 많은 연구를 통해 조정되어왔다. 또한 고차원 공간을 이용한 분류는 기존 공간에서의 잘못된 분류 결과를 내지는 않을 것이라고 생각되어왔다. 하지만 고차원 공간에서의 분류는 기존 공간에서의 분류 일반화의 오차를 상승시킨다는 것이 증명되었고 그 상승 폭에 대한 임계 값이 있다는 것 역시 알려져 있다.

다음과 같은 일반적인 커널들이 있다.

커널은 변환 .

**w**의 값 또한 변환된 공간에 다음과 같이 존재한다. .

분류를 위해서 **w**와 내적을 구할 때는 다음과 같은 커널 트릭을 이용해 계산할 수 있다. .

하지만, 일반적인 경우에 를 만족하는 **w**'는 존재하지 않는다.

## 적용
SVM은 다음과 같은 현실 세계의 문제들을 해결하는데 사용된다:

## 서포트 벡터 머신 라이브러리
여러 프로그래밍 언어에 지원되는 서포트 벡터 머신 라이브러리 목록