SVM(Support Vector Machine)

Kernel Methods

왕눈임 2024. 9. 9. 11:30

Kernel Methods란? 

벡터의 내적 연산을 단순화 하기 위한 방법인데..

 

 

우선 basis function부터 알아야 한다.

 

basis function 이란? 

기존의 data에 새로운 연산을 추가해 데이터의 차원을 키우는 함수다.

가령 다음과 같은 벡터가 존재한다고 한다면 

 

아래와 같이 새로운 연산을 추가해 벡터의 차원을 키우는 것

 

 

그런데 이거 왜 하나

 

분류가 되지 않은 데이터의 차원을 키워 분류 가능한 차원으로 매핑하거나

선형 관계가 관측되지 않는 데이터를 차원을 키워 선형성을 만족하게 하는데 목적.

모델 학습을 가능하게 하기 위함이다.

 

아래처럼 저 차원의 data를 basis function을 활용하여 고 차원으로 매핑하여 분류 가능하게 하는 것이 목적.

basis function 적용 예시

 


 

 

basis function을 활용한 회귀

 

아래식은 basis function을 적용한 회귀직선

 

이제 회귀의 목적함수오차 함수에 위에 식을 집어넣으면 다음과 같은 식이 나온다.

 

이것을 미분하여 경사하강법으로 w를 계산하면 아래와 같다.

 

여기서 문제가 생기는데..

 

고차원으로의 매핑인 basis function 계산을 한번 하는 것도 복잡한데

w를 업데이트할 때마다 반복적으로 basis function 함수를 계산해야 함 이게 연산량이 매우 크다 

 

그래서 이 계산을 줄이기 위한 방법이 kernel trick

 

 


 

계산을 어떻게 줄이나?

우선 찾아야 할 모수 w는 basis function에 대한 선형결합으로 표현된다고 가정하자.

즉 아래식에서 u는 상수임을 의미

왜 가정?

이 식이 성립한다면 앞서 봤던 경사하강법 연산이 간단화되기 때문

따라서 이 가정이 참임을 증명하자.

 

다시 경사하강법 식을 보면

 

이 식에서 

참이라고 가정한 아래 선형결합식을

 

경사하강법 계산 과정에 대입하면 다음과 같다.

 

이때 내적의 결과는 스칼라이므로      해당 부분이 스칼라가 되어

w가 basis function에 대해 선형결합으로 표현되는 것을 알 수 있다.

 

따라서 수학적 귀납법에 의해 모수 w는 선형결합으로 표현될 수 있음을 증명하였다.

 

 


 

 

다시 돌아와서 

 

이제 아래에 경사하강법 연산과정에서

 

w에 w의 선형결합 표현을 대입해 보면 

다음과 같이 basis function에 대한 내적 계산이 나온다.

 

이때 이 내적을 kernel이라 부른다

 

그래서 kernel trick란?

 

이 내적 계산을 w를 업데이트할 때마다 직접 계산을 하는 것이 아니라

해당 내적 계산을 행렬로 미리 계산을 해둔다.

 

이제 고차원으로 매핑한 후 모델 학습할 때에 연산을 효율적으로 할 수 있게 된다.

 

'SVM(Support Vector Machine)' 카테고리의 다른 글

SVM(support vector machine)  (0) 2024.09.10
KKT condition  (0) 2024.09.10