PCA(Principal Component Analysis)란?
Face Recognition에 대해 관심이 생겨 Eigenimages - Stanford University 자료를 읽어보다 이해가 안되는 부분이 많아서 PCA에 대해서 먼저 알아보기로 했다. 아래 내용은 공돌이의 수학정리노트 - 주성분 분석(PCA)를 참고했다.
어떤 Vector에 데이터를 정사영 시켜야 원래의 데이터 구조를 잘 반영할 수 있을까?
PCA(Principal Component Analysis)는 어떤 Vector에 데이터를 정사영 시켜야 하는가를 고려해서 고차원 데이터의 차원을 낮추는 기법이다.
쉽게 이야기 하면 학생들의 국어, 영어, 수학 과목 점수를 시험의 난이도,...를 반영해서 종합 점수로 표현하는 것이라고 생각하면 된다.
Covariance matrix: 데이터의 구조를 표현하는 행렬
데이터의 특징을 가장 잘 반영하는 Vector에 정사영을 하려면 데이터의 구조를 알아야한다. Covariance matrix(이하 공분산 행렬)는 데이터 구조를 설명해주며, 특히 feature pairs들의 변동이 얼마만큼이나 함께 변하는가를 행렬에 나타내고 있다.
공분산 행렬의 기하하적 의미는 "현재 내가 보고 있는 데이터(학생들의 국영수 점수,...)는 어떤 행렬(=공분산 행렬)에 의해 선형 변환된 결과이다"라고 이해하면 쉽다.
공분산 행렬의 eigen vector와 eigen value
따라서 데이터의 특징을 가장 잘 반영하는 Vector에 정사영하기 위해서는 공분산 행렬을 찾아야 하고 공분산 행렬의 최대 variance를 가지는 eigen vector에 정사영하는 것이 가장 데이터의 특성을 반영한 차원 축소라고 할 수 있다. (최대 variance를 가지는 eigen vector라는 말은 eigen value가 가장 큰 eigen vector, 즉 공 분산의 principle axis의 방향이다.)