独立成分分析
独立成分分析(どくりつせいぶんぶんせき、英: independent component analysis、ICA)は、多変量の信号を複数の加法的な成分に分離するための計算手法である。各成分は、ガウス的でない信号で相互に統計的独立なものを想定する。これはブラインド信号分離の特殊な場合である。
Contents
概要
独立性の仮定が正しいなら、混合信号のブラインドICA分離は非常に良い結果となる。混合信号でなくとも、分析のためにこれを行う場合もある。典型的なICAの応用として、室内で録音された複数の人間の会話から特定の人物の声を抜き出す音源分離がある。一般に遅延や反響がないと仮定することで問題が単純化される。考慮すべき重要な点として、N個の信号源があるとき、個々を分離するには少なくともN個の観測装置(マイクロフォンなど)が必要となる。
この統計的手法は、予測される成分の統計的独立性を最大化するようにその独立成分(ファクター、潜在変数、信号源など)を見つける。中心極限定理によると、非ガウス性[1]は成分の独立性を測る手法の1つである。非ガウス性は例えば、尖度やネゲントロピーの近似で測ることができる。相互情報量も信号間の独立性の尺度となる。
ICAの典型的アルゴリズムでは、複雑さを削減するために前段階として、中心化[2]、白色化[3]、次元削減(圧縮)[4]などを行う。白色化と次元削減は主成分分析や特異値分解[5]などによってなされる。ICAのアルゴリズムとしては、Infomax、FastICA、JADEなど様々なものがある。
ICA はブラインド信号分離で重要であり、具体的な応用がいくつもある。
数学的定義
線形独立成分分析はノイズのない場合とノイズのある場合に分けられ、ノイズのない ICA はノイズのある ICA の特別な場合である。非線形 ICA はそれらとは別と考えられる。
一般的定義
データは確率変数ベクトル [math]x=(x_1,\ldots,x_m)[/math] と成分の確率変数ベクトル [math]s=(s_1,\ldots,s_n)[/math] で表される。すべきことは、線形な統計的変換 [math]s=Wx[/math] を使って、観測データ [math]x[/math] を独立成分 [math]s[/math] に変換することである(独立性は関数 [math]F(s_1,\ldots,s_n)[/math] によって表される)。
生成的モデル
線形ノイズなしICA
観測された確率変数ベクトル [math]x=(x_1,\ldots,x_m)^T[/math] の成分 [math]x_i[/math] は独立成分 [math]s_k[/math], [math]k=1,\ldots,n[/math] の次のような総和として生成される。
[math]x_i = a_{i,1} s_1 + \ldots + a_{i,k} s_k + \ldots + a_{i,n} s_n[/math]
すなわち、[math]a_{i,k}[/math] でそれぞれの独立成分に重み付けがなされている。
このモデルをベクトルとして表すと
[math]x=\sum_{k=1}^{n} s_k a_k[/math]
となり、観測された確率変数ベクトル [math]x[/math] が基本ベクトル [math]a_k=(a_{1,k},\ldots,a_{m,k})^T[/math] で表される。
基本ベクトル [math]a_k[/math] は混合行列[6][math]A=(a_1,\ldots,a_n)[/math] の列を形成し、生成式は [math]x=As[/math] と表され、このとき [math]s=(s_1,\ldots,s_n)^T[/math] である。
モデルと [math]x_1,\ldots,x_N[/math] からなる確率変数ベクトル [math]x[/math] の標本があるとき、混合行列 [math]A[/math] と信号源 [math]s[/math] を予測する作業が行われる。これは、[math]w[/math] ベクトルを順応的に計算し、計算された [math]s_k = (w^T*x)[/math] の非ガウス性を最大化するか、相互情報量を最小化するコスト関数を設定することでなされる。場合によっては信号源の確率分布についての事前の知識をコスト関数に利用する。
信号源 [math]s[/math] は観測された信号群 [math]x[/math] に混合行列の逆行列 [math]W=A^{-1}[/math] (分離行列[7]をかけることで求められる。ここで、混合行列は正方行列と想定されている。
線形ノイズありICA
平均がゼロとなる無相関のガウス雑音 [math]n\sim N(0,\operatorname{diag}(\Sigma))[/math] を仮定すると、ICAモデルは [math]x=As+n[/math] という形式になる。
非線形ICA
信号源の混合は線形でなければならないわけではない。パラメータ [math]\theta[/math] の非線形混合関数 [math]f(\cdot|\theta)[/math] による非線形ICAモデルは [math]x=f(s|\theta)+n[/math] となる。
同定可能性
独立成分分析の同定可能性には以下の要素が必要である。
- 信号源のうち高々1つだけ([math]s_k[/math])がガウス雑音である。
- 混合信号の観測数 [math]m[/math] と予測される信号源の数 [math]n[/math] について、[math]m \ge n[/math] でなければならない。
- 混合行列 [math]A[/math] の行列の階数は最大でなければならない。
参考文献
- 「入門 独立成分分析」,村田昇,東京電機大学出版局,ISBN 4-501-53750-7, (2004).
- 「詳解 独立成分分析―信号解析の新しい世界」, Aapo Hyvärien, Juha Karhunen, 東京電機大学出版局, ISBN 978-4501538606、(2005).
脚注
関連項目
- 主成分分析
- 因子分析
- 画像処理
- 信号処理
- ブラインド信号分離 (BSS)
- ブラインド逆畳み込み積分
- 非負行列因子分解 (NMF)
- 射影追跡法
- カクテルパーティー効果
外部リンク
- What is independent component analysis? by Aapo Hyvärinen
- Nonlinear ICA, Unsupervised Learning, Redundancy Reduction by Jürgen Schmidhuber
- A Brief Introduction to Independent Component Analysis by JV Stone, 2005 (7 pages).
- A. Hyvärinen, J. Karhunen, E. Oja (2001). Independent Component Analysis という書籍の Introductory chapter
- FastICA as a package for Matlab, in R language, C++, and Python
- ICALAB Toolboxes - Matlab 用。理化学研究所が開発。
- High Performance Signal Analysis Toolkit - FastICA や Infomax の C++ による実装。
- Free software for ICA by JV Stone.
- ICA toolbox - Matlab 用。DTUが開発。
- Demonstration of the cocktail party problem
- EEGLAB Toolbox - Matlab による脳波の独立成分分析ツール。UCSDが開発。
- FMRLAB Toolbox - Matlab によるfMRIの独立成分分析ツール。UCSDが開発。
- Discussion of ICA used in a biomedical shape-representation context