개발_기록용

[선형대수학 정리] 19. 주성분 분석 (PCA : Pricipal Component Analysis) 본문

선형대수학

[선형대수학 정리] 19. 주성분 분석 (PCA : Pricipal Component Analysis)

나폴나폴 2024. 7. 24. 18:28
728x90

1. 배경

 


그래픽스 공부에 들어가기 전, 근본 중에서도 근본인 선형대수학을 먼저 파야겠다고 생각했다!
 
Chris Ohk 님의 Game Developer Roadmap 2022를 보고 내가 부족한 부분을 채워나가기로 결심했기 때문이다.
 

https://github.com/utilForever/game-developer-roadmap

 

GitHub - utilForever/game-developer-roadmap: Roadmap to becoming a game developer in 2022

Roadmap to becoming a game developer in 2022. Contribute to utilForever/game-developer-roadmap development by creating an account on GitHub.

github.com

.

2. 정리


주성분 분석 (PCA)을 하는 과정에서 고유벡터를 계산하게 되어

고윳값 분해를 응용하는 예시로 같이 다뤄보게 되었다.

 

주성분 분석 (PCA)

 

 

2차원 데이터를 x, y 좌표평면에각각 점으로 나타냈다고 하자.

 

PCA는 평균값과 거기서 데이터들의 분포를

가장 잘 나타내는

방향을 찾는것이다.

 

이 방향을 찾으면, 그 방향으로 뻗는 수직선에 대해2차원 점들을 정사영해 1차원으로 데이터를 축소할 수 있다. (차원 축소)

 

PCA는 데이터들의 분포를 가장 잘 나타내는 방향을 찾는 것이다.

 


 

PCA에서 찾고자 하는 주성분 방향을 벡터 u로 잡고,

모든 데이터들의 평균을 0으로 옮겨 원점으로 잡는다.

 

그러면 각 데이터들을 u로 정사영할 때

오차를 제일 적게하는 방향이어야 한다.

 

 

 

우리는 u의 방향만을 알기 원하므로, u의 크기를 1이라 가정하고

그때의 R_{d}를 Sample Covariance matrix라 쓰는 과정들을 적었다.

 

 

라그랑주 승수법을 사용해

u로 미분해서 L의 delta값이 0이되는 것을 구하면

 

$$R_{d}u=\lambda u$$

 

R_{d}의 고유벡터를 찾는 과정과 같아진다.


그러면 만약 λ의 값들이 내림차순으로 적혀있다면

u가 q_{1}일 때

 

u의 전치행렬과 Sample Covariance matrix, 그리고 u를 곱한 값이 최대가 되므로

분산이 제일 큰 값이 PCA의 주성분 방향이다.


그리고, u가 q_{2}일 때

u의 전치행렬과 Sample Covariance matrix, 그리고 u를 곱한 값이 두번째로 최대가 되는데

 

q_{1}과 q_{2}는 서로 orthogonal 하므로

PCA에서 두번쨰로 잘 나타내는 주성분 방향은

첫번째로 구한 방향과 수직하다!

 

PCA의 주성분 방향은 분산이 가장 큰 방향이며, 두번째 주성분 방향은 이것과 수직하다.

 

반응형
Comments