본 내용은 Edwith의 컴퓨터비전, 머신러닝, 딥러닝을 이용한 의료영상분석을 요약 정리한 내용으로 DGIST 박상현 교수님과 Edwith, STAR-MOOC에 그 저작권이 있음을 미리 공지합니다.
URL : https://www.edwith.org/medical-20200327/lecture/63158/
PCA : 데이터의 차원을 줄일 때 많이 사용
데이터를 투영했을 때 분산을 Maximize하는 분포를 찾는 것이 주 목적입니다.
때문에 단순히 축에 대한 투영뿐 아니라 벡터에 대한 Maximize하는 분포를 찾는 것이 일반적입니다.
Projection을 통한 Data compression
ex) 2차원 -> 1차원
X : 데이터
$\vec{e}$ : variance가 큰 벡터 e
Maximize $\vec{e}^T C \vec{e}$
라그랑지 승수법을 이용해서 풉니다.
(편미분=0을 통해 구합니다. covariance matrix에서 고유값과 고유벡터를 구하는 값으로 구하는 방법으로 나옵니다.)
ex) 2D의 경우 eigenvalue와 eigenvector가 각 2개씩 나올 것입니다.
eigenvector로 얻어낸 2개의 축을 이용하여 1D로 projection시킵니다.
평균을 구하고 평균에서 각 데이터 세트별 x가 뺀 값을 구합니다.
그 후 covariance matrix를 구합니다.
$C=\frac{1}{m}\sum_{i=1}^m (dx^{(i)})(dx^{(i)})^T$
2차원이라면 C가 2 X 2가 될 것입니다.
eigenvector들을 구하기 위해 Singular Value Decomposition(SVD)를 사용합니다. 이 내용은 선형대수학에서 사용하는 기법으로 다른 matrix 행과 열을 사용할 때 정방행렬로 만들어서 값을 구하는데 좋은 기법입니다.
차원 수와 같은 eigenvector를 얻을 것
얻은 eigenvector로 데이터를 변환합니다.
eigenvector를 사용하여 복원이 가능합니다만 복원을 하더라도 완벽하게는 되지 않습니다. 왜냐하면 나머지 eigenvector가 생략된 상태이기 때문입니다.