独立成分分析は、主成分分析に変わる有効な信号処理手法です。
主成分分析との違いをサラッと紹介した後に、独立成分分析の学習手法を紹介したいと思います。
ちなみに、面倒なのでベクトルをボールド体で表現することはしません。全部ベクトルや行列だと思ってください。一次元のベクトルをスカラーだと思えば、特に区別する必要はないと思います。
ブラインド信号源分離(以後BSS)
ブラインド信号源分離とは以下のような問題です。
個々の信号ベクトルに対して観測信号ベクトル
が変換行列
によって、線形結合されて得られる場合に、元の個々の信号
を復元しようというものです。
となっているということです。これに対して
を求めれば、問題は解けることになります。
となって、知りたかった個々の信号が取り出せるというわけです。
非常に単純な問題設定ですが、手元にあるデータはのみですから、実際には未知数が非常に多く普通には解けません。簡単として観測ベクトルの次元と、個々の信号の次元が一緒だったとしても、やはり条件が足らず求まらないので、何かしら仮定をして条件を加えていく必要があります。
主成分分析の場合は、観測データがガウス分布に由来するという仮定を用いてこの問題を解いていきます。
主成分分析
確率変数ベクトルが平均0で分散行列
の分布に従っていると仮定します。平均は0でなく、一般的に文字でおいても良いのですが、座標を平行移動して平均を0のデータに補正したと考えましょう。期待値演算を
]とすると、
]
です。仮に、直交行列を用いて、手持ちの観測データ
を
と変換したとしましょう。すると、
の分散行列は
]
]
]
となります。これが何の手掛かりになるのかを考えてみます。
もしもが対角行列になるならば、直交変換
によって、観測信号
が無相関化された信号
に変換されたと考えることができますね。
つまり逆の言い方をすれば、本来無相関であった信号が観測時に色々混ざってしまって
になったと考えることができるのです。そうであるならば
の分散行列
を対角化するような行列
を見つければBSSの問題が解けるということになりますね。
主成分分析はこの考えで問題を解きます。
1.元々の信号は無相関であったと仮定
2.観測データを無相関化⇛分散行列を対角化
3.分散行列の固有値問題を解く
4.個々の固有ベクトルは新しい座標の基底となる
という発想です。そして、もしもが正規分布から生成されるとしたならば、正規分布は無相関であるときには必ず独立性も有しますので、個々の信号を取り出していることにちゃんとなります。
主成分分析の優れているところは、最終的に固有値問題に帰着されるということです。
固有値問題は一切の最適化などの工夫を必要とせず、ただ単に数値に対して計算を行えばいいのでプログラムとしては動作が非常に早いです。
独立成分分析
主成分分析との違い
もしも観測データが正規分布に従っていない場合はどうでしょう。
主成分分析をしてデータは無相関化されたとは言えど、まだ独立であるというわけにはいきません。できれば独立であるような状態でデータを見たほうが、完全に個々の変量について考察ができて便利です。
そこで、独立成分分析では観測データに正規分布を仮定せずに、単に
が独立になるように変換を求めようと考えます。
という状態に対して、仮にを知っていれば
としてすぐさま取り出せるわけですが、今回はを決定する具体的な手立ては見つかりそうにもありません。ですから、とりあえず適当な変換行列
を用いて
という変量を見てみることにします。そこでが独立性を有するかどうかを確認して、独立でなければ
を違うものに変えるということを繰り返せば、いつか独立な
が得られたら、晴れて
が獲得できたと考えるのです。
1.は独立であり
という変換がされているとする。
2.と変換してみて、
を探したい。(そのとき
と求まる)
3.直接や
は分からないので、
が独立性を有するかを見て
を探す。
ちなみに2次元データに対して主成分分析(PCA)をして得られる基底と、独立成分分析(ICA)をして得られる基底の違いを図示したものを紹介します。
2次元データにプロットした青いデータは、斜めに交差しているように見えます。もしも青いデータが正規分布に従っているならば、これは直交しているはずです。しかし現実にはそうではないため、主成分分析を用いても適切な基底が得られていないように見えます。もちろん分析の目的にもよりますが、個々の成分を個別に考察したい場合は、明らかに独立成分分析のほうが適しているでしょう。
独立性の計り方と勾配法
ではと変換してみてから、独立性を如何にして評価すればいいのかを考えます。
今は個々のデータベクトルは各成分が独立であるということを考えているので、
の各成分を
とすれば、それぞれの成分の確率分布をとりあえず
と置いておけます。これを正規分布としたのが主成分分析でしたが、今は一般の分布を考えていますから、
を頼りに問題を解いていくしかありません。
幸いにも、各成分が独立ですから、というデータが得られる確率は、個々の成分の生じる確率の積で表され、
となります。今、勝手なを使って
としましょう。
は本来
のはずですから、
⇛
単に2回線形変換を受けただけとなっています。
この際の確率分布
は
であり、もしもをうまく見つけて、
となれば
となり、
が求まったことになります。つまり
に
を近づけていく問題として解釈することができます。
しかし、そもそもの形を知らないため、計算ができません。
それならば、適当に勝手な独立の分布というものを仮定して、この分布との近さを測ってみることにします。
そもそもも未知
もどうしようもありません。しかし勝手に独立な
という分布に
を近づけられれば、独立な
を求めることはできます。そしてそれによって得られた
こそ
だと考えるのです。つまり確率分布の隔たりを評価するKLダイバージェンス
]
を最小とするを求める問題とすることができます。
これはまず適当なからスタートし、KLダイバージェンスが小さくなるように適当に
を決めて、これを繰り返す勾配法によって一応は解くことができます。
]
しかしこの勾配法は、今よりもKLダイバージェンスを小さくするWに進んでいくだけであり、局所最適解に収まる可能性は否定できません。つまり学習がうまく行くかどうかというのは、初期値と移動させる度合い
に大きく依存することになります。
しかも今回勝手に独立な分布を準備しているために、この
が真の分布
とそもそも全く違うものであれば、独立性自体は確保できているものの、そもそも得られたデータに関する物理的解釈は難しくなります(あくまで統計的に独立な何らかの成分を得ただけ)。
このように真の分布に何らかの確率分布を仮定している推定方法をパラメトリック推定と言います。
実際には推定関数なる関数を学習に組み込み、セミパラメトリックな学習を用いるのが一般的な方法だそうです。(参照:情報幾何学の新展開)
パラメトリックな方法とセミパラメトリックな方法の具体的なアルゴリズムの導出に関しては、気が向いたら続編として書きたいと思います。