正準相関分析

主成分分析

独立成分分析

これおもしろい. メモしとかなきゃ.

概要

簡単に言うと「混合された信号を独立性をもとに原信号に分解する」ことができる.
ただし, 原信号の発生源を確率変数と考えた場合(つまり,信号は確率変数の実現値の系列), それぞれ独立とする. なお, 各確率変数がすべてガウス分布に従う場合は分解を行うことができない.

問題設定

s_1,s_2, \cdots s_mをすべて独立な原信号の確率変数, x_1,x_2, \cdots, x_nを観測信号の確率変数とし, それらを要素に持つ確率ベクトルを{\bf s}=\(s_1, s_2, \cdots s_m\)^T, {\bf x}=\(x_1, x_2, \cdots x_n\)^Tとする.
以下, 簡単のためE\{\bf s\}={\bf 0}, E\{{\bf s}{\bf s}^T\}={\bf I}と仮定する.
簡単化のためm=nとするが, m<nでも分解可能(ここでは省略). また, ここでは線形な混合を考えるが, 混合が非線形でも分解可能. 非線形独立成分分析を調べるべし. さらに, 時間遅れなどは考えないものとする(時間遅れを考慮する場合は別のモデルを用いる).
混合行列Aを用いると

{\bf x} = {\bf A} {\bf s}
もし, Aが正則で既知なら

{\bf s} = {\bf A^{-1}} {\bf x}
で分解できるけど, 実用を考えるとそんな状況はほぼ無い.
独立成分分析は{\bf x}から, 独立成分への変換{\bf A}^{-1}\bf sを求めることを目的とする.
実際は独立成分の推定を簡単化にするため, \bf xの代わりに\bf xを白色化した\bf zを用いる. \bf Vを白色化行列とすると

{\bf z} = {\bf V} {\bf x} = {\bf V} {\bf A} {\bf s} = \tilde{{\bf A}} {\bf s}
となり, {\bf z}から \tilde{{\bf A}}^{-1}を求める問題となる.
ここで, E\{{\bf z}{\bf z}^T\}=\tilde{{\bf A}}E\{{\bf s}{\bf s}^T\} \tilde{{\bf A}}^T={\bf I}なので, \tilde{{\bf A}}は直交行列であることに注意(このことは複数の独立成分を求める写像を決定するときに効いてくる. つまり, \tilde{{\bf A}}は直行行列なんだから各写像は直交するということになる).

白色化

白色化行列{\bf V}は例えば

{\bf V} = {\bf D}^{-\frac{1}{2}} {\bf E}^T
ここで, {\bf x}の共分散行列の固有値の-\frac{1}{2}乗を対角成分に持つ行列を{\bf D}^{-\frac{1}{2}}, 固有ベクトルを列ベクトルとして並べた行列を{\bf E}である. ただし, 固有ベクトルのノルムは1とする.
固有値を対角成分に持つ{\bf D}用いてE\{{\bf x}{\bf x}^T\}={\bf E}{\bf D}{\bf E}^Tと書ける(共分散行列は対称行列なので固有ベクトルは直交する)ことから{\bf z}の共分散行列は単位行列になり白色化されることが示される.

直感的理解

ここで, 中心極限定理を思い出す. これは, 大雑把に言って「独立同一分布の確率変数の和を確率分布とみなした場合, 独立な確率変数の個数を増やすほどガウス分布に近づく」というものである(同一分布でなくてもだいたい満たされるっぽ).
1つの独立成分を推定する写像(\tilde{{\bf A}}の列に対応)を\bf w, 推定した独立成分をyとすると, y={\bf w}^T {\bf z}={\bf w}^T\tilde{{\bf A}}{\bf s}と書ける.
独立な確率変数の和はの分布はガウス分布に近づくんだから, yがひとつの独立成分と等しいときにyの分布は最もガウス分布から遠いはず. よって, うまい事yの分布がガウス分布から最も遠くなるような写像{\bf w}を求めることができたら, 独立成分をyとして一つ求められる.
非ガウス性を計るためには尖度という量を用いる. 尖度kurt\( y \)は以下で定義される. 確率変数yの平均が0でない場合もう少し複雑になる.

kurt\( y \)=E\{ y^4\}-3\(E\{y^2\}\)^2
-2 \leq kurt\( y \) < \inftyであり, 確率変数がガウス分布に従う場合0になる. 尖度の絶対値が大きいほど非ガウス的である.
あとはどうにかして\|kurt\(y\)\|=\|kurt\({\bf w}^T{\bf z}\)\|を最大にする\bf wを求めれば良いことになる. ただし, 各独立成分の散は1と仮定しているので, E\{y^2\} = E\{\({\bf w}^T{\bf z}\)^2\}={\|{\bf w}\|}^2=1という制約条件がある.

最急上昇法による写像の計算

最も単純な方法は最急上昇法で\bf wを求めることである.
尖度の絶対値の勾配は

\frac{\partial \|kurt\({\bf w}^T{\bf z} \)\|}{\partial {\bf w}} = 4 sign \(kurt\({\bf w}^T{\bf z}\)\) \[ E\{ {\bf z} \({\bf w}^T{\bf z}\)^3 \} - 3{\bf w} \|{\bf w}\|^2 \]
よって, 以下のアルゴリズムで独立成分ひとつを求めるための写像を得られる. 尖度の絶対値の勾配の最後の項は\bf wの方向を変えないので省略した.
  1. {\bf w}を単位球上の点で初期化
  2. {\bf w} \leftarrow {\bf w} + \alpha \cdot sign \(kurt\({\bf w}^T{\bf z}\)\) E\{{\bf z} \( {\bf w}^T{\bf z} \)^3 \}
  3. {\bf w} \leftarrow \frac{\bf w}{\|{\bf w}\|}
  4. 収束判定(更新前後の{\bf w}の内積が1に十分近いか確認). 収束してなければ2.へ

不動点反復法による写像の計算

F\(\bf w\)を単位球面上{\|{\bf w}\|}^2=1で最大化する場合, 最大となる\bf wにおいてFの勾配は\bf wと同じ方向になる」という性質があり, 最大点での勾配は\bf wのスカラ倍になることから

{\bf w} \propto \[ E\{ {\bf z} \({\bf w}^T {\bf z}\)^3\} - 3 {\bf w} {\|{\bf w}\|}^2 \]
よって, 以下の反復アルゴリズムを得る. {\bf w}のノルムの2乗を省略するのはノルムを毎ステップ1に正規化するためである. このアルゴリズムを用いた独立成分分析をfastICAという.
  1. {\bf w}を単位球上の点で初期化
  2. {\bf w} \leftarrow E\{{\bf z}\({\bf w}^T{\bf z}\)^3\}-3{\bf w}
  3. {\bf w} \leftarrow \frac{\bf w}{\|{\bf w}\|}
  4. 収束判定(更新前後の{\bf w}の内積が1に十分近いか確認). 収束してなければ2.へ

複数の写像の計算

単位球上の適当な初期値を変化させて, 上記のアルゴリズムを何度か行うことで, 写像を複数得ることができる. しかし, この方法では独立成分が多い場合あまり良い結果を得られないということが知られている.
そこで, もう少し良い方法を考える. ここで, \tilde{{\bf A}}^T \tilde{{\bf A}}={\bf I}であることを思い出す. つまり, 各独立成分を求める写像は正規直交基底として求めれば良いことになる.
基底の直交化にはグラム=シュミットの直交化が知られているが, 逐次的な方法のため誤差が蓄積されてしまう問題がある. そこで, 一般的には以下の対称的直交化を行う.
  1. {\bf W}を直交化したい基底を列にもつ行列とする
  2. 正規化(ノルムはフロベニウスノルム以外, 例えばL2ノルム){\bf W} \leftarrow \frac{{\bf W}}{\|{\bf W}\|}
  3. {\bf W} \leftarrow \frac{3}{2}{\bf W} - \frac{1}{2}{\bf W}{\bf W}^T {\bf W}
  4. {\bf W}^T{\bf W} \approx {\bf I}まで3.を繰り返す
もしくは
固有値分解{\bf W}{\bf W}^T={\bf E}{\bf D}{\bf E}^Tを用いて, {\bf W} \leftarrow {\bf E}{\bf D}^{-\frac{1}{2}}{\bf E}^T{\bf W}

アルゴリズム

以上をまとめると, 以下のアルゴリズムで独立成分を求める変換{\bf W}(\tilde{{\bf A}}^Tに相当)を求め, 独立成分を得ることができる.
  1. {\bf x}を得られたデータとする
  2. 中心化{\bf x} \leftarrow {\bf x} - E\{{\bf x}\}
  3. 白色化{\bf z} \leftarrow {\bf V}{\bf x}
  4. 単位球面上の点で{\bf w}_i, \(i=1,\cdots,m\)を初期化(mは求める独立成分の個数)
  5. {\bf w}_i, \(i=1,\cdots,m\)を更新(最急上昇法または不動点反復法)
  6. {\bf W}=\({\bf w}_1,\cdots,{\bf w}_m\)^Tを直交化(グラム=シュミットの直交化または対称的直交化)
  7. 収束判定(更新前との{\bf w}_iの内積が1に十分近いか確認).収束してなければ4.へ
  8. {\bf y}={\bf W}{\bf z}で独立成分を得る

ガウス分布に従う場合独立成分を決定できない理由


かきかけ〜

カウンタ -
最終更新:2010年08月25日 13:40