베이지안 주성분 분석BayesianPCABayesianPCA

2021. 8. 16. 18:39Bayesian

이번 글에서는 베이지안 주성분 분석에 대해 알아보겠습니다.

[관련 글]

2021.08.16 - [Machine Learning/models] - [models] 주성분 분석PrincipalComponentAnalysisPrincipalComponentAnalysis

2021.08.16 - [Bayesian] - 확률적 주성분 분석ProbabilisticPCAProbabilisticPCA


확률적 주성분 분석에서는 관측된 변수를 연속형 잠재 변수를 통해 다음과 같이 나타내었습니다.

x=Wz+μ+ϵ,    where ϵN(0,σ2), p(z)=N(z|0,I)p(x|z)=N(x|Wz+μ, σ2I)p(x)=N(x|μ, WWT+σ2I)        (1)

관측된 변수를 기준으로 주변화하여 MLE 방법을 W에 대해 수행하면 다음과 같습니다.

WML=UM(LMσ2I)1/2R


위와 같이 확률적 주성분 분석을 통해 가중치 W에 대한 해를 구할 때, 행렬의 차원이 큰 경우, 계산량이 많을 수 있습니다. 따라서, 조금 더 성긴sparse 행렬을 만들 필요가 있습니다.

베이지안 방법에서는 우리가 구하고 싶은 가중치에 사전분포를 가정함으로써, 그 분포에 대한 분석을 진행합니다. 따라서 우리가 관심 있는 W에 대해 다음과 같은 분포를 가정하고, 우도 함수를 나타내면 다음과 같습니다.

p(W|α)=Mi=1(αi2π)D/2exp{12αiwTiwi}        (2)p(X|α,μ,σ2)=p(X|W,μ,σ2)p(W|α)dW

여기서 W행렬을 principal subspace을 구성하도록 하였는데, 각각의 벡터w를 분산 계수 αi로 조정할 수 있도록 하였습니다. 

분산계수 αi를 EM 알고리즘 등을 통해 구하면 다음과 같이 나타낼 수 있습니다.

αi=DwTiwi

만약 αi의 값이 매우 크다면, 2식에서 볼 수 있듯이, 벡터 wi가 0에 가까워 지므로, 소수의 성분들로 구성된 principal subspace를 만들 수 있고, 1의 공분산 행렬을 sparse 하게 만들어 계산비용을 줄일 수 있습니다.

PCA과정에서는 몇 개의 주성분을 통해 데이터를 축소시킬지를 정해야 하는데, Bayesian PCA에서는 최적화하는 과정에서 최적의 주성분 벡터의 개수가 정해 지므로, 주성분의 개수를 정하기 어려울 때 효과적으로 사용될 수 있습니다.