본문 바로가기
Bioinformatics/Algorithms

커널 함수와 지지 벡터 머신(SVM)

by 임은천 2013. 5. 8.

본 내용은 http://www.quora.com/Machine-Learning/What-are-Kernels-in-Machine-Learning-and-SVM의 답변 중 가장 좋다고 생각한 몇 가지의 답변을 선택하여 번역했다.


니킬 가그(Nikil Garg)의 답변


이것은 단순하고, 이해하기 쉬운, 수학으로 설명된 내용이 적은 지지 벡터 머신(SVM, supporting vector machine)과 커널 함수에 대한 설명이다.


자, 지지 벡터 머신이란 무엇인가? 지지 벡터 머신은 분류(classification) 문제를 해결하는데 도움을 주는 기술이다. 지지 벡터 머신을 이해하기 위해서, 먼저 우리는 실제로 분류 문제가 무엇인지 알 필요가 있다.


분류 문제:


일반적인 분류 문제의 상황에서, 우리는 어떤 공간에 빨강색 점들과 파랑색 점들을 가지고 있고, 모든 빨강색 점들과 파랑색 점들이 주어진다. 우리는 분류를 위해서 사용될 수 있는 포물선(구분 경계라고 부르는)을 찾기를 원한다.


SVM:


이미 알 수 있듯이, 평행선 형태의 경계(혹은 고차원에서 생성되는 초평면과 동일한 의미이다)를 찾는 것이 더 쉽고 효율적이다. 초평면은 2차원 공간에서 선분, 그리고 3차원 공간에서 평면의 일반화 이다. 지지 벡터 머신들은 빨강색과 파랑색 점들을 구분하는데 이용될 수 있는 초평면을 찾는데 도움을 준다.


나눌 수 없는 자료:


지지 벡터 머신들은 만약 초평면이 존재한다면 우리가 나누어지는 초평면을 아마도 찾을 수 있게 해줄 것이다. 만약 이렇게 빨강색과 파랑색 점들을 나눌 수 있는 초평면이 없다면 어떻게 할 것인가? 예를 들어 2차원 공간에서 원을 따라서 점들이 배열되어 있는데 인접한 점들마다 색상이 변한다고 상상해 보자. 이 경우에는 빨강색과 파랑색 점을 나누는 평행선(2차원 공간에서의 초평면)이 없다.


지지 벡터 머신들은 여기에서 단순히 나눌 수 있는 해결책을 찾을 수 없다. 왜냐하면 여기에는 해결책이 없기 때문이다! 우리는 이 시점에서 완전히 막혔다. 그리고 이 때 커널이 등장해서 우리를 도와줄 차례이다.


커널 함수들:


단순한 1차원 공간의 예를 이용해서 설명해보자. 주어진 점들이 다음과 같다고 가정하자:

1차원 초평면은 하나의 수직선일 것이다. 단순하게 아무런 수직선이 주어진 자료 집합을 분류할 수 없을 것이다. 하지만, 만약 우리가 모든 점들을 2차원 공간으로 다음 사상  을 이용해서 투영한다면, 우리는 2차원 공간에서 다음의 자료 집합을 얻을 수 있을 것이다:



사실 이제 우리는 빨강색과 파랑색 점들을 구분할 수 있는 초평면(2차원 공간에서 하나의 임의의 선분)을 찾을 수 있다. 그리고 그렇기 때문에 이제 우리는 하나의 지지 벡터 머신을 이용해서 우리의 자료를 분류할 수 있다. 하나의 가능한 분류 선분이 빨강색으로 표현되어 있다.


그래서 이 개념의 중심 생각은 데이터의 분류성이 증진되는 것을 가능하게 하는 고차원 공간으로 점들을 투영할 수 있다는 것이다. 이 사상(우리의 예에서는 )는 커널 함수라고 불린다.


추가적인 짧은 팁:


실제적으로 우리는 커널 함수를 이용해서 우리의 데이터를 매우 매우 높은 차원의 공간으로 이동시킨다. 사실, RBF 커널과 같은 커널들은 데이터를 무한의 공간으로 사상한다. 아마 여러분은 그렇게 높은 차원의 표현으로 사상하고 생성하는 것은 계산적으로 힘든 작업이라고 생각할 것이다. 연관된 개념인 커널 트릭은 이러한 계산을 훨씬 쉽게 할 수 있도록 우회하는 방법을 제공한다.


빈센트 리바스 리폴(Vincent Ribas Ripoll)의 답변


직관적으로, 한 커널은 당신의 입력 데이터를 좀 더 쉽게 다루고 처리할 수 있게 해주는 단순환 변환(혹은 지지 벡터 머신과 같은 알고리즘)이다. 아래 그림에 보이는 것처럼 우리가 빨강색 원들과 파랑색 십자가들을 분류하는 단순한 문제를 가지고 있다고 가정해보자.


우리의 분류 평면은 왼쪽 그림에 보이는 타원일 것이다. 하지만, 우리의 데이터를 사상을 통해서 3차원 공간으로 변환시키는 것은 문제를 더욱 쉽게 만들 것이다. 왜냐하면 이제 우리의 점들은 단순한 평면으로 분류가될 수 있기 때문이다. 높은 차원으로 포함을 시키는 것은 커널 트릭이라고 불린다.


결론적으로, 그리고 약식으로 말해서, 한 커널은 일반 점들을 내적 공간으로 포함시키는 것을 포함한다.



추신: 나는 이 그래프를 http://www.sussex.ac.uk/Users/christ/crs/ml/lec08a.html에서 가져왔고, 이것은 또한 '해스티와 팁시라니의 저술: 통계적 학습의 요소들(Hastie and Tibshirani: Elements of Statistical Learning)'에서 나타난다.


길리스 다니엘슨(Gillis Danielsen)의 답변


여기에는 지지 벡터 머신이 무엇을 하는지 훨씬 짧은 동영상이 있다. 기본적으로 이 기술은 자료의 선형 분류가 가능한 고차원의 공간으로의 투영을 찾는 것이다(다른 분들이 이미 자세하고 정확한 답을 제공했기 때문에 나는 단지 영상을 공유하고자 한다).



댓글