베이지안 주성분 분석(Bayesian PCA)

2021. 8. 16. 18:39Bayesian

728x90

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

[관련 글]

2021.08.16 - [Machine Learning/models] - [models] 주성분 분석(Principal Component Analysis)

2021.08.16 - [Bayesian] - 확률적 주성분 분석(Probabilistic PCA)


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

$\begin {align} &\textbf {x}=\textbf {Wz} + \mu + \epsilon,~~~~where~\epsilon \sim N(0,\sigma^2),~p(\textbf {z})=N(z|0, \textrm {I}) \\ &p(\textbf {x}|\textbf {z})=N(\textbf {x}|\textbf {Wz}+\mu,~\sigma^2 I)  \\ & p(\textbf {x})=N(\textbf {x}|\mu,~\textbf {W}\textbf {W}^T + \sigma^2 \textbf {I})~~~~\dots~~~~(1) \end {align} $

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

$\textbf {W}_{ML}=\textbf {U}_M (\textbf {L}_M - \sigma^2 \textbf {I})^{1/2} \textbf {R}$


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

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

$\begin {align} &p(\textbf {W}|\alpha)=\displaystyle \prod^{M}_{i=1}{\left ( \frac {\alpha_i}{2\pi}\right)^{D/2}} \textrm {exp} \left \{-\frac {1}{2} \alpha_i \textbf {w}_i^T \textbf {w}_i \right \}~~~~\dots~~~~(2) \\ &p(X|\alpha, \mu, \sigma^2)=\displaystyle \int {p(X|\textbf {W}, \mu, \sigma^2) p(\textbf {W}|\alpha) d\textbf {W} } \end {align}$

여기서 $\textbf {W}$행렬을 principal subspace(주성분을 통해 만든 벡터 공간)을 구성하도록 하였는데, 각각의 벡터$\textbf {w}$를 분산 계수 $\alpha_i$로 조정할 수 있도록 하였습니다. 

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

$\alpha_i = \frac{D}{\textbf {w}_i^T \textbf{w}_i }$

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

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