본문 바로가기
개발 공부/ML&DL

[차원 축소] Kernel-PCA

by whatisthisblog 2020. 3. 2.
반응형

1. Kernel-PCA

 

1.1 Kernel 기법

 

PCA, SVM 등에서 사용되는 커널(kernel) 기법은 비선형 함수인 커널함수를 이용하여 비선형 데이터를 고차원 공간으로 매핑하는 기술입니다.

아래 좌측의 데이터 분포를 보면 어떠한 방향으로의 선형변환으로도 데이터 분포를 잘 분류할 수 없을 것 입니다.

그러나 이를 커널함수를 이용해 고차원 공간으로 매핑하여 PCA를 수행한다면 데이터 분포를 분류할 수 있는 결정 공간을 찾을 수 있게 됩니다.

 

가우시안 커널 함수를 이용한 비선형 데이터의 고차원(Feature Space)으로의 매핑

 

m차원을 n차원으로 매핑하는 매핑함수 $\Phi$에 대해 커널 $K$는 다음과 같이 정의할 수 있습니다.

 

$$K(x_1, x_2) = {\Phi (x_1)}^T \Phi (x_2)$$

 

매핑함수 $\Phi$는 선형변환 함수이며, 표준행렬 $A$에 대해 $\Phi (x) = Ax$ 로 표현할 수 있습니다.

따라서 커널 $K$는 다음과 같이 표현 가능합니다.

 

$$K(x_1, x_2) = {x_1}^T A^T A x_2$$

 

위의 결과에 의해 $K$의 결과는 스칼라 값을 가지게 됩니다. ${x_1}^T : (1 \times m), A^T : (m \times n), A : (n \times m), x_1 : (m \times 1)$ 

그리고 Mercer's Theorm에 의해 $K$의 값은 $K(x_1, x_2) = K(x_2, x_1)$을 만족하며 0 이상의 값을 갖는 대칭행렬이어야 합니다.

 

 

1.2 Kernel 종류

 

위의 조건을 만족하면서 흔히 사용되는 커널함수의 종류는 다음과 같습니다.

 

- Gaussian (RBF) Kernel : $K(x_1, x_2) = exp( {{{\parallel x_1 - x_2 \parallel}^2} \over {2 \sigma^2}} ), \sigma \ne 0$

- Polynomial Kernel : $K(x_1, x_2) = {({x_1}^T x_2 + c)}^d, c > 0$

- Sigmoid Kernel : $K(x_1, x_2) = tanh(a({x_1}^T x_2) + b), a, b \ge 0$

- Linear Kernel : $K(x_1, x_2) = {x_1}^Tx_2$

 

 

참고 도서 :

Hands-On Machine Learning with Scikit-Learn & TensorFlow, 한빛미디어

반응형

댓글