SVD(Singular Value Decomposition)
SVD의 종류
전체 SVD (Full SVD)
특이값 분해(SVD; Singular Value Decomposition)
실수 항들을 갖는 n×d 행렬 D 는 항상 다음의 3개의 행렬로 분해될 수 있다.
D=QΣPTQ:n×n, Σ:n×d, P:d×d
Q와 P는 직교 행렬(Orthogonal), Σ는 ‘비음수’ ‘비정방형’ 대각행렬(Diagonal)이다.
더 자세한 구성은 다음과 같다.
- Q를 구성하는 n개의 ‘좌 특이벡터’ 열은 n×n 행렬 DDT의 n개의 고유벡터에 해당한다. DDT가 대칭행렬이므로 고유벡터들은 모두 직교정규한다.
- P를 구성하는 d개의 ‘우 특이벡터’ 열은 d×d 행렬 DTD의 d개의 고유벡터에 해당한다. DTD가 대칭행렬이므로 고유벡터들은 모두 직교정규한다.
- n×d 비정방형 대각행렬 Σ의 대각 항들에는 DTD또는 DDT의 min{n,d}개의 가장 큰 고윳값들의 제곱근인 특이값들이 들어간다.
존재성의 증명은 추후에 따로 다루겠다.
절약형 SVD (Thin SVD)
n과 d의 값이 다르면 Q와 P 둘 중 ∣n−d∣개의 ‘짝 없는’ 고유벡터가 남게 된다. 이는 실제 값에 영향을 주지 않으므로 ‘절약형 SVD’를 유도할 수 있다.
스펙트럼 분해 꼴의 ‘절약형 SVD’는 다음과 같다.
D=QΣPT=r=1∑min{n,d}σrrqrˉprˉTQ:n×p,Σ:p×p,P:d×pp=min{n,d}
조밀 SVD (Compact SVD)
min{n,d}개의 σrr 중 0의 값이 존재한다는 가정 하에 분해의 크기를 더 줄일 수 있다. 특이값을 내림차순으로 정렬하여 k개의 양의 특이값이 존재한다고 할 때 위 분해는 다음과 같이 개선된다.
D=QΣPT=r=1∑kσrrqrˉprˉTQ:n×k,Σ:k×k,P:d×k
절삭 SVD (Truncated SVD)
σrr=0 인 성분 뿐만 아니라 σrr이 매우 작은 성분도 제거하여 rank가 k인 ‘근사’ 형태를 얻을 수 있다. (크기 순으로 상위 k(<min{n,d}) 개의 특이값에 대응하는 성분만 유지)
D≈Dk=QkΣkPkT=r=1∑kσrrqrˉprˉTQk:n×k,Σk:k×k,Pk:d×k
절삭 SVD와 정확도 손실
절삭 SVD에서 Pk를 k개의 d차원 기저 벡터 집합, QkΣk=Uk 를 Dk의 Pk의 기저벡터에 의한 k차원 표현 즉, D의 축소된 k차원 표현이라 볼 수 있다.
Uk=DPk=QkΣk
근사에 의한 정확도 손실을 정량화 하는 방법으로 원본 D와 근사 Dk의 ‘프로베니우스 노옴 제곱’ 값을 비교한다.
∥D∥F2≈∥Dk∥F2=∥r=1∑kσrrqrˉprˉT∥F2=r=1∑kσrr2∥qrˉprˉT∥F2=r=1∑kσrr2
보통의 경우 특이값은 어떤 임계치에서 급격히 값이 감소하는 경향을 보이므로, k가 매우 작은 ‘저 순위 근사’임에도 높은 근사율을 갖게 된다.
기하학적 의미
DTD는 D의 산포도 행렬인데, 이 행렬의 최상위 k개의 고유벡터는 가장 큰 산포도를 갖는 방향을 유지하게 된다. (단, SVD는 데이터를 평균중심화하지 않는다. PCA는 데이터를 평균중심화한다.)
이는 SVD가 다음의 무제약 최적화 문제의 해답이기도 한 것과도 연관된다.
MinimizeU,VJ=∥D−UVT∥F2U:n×k,V:k×d
PCA (Principal Component Analysis)
SVD와의 관계
주성분 분석(PCA; Principal Component Analysis) 는 SVD와 밀접한 관련이 있다.
SVD는 k차원 부분공간에 투영된 데이터의 ‘원점과의 거리 제곱’이 최대화 되지만, PCA는 ‘데이터 평균’과의 거리 제곱이 최대화된다. 데이터 평균과의 거리 제곱은 ‘분산’으로 포착된다. 즉,
PCA는 평균중심 데이터 세트 D에서 SVD와 정확히 동일한 차원 축소를 수행한다
PCA의 성질
PCA에서는 D의 각 행에 d차원 평균 벡터를 빼서 평균 중심화를 먼저 진행한다.
M=D−1ˉμˉ
이후 공분산 행렬 C를 얻는다.
C=nMTM
C는 양의 준정부호 행렬이므로 rank=k에서 다음과 같이 근사 대각화될 수 있다.
C≈VΔVTV:d×k,Δ:k×k
V의 열은 C의 상위 k개의 고유 벡터로, PCA의 주성분이 된다.
이때 Δ의 (r,r)번째 성분 λr2 (PCA의 고윳값)과 SVD의 r번째 특이값 σrr의 관계는 다음과 같다.
λr2=nσrr2
M의 n개 행들을 V의 열 벡터에 투영하여 얻어진 k차원 표현은 n×k 행렬 U로 구해진다.
이때 U에서도 평균중심 성질은 유지되며, U에서 유지되는 분산은 ∑i=1kλi2 로 주어진다.
nUTU=VTnMTMV=VT(CV)=[v1...vk]T[λ12v1...λk2vk]=Δ
위 결과 처럼 U의 공분산 행렬이 Δ가 되기 때문이다.
원본 데이터 세트의 복구는 다음과 같이 이루어진다.
D≈Dpca=UVT+1ˉμˉ
PCA와 SVD의 비교
정보 손실률은 PCA가 SVD가 우수하다. 절삭 SVD와 PCA를 이용한 D의 k차원 근사가 Dsvd,Dpca 일 때, 다음이 성립한다.
∥D−Dpca∥F2≤∥D−Dsvd∥F2
등호는 D가 평균 중심 데이터일 때 성립한다.
Latent Dimension의 결정
Reconstruction error
PCA에 의해 L 차원으로 근사된 데이터셋 D의 reconstruction error은 다음과 같다.
LL=∣D∣1n∈D∑∥xn−x^n∥2
Scree plots
LL=j=L+1∑Dλj
FL=∑j′=1Lmaxλj′∑j=1Lλj
Profile likelihood
기본 아이디어 : 특정한 L∗이 가정하여 λ1≥λ2≥...≥λL∗−1 의 분포와 λL∗≥...≥λLmax 의 분포가 가장 명확히 차이나게 되는 임계값 L∗를 찾는다.
이때 λ의 확률 분포는 N을 가정한다. 즉,
λk∼N(μ1,σ2) if k≤Lλk∼N(μ2,σ2) if k>L
을 가정하고, 이 가정에 가장 잘 따르게 되는 L∗을 likelihood를 이용해 찾는다.
μ1(L)=L∑k≤Lλkμ2(L)=Lmax−L∑k>Lλkσ2(L)=Lmax∑k≤L(λk−μ1(L))2+∑k>L(λk−μ2(L))2
Profile log likelihood는 다음과 같다.
l(L)=k=1∑Llog N(λk∣μ1(L),σ2(L))+k=L+1∑Lmaxlog N(λk∣μ2(L),σ2(L))
이후 likelihood가 최대가 되는 L∗을 선택하면 된다.
SVD, PCA의 활용
차원 축소
SVD와 PCA의 가장 큰 활용은 차원 축소이다. d×k의 기저 행렬 V가 주어지면, n×d 데이터 행렬 D를 n×k 데이터 행렬 Dk=DV로 변환한다.
SVD에 더 적합한 데이터의 예는 ‘텍스트 데이터’다. 평균 중심화를 거치면 데이터 희소성이 망가지기 때문에 SVD를 텍스트 데이터에 이용하며, 이를 잠재 의미 분석(LSA; latent semantic analysis)라 한다.
이미지 압축에도 활용된다. 적절한 rank의 SVD, PCA를 활용하여 정보 손실을 최대화 하며 노이즈 제거 효과도 얻을 수 있다.
노이즈 제거
예로, 이미지 데이터에 소량의 노이즈가 포함된 경우 SVD를 진행하게 되면 하위 특이값 성분들에게서 노이즈가 나타나게 된다. 따라서 하위 성분을 절삭하게 되면 노이즈 제거 효과를 얻는다.
텍스트 데이터의 경우 언어들에 본질적으로 따르는 노이즈와 모호성 효과(동의어, 다의성)를 줄여준다. SVD의 상위 성분은 단어의 상관관계에 초점을 맞추는 경향이 있어 문맥을 고려한다.
특징 전처리와 백색화
데이터의 차원을 PCA로 축소한 다음, 변환된 특징들을 정규화 하여 각 특징 벡터 방향에 따른 데이터 분산이 동일하도록 특징 전처리가 가능하다. Uk=DVk로 변환한 뒤, 각 열을 표준편차로 나누어 주어 정규화 하는 식이다. 이를 백색화(whitening)이라 한다.
이상치 탐지
위 백색화 접근방식은 이상치 탐지에도 사용된다. PCA에 의해 백색화된 데이터에 대해 데이터 평균과의 거리가 큰 데이터를 이상치로 탐지 가능하다. 특정 주성분 방향에 대해 분산이 모두 정규화 되었기 때문에 상대적 변이를 모두 고려하게 된다.
특징 공학(Feature Engineering)
D의 유사성 행렬 S=DDT의 대각화를 통해 다차원 임베딩을 유도할 수 있다.
S=DDT=QΣ2QT=(QΣ)(QΣ)T
QΣ가 D의 다차원 임베딩이 된다. 유사성 행렬은 성분간 점곱으로 정의될 수 있고, 커널 함수에 의한 커널 행렬(Kernel Matrix)로서 지정될 수 있다. 점곱으로 정의 될 경우, 보통의 SVD와 동일한 임베딩을 얻게 된다.
QΣ의 임베딩에 대해 기저는 유일하지 않다. 특이값 분해는 임베딩된 표현의 열들이 직교하도록 기저를 선택하게 된다.
Refer
Probabilistic ML: An Introduction (Kevin P. Murphy)
Linear Algebra and Optimization for ML (Charu C. Aggarwal)
[선형대수학 #6] 주성분분석(PCA)의 이해와 활용