SVD & PCA

Everafter·2022년 11월 27일
0

ML Study 2022

목록 보기
10/10

SVD(Singular Value Decomposition)

SVD의 종류

전체 SVD (Full SVD)

특이값 분해(SVD; Singular Value Decomposition)

실수 항들을 갖는 n×dn \times d 행렬 DD 는 항상 다음의 3개의 행렬로 분해될 수 있다.

D=QΣPTQ:n×n, Σ:n×d, P:d×dD = Q\Sigma P^T \\ Q:n\times n, \space \Sigma: n\times d, \space P:d\times d

QQPP는 직교 행렬(Orthogonal), Σ\Sigma는 ‘비음수’ ‘비정방형’ 대각행렬(Diagonal)이다.

더 자세한 구성은 다음과 같다.

  1. QQ를 구성하는 nn개의 ‘좌 특이벡터’ 열은 n×nn \times n 행렬 DDTDD^Tnn개의 고유벡터에 해당한다. DDTDD^T가 대칭행렬이므로 고유벡터들은 모두 직교정규한다.
  2. PP를 구성하는 dd개의 ‘우 특이벡터’ 열은 d×dd \times d 행렬 DTDD^TDdd개의 고유벡터에 해당한다. DTDD^TD가 대칭행렬이므로 고유벡터들은 모두 직교정규한다.
  3. n×dn \times d 비정방형 대각행렬 Σ\Sigma의 대각 항들에는 DTDD^TD또는 DDTDD^Tmin{n,d}\mathrm{min}\{n, d\}개의 가장 큰 고윳값들의 제곱근인 특이값들이 들어간다.

존재성의 증명은 추후에 따로 다루겠다.

절약형 SVD (Thin SVD)

nndd의 값이 다르면 QQPP 둘 중 nd\left\vert n-d \right\vert개의 ‘짝 없는’ 고유벡터가 남게 된다. 이는 실제 값에 영향을 주지 않으므로 ‘절약형 SVD’를 유도할 수 있다.

스펙트럼 분해 꼴의 ‘절약형 SVD’는 다음과 같다.

D=QΣPT=r=1min{n,d}σrrqrˉprˉTQ:n×p,Σ:p×p,P:d×pp=min{n,d}D = Q\Sigma P^T = \sum_{r=1}^{\mathrm{min}\{n, d\}} \sigma_{rr} \bar{q_r} \bar{p_r}^T \\ Q : n\times p, \Sigma : p \times p, P : d \times p \\ p = \mathrm{min}\{n, d\}

조밀 SVD (Compact SVD)

min{n,d}\mathrm{min}\{n, d\}개의 σrr\sigma_{rr} 중 0의 값이 존재한다는 가정 하에 분해의 크기를 더 줄일 수 있다. 특이값을 내림차순으로 정렬하여 kk개의 양의 특이값이 존재한다고 할 때 위 분해는 다음과 같이 개선된다.

D=QΣPT=r=1kσrrqrˉprˉTQ:n×k,Σ:k×k,P:d×kD = Q\Sigma P^T = \sum_{r=1}^{k} \sigma_{rr} \bar{q_r} \bar{p_r}^T \\ Q : n\times k, \Sigma : k \times k, P : d \times k

절삭 SVD (Truncated SVD)

σrr=0\sigma_{rr} = 0 인 성분 뿐만 아니라 σrr\sigma_{rr}이 매우 작은 성분도 제거하여 rankrankkk인 ‘근사’ 형태를 얻을 수 있다. (크기 순으로 상위 k(<min{n,d})k (< \mathrm{min}\{n, d\}) 개의 특이값에 대응하는 성분만 유지)

DDk=QkΣkPkT=r=1kσrrqrˉprˉTQk:n×k,Σk:k×k,Pk:d×kD \approx D_k= Q_k\Sigma_k P_k^T = \sum_{r=1}^{k} \sigma_{rr} \bar{q_r} \bar{p_r}^T \\ Q_k : n\times k, \Sigma_k : k \times k, P_k : d \times k

절삭 SVD와 정확도 손실

절삭 SVD에서 PkP_kkk개의 dd차원 기저 벡터 집합, QkΣk=UkQ_k\Sigma_k = U_kDkD_kPkP_k의 기저벡터에 의한 kk차원 표현 즉, DD의 축소된 kk차원 표현이라 볼 수 있다.

Uk=DPk=QkΣkU_k = DP_k = Q_k\Sigma_k

근사에 의한 정확도 손실을 정량화 하는 방법으로 원본 DD와 근사 DkD_k의 ‘프로베니우스 노옴 제곱’ 값을 비교한다.

DF2DkF2=r=1kσrrqrˉprˉTF2=r=1kσrr2qrˉprˉTF2=r=1kσrr2\lVert D \rVert_F^2 \approx \lVert D_k \rVert_F^2 = \lVert \sum_{r=1}^k \sigma_{rr}\bar{q_r}\bar{p_r}^T \rVert_F^2 = \sum_{r=1}^k \sigma_{rr}^2\lVert\bar{q_r}\bar{p_r}^T\rVert_F^2 = \sum_{r=1}^k \sigma_{rr}^2

보통의 경우 특이값은 어떤 임계치에서 급격히 값이 감소하는 경향을 보이므로, kk가 매우 작은 ‘저 순위 근사’임에도 높은 근사율을 갖게 된다.

기하학적 의미

DTDD^TDDD의 산포도 행렬인데, 이 행렬의 최상위 kk개의 고유벡터는 가장 큰 산포도를 갖는 방향을 유지하게 된다. (단, SVD는 데이터를 평균중심화하지 않는다. PCA는 데이터를 평균중심화한다.)

이는 SVD가 다음의 무제약 최적화 문제의 해답이기도 한 것과도 연관된다.

MinimizeU,VJ=DUVTF2U:n×k,V:k×d\mathrm{Minimize}_{U, V} J = \lVert D-UV^T\rVert_F^2 \\ U:n \times k, V : k \times d

PCA (Principal Component Analysis)

SVD와의 관계

주성분 분석(PCA; Principal Component Analysis) 는 SVD와 밀접한 관련이 있다.

SVD는 kk차원 부분공간에 투영된 데이터의 ‘원점과의 거리 제곱’이 최대화 되지만, PCA는 ‘데이터 평균’과의 거리 제곱이 최대화된다. 데이터 평균과의 거리 제곱은 ‘분산’으로 포착된다. 즉,

PCA는 평균중심 데이터 세트 DD에서 SVD와 정확히 동일한 차원 축소를 수행한다

PCA의 성질

PCA에서는 DD의 각 행에 dd차원 평균 벡터를 빼서 평균 중심화를 먼저 진행한다.

M=D1ˉμˉM = D - \bar{1}\bar{\mu}

이후 공분산 행렬 CC를 얻는다.

C=MTMnC = {M^TM \over n}

CC는 양의 준정부호 행렬이므로 rank=krank = k에서 다음과 같이 근사 대각화될 수 있다.

CVΔVTV:d×k,Δ:k×kC \approx V\Delta V^T \\ V : d \times k, \Delta : k\times k

VV의 열은 CC의 상위 kk개의 고유 벡터로, PCA의 주성분이 된다.

이때 Δ\Delta(r,r)(r, r)번째 성분 λr2\lambda_r^2 (PCA의 고윳값)과 SVD의 rr번째 특이값 σrr\sigma_{rr}의 관계는 다음과 같다.

λr2=σrr2n\lambda_r^2 = {\sigma_{rr}^2 \over n}

MMnn개 행들을 VV의 열 벡터에 투영하여 얻어진 kk차원 표현은 n×kn \times k 행렬 UU로 구해진다.

U=MVU = MV

이때 UU에서도 평균중심 성질은 유지되며, UU에서 유지되는 분산은 i=1kλi2\sum_{i=1}^k \lambda_i^2 로 주어진다.

UTUn=VTMTMnV=VT(CV)=[v1...vk]T[λ12v1...λk2vk]=Δ{U^TU\over n} = V^T{M^TM \over n} V = V^T(CV) = [v_1 ... v_k]^T[\lambda_1^2v_1 ... \lambda_k^2v_k] = \Delta

위 결과 처럼 UU의 공분산 행렬이 Δ\Delta가 되기 때문이다.

원본 데이터 세트의 복구는 다음과 같이 이루어진다.

DDpca=UVT+1ˉμˉD \approx D_{pca} = UV^T + \bar{1}\bar{\mu}

PCA와 SVD의 비교

정보 손실률은 PCA가 SVD가 우수하다. 절삭 SVD와 PCA를 이용한 DDkk차원 근사가 Dsvd,DpcaD_{svd}, D_{pca} 일 때, 다음이 성립한다.

DDpcaF2DDsvdF2\lVert D-D_{pca}\rVert_F^2 \le \lVert D-D_{svd} \rVert_F^2

등호는 DD가 평균 중심 데이터일 때 성립한다.

Latent Dimension의 결정

Reconstruction error

PCA에 의해 LL 차원으로 근사된 데이터셋 DD의 reconstruction error은 다음과 같다.

LL=1DnDxnx^n2\mathcal{L}_L = {1\over \left\vert D \right\vert} \sum_{n \in D} \lVert x_n - \hat{x}_n \rVert^2

Scree plots

LL=j=L+1Dλj\mathcal L_L = \sum_{j = L+1}^D \lambda_j
FL=j=1Lλjj=1LmaxλjF_L = {{\sum_{j = 1}^{L} \lambda_j}\over {{\sum_{j' = 1}^{L_{max}} \lambda_{j'}}}}

Profile likelihood

기본 아이디어 : 특정한 LL^*이 가정하여 λ1λ2...λL1\lambda_1\ge \lambda_2 \ge ... \ge \lambda_{L^* -1} 의 분포와 λL...λLmax\lambda_{L^*} \ge ... \ge \lambda_{L_{max}} 의 분포가 가장 명확히 차이나게 되는 임계값 LL^*를 찾는다.

이때 λ\lambda의 확률 분포는 N\mathcal{N}을 가정한다. 즉,

λkN(μ1,σ2)  if kLλkN(μ2,σ2)  if k>L\lambda_k \sim \mathcal{N}(\mu_1, \sigma^2) \ \ if \ k\le L \\ \lambda_k \sim \mathcal{N}(\mu_2, \sigma^2) \ \ if \ k\gt L

을 가정하고, 이 가정에 가장 잘 따르게 되는 LL^*을 likelihood를 이용해 찾는다.

μ1(L)=kLλkLμ2(L)=k>LλkLmaxLσ2(L)=kL(λkμ1(L))2+k>L(λkμ2(L))2Lmax\mu_1(L) = {{\sum_{k \le L} \lambda_k} \over L} \\ \mu_2(L) = {{\sum_{k \gt L} \lambda_k} \over {L_{max} - L}} \\ \sigma^2(L) = {{\sum_{k\le L}(\lambda_k - \mu_1(L))^2 + \sum_{k \gt L}(\lambda_k - \mu_2(L))^2} \over {L_{max}}}

Profile log likelihood는 다음과 같다.

l(L)=k=1Llog N(λkμ1(L),σ2(L))+k=L+1Lmaxlog N(λkμ2(L),σ2(L))l(L) = \sum_{k=1}^L \mathrm{log} \ \mathcal N (\lambda_k \vert \mu_1(L), \sigma^2(L)) + \sum_{k=L+1}^{L_{max}} \mathrm{log} \ \mathcal N (\lambda_k \vert \mu_2(L), \sigma^2(L))

이후 likelihood가 최대가 되는 LL^*을 선택하면 된다.

SVD, PCA의 활용

차원 축소

SVD와 PCA의 가장 큰 활용은 차원 축소이다. d×kd\times k의 기저 행렬 VV가 주어지면, n×dn \times d 데이터 행렬 DDn×kn \times k 데이터 행렬 Dk=DVD_k = DV로 변환한다.

SVD에 더 적합한 데이터의 예는 ‘텍스트 데이터’다. 평균 중심화를 거치면 데이터 희소성이 망가지기 때문에 SVD를 텍스트 데이터에 이용하며, 이를 잠재 의미 분석(LSA; latent semantic analysis)라 한다.

이미지 압축에도 활용된다. 적절한 rankrank의 SVD, PCA를 활용하여 정보 손실을 최대화 하며 노이즈 제거 효과도 얻을 수 있다.

노이즈 제거

예로, 이미지 데이터에 소량의 노이즈가 포함된 경우 SVD를 진행하게 되면 하위 특이값 성분들에게서 노이즈가 나타나게 된다. 따라서 하위 성분을 절삭하게 되면 노이즈 제거 효과를 얻는다.

텍스트 데이터의 경우 언어들에 본질적으로 따르는 노이즈와 모호성 효과(동의어, 다의성)를 줄여준다. SVD의 상위 성분은 단어의 상관관계에 초점을 맞추는 경향이 있어 문맥을 고려한다.

특징 전처리와 백색화

데이터의 차원을 PCA로 축소한 다음, 변환된 특징들을 정규화 하여 각 특징 벡터 방향에 따른 데이터 분산이 동일하도록 특징 전처리가 가능하다. Uk=DVkU_k = DV_k로 변환한 뒤, 각 열을 표준편차로 나누어 주어 정규화 하는 식이다. 이를 백색화(whitening)이라 한다.

이상치 탐지

위 백색화 접근방식은 이상치 탐지에도 사용된다. PCA에 의해 백색화된 데이터에 대해 데이터 평균과의 거리가 큰 데이터를 이상치로 탐지 가능하다. 특정 주성분 방향에 대해 분산이 모두 정규화 되었기 때문에 상대적 변이를 모두 고려하게 된다.

특징 공학(Feature Engineering)

DD의 유사성 행렬 S=DDTS = DD^T의 대각화를 통해 다차원 임베딩을 유도할 수 있다.

S=DDT=QΣ2QT=(QΣ)(QΣ)TS = DD^T = Q\Sigma ^2 Q^T = (Q\Sigma)(Q\Sigma)^T

QΣQ\SigmaDD의 다차원 임베딩이 된다. 유사성 행렬은 성분간 점곱으로 정의될 수 있고, 커널 함수에 의한 커널 행렬(Kernel Matrix)로서 지정될 수 있다. 점곱으로 정의 될 경우, 보통의 SVD와 동일한 임베딩을 얻게 된다.

QΣQ\Sigma의 임베딩에 대해 기저는 유일하지 않다. 특이값 분해는 임베딩된 표현의 열들이 직교하도록 기저를 선택하게 된다.

Refer

Probabilistic ML: An Introduction (Kevin P. Murphy)

Linear Algebra and Optimization for ML (Charu C. Aggarwal)

[선형대수학 #6] 주성분분석(PCA)의 이해와 활용

0개의 댓글