파이썬을 이용하여 커널법 배우기/커널 주성분 분석 이론 문서 원본 보기
←
파이썬을 이용하여 커널법 배우기/커널 주성분 분석 이론
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
커널 주성분 분석은 선형 주성분 분석과 마찬가지로 특징 공간상에서 목적함수 <math>J_1</math> 를 최소화하는 단위 벡터를 찾는 문제이다. 사상 함수 <math>\phi(\cdot)</math> 를 통해 임의의 고차원 <math>(\in \Re^F)</math> 으로 확장된 샘플 집합을 <math>\mathbf{X}^F = [\phi(\mathbf{x}_1, \ldots, \phi(\mathbf{x}_l)]^\top \in \Re^{F \times l}</math> 라 하면, 특징 공간상의 공분산 행렬은 다음과 같이 계산 가능하다. :<math> \mathbf{C}^F = \sum_{k=1}^{l}(\phi(\mathbf{x}_k) - \mathbf{m}^F)(\phi(\mathbf{x}_k) - \mathbf{m}^F)^\top </math> 여기서 <math>\mathbf{m}^F</math>는 특징 공간상에서의 샘플 평균이다. :<math> \mathbf{m}^F = \frac{1}{l}\sum_{k=1}^{l}\phi(\mathbf{x}_k) </math> Matlab 및 Numpy를 비롯한 다양한 행렬관련 언어로 쉽게 구현하기위해 행렬표현법을 이용하여 식 ()를 나타내면 다음과 같다. :<math> \mathbf{C}^F = \mathbf{X}^F \mathbf{H}\mathbf{H} \mathbf{X}^{F\top} </math> 여기서 <math>\mathbf{H} = \mathbf{I} - \frac{1}{l}\mathbf{1}_{l, l}</math>, <math>\mathbf{H} = \mathbf{H}^\top</math> 이고, <math>\mathbf{I}</math> 와 <math>\mathbf{1}_{n,n}</math> 는 각각 크기가 <math>n \times n</math> 인 단위 행렬, 모든 원소가 1인 행렬이다. 이제 선형 주성분 분석과 마찬가지로 위 식의 고유값으로 주성분을 구할 수 있다. 그러나 식 ()은 임의의 고차원 특징 공간상에 존재하기 때문에 고유값을 직접 구할 수 없다. Kernel method 설명!!!!!!!!! 특징 공간상의 고유벡터 <math>\mathbf{v}^F</math> 는 샘플들의 선형 결합으로 나타낼 수 있다는 가정을 통해 문제를 해결할 수 있다. :<math> \mathbf{v}^F = \mathbf{X}^F \mathbf{H} \boldsymbol{\alpha} </math> 식 ()의 고유값 문제는 다음과 같이 표현 가능하다. :<math> \mathbf{C}^F \mathbf{v}^F = \lambda \mathbf{v}^F </math> 이제 각 항에 <math>\mathbf{H} \mathbf{X}^{F\top}</math> 을 곱하고, 식 ()을 대입하면 다음을 얻을 수 있다. :<math> \begin{align} \mathbf{H} \mathbf{X}^{F\top} \mathbf{X}^F \mathbf{H}\mathbf{H}\mathbf{X}^{F\top} \mathbf{X}^F \mathbf{H} \boldsymbol{\alpha} & = \lambda \mathbf{H} \mathbf{X}^{F\top} \mathbf{X}^F \mathbf{H} \boldsymbol{\alpha} \\ \Rightarrow \mathbf{H}\mathbf{X}^{F\top} \mathbf{X}^F \mathbf{H} \boldsymbol{\alpha} & = \lambda \boldsymbol{\alpha} \\ \Rightarrow \mathbf{H} \mathbf{K} \mathbf{H} \boldsymbol{\alpha} & = \lambda \boldsymbol{\alpha} \end{align} </math> 여기서 <math>\mathbf{K}</math> 는 커널 행렬(kernel matrix)이며, 이 행렬의 <math>i</math> 열, <math>j</math> 행 값 <math>K_{ij}</math> 는 다음과 같이 구할 수 있다. :<math> K_{i, j} = \phi(\mathbf{x}_i)^\top \phi(\mathbf{x}_j) = k(\mathbf{x}_i, \mathbf{x}_j) </math> 위 식에서 <math>k(\cdot, \cdot)</math> 는 커널 함수(kernel function)을 의미하며 Mercer's Theorem을 만족하는 커널 함수를 이용할 수 있다. 이제 식 ()에서 고유값 문제로 <math>\boldsymbol{\alpha}</math> 를 구할 수 있다. 추가적으로 <math>\mathbf{v}^{F\top}\mathbf{v^F} = 1</math> 을 만족시키기 위해 다음과 같은 정규화가 필요하다. :<math> \begin{align} \mathbf{v}^{F\top}\mathbf{v}^F & = \boldsymbol{\alpha}^\top \mathbf{HKH}\boldsymbol{\alpha} \\ & = \lambda \boldsymbol{\alpha}^\top \boldsymbol{\alpha} = 1 \\ \therefore \boldsymbol{\alpha}' & = \frac{\boldsymbol{\alpha}}{\sqrt{\lambda}} \end{align} </math> 이제 <math>\mathbf{C}^F</math> 의 고유값 <math>\mathbf{v}^F</math> 는 <math>\mathbf{v}^F = \mathbf{X}^F \mathbf{H} \boldsymbol{\alpha}'</math> 로 나타낼 수 있다. 선형 주성분 분석과 같이 커널 주성분(kernel principal components)은 <math>q</math> 개의 선택된 고유값을 <math>\mathbf{V}^F = [\mathbf{v}_1^F, \ldots, \mathbf{v}_q^F]</math> 라 하면, 이 주성분으로 특징 샘플 <math>\phi(\mathbf{y})</math> 를 사상하면 <math>P_{V^F} (\phi(\mathbf{y}))</math> 를 얻을 수 있다. :<math> \begin{align} P_{V^F} (\phi(\mathbf{y})) & = \mathbf{V}^{F\top} (\phi(\mathbf{y}) - \mathbf{m}^F) \\ & = \mathbf{A}^T \mathbf{H} \mathbf{X}^{F \top} (\phi(\mathbf{y}) - \frac{1}{l}\mathbf{X}^F \mathbf{1}_{l, 1}) \\ & = \mathbf{A}^T \mathbf{H} (\mathbf{K}_{\mathbf{y}} - \frac{1}{l} \mathbf{K} \mathbf{1}_{l, 1}) \end{align} </math> 여기서 <math>\mathbf{A} = [\boldsymbol{\alpha}_1', \ldots, \boldsymbol{\alpha}_q']</math> 는 식 :eq:`eq-kpca-norm` 에서 고유값이 큰 순에 대응하는 <math>q</math> 개의 선택된 고유벡터이다. <math>\mathbf{K}_{\mathbf{y}}</math> 는 <math>\mathbf{X}^{F\top}\phi(\mathbf{y})</math> 를 나타내며 커널 함수를 이용하여 구할 수 있다. 원래 샘플 복원은 다음과 같이 수행하는데, :<math> \phi(\mathbf{y})' = \mathbf{V}^F\mathbf{V}^{F\top} (\phi(\mathbf{y}) -\mathbf{m}^F) + \mathbf{m}^F </math> 복원 결과는 여전히 특징 공간상에 존재하게 된다. 이 복원된 샘플의 입력 공간상의 값 <math>\mathbf{y}'</math> 는 pre-image 문제로 해결 가능하다. [[분류:파이썬을 이용하여 커널법 배우기|커널 주성분 분석 이론]]
파이썬을 이용하여 커널법 배우기/커널 주성분 분석 이론
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보