Classification 문제를 풀때 사용하는 머신러닝 알고리즘이다.

데이터들을 n차원(feature의 차원)의 공간에 찍고, 데이터들을 나누는 직선을 그어 분류한다.

파란색 점과, 초록색 점들을 구분하는 선을 그리고자 할 때 그어진 선과 가장 가까운 점들을 Support vector라고 부르며, 각각의 Support vector와 선과의 사이 거리를 margin이라고 하며, 이 margin값이 최대가 되도록 line을 잡는 것이 Support vector machine 이다.

만약 데이터가 선으로 나누기 힘들 경우 svm function(kernel)을 통하여 고차원으로 데이터를 표현 한 뒤, 데이터를 밑에 그림과 같이 나눈다.

Kernels

Kernel이란, svm에서 사용하는 input 데이터를 알맞은 데이터 형태로 변환 시키는 함수를 말한다.

두개의 포인트를 알맞은 공간(고차원)으로 매핑 시키고 inner product 값을 구한다.

  1. Polynomial kernel

    자연어 처리에 사용되는 커널이다.

    $$ K(x,y) = (x^\mathsf{T} y + c)^{d} $$

    x와 y는 데이터의 input space이고, d는 feature space의 차원(d=2 이면 quadratic 함수가 된다.) C는 파라메터

  2. Gaussian kernel

    일반적인 kernel이며 데이터에 대한 prior가 없을 때 사용한다.

  3. Gaussian radial basis function (RBF)

    일반적인 kernel이며 데이터에 대한 prior가 없을 때 사용한다.

  4. Sigmoid kernel

    인공 신경망의 앞부분에 사용할 수 있다.

Pros and Cons