jiku log

データサイエンスの核心を掴む : 学びと発見の記録

「確率的機械学習 入門編II」を読む ~第20章 次元削減 ②因子分析(基本編)~

「確率的機械学習 入門編II」読書メモ一覧 - jiku log

20.2 因子分析

本節では,PCAの一般化にあたる因子分析(factor analysis)を説明している。これは,確率モデルに基づいているので,より複雑なモデルの構成要素として用いやすい。

20.2.1 生成モデル

因子分析は,以下の線形ガウス潜在変数による生成モデルに対応する。


 \begin{align}
p(\mathbfit{z}) &= \mathcal{N}(\mathbfit{z} \mid \mathbfit{\mu}_0, \mathbfit{\Sigma}_0) \\ \\
p(\mathbfit{x} \mid \mathbfit{z}, \mathbfit{\theta}) &= \mathcal{N}(\mathbfit{x} \mid \mathbfit{W} \mathbfit{z} + \mathbfit{\mu}, \mathbfit{\Psi}) \\ \\
\end{align}
 \mathbfit{W} D \times L行列で,因子負荷(量)行列(factor loading matrix)と呼ばれる。

 \mathbfit{z}を積分消去して得られる周辺分布 p(\mathbfit{x} \mid \mathbfit{\theta}は,ガウス分布 \mathcal{N}(\mathbfit{W} \mathbfit{\mu}_0 + \mathbfit{\mu} , \mathbfit{\Psi} + \mathbfit{W} \mathbfit{\Sigma}_0 \mathbfit{W}^T)となる。


さらに, p(\mathbfit{z}) = \mathcal{N}(\mathbfit{z} \mid \mathbfit{0}, \mathbfit{I})のように単純化すると,


 \begin{align}
p(\mathbfit{z}) &= \mathcal{N}(\mathbfit{z} \mid \mathbfit{0}, \mathbfit{I}) \\ \\
p(\mathbfit{x} \mid \mathbfit{z}) &= \mathcal{N}(\mathbfit{x} \mid \mathbfit{W} \mathbfit{z} + \mathbfit{\mu}, \mathbfit{\Psi}) \\ \\
p(\mathbfit{x}) &= \mathcal{N}(\mathbfit{x} \mid \mathbfit{\mu}, \mathbfit{W} \mathbfit{W}^T + \mathbfit{\Psi}) \\ \\
\end{align}
となる。


因子データ分析におけるデータ生成過程を以下に示す。
まずは, p(\mathbfit{z})は1次元のガウス分布である。
この分布から,変数 \mathbfit{z}を1つ取り出し,因子負荷行列 \mathbfit{w}を掛けると2次元の点になる。
その結果,2次元のガウス分布 p(\mathbfit{x}) = \mathcal{N}(\mathbfit{x} \mid \mathbfit{\mu}, \mathbfit{w} \mathbfit{w}^T + \sigma^2 \mathbfit{I})となる。

因子分析におけるデータ生成過程

共分散行列Ψの性質

周辺分布は p(\mathbfit{x}) = \mathcal{N}(\mathbfit{x} \mid \mathbfit{\mu}, \mathbfit{W} \mathbfit{W}^T + \mathbfit{\Psi})で表されるが,この分散に注目すると, \mathbfit{\Psi}対角行列に制限するべきであることが分かる。

なぜなら対角行列に制限しないと, \mathbfit{W}=\mathbfit{0}として潜在因子を全く使わなくても,任意の共分散行列を特定できてしまうためである。

20.2.2 確率的主成分分析

因子分析において,

  •  \mathbfit{W}の列ベクトルが正規直交系をなす。
  •  \mathbfit{\Psi} = \sigma^2 \mathbfit{I}とする。

という場合,このモデルを確率的主成分分析(probabilistic PCA)と呼ぶ。

このとき,データ変数の周辺分布は,


 \begin{align}
p(\mathbfit{x} \mid \mathbfit{\theta}) &= \int \mathcal{N}(\mathbfit{x} \mid \mathbfit{W} \mathbfit{z} + \mathbfit{\mu}, \sigma^2 \mathbfit{I})
\mathcal{N}(\mathbfit{z} \mid \mathbfit{0}, \mathbfit{I}) d\mathbfit{z} = \mathcal{N}(\mathbfit{x} \mid \mathbfit{\mu}, \mathbfit{C}) \\ \\

\mathbfit{C} &= \mathbfit{W} \mathbfit{W}^T + \sigma^2 \mathbfit{I} \\ \\
\end{align}
となる。

平均・因子負荷行列の最尤推定量

平均および因子負荷行列の最尤推定量は,以下のようになる。


 \begin{align}
\mathbfit{\mu} &= \bar{\mathbfit{x}} \\ \\
\mathbfit{W} &= \mathbfit{U}_L (\mathbfit{L}_L - \sigma^2 \mathbfit{I}) \\ \\
\end{align}
ただし, \mathbfit{L}_Lは, L個の固有値を対角成分に持つ L \times L行列, \mathbfit{U}_Lはこの固有値に対応する固有ベクトルからなる D \times L行列である。

観測分散の最尤推定量

観測分散の最尤推定量は,


 \begin{align}
\sigma^2 = \frac{1}{D-L} \sum_{i=L+1}^D \lambda_i \\ \\
\end{align}
である。これは,削減された次元に対応する再構成誤差の平均である。

事後分布

事後分布である p(\mathbfit{z} \mid \mathbfit{x})について考える。ガウス分布に対するベイズの定理から,


 \begin{align}
p(\mathbfit{z} \mid \mathbfit{x}) &= \mathcal{N}(\mathbfit{z} \mid \mathbfit{M}^{-1} \mathbfit{W}^T (\mathbfit{x} - \mathbfit{\mu}), \sigma^2 \mathbfit{M}^{-1}) \\ \\
\mathbfit{M} &= \mathbfit{W} \mathbfit{W}^T + \sigma^2 \mathbfit{I} \\ \\
\end{align}
となる。

この式において, \sigma^2 = 0の極限を取ると,事後平均は


 \begin{align}
\mathbb{E}[ \mathbfit{z} \mid \mathbfit{x} ] = (\mathbfit{W}^T \mathbfit{W})^{-1} \mathbfit{W}^T (\mathbfit{x} - \bar{\mathbfit{x}}) \\ \\
\end{align}
となり,通常の主成分分析と同様に,潜在空間へのデータの直交射影となる。

20.2.3 因子分析・確率的主成分分析のEMアルゴリズム

因子分析モデル・確率的主成分分析モデルのパラメータは,EMアルゴリズムを用いて求めることができる。

  • Eステップ : パラメータを用いて,埋め込み \mathbfit{z}の事後分布(ガウス分布なので,平均と共分散行列)を求める。
  • Mステップ : 埋め込み \mathbfit{z}_iを用いて,パラメータを推定する。

という更新則になる。


ノイズのない \sigma^2 = 0の極限において,PPCAのEMアルゴリズムは以下のようになる。

  • Eステップ :  \tilde{\mathbfit{Z}} = (\mathbfit{W}^T \mathbfit{W})^{-1} \mathbfit{W}^T \tilde{\mathbfit{X}} (ただし, \tilde{\mathbfit{Z}} = \mathbfit{Z}^T, \tilde{\mathbfit{X}} = \mathbfit{X}^T)
  • Mステップ :  \mathbfit{W} = \tilde{\mathbfit{X}} \tilde{\mathbfit{Z}}^T (\tilde{\mathbfit{Z}} \tilde{\mathbfit{Z}})^{-1}


主成分分析においてEMアルゴリズムを使うことのメリットは,

  •  N, D \gg Lのとき,固有ベクトルを用いる方法よりも,高速に解が求められることがある。
  • オンライン化ができる。
  • 確率的主成分分析や,因子分析の混合モデルへの拡張ができる。

といったものが挙げられる。

20.2.4 パラメーターの識別不可能性

因子分析において,データの周辺分布 p(\mathbfit{x})における共分散行列は,


 \begin{align}
\mathrm{Cov}[ \mathbfit{x} ] = \mathbfit{W} \mathbfit{W}^T + \mathbfit{\Psi} \\ \\
\end{align}
となる。


ここで, \mathbfit{R} \mathbfit{R}^T = \mathbfit{I}を満たす直交行列を用いて,異なる重み \tilde{\mathbfit{W}} = \mathbfit{W} \mathbfit{R} を用いても,周辺分布の共分散行列は,


 \begin{align}
\mathrm{Cov}[ \mathbfit{x} ] = \mathbfit{W} \mathbfit{R} \mathbfit{R}^T \mathbfit{W}^T + \mathbfit{\Psi}
= \mathbfit{W} \mathbfit{W}^T + \mathbfit{\Psi} \\ \\
\end{align}
となり,不変になる。したがって,因子分析の重み行列 \mathbfit{W}は,データから一意に識別できず,潜在因子も一意に識別できない


そのため,

  •  \mathbfit{W}の列ベクトルが正規直交系となるように強制する。
  •  \mathbfit{W}が下三角行列になるように強制する。
  • 解がスパースになるように事前分布を設定する。
  • 有用な情報を得られる回転行列を選択する(バリマックス回転)。

といった対策を用いる。

まとめと感想

今回は,「第20章 次元削減」における,因子分析についてまとめた。

主成分分析と因子分析の違いと共通点

因子分析は,主に心理学分野で用いられる,という印象があるが,統計検定準1級でも用いられる。
いずれの手法も,データと潜在変数を用いるため,「似ているが異なる手法である」と言われることが多い。しかし,数式上の違いについてあまり差を感じることができなかった。

本節のように,確率的主成分分析(PPCA)を導入すると,PPCAは因子分析の特別な例であることが分かり,理解が深まった。


本記事を最後まで読んでくださり,どうもありがとうございました。