12. Latent linear models

12.1. Factor analysis

혼합 모델의 단점은 관측을 생성하는 잠재 변수가 하나뿐이란 것이다. 정확히는 각각의 관측은 오로지 K종류의 프로토타입들 중에서 선택될 뿐이다. 이를 확장하여 K개의 숨겨진 이진 변수를 사용하는 혼합 모델을 생각할 수 있지만 이 변수들은 상호배타적이기 때문에 여전히 모델의 표현력에 한계가 있다.

대안은 실수값을 갖는 잠재변수의 벡터 \mathbf{z}_{i}를 사용하는 것이다. 가장 간단한 사전분포는 가우시안 p(\mathbf{z}_{i}) = \mathcal{N}(\mathbf{z}_{i} | \mathbf{\mu}_{0}, \mathbf{\Sigma}_{0})을 사용하는 것이다. 관측 데이터가 연속적인 경우 가능도에도 가우시안을 쓸 수 있다. 선형 회귀와 같이 분포의 평균값이 입력에 대해 선형이라고 하면 p(\mathbf{x}_{i} | \mathbf{z}_{i}, \mathbf{\theta}) = \mathcal{N}(\mathbf{W}\mathbf{z}_{i} + \mathbf{\mu}, \mathbf{\Psi})의 식이 유도되는데, 여기서 \mathbf{W}는 D x L 행렬로 인자 부하 행렬, \mathbf{\Psi}는 D x D 공분산 행렬이며 잠재변수간 상관 관계를 \mathbf{z}_{i} 만으로 표현하기 위해서 공분산은 대각행렬로 잡는다. 이를 인자 분석(FA)라 한다. \mathbf{\Psi} = \sigma^{2} \mathbf{I}인 경우엔 확률적 주성분 분석(PPCA)이라 한다.

12.1.1. FA is a low rank parameterization of an MVN

인자 분석은 결합밀도함수를 더 적은 매개변수로 특정하는 방법이라 할 수 있다. 왜냐하면, 주변분포 p(\mathbf{x}_{i} | \mathbf{\theta}) = \int \mathcal{N} (\mathbf{x}_{i} | \mathbf{W}\mathbf{z}_{i} + \mathbf{\mu}, \mathbf{\Psi}) \mathcal{N}(\mathbf{z}_{i} | \mathbf{\mu}_{0}, \mathbf{\Sigma}_{0}) d \mathbf{z}_{i} = \mathcal{N}(\mathbf{x}_{i} | \mathbf{W} \mathbf{\mu}_{0} + \mathbf{\mu}, \mathbf{\Psi} + \mathbf{W} \mathbf{\Sigma}_{0} \mathbf{W}^{T}) 은 가우시안이 되는데, 일반성을 잃지 않고 \mathbf{\mu}_{0} = \mathbf{0}, \mathbf{\Sigma}_{0} = \mathbf{I}로 둘 수 있으므로 인자 분석법에서는 관측된 벡터의 공분산 행렬을 \mathbf{W}\mathbf{W}^{T} + \mathbf{\Psi} 로 근사할 수 있다. 이는 O(LD)의 매개변수를 가지는데, O(D^{2})의 완전 가우시안 공분산과 O(D)의 대각 공분산 사이의 적절한 균형이라 볼 수 있다. 이 때 \mathbf{\Psi}가 대각이란 가정이 없다면 \mathbf{\psi}를 완전 공분산 행렬로 놓을 수 있으므로 공분산 계산에서 \mathbf{W} 부분이 필요가 없다. 이는 잠재 변수가 없이 변수간의 관계가 공분산으로 전부 표현된 경우이다.

관측 변수의 주변분산은 \mathrm{var}[x_{j}] = \sum_{k=1}^{L} w_{jk}^{2} + \psi_{j}로 나타내어지는데, 이 때 유일성\psi_{j}는 그 변수에 한정된 분산의 역할을 한다.

12.1.2. Inference of the latent factors

인자 분석으로부터 잠재 변수가 갖고 있는 데이터에 대한 정보를 끌어낼 순 없을까? 이를 위해서는 잠재 인자에 대한 사후분포를 계산하면 된다. 이는 다음과 같다.

p(\mathbf{z}_{i} | \mathbf{x}_{i}, \mathbf{\theta}) = \mathcal{N}(\mathbf{z}_{i} | \mathbf{m}_{i}, \mathbf{\Sigma}_{i})

\mathbf{\Sigma}_{i} = (\mathbf{\Sigma}_{0}^{-1} + \mathbf{W}^{T} \mathbf{\Psi}^{-1} \mathbf{W})^{-1}

\mathbf{m}_{i} = \mathbf{\Sigma}_{i}(\mathbf{W}^{T} \mathbf{\Psi}^{-1} (\mathbf{x}_{i} - \mathbf{\mu}) + \mathbf{\Sigma}_{0}^{-1} \mathbf{\mu}_{0}).

인자 분석 모델에서 \mathbf{\Sigma}_{i}는 i에 대해 독립으로 모든 i에 대해 같은 값을 갖기 때문에 \mathbf{\Sigma}로 놓을 수 있다. 이를 계산하는 데에는 O(L^{3} + L^{2} D)의 시간이 걸리고 각각의 점수 또는 잠재 인자 \mathbf{m}_{i} = \mathbb{E}[\mathbf{x}_{i}, \mathbf{\theta}]를 계산하는 데에는 O(L^{2} + LD) 시간이 걸린다. 아래는 인자 분석 모델에서 \mathbf{\Sigma}_{i}는 i에 대해 독립으로 모든 i에 대해 같은 값을 갖기 때문에 \mathbf{\Sigma}로 놓을 수 있다. 이를 계산하는 데에는 O(L^{3} + L^{2} D)의 시간이 걸리고 각각의 점수 또는 잠재 인자 \mathbf{m}_{i} = \mathbb{E}[\mathbf{x}_{i}, \mathbf{\theta}]를 계산하는 데에는 O(L^{2} + LD) 시간이 걸린다. 아래는 성분 분석으로 행렬도를 그린 예이다.

12.1.3. Unidentifiability

인자 분석 모델의 매개변수는 식별 가능하지 않다. \mathbf{R}을 직교회전행렬이라 하고 \tilde{\mathbf{W}} = \mathbf{W}\mathbf{R}이라 하면 \mathrm{cov}[\mathbf{x}] = \mathbf{W}\mathbf{R}\mathbf{R}^{T} \mathbf{W}^{T} + \mathbf{\Psi} = \mathbf{W}\mathbf{W}^{T} + \mathbf{\Psi}이므로 가능도함수는 변하지 않는다. 즉, 인자 부하 행렬은 임의의 각도만큼 회전시켜도 가능도는 일치하므로 같은 가능도함수에 대해 무수히 많은 인자 부하 행렬이 존재할 수 있게 되어 잠재 인자도 유일하게 결정지을 수 없다. L x L 크기의 정규직교행렬의 수는 L(L-1)/2이므로 \mathbf{W}에서 그만큼의 자유도를 제거하면 유일한 해를 얻게 된다. 총 매개변수의 수는 D + LD - L(L-1)/2가 되는데, 이 모델이 쓸모있기 위해서는 이 값이 공분산 행렬의 매개변수 개수인 D(D+1)/2보다 작아야 하므로 잠재 변수의 차원의 상한은 L_{\max} = \lfloor D + 0.5(1 - \sqrt{1 + 8D})\rfloor가 된다.

안타깝게도, L < L_{\max}로 잡더라도 회전 자체로 인해 매개변수는 유일하게 결정되지 않는다. 이런 모호성이 예측 성능에 영향을 주지는 않지만 잠재 인자의 표현에 영향을 준다. 이 문제에 대한 대안들은 다음과 같다.

  • \mathbf{W}를 정규직교로 놓는다. 이후 열들을 분산이 감소하는 순서로 놓는다. 이것이 주성분 분석의 접근방식이다.
  • \mathbf{W}를 하삼각행렬로 놓는다. 이는 첫 번째 관측 특성이 첫 번째 잠재 인자로부터만 유도되고, 두 번째 관측 특성은 처음 2개의 잠재 인자로부터 유도되고, … 등등을 가정한다. 이는 자유도를 충분히 제거하지만 처음 L개의 관측 변수인 창립 변수에 크게 의존한다는 단점이 있다.
  • 가중치에 대해 희소성 유도 사전분포를 잡는다. l_{1} 정규화를 이용하면 가중치값을 희소행렬이 되도록 유도할 수 있다. 이를 희소 인자 분석이라 한다.
  • 회전행렬에 정보를 담는다. 적당히 희소한 회전행렬을 통해 인자 부하 행렬의 표현성을 높이는 휴리스틱이 존재한다. 유명한 방법으로 배리맥스가 있다.
  • 잠재 인자에 비-가우시안 사전분포를 쓴다. 사전분포를 비 가우시안으로 잡으면 일부 경우 인자 부하 행렬이 유일하게 결정 가능하다. 이 방법을 독립 성분 분석이라 한다.

12.1.4. Mixtures of factor analysers

인자 분석 모델은 데이터의 차원이 낮으며 선형이라 가정하지만, 데이터는 비선형으로 모델링할 때가 더 나을 수도 있다. 이를 보완하기 위해 인자 분석 모델을 혼합하는데, 잠재 변수는 가우시안 사전분포를 쓰고 잠재 지시변수 (어느 성분에서 샘플링되는지를 나타내는 변수)는 범주 사전분포를 쓴다. 정확히는 다음과 같다.

p(\mathbf{x}_{i} | \mathbf{z}_{i}, q_{i} = k, \mathbf{\theta}) = \mathcal{N}(\mathbf{x}_{i} | \mathbf{\mu}_{k} + \mathbf{W}_{k} \mathbf{z}_{i}, \mathbf{\Psi})

p(\mathbf{z}_{i} | \mathbf{\theta}) = \mathcal{N}(\mathbf{z}_{i} | \mathbf{0}, \mathbf{I})

p(q_{i} | \mathbf{\theta}) = \mathrm{Cat}(q_{i} | \mathbf{\pi})

이를 인자 분석기 혼합이라 하며, 가우시안 혼합 모델의 저 랭크 버전으로 볼 수 있다. 완전 공분산 행렬을 가진 가우시안 혼합 모델은 O(KD^{2}) 개의 매개변수를 갖지만 이 모델은 O(KLD)개만 필요하기 때문이다.

12.1.5. EM for factor analysis models

인자 분석 모델에 대해 기대값 최대화 알고리즘은 쉽게 적용할 수 있다. 이를 확장해 인자 분석 혼합 모델에 대해서도 EM 알고리즘을 적용할 수 있다.

E 단계에 대해서 클러스터 c의 데이터 i에 대한 사후책임도는 r_{ic} = p(q_{i} = c | \mathbf{x}_{i}, \mathbf{\theta}) \propto \pi_{c} \mathcal{N}(\mathbf{x}_{i} | \mathbf{\mu}_{c}, \mathbf{W}_{c} \mathbf{W}_{c}^{T} + \mathbf{\Psi})이다. \mathbf{z}_{i}의 사후분포는

p(\mathbf{z}_{i} | \mathbf{x}_{i}, q_{i} = c, \mathbf{\theta}) = \mathcal{N}(\mathbf{z}_{i} | \mathbf{m}_{ic}, \mathbf{\Sigma}_{ic})

\mathbf{\Sigma}_{ic} = (\mathbf{I}_{L} + \mathbf{W}_{c}^{T} \mathbf{\Psi}_{c}^{-1} \mathbf{W}_{c})^{-1}

\mathbf{m}_{ic} = \mathbf{\Sigma}_{ic}(\mathbf{W}_{c}^{T} \mathbf{\Psi}_{c}^{-1} (\mathbf{x}_{i} - \mathbf{\mu}_{c}))

이 된다.

M 단계에서는 \tilde{\mathbf{W}}_{c} = [\mathbf{W}_{c}, \mathbf{\mu}_{c}], \tilde{\mathbf{z}} = [\mathbf{z}, 1]로 놓아서 \mathbf{\mu}_{c}\mathbf{W}_{c}를 한 번에 추정하는 것이 계산이 쉽다. \mathbf{b}_{ic} = \mathbb{E}[\tilde{\mathbf{z}} | \mathbf{x}_{i}, q_{i} = c], \mathbf{C}_{ic} = \mathbb{E}[\tilde{\mathbf{z}}\tilde{\mathbf{z}}^{T} | \mathbf{x}_{i}, q_{i} = c] 으로 놓으면 M 단계는 다음과 같이 계산된다.

\tilde{\hat{\mathbf{W}}}_{c} = [\sum_{i} r_{ic} \mathbf{x}_{i} \mathbf{b}_{ic}^{T}][\sum_{i} r_{ic} \mathbf{C}_{ic}]^{-1}

\tilde{\hat{\mathbf{\Psi}}} = \frac{1}{N} \mathrm{diag}(\sum_{ic} r_{ic} (\mathbf{x}_{i} - \tilde{\hat{\mathbf{W}}}_{c} \mathbf{b}_{ic})\mathbf{x}_{i}^{T})

\hat{\pi}_{c} = \frac{1}{N} \sum_{i} r_{ic}

이는 EM 알고리즘에 대한 것으로 이것보다 더 빠른 ECM 알고리즘도 존재한다.

12.1.6. Fitting FA models with missing data

협업 필터링 같은 많은 예에서는 유실된 데이터가 존재한다. FA/PPCA 모델에 EM 알고리즘을 적용하는 것의 장점은 이 경우에 대처하기 쉽다는 점이다. 그러나 유실된 데이터가 많아질 수록 과적합의 위험이 커지므로 최대사후확률추정이나 베이지안 추론을 사용하는 것이 좋다.

1D 확률적 주성분 분석.

12.2. Principal components analysis (PCA)

인자 분석 모델에서 \mathbf{\Psi} = \sigma^{2} \mathbf{I}\mathbf{W}을 정규직교로 놓았다고 하자. \sigma^{2} \to 0으로 보낼 경우 생기는 모델을 주성분 분석(PCA), 또는 카르후넨-뢰브 변환이라 한다. \sigma^{2} > 0인 경우 확률적 주성분 분석(PPCA) 또는 지각 주성분 분석이라 한다.

12.2.1. Classical PCA: statement of the theorem

고전적 주성분 분석의 합성적 관점은 다음과 같이 요약된다.

Theorem. 어떤 데이터셋에 대해, 데이터 변환과 관련된 L개의 직교 기저 벡터 \mathbf{w}_{j} \in \mathbb{R}^{D}와 데이터에 대응하는 점수 벡터 \mathbf{z}_{i} \in \mathbb{R}^{L}가 변환 \hat{\mathbf{x}}_{i} = \mathbf{W}\mathbf{z}_{i}에 대해 평균 재구축 오차 J(\mathbf{W}, \mathbf{Z}) = \frac{1}{N} \sum_{i=1}^{N} \lVert \mathbf{x}_{i} - \hat{\mathbf{x}}_{i} \rVert^{2} = \lVert \mathbf{X} - \mathbf{W}\mathbf{Z}^{T} \rVert_{F}^{2}를 (여기서 \lVert A \rVert_{F} = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} a_{ij}^{2}} = \sqrt{\mathrm{tr}(\mathbf{A}^{T}\mathbf{A})} = \lVert \mathbf{A}(:) \rVert_{2}프로베니우스 놈) 최소화시키기 위한 조건은, \mathbf{V}_{L}을 실측 공분산 행렬 \hat{\mathbf{\Sigma}} = \frac{1}{N} \sum_{i=1}^{N} (\mathbf{x}_{i} - \hat{\mathbf{\mu}})(\mathbf{x}_{i} - \hat{\mathbf{\mu}})^{T} 에서 고유값이 가장 큰 L개의 고유벡터로 만든 행렬이라 할 때 \hat{\mathbf{W}} = \mathbf{V}_{L}로 잡는 것이다. 또한, 이 고유벡터에 의해 생성되는 열공간에 대한 정사영 변환 \hat{\mathbf{z}}_{i} = \mathbf{W}^{T} \mathbf{x}_{i}는 최적의 저차원 암호화가 된다.

2D -> 1D로의 주성분 분석과 확률적 주성분 분석.
얼굴 이미지에 대한 주성분 분석.

주성분 분석에서 유도되는 정사영에 수직이 되는 열공간은 주방향 또는 주성분이라 하며, 사영된 데이터들의 분산을 최대화시킨다. 따라서 주성분 분석을 적용하기 이전에 데이터의 범위를 표준화하는 것은 매우 중요하다.

주성분 분석에서 데이터 표준화를 했을 때와 하지 않았을 때의 차이.

12.2.2. Proof

증명은 재구축 오차를 최소화하는 해가 분산을 최대화시키는 해가 됨을 이용하며, 이를 주성분 분석의 분석적 관점이라 한다.

12.2.3. Singular value decomposition (SVD)

주성분 분석의 해는 실측 공분산 행렬의 고유벡터로 얻을 수 있지만 다른 방법으로 특이값 분해(SVD)가 있다. 이는 임의의 N x D 행렬 \mathbf{X}가 N x N 열정규직교행렬 \mathbf{U}, D x D 행렬정규직교행렬 \mathbf{V}, N x D 특이값 행렬 \mathbf{S}(주대각선에 \min(N, D)개의 특이값 \sigma_{i} \geq 0이 존재하고 이외의 성분은 0이 됨)에 대해 \mathbf{X} = \mathbf{U}\mathbf{S}\mathbf{V}^{T}로 분해될 수 있음을 이용한다.

N > D일 때 특이값은 최대 D개이므로, \mathbf{U}의 뒤쪽 N – D개 열은 필요가 없다. 따라서 계산할 때 \hat{\mathbf{U}}, \hat{\mathbf{S}}, \hat{\mathbf{V}}를 각각 N x D, D x D, D x D의 크기로 놓아서 계산을 간소화시킬 수 있는데 이를 작은 특이값 분해 또는 얇은 특이값 분해라 하며 계산에 O(ND \min(N, D))의 시간이 걸린다.

고유벡터와 특이값 벡터는 무슨 관계가 있는가? \mathbf{S}^{2} = \mathbf{D}라 놓으면 (\mathbf{X}^{T} \mathbf{X})\mathbf{V} = \mathbf{V}\mathbf{D}이므로 \mathbf{X}^{T} \mathbf{X}의 고유벡터는 \mathbf{V}, 고유값은 \mathbf{D}가 된다. 마찬가지로 \mathbf{X}\mathbf{X}^{T}의 고유벡터는 \mathbf{U}, 고유값은 \mathbf{D}이다. 고유벡터는 선형 비례 확대/축소에 영향받지 않으므로 \mathbf{V}의 열벡터들은 실측 공분산 \hat{\mathbf{\Sigma}}의 고유벡터와 같으며, \mathbf{D}의 원소들은 실측 공분산의 고유값에 비례한다.

광대 이미지에 대한 특이값 분해의 예.

특이값이 첫 부분들에 편중되어 있으면 (뒤로 갈수록 빠르게 0이 되면), 행렬에 대해 다음의 랭크 L 근사가 가능하다: \mathbf{X} \simeq \mathbf{U}_{:, 1:L}\mathbf{S}_{1:L, 1:L}\mathbf{V}_{:, 1:L}^{T} 이를 절사 특이값 분해라 하며 필요한 매개변수의 수는 L(N+D+1)이다. 위의 예에서는 200 x 320 = 64000 픽셀의 이미지를 20 랭크 근사로도 잘 표현함을 알 수 있다. 이 때 오차는 약 \lVert \mathbf{X} - \mathbf{X}_{L} \rVert_{F} \simeq \sigma_{L+1}이 된다.

다시 주성분 분석으로 돌아와보자. 절사 특이값 분해 \mathbf{X} = \mathbf{U}\mathbf{S}\mathbf{V}^{T}에 대해서 \hat{\mathbf{W}} = \mathbf{V}, \hat{\mathbf{Z}} = \mathbf{X} \hat{\mathbf{W}} = \mathbf{U}\mathbf{S}이므로 \hat{\mathbf{X}} = \mathbf{U}\mathbf{S}\mathbf{V}^{T}이다. 즉 최적의 랭크 L 재구축을 유도하는 해는 절사 특이값 분해로 얻어진 해와 완전히 일치한다.

12.2.4. Probabilistic PCA

Theorem. 인자 분석 모델에서 \mathbf{\Psi} = \sigma^{2} \mathbf{I}인 경우, 관측 데이터 로그 가능도는 \mathbf{C} = \mathbf{W}\mathbf{W}^{T} + \sigma^{2} \mathbf{I}, \mathbf{S} = \frac{1}{N} \sum_{i=1}^{N} (\mathbf{x}_{i} - \mathbf{\mu})(\mathbf{x}_{i}-\mathbf{\mu})^{T} = \frac{1}{N}\mathbf{X}^{T} \mathbf{X}로 놓았을 때 \log p(\mathbf{X} | \mathbf{W}, \sigma^{2}) = -\frac{N}{2} \ln \lvert \mathbf{C} \rvert - \frac{1}{2} \sum_{i=1}^{N} (\mathbf{x}_{i} - \mathbf{\mu})^{T} \mathbf{C}^{-1} (\mathbf{x}_{i} - \mathbf{\mu}) = -\frac{N}{2} \ln \lvert \mathbf{C} \rvert + \mathrm{tr}(\mathbf{C}^{-1} \hat{\mathbf{\Sigma}})가 된다. 이 로그 가능도의 최대값을 발생시키는 값은 \mathbf{R}이 임의의 L x L 직교행렬, \mathbf{V}\mathbf{S}의 첫 L개의 고유벡터, \mathbf{\Lambda}는 그에 대응하는 고유값의 대각행렬일 때 \hat{\mathbf{W}} = \mathbf{V}(\mathbf{\Lambda} - \sigma^{2} \mathbf{I})^{\frac{1}{2}} \mathbf{R}가 된다. 또한, 노이즈 분산의 최대가능도추정은 \hat{\sigma}^{2} = \frac{1}{D-L}\sum_{j=L+1}^{D} \lambda_{j}로, 선택되지 못한 축들의 분산들의 평균값이 된다.

위의 정리에서 \sigma^{2} \to 0이면 \mathbf{W} \to \mathbf{V}가 되어 고전적 주성분 분석과 같아짐을 알 수 있다. \hat{\mathbf{Z}}는 어떤가? 잠재 인자에 대한 사후분포는 \hat{\mathbf{F}} = \hat{\mathbf{W}}^{T}\hat{\mathbf{W}} + \hat{\sigma}^{2}\mathbf{I}로 놓을 때 p(\mathbf{z}_{i} | \mathbf{x}_{i}, \hat{\mathbf{\theta}}) = \mathcal{N}(\mathbf{z}_{i} | \hat{\mathbf{F}}^{-1}\hat{\mathbf{W}}^{T} \mathbf{x}_{i}, \sigma^{2} \hat{\mathbf{F}}^{-1})이 된다. 그러므로 \sigma^{2} \to 0이면 \hat{\mathbf{W}} \to \mathbf{V}, \hat{\mathbf{F}} \to \mathbf{I}, \hat{\mathbf{z}}_{i} \to \mathbf{V}^{T} \mathbf{x}_{i}이다. 그러므로 잠재 인자의 사후평균은 데이터를 \mathbf{V}의 열공간에 정사영시킨 값이 되는데, 이는 고전적 주성분 분석에서 얻을 수 있는 결과와 같은 것이다.

주의해야 할 점은 \sigma^{2} > 0이면 사후평균은 사전평균에 대해 다소 치우쳐지게 되므로 정사영이 되지 않는다는 점이다.

12.2.5. EM algorithm for PCA

주성분 분석 모델을 피팅할 때는 보통 고유벡터나 특이값 분해를 사용하지만 기대값 최대화 알고리즘도 쓸 수 있다. \tilde{\mathbf{Z}}를 사후평균을 담는 L x N 행렬이라 하고 \tilde{\mathbf{X}} = \mathbf{X}^{T}은 원본 데이터를 담는다고 하면 \sigma^{2} = 0일 때 \tilde{\mathbf{Z}} = (\mathbf{W}^{T} \mathbf{W})^{-1} \mathbf{W}^{T} \tilde{\mathbf{X}}이다. 이것은 데이터를 단순히 정사영한 것이며 이것만으로 E 단계가 끝난다.

M 단계는 \tilde{\mathbf{W}} = [\sum_{i} \mathbf{x}_{i} \mathbb{E} [\mathbf{z}_{i}]^{T}][\sum_{i} \mathbb{E}[\mathbf{z}_{i}] \mathbb{E} [\mathbf{z}_{i}]^{T}]^{-1}이 된다. 이는 선형 회귀의 최대가능도추정과 형태가 비슷한데, 이로부터 M 단계는 선형 회귀에서 관측된 입력을 잠재 변수의 기대값으로 대체한 것이라 볼 수 있다.

EM 알고리즘의 유일한 안정적 고정점은 전역 최적해이다. 즉 EM 알고리즘은 \mathbf{W}가 첫 L개의 고유벡터와 같은 열공간을 갖게 될 때 수렴하게 된다. 결과값을 직교화시켜도 되고 EM 알고리즘을 수정해 알고리즘이 직접 직교화된 해를 출력하게 할 수도 있다.

기대값 최대화 알고리즘을 적용한 주성분 분석.

주성분 분석에 기대값 최대화 알고리즘을 적용하는 것은 고유벡터 방법에 비해 다음과 같은 이점이 있다.

  • 수렴 속도가 빠르다.
  • 온라인 학습에 대해 구현될 수 있다.
  • 유실된 데이터에 간단한 방식으로 대응할 수 있다.
  • 확률적 주성분 분석이나 인자 분석 모델로 확장할 수 있다.
  • 변량 기대값 최대화나 변량 베이즈 기대값 최대화 알고리즘으로 변형시켜서 더 복잡한 모델을 피팅할 수 있다.

12.3. Choosing the number of latent dimensions

인자 분석/주성분 분석 모델에서 잠재 차원 L은 어떻게 잡는가?

12.3.1. Model selection for FA/PPCA

확률적 모델링을 사용한다면 L^{\ast} = \mathrm{argmax}_{L} p(L | \mathcal{D})을 사용해 볼 수 있겠지만 두 가지 문제점이 있다. 첫 번째는 잠재변수모델의 주변가능도를 계산하는 것이 어렵다는 것이다. 이에 대해서는 베이지안 정보 기준량이나 ㅂ녀량 하한 등으로 근사가 가능하고, 교차검증 가능도를 쓸 수도 있다. 두 번째는 찾아야 하는 모델의 수가 많다는 것이다. 기대값 최대화 알고리즘과 자동 연관성 감지를 결합해 힌튼 다이어그램을 이용해 관계가 없는 가중치를 배제함으로써 이를 보정할 수 있다. 하지만 이는 기대값 최대화 알고리즘을 사용하므로 혼합 모델의 개수 K를 결정해야 하는 문제가 여전히 남아 있는데, 모델의 공간에서 추계적 샘플링을 하거나 매개변수가 없는 사전분포와 깁스 샘플링을 결합하기도 한다.

12.3.2. Model selection for PCA

주성분 분석은 확률적 모델링이 아니기 때문에 위에 언급한 방법들은 사용할 수 없다. 가능도 대신에 재구축 오차 E(\mathcal{D}, L) = \frac{1}{\lvert \mathcal{D} \rvert} \sum_{i \in \mathcal{D}} \lVert \mathbf{x}_{i} - \hat{\mathbf{x}}_{i} \rVert^{2}을 사용할 수 있다. 주성분 분석의 경우에는 \mathbf{W}\mathbf{\mu}가 학습 데이터셋에서 추정되었을 때 \mathbf{z}_{i} = \mathbf{W}^{T} (\mathbf{x}_{i} - \mathbf{\mu})로 잡으면 \hat{\mathbf{x}} = \mathbf{W} \mathbf{z}_{i} + \mathbf{\mu}라 할 수 있다. L개의 항을 사용했을 때의 잔여 오차는 사용하지 않은 고유값들의 합과 같다.

E(\mathcal{D}_{\mathrm{train}}, L) = \sum_{j = L+1}^{D} \lambda_{j}

따라서 오차를 그리는 방법은 고유값을 감소하는 순서로 표시하는 것이다. 이를 비탈 플롯이라 한다. 이와 관계 있는 통계량은 설명 분산비 F(\mathcal{D}_{\mathrm{train}}, L)= \frac{\sum_{j=1}^{L} \lambda_{j}}{\sum_{j=1}^{L_{\max}}  \lambda_{j}} 이다.

L = \mathrm{rank}(\mathbf{X})을 쓰면 학습 데이터에서는 재구축 오차가 0이 되므로 오차를 플로팅할 때는 과적합을 피하기 위해 테스트 데이터에서 플로팅한다. 이 그래프는 일반적인 U자 그래프가 아닌데 이는 주성분 분석은 데이터의 생성적 모델이 아니라 압축 방식에 더 가깝기 때문이다. 따라서 잠재 차원수를 더 많이 주면 테스트 데이터의 특성을 더 많이 캡쳐하게 된다. 이는 확률적 모델이 베이지안 오컴의 면도날 효과에 의해 복잡도가 높아질 수록 테스트 데이터에서 음의 로그가능도가 더 커지는 것과 반대이다.

12.3.2.1. Profile likelihood

주성분 분석의 오차 플롯에는 U자 곡선은 없지만 급격히 기울기가 변하는 지점이 존재한다. 이 기준점을 L이라 하면 모델에 대한 통계량 \lambda_{1} \geq \cdots \geq \lambda_{L_{\max}}이 존재할 때 (주성분 분석에서는 이는 고유값이지만 k-평균 알고리즘 등에도 쓸 수 있는 방법이다) k < L, k > L의 두 부류로 나눌 수 있다. 이 때 L의 성능을 측정하기 위해서는 k \leq L일 때 \lambda_{k} \sim \mathcal{N}(\mu_{1}, \sigma^{2}), k > L일 때 \lambda_{k} \sim \mathcal{N}(\mu_{2}, \sigma^{2})로 둘 수 있다. (한 쪽의 데이터가 더 적은 경우의 과적합을 막기 위해 분산은 같게 맞춰야 한다.) 고유값은 편의상 동일하게 독립적으로 분포된다고 가정한다. 이 모델은 변량의 혼합된 추정을 이용해 다음과 같이 피팅한다.

\mu_{1} = \frac{\sum_{k \leq L} \lambda_{k}}{L}, \mu_{2} = \frac{\sum_{k > L} \lambda_{k}}{N - L}, \sigma^{2} = \frac{\sum_{k \leq L} (\lambda_{k} - \mu_{1})^{2}+\sum_{k > L} (\lambda_{k} - \mu_{2})^{2}}{N}

이후 다음의 프로필 로그 가능도를 정의한다.

l(L) = \sum_{k=1}^{L} \log \mathcal{N}(\lambda_{k} | \mu_{1}, \sigma^{2}) + \sum_{k=L+1}^{K} \log \mathcal{N}(\lambda_{k} | \mu_{2}, \sigma^{2})

그 뒤에 L^{\ast} = \mathrm{argmax} l(L)을 선택하면 된다.

주성분 분석의 주성분 개수에 따른 재구축 오차, 음의 로그가능도, 비탈 플롯, 프로필 로그가능도.

12.4. PCA for categorical data

인자 분석 모델을 실변수 데이터가 아니라 범주 데이터로 확장시켜보자. 즉, 데이터가 관측된 반응변수 j = 1, \cdots, R에 대해 y_{ij} \in \{1, \cdots, C\}가 되는 것이다. 데이터 각각이 잠재 변수 \mathbf{z}_{i} \in \mathbb{R}^{L}에서 생성되고 이 잠재 변수는 가우시안 사전분포 p(\mathbf{z}_{i}) = \mathcal{N}(\mathbf{0}, \mathbf{I})을 가진다고 하면 \mathbf{W}_{r}을 인자 부하 행렬, \mathbf{w}_{0r}을 오프셋 벡터라 할 때 p(\mathbf{y}_{i} | \mathbf{z}_{i}, \mathbf{\theta}) = \prod_{r=1}^{R} \mathrm{Cat}(y_{ir} | \mathcal{S}(\mathbf{W}_{r}^{T} \mathbf{z}_{i} + \mathbf{w}_{0r}))이 된다. 사전분포의 평균과 공분산은 \mathbf{0}, \mathbf{I}로 정의하였는데 다른 것으로 정의하더라도 \mathbf{w}_{0j}, \mathbf{W}_{r}을 변경해서 맞출 수 있기 때문이다. 이를 범주 주성분 분석이라 하며 항목 반응론 모델에 쓰인다.

범주 분포가 관측 변수에 유도하는 분포는 확률 심플렉스 위에 분포하는데 이를 로지스틱 정규 분포라 한다. 이는 기대값 최적화 알고리즘을 수정해 피팅할 수 있는데, E 단계에서는 사후분포 p(\mathbf{z}_{i} | \mathbf{y}_{i}, \mathbf{\theta})에 대해 가우시안 근사를 하고 M 단계에서는 \mathbf{\theta}를 최대화시키는 것이다. 이러한 근사는 고차원의 범주 데이터를 시각화하는 데 쓸 수 있다.

비트 벡터에 이진 주성분 분석을 사용한 결과. 노이즈 낀 데이터, 참값, 사후예측분포, 재구축, 데이터 손실시의 예측값.

12.5. PCA for paired and multi-view data

서로 관계 있는 데이터셋을 저차원으로의 매핑 결과물끼리 결합시킬 수 있는데 이를 데이터 융합이라 한다. 자주 쓰이는 응용은 데이터 쌍의 한 파트 \mathbf{y}_{i}로부터 \mathbf{x}_{i}를 추론하는 것이다.

12.5.1. Supervised PCA (latent factor regression)

다음의 모델을 고려해보자: p(\mathbf{z}_{i}) = \mathcal{N}(\mathbf{0}, \mathbf{I}_{L}), p(y_{i} | \mathbf{z}_{i}) = \mathcal{N}(\mathbf{w}_{y}^{T} \mathbf{z}_{i} + \mu_{y}, \sigma_{y}^{2}), p(\mathbf{x}_{i} | \mathbf{z}_{i}) = \mathcal{N}(\mathbf{W}_{x}\mathbf{z}_{i} + \mathbf{\mu}_{x}, \sigma_{x}^{2} \mathbf{I}_{D})

이를 지도 주성분 분석 또는 베이지안 인자 회귀라고 한다. 이는 주성분 분석과 비슷하나 대상 변수 y_{i}가 저차원 매핑을 학습할 때 고려된다는 점이 다르다. 이 모델은 결합 가우시안이므로 \mathbf{w} = \mathbf{\Psi}^{-1} \mathbf{W}_{x} \mathbf{C} \mathbf{w}_{y}, \mathbf{\Psi} = \sigma_{x}^{2} \mathbf{I}_{D}, \mathbf{C}^{-1} = \mathbf{I} + \mathbf{W}_{x}^{T} \mathbf{\Psi}^{-1} \mathbf{W}_{x}이라 놓을 때 y_{i} | \mathbf{x}_{i} \sim \mathcal{N}(\mathbf{x}_{i}^{T} \mathbf{w}, \mathbf{w}_{y}^{T} \mathbf{C} \mathbf{w}_{y} + \sigma_{y}^{2})가 되므로 결합모델 p(\mathbf{x}_{i}, y_{i})에 대해서도 해당하는 조건분포를 계산할 수 있다. 위의 모델은 선형 회귀뿐만 아니라 지수족이나 다중 분류에 대해서도 확장될 수 있다.

분류의 경우에는 조건분포 p(\mathbf{y}_{i} | \mathbf{x}_{i}, \mathbf{\theta})을 닫힌 형태로 계산하는 것이 불가능하므로 반응 변수를 잠재 병목 변수로부터 예측을 한다. 이는 \mathbb{I}(X;Z) - \beta \mathbb{I}(X;Y)를 최소화시키는 암호화 분포 p(\mathbf{z} | \mathbf{x})를 찾는 것인데 여기서 \beta \geq 0은 데이터 압축과 예측 정확도간 트레이드오프를 결정하는 인자이다. 이를 정보 병목이라 한다. Z는 클러스터링에서처럼 이산적으로 선택되기도 하지만 가우시안을 쓰는 경우에는 정보 병목은 지도 주성분 분석과 관계가 있다.

12.5.1.1. Discriminative supervised PCA

주성분 분석의 단점은 \mathbf{x}_{i}\mathbf{y}_{i}를 같은 비중으로 예측한다는 것이다. 이는 \mathbf{\eta}_{ix} = \mathbf{W}_{x} \mathbf{z}_{i}, \mathbf{\eta}_{iy} = \mathbf{W}_{y} \mathbf{z}_{i}로 둘 때 다음과 같이 가능도에 가중치 \alpha_{x}, \alpha_{y}를 줘서 해결할 수 있다.

l(\mathbf{\theta}) = \prod_{i} p(\mathbf{y}_{i} | \mathbf{\eta}_{iy})^{\alpha_{y}} p(\mathbf{x}_{i} | \mathbf{\eta}_{ix})^{\alpha_{x}}

가우시안 모델에서 \alpha_{x}, \alpha_{y}는 노이즈 분산의 세기를 컨트롤하는 역할이 된다. 이 관계는 일반적인 지수족에 대해서도 성립한다.

l(\mathbf{\theta}) \propto \prod_{i} e^{-\frac{1}{2}\alpha_{x} \lVert \mathbf{x}_{i}^{T} - \mathbf{\eta}_{ix}\rVert^{2} }e^{-\frac{1}{2}\alpha_{y} \lVert \mathbf{y}_{i}^{T} - \mathbf{\eta}_{iy}\rVert^{2} }

\alpha_{x}, \alpha_{y}를 바꾸면 가능도의 표준화 상수도 변하기 때문에 이 인자들을 추정하기는 어렵다.

12.5.2. Partial least squares

부분 최소 제곱법(PLS)은 지도 주성분 분석을 비대칭으로 만든 것이다. 핵심 아이디어는 입력 특성의 공분산 중 일부는 그 자신의 부분공간으로부터 매핑되도록 놓고 나머지 부분공간은 입력/출력간 공유를 시키는 것이다. 즉 이렇게 된다.

p(\mathbf{z}_{i}) = \mathcal{N}(\mathbf{z}_{i}^{s} | \mathbf{0}, \mathbf{I}_{L_{s}})\mathcal{N}(\mathbf{z}_{i}^{x} | \mathbf{0}, \mathbf{I}_{L_{x}})

p(\mathbf{y}_{i} | \mathbf{z}_{i}) = \mathcal{N}(\mathbf{W}_{y} \mathbf{z}_{i}^{s} + \mathbf{\mu}_{y}, \sigma^{2} \mathbf{I}_{D_{y}})

p(\mathbf{x}_{i} | \mathbf{z}_{i}) = \mathcal{N}(\mathbf{W}_{x} \mathbf{z}_{i}^{s} + \mathbf{B}_{x} \mathbf{z}_{i}^{x} + \mathbf{\mu}_{x}, \sigma^{2} \mathbf{I}_{D_{x}})

이 때 관측 가능한 변수에 대한 분포는 다음과 같다.

p(\mathbf{v}_{i} | \mathbf{\theta}) = \int \mathcal{N}(\mathbf{v}_{i} | \mathbf{W} \mathbf{z}_{i} + \mathbf{\mu}, \sigma^{2} \mathbf{I}) \mathcal{N}(\mathbf{z}_{i} | \mathbf{0}, \mathbf{I}) d \mathbf{z}_{i} = \mathcal{N}(\mathbf{v}_{i} | \mathbf{\mu}, \mathbf{W}\mathbf{W}^{T} + \sigma^{2} \mathbf{I})

\mathbf{v}_{i} = (\mathbf{x}_{i} ; \mathbf{y}_{i}), \mathbf{\mu} = (\mathbf{\mu}_{y} ; \mathbf{\mu}_{x}), \mathbf{W} = \begin{pmatrix} \mathbf{W}_{y} & \mathbf{0} \\ \mathbf{W}_{x} & \mathbf{B}_{x} \end{pmatrix}

이 때 공유되는 부분공간이 공분산 전용 특성을 표현하지 못하도록 L을 충분히 크게 잡아야 한다. 이 모델은 지수족을 이용해 이산적 데이터에 대해서도 일반화 가능하다.

12.5.3. Canonical correlation analysis

정준 상관 분석(CCA)는 부분적 최소 제곱법의 비지도 대칭 버전인데, 입력과 출력 모두에 대해서 고유한 부분공간으로부터의 표현을 갖는 것을 허용하고 입력과 출력간 공유 부분공간도 둔다. 따라서 잠재 변수는 3개가 된다.

p(\mathbf{z}_{i}) = \mathcal{N}(\mathbf{z}_{i}^{s} | \mathbf{0}, \mathbf{I}_{L_{s}})\mathcal{N}(\mathbf{z}_{i}^{x} | \mathbf{0}, \mathbf{I}_{L_{x}})\mathcal{N}(\mathbf{z}_{i}^{y} | \mathbf{0}, \mathbf{I}_{L_{y}})

p(\mathbf{x}_{i} | \mathbf{z}_{i}) = \mathcal{N}(\mathbf{x}_{i} | \mathbf{B}_{x} \mathbf{z}_{i}^{x} + \mathbf{W}_{x} \mathbf{z}_{i}^{s} + \mathbf{\mu}_{x}, \sigma^{2} \mathbf{I}_{D_{x}})

p(\mathbf{y}_{i} | \mathbf{z}_{i}) = \mathcal{N}(\mathbf{y}_{i} | \mathbf{B}_{y} \mathbf{z}_{i}^{y} + \mathbf{W}_{y} \mathbf{z}_{i}^{s} + \mathbf{\mu}_{y}, \sigma^{2} \mathbf{I}_{D_{y}})

이 때 관측 가능한 변수에 대한 분포는 다음과 같다.

p(\mathbf{v}_{i} | \mathbf{\theta}) = \int \mathcal{N}(\mathbf{v}_{i} | \mathbf{W} \mathbf{z}_{i} + \mathbf{\mu}, \sigma^{2} \mathbf{I}) \mathcal{N}(\mathbf{z}_{i} | \mathbf{0}, \mathbf{I}) d \mathbf{z}_{i} = \mathcal{N}(\mathbf{v}_{i} | \mathbf{\mu}, \mathbf{W}\mathbf{W}^{T} + \sigma^{2} \mathbf{I})

\mathbf{v}_{i} = (\mathbf{x}_{i} ; \mathbf{y}_{i}), \mathbf{\mu} = (\mathbf{\mu}_{x} ; \mathbf{\mu}_{y}), \mathbf{W} = \begin{pmatrix} \mathbf{W}_{x} & \mathbf{B}_{x} & \mathbf{0} \\ \mathbf{W}_{y} & \mathbf{0} & \mathbf{B}_{y} \end{pmatrix}

이 모델의 최대가능도추정은 기대값 최대화 알고리즘을 통해 구할 수 있다. 이렇게 구한 최대가능도추정은 고전적인 방법으로 구한 모델 매개변수와 회전/등장변환에 대해 동치이다. 그러나 확률적 방법은 2개 이상의 관측 변수에 대해서도 쉽게 확장할 수 있고, 정준 상관 분석 모델의 혼합을 만들 수도 있고, 희소 모델을 만들 수도 있고, 지수족으로 확장시킬 수도 있고, 베이지안 추론을 할 수도 있고, 희소화 사전분포에 대해서도 대처할 수 있다는 이점이 있다.

12.6. Independent Component Analysis (ICA)

이야기하는 사람으로 꽉 찬 방에서 각각의 목소리들을 구별해야 한다고 하자. 이것은 칵테일 파티 문제라고 하며 암묵 신호 분리 또는 암묵 음원 분리 문제의 예이다. \mathbf{x}_{t} \in \mathbb{R}^{D}를 시점 t에서의 센서가 관측한 신호, \mathbf{z}_{t} \in \mathbb{R}^{D}을 음원이 보낸 신호라고 놓고 혼합 행렬 \mathbf{W}, 노이즈 \mathbf{\epsilon}_{t} \sim \mathcal{N}(\mathbf{0}, \mathbf{\Psi})에 대해 \mathbf{x}_{t} = \mathbf{W}\mathbf{z}_{t} + \mathbf{\epsilon}_{t}로 가정하자. 이 때 각각의 시점은 독립된 관측으로 가정한다.

목표는 음원이 보낸 신호 p(\mathbf{z}_{t} | \mathbf{x}_{t}, \mathbf{\theta})을 구하는 것이다. 이것은 인자 분석 모델과 같다. L = D이면 (즉, 센서의 수가 음원의 수가 같다면) 혼합 행렬은 정사각행렬이며, 노이즈가 없다면 혼합 행렬의 직교성을 요구하지 않는 주성분 분석과 같다. 하지만 주성분 분석과는 사전분포를 다르게 두는데, 주성분 분석에서는 각각의 음원이 독립적이고 가우시안 사전분포를 따른다고 가정해서 p(\mathbf{z}_{t}) = \prod_{j=1}^{L} \mathcal{N}(z_{tj} | 0, 1)로 놓지만 이 문제에서는 각각의 음원들은 독립적이지만 비 가우시안 사전분포를 따른다고 가정해서 p(\mathbf{z}_{t}) = \prod_{j=1}^{L} p_{j}(z_{tj})로 놓는다. 이 때 음원들의 분포의 분산의 값은 혼합 행렬로 흡수시킬 수 있으므로 일반성을 잃지 않고 1로 통일시킬 수 있다. 이 모델을 독립 목표는 음원이 보낸 신호 p(\mathbf{z}_{t} | \mathbf{x}_{t}, \mathbf{\theta})을 구하는 것이다. 이것은 인자 분석 모델과 같다. L = D이면 (즉, 센서의 수가 음원의 수가 같다면) 혼합 행렬은 정사각행렬이며, 노이즈가 없다면 혼합 행렬의 직교성을 요구하지 않는 주성분 분석과 같다. 하지만 주성분 분석과는 사전분포를 다르게 두는데, 주성분 분석에서는 각각의 음원이 독립적이고 가우시안 사전분포를 따른다고 가정해서 p(\mathbf{z}_{t}) = \prod_{j=1}^{L} \mathcal{N}(z_{tj} | 0, 1)로 놓지만 이 문제에서는 각각의 음원들은 독립적이지만 비 가우시안 사전분포를 따른다고 가정해서 p(\mathbf{z}_{t}) = \prod_{j=1}^{L} p_{j}(z_{tj})로 놓는다. 이 때 음원들의 분포의 분산의 값은 혼합 행렬로 흡수시킬 수 있으므로 일반성을 잃지 않고 1로 통일시킬 수 있다. 이 모델을 독립 성분 분석(ICA)라 한다.

독립 성분 분석에서 가우시안 사전분포를 허용하지 않는 이유는 가우시안 사전분포를 쓰면 음원들을 유일하게 분리해낼 수 없기 때문이다. 왜냐하면 주성분 분석의 가능도는 음원들을 혼합하는 행렬에 임의의 직교변환을 시켜도 똑같이 유지되기 때문에 음원간의 혼합 관계를 유일하게 결정할 수 없게 된다. 주성분 분석은 음원들이 생성하는 전체 부분공간을 정확하게 표현하는 데 의미가 있다.

주성분 분석과 독립 성분 분석의 비교. 주성분 분석은 음원들을 명확히 분리해낼 수 없다.

혼합 행렬이 정사각이 아니라면 음원의 수가 센서의 수보다 많다는 것이므로 각각의 음원을 유일하게 분리할 수 없게 되지만 음원에 대한 사후분포 p(\mathbf{z}_{t} | \mathbf{x}_{t}, \hat{\mathbf{W}})를 계산하는 것은 여전히 가능하다. 이 때에는 음원 분포 p_{j}와 혼합 행렬 \mathbf{W}을 추정해야 한다.

주성분 분석과 독립 성분 분석의 비교. 주성분 분석은 샘플들의 선형 결합으로부터 샘플들을 원복하지 못한다.

12.6.1. Maximum likelihood estimation

노이즈가 없지만 음원의 수가 센서보다 많은 경우에 혼합 행렬을 어떻게 추정할까? 일반성을 잃지 않고 등장변환과 회전변환을 통해 관측들이 평균 \mathbf{0}과 공분산 \mathbf{I}를 갖는다고 가정한다.

이 때 \mathbb{E}[\mathbf{x}\mathbf{x}^{T}] = \mathbf{I}가 되고 \mathrm{cov}[\mathbf{x}] = \mathbf{W} \mathbb{E} [\mathbf{z} \mathbf{z}^{T}] \mathbf{W}^{T} = \mathbf{W} \mathbf{W}^{T}이 되므로 혼합 행렬은 직교행렬이어야 함을 알 수 있다. 생성 가중치 \mathbf{W}의 역행렬 인식 가중치 \mathbf{V} = \mathbf{W}^{-1}에 대해서 \mathbf{x} = \mathbf{W}\mathbf{z}이므로, p_{x}(\mathbf{W}\mathbf{z}_{t}) = p_{z}(\mathbf{z}_{t})\lvert \mathrm{det} (\mathbf{W}^{-1}) \rvert = p_{z}(\mathbf{V}\mathbf{x}_{t})\lvert \mathrm{det} (\mathbf{V}) \rvert이 된다.

그러므로 로그 가능도는 다음과 같다.

\frac{1}{T} \log p(\mathcal{D} | \mathbf{V}) = \log \lvert \mathrm{det}(\mathbf{V}) \rvert + \frac{1}{T} \sum_{j=1}^{L} \sum_{t=1}^{T} \log p_{j}(\mathbf{v}_{j}^{T} \mathbf{x}_{t})

\mathbf{V}가 직교행렬이므로 앞의 항은 최적화할 때 무시된다. z_{j} = \mathbf{v}_{j}^{T} \mathbf{x}, G_{j}(z) = -\log p_{j}(z)로 놓으면 로그 가능도를 최적화하는 것은 \sum_{j=1}^{L} \mathbb{E}[G_{j}(z_{j})]을 최적화하는 것과 같다. 이는 경사 하강법으로 최적화할 수 있지만 이 방법은 느리다. 뉴턴법을 쓰거나 기대값 최대화 알고리즘을 쓰는 대안들이 존재한다.

12.6.2. The FastICA algorithm

뉴턴 근사법으로 독립 성분 분석 모델을 피팅하는 빠른 독립 성분 분석 알고리즘을 알아보자. 편의를 위해 잠재 인자는 1개로 가정한다. 최초에는 모든 음원 분포가 동일한, 알려진 분포라고 가정하자. G(z) = -\log p(z), g(z) = \frac{d}{dz}G(z)로 놓으면 목적 함수, 그라디언트, 헤시안은 다음과 같다.

f(\mathbf{v}) = \mathbb{E}[G(\mathbf{v}^{T} \mathbf{x})] + \lambda (1 - \mathbf{v}^{T} \mathbf{v})

\nabla f(\mathbf{v}) = \mathbb{E}[\mathbf{x}g(\mathbf{v}^{T} \mathbf{x})] -2 \lambda \mathbf{v}

\mathbf{H}(\mathbf{v}) = \mathbb{E}[\mathbf{x}\mathbf{x}^{T}g^{\prime}(\mathbf{v}^{T} \mathbf{x})] -2 \lambda \mathbf{I}

이제 다음의 근사를 수행한다.

\mathbb{E}[\mathbf{x}\mathbf{x}^{T}g^{\prime}(\mathbf{v}^{T} \mathbf{x})] \simeq \mathbb{E}[\mathbf{x}\mathbf{x}^{T}] \mathbb{E}[g^{\prime}(\mathbf{v}^{T} \mathbf{x})] = \mathbb{E}[g^{\prime}(\mathbf{v}^{T} \mathbf{x})]

이러면 헤시안이 가역에 가까워지므로 뉴턴법에 의한 반복적 업데이트가 가능하다.

\mathbf{v}^{\ast} = \mathbf{v} - \frac{\mathbb{E}[\mathbf{x}g(\mathbf{v}^{T} \mathbf{x})] - 2 \lambda \mathbf{v}}{\mathbb{E}[g^{\prime}(\mathbf{v}^{T} \mathbf{x})] - 2 \lambda}

이를 수렴할 때까지 반복한다. 목적 함수는 볼록이 아니므로 여러 개의 국소적 해가 있을 수 있는데, 이 사실을 이용해 복수의 서로 다른 가중치 벡터나 잠재 특성을 학습할 수 있다. 이 잠재 특성들은 연쇄적으로 학습한 뒤 그 이전 특성들의 부분공간에 해당하는 부분을 제하는 것도 가능하고 따로따로 학습한 뒤 모아서 직교하는 것도 가능하지만 주성분 분석과 달리 특성간의 우선순위가 따로 정해져 있는 것이 아니기 때문에 후자의 접근법이 더 선호된다.

12.6.2.1. Modeling the source densities

그래서 음원 분포 G(z)는 어떻게 잡아야 할 것인가? 가정은 가우시안을 쓸 수 없다는 사실밖에 없다. 다음과 같은 후보들이 있다.

  • 슈퍼-가우시안 분포. 이는 평균에서 치솟고 양끝을 두껍게 만든 가우시안이다. 렙토커틱이라고 하기도 하며 커토시스 \mathrm{kurt}(z) = \frac{\mu_{4}}{\sigma^{4}} - 3이 양수가 된다. 이 때 4번째 중심 모멘트 \mu_{4}\mathbb{E}[(X - \mathbb{E}[X])^{4}]와 같다. 예로는 라플라스 분포가 있다.
  • 서브-가우시안 분포. 이는 평균이 더 납작하고 양끝을 얇게 만든 가우시안으로 플라티커틱이라 하기도 하며 커토시스가 음수가 된다. 예로는 균등 분포가 있다.
  • 쏠린 분포. 비대칭성 \mathrm{skew}(z) = \frac{\mu_{3}}{\sigma^{3}}을 양수로 갖는 분포로서 예로는 감마 분포가 있다.
가우시안, 슈퍼가우시안(라플라스), 서브가우시안(균등) 분포.

많은 자연적 신호들의 실측 분포는 선형 필터를 거치면 슈퍼 가우시안으로 나타나는 경우가 많다. 따라서 독립 성분 분석을 모델링할 때 라플라스 분포를 택하는 것은 좋은 선택이다. 평균이 0, 분산이 1이면 로그 분포는 다음과 같아진다. \log p(z) = -\sqrt{2} \lvert z \rvert - \log \sqrt{2}

라플라스 분포는 원점에서 미분가능하지 않기 때문에 매끄러운 대안적 분포는 로지스틱 분포이다. 평균이 0, 분산이 1이면 로그 분포는 다음과 같아진다. \log p(z) = -2 \log \cosh (\frac{\pi}{2 \sqrt{3}} z) - \log \frac{4 \sqrt{3}}{\pi}

사실 분포가 서브가우시안인지 슈퍼가우시안인지만 결정하면 그 정확한 형태는 그렇게까지 중요하진 않다. G(z) = \sqrt{z}, G(z) = \log \cosh(z) 등의 간단한 형태를 쓰기도 한다.

12.6.3. Using EM

G(z)의 형태를 가정하기보다는 가우시안의 혼합 분포로 두고 그 분포를 추정하는 방법도 있다.

p(q_{j} = k) = \pi_{k}

p(z_{j} | q_{j} = k) = \mathcal{N}(\mu_{jk}, \sigma_{jk}^{2})

p(\mathbf{x} | \mathbf{z}) = \mathcal{N}(\mathbf{W}\mathbf{z}, \mathbf{\Psi})

이 모델에 대해서 정확한 기대값 최대화 알고리즘을 도출하는 것이 가능하다. 핵심은 \mathbb{E}[\mathbf{z}_{t} | \mathbf{x}_{t}, \mathbf{\theta}]를 음원간의 모든 가능한 혼합에 대해 합해서 계산하는 것이다. (이것은 비싼 연산이므로 변량 평균 근사를 사용할 수도 있다) 이렇게 하면 음원 각각의 분포는 일반 가우시안 혼합 분포를 피팅하듯 \mathbb{E}[\mathbf{z}_{t}]를 피팅할 수 있게 되는데, 그 이후엔 주변분포 p_{j}(z_{j}) = \sum_{k=1}^{K} \pi_{jk} \mathcal{N}(z_{j} | \mu_{jk}, \sigma_{jk}^{2})이 된다. 주변분포들을 다 구하면 독립 성분 분석으로 \mathbf{W}를 계산할 수 있다.

12.6.4. Other estimation principles

독립 성분 분석의 매개변수를 추정할 때 최대가능도추정과 다른 방법도 가능하다. 그러나 이 방법들도 본질적으로는 최대가능도추정과 같다.

12.6.4.1. Maximizing non-Gaussianity

독립 성분 분석에서 해당 분포 \mathbf{z} = \mathbf{V}\mathbf{x}의 비-가우시안성을 최대로 만드는 행렬 \mathbf{V}를 찾는 방식을 사영 추적이라 한다. 비-가우시안성의 척도는 커토시스를 쓸 수 있으나 이는 이상치에 취약하다. 다른 척도는 음엔트로피 \mathrm{nge}(z) = \mathbb{H}(\mathcal{N}(\mu, \sigma^{2})) - \mathbb{H}(z)을 측정하는 것이다. 가우시안은 평균, 분산이 정해졌을 때 엔트로피를 최대로 만드는 분포이므로 이 값은 음수가 아니며 값이 더 커질수록 비-가우시안이라고 볼 수 있다. 이 때 J(\mathbf{V}) = \sum_{j} \mathrm{nge}(z_{j})을 최대화시키는 것을 목표로 할 수 있다. 인식 가중치 \mathbf{V}를 직교행렬로 놓고 데이터에 회전변환을 해 공분산을 \mathbf{I}로 만들면 이 목적함수는 로그 가능도를 최대화시키는 것과 같아진다.

12.6.4.2. Minimizing mutual information

확률변수간의 의존 관계를 나타내는 척도로는 상호 정보량을 확장한 다중 정보량 I(\mathbf{z}) = \mathbb{KL}(p(\mathbf{z}) \lVert \prod_{j} p(z_{j})) = \sum_{j} \mathbb{H}(z_{j}) - \mathbb{H}(\mathbf{z})이 있다. 이를 최소화시키면 독립적 성분을 잘 찾아낼 수 있다고 볼 수 있으므로 목적 함수는 I(\mathbf{z}) = \sum_{j}\mathbb{H}(z_{j}) - \mathbb{H}(\mathbf{V}\mathbf{x})을 최소화시키는 것이라 볼 수 있다. 인식 가중치 \mathbf{V}를 직교행렬로 놓으면 이것은 음엔트로피를 최대화시키는 것과 같아지므로 이것 또한 최대가능도추정과 동치라고 볼 수 있다.

12.6.4.3. Maximizing mutual information (infomax)

잠재 변수의 성분간 상호 정보량을 최소화시키는 대신, 입력 \mathbf{x}에 대해 비선형 함수 \phi를 통과해 노이즈 \epsilon \sim \mathcal{N}(0, 1)이 낀 출력 y_{j} = \phi(\mathbf{v}_{j}^{T} \mathbf{x}) + \epsilon을 내는 신경망을 생각해보자. 이 신경망을 통과하는 정보량 \mathbb{I}(\mathbf{x} ; \mathbf{y}) = \mathbb{H}(\mathbf{y}) - \mathbb{H}(\mathbf{y} | \mathbf{x})을 최대화시키는 방법을 인포맥스라 한다. 이 때 앞의 항은 다음과 같이 근사된다. \mathbb{H}(\mathbf{y}) = \sum_{j}^{L} \mathbb{E}[\log \phi^{\prime}(\mathbf{v}_{j}^{T} \mathbf{x})] + \log \lvert \mathrm{det} (\mathbf{V}) \rvert 역시 인식 가중치 \mathbf{V}를 직교행렬로 놓으면 이것은 \phi를 누적질량함수라 봤을 경우 최대가능도추정과 동치가 됨을 알 수 있다.

요점 정리

  • 인자 분석 : 이산적이지 않은 연속적 잠재 변수를 통한 모델링.
  • 주성분 분석 : 인자 분석에서 부하 행렬이 정규직교하고 공분산이 단위행렬에 비례하는 경우로, 재구축 오차를 최소화시키며 데이터의 부분공간으로의 정사영이다.
  • 잠재 변수의 수를 선택할 때에는 전체 고유값의 중 선택된 고유값들의 비율을 통해 결정한다.
  • 범주 분포를 써서 이산적 데이터에도 주성분 분석을 쓸 수 있다.
  • 지도 주성분 분석을 통해 융합된 데이터의 한 쪽에서 다른 데이터를 추론할 수 있다.
  • 독립 인자 분석을 통해 여러 뒤섞인 음원들을 분리할 수 있다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중