rueki

Kernel SVM 본문

머신러닝

Kernel SVM

륵기 2020. 6. 28. 12:48
728x90
반응형

SVM은 기본적으로 선형 분류를 한다. 그러나 선형 분류로 여러가지 데이터를 분류하기란 쉽지 않다.

그 예제로 xor 문제를 들 수가 있다.

 

XOR을 선형으로 어떻게 분류할 수 있을까? 생각을 해봐도 잘 안 떠오른다.

여기서 이제 kernel 개념을 도입하는데 Kernel SVM의 정의는 아래와 같다.

 

원공간(Input Space)의 데이터를 선형분류가 가능한 고차원 공간(Feature Space)으로 매핑한 뒤

두 범주를 분류하는 초평면을 찾는다.

 

, 쉽게 설명하면 차원을 점점 고차원으로 사상시켜서, 데이터를 고차원에서 보겠다는 뜻인데, 말로는 이해하기 어려울 수도 있으니 그림을 통해 보자.

 

왼쪽의 2차원에서는 비선형 특성을 띄고 있어, 선형적으로 구분할 수가 없다. 그러나 차원을 mapping 시키면?

오른쪽 그래프를 보면 두 데이터가 극명하게 나뉘는 것을 볼 수가 있다. 이제 그것들을 하나의 plane으로 classification을 할 수 있게 되었다.

 

정리를 하자면, 낮은 차수에 있을 때는 복잡한 dataset을 표현하기는 어려우나, 실제로 특성을 추가 하지는 않고, 다항식 특성을 많이 추가한 것과 비슷한 커널 트릭을 사용하는 것이다.

 

이제 Kernel function에 대해 알아보도록 하겠다.

앞에서 커널의 정의를 알아보았고, 함수의 성질은 아래와 같다.

 

- Mercer's theorem

   : 저차원에서의 벡터 a와 b를 높은 차원의 공간에 매칭하는 커널함수가 존재한다.

 

- 고차원으로 사상된 두 벡터의 내적과 커널 함수의 값이 같아야한다.

 

  • 커널함수 수식

2차 다항식의 mapping을 위와 같이 정의할 때, 2차원 벡터 a 와 b로 위의 mapping을 적용한 다음, 내적을 적용해보자.

 

728x90
반응형

'머신러닝' 카테고리의 다른 글

서포트 벡터 머신 (SVM)  (0) 2020.06.28
Comments