2021. 8. 16. 11:58ㆍMachine Learning/Models
이번 글에서는 데이터의 차원 축소에 많이 쓰이는 방법 중 하나인 주성분 분석에 대해 알아보겠습니다.
[관련 글] 가우시안 혼합 모델의 확장ExtentionofGaussianMixtureExtentionofGaussianMixture
DD차원의 NN개 데이터셋 x=(x1,…,xN)Tx=(x1,…,xN)T에 대해 생각해보겠습니다. 우리는 DD 차원의 데이터를 MM차원으로 축소하기를 원한다고 가정하겠습니다.
M=1M=1이라고 가정하고, 우리가 축소할 차원의 방향을 가진 u1u1벡터를 생각해보겠습니다.
각각의 데이터를 u1u1방향으로 사영projectionprojection 시킨 후, 그들의 분산을 구하면 다음과 같습니다.
1NN∑n=1{uT1xn−uT1ˉx}2=uT1Su11NN∑n=1{uT1xn−uT1¯x}2=uT1Su1
여기서 S=1NN∑n=1(xn−ˉx)(xn−ˉx)TS=1NN∑n=1(xn−¯x)(xn−¯x)T
우리는 최대한 데이터가 넓게 분포할 수 있는 차원의 벡터 u1u1을 원하기 때문에, 앞서 구한 분산을 최대화하는 u1u1을 찾아보겠습니다.
계산의 편의를 위해 uT1u1=1uT1u1=1이라는 제약 조건을 준다면, 위의 문제는 제약된 최적화 문제를 푸는 방법 중 하나인 라그랑지 승수 법으로 풀 수 있습니다. 즉 다음 식을 미분하여 0이 되는 u1u1을 찾아주면 됩니다.
uT1Su1+λ1(1−uT1u1)uT1Su1+λ1(1−uT1u1)
찾아준 u1u1의 식을 정리하면 다음과 같습니다.
Su1=λ1u1 ⋯(1)Su1=λ1u1 ⋯(1)
이렇게 찾아준 벡터 u1u1를 고유 벡터eigenvectoreigenvector라고 합니다.
또한 (1)(1)의 식 왼쪽에 uT1uT1를 곱해주면 다음과 같습니다.
uT1Su1=λ1uT1Su1=λ1
즉 데이터의 분산을 최대로 만드는 고유 벡터로 사영시켰을 때의 분산이 λ1λ1이라는 뜻이 되는데, 이 λλ 값을 고윳값eigenvalueeigenvalue라고 합니다.
위와 같은 방법을 써서 uu벡터를 더 많은 차원으로 확장한다면, 여러 개의 고유 벡터와 고윳값이 나올 수 있을 것입니다. 보통 시각화를 위해 두 개의 고유 벡터까지 고려하는 것이 일반적인 경우라고 할 수 있습니다.