

PCA는 고차원의 데이터를 저차원으로 변환하는 기법으로, 데이터의 분산을 최대화하는 방향으로 주성분(principal components)을 찾아 그 축을 따라 데이터를 투영합니다. 주로 데이터의 차원을 축소하거나, 데이터의 중요한 특징을 추출하는 데 사용됩니다.
데이터의 분산(variability)을 최대한 보존하는 방향으로 새로운 축을 정의합니다.
새롭게 정의된 축(주성분들)은 서로 직교(orthogonal)합니다.
고차원의 데이터를 몇 개의 주성분만으로 표현해도, 데이터의 중요한 정보가 보존될 수 있습니다.
각 feature의 평균을 0으로 맞추는 정규화를 합니다.
정규화된 데이터의 공분산 행렬을 계산합니다.
공분산 행렬의 고유벡터(eigenvectors)와 고유값(eigenvalues)을 계산합니다.
고유값이 큰 순서대로 대응되는 고유벡터를 선택하여 주성분을 정의합니다.
데이터를 선택된 주성분 축에 투영하여 새로운 저차원 데이터를 얻습니다.
Whitening은 PCA를 수행한 후, 주성분들의 스케일(크기)을 표준화하는 과정을 말합니다. 이는 각 주성분의 분산을 동일하게 맞추는 작업으로, 결과적으로 변환된 데이터의 공분산 행렬이 단위 행렬(identity matrix)이 되도록 합니다.
주성분들이 서로 독립적이고, 분산이 동일하게 되도록 만듭니다.
Whitening은 종종 신경망이나 머신러닝 알고리즘에 데이터를 입력하기 전의 전처리 단계로 사용됩니다. 데이터의 분포를 표준화하면 학습이 더 빠르게 수렴할 수 있습니다.
먼저 PCA를 통해 데이터를 주성분으로 변환합니다.
각 주성분을 해당 고유값의 제곱근으로 나눕니다. 이는 각 주성분이 동일한 분산을 가지도록 만듭니다.
이렇게 분산을 동일하게 맞춘 주성분들로 데이터를 재구성합니다.
PCA로 변환된 데이터 에 대해 whitening을 수행한 데이터 는 다음과 같이 계산됩니다.
여기서 Λ는 PCA의 고유값들의 대각 행렬입니다.