独立成分分析
在统计学中,独立成分分析或独立分量分析(Independent components analysis,缩写:ICA) 是一种利用统计原理进行计算的方法。它是一个线性变换。这个变换把数据或信号分离成统计独立的非高斯的信号源的线性组合。独立成分分析是盲信号分离(Blind source separation)的一种特例。
定义
独立成分分析的最重要的假设就是信号源统计独立。这个假设在大多数盲信号分离的情况中符合实际情况。即使当该假设不满足时,仍然可以用独立成分分析来把观察信号统计独立化,从而进一步分析数据的特性。独立成分分析的经典问题是“鸡尾酒会问题”(cocktail party problem)。该问题描述的是给定混合信号,如何分离出鸡尾酒会中同时说话的每个人的独立信号。当有N个信号源时,通常假设观察信号也有N个(例如N个麦克风或者录音机)。该假设意味着混合矩阵是个方阵,即J = D,其中D是输入数据的维数,J是系统模型的维数。对于J < D和J > D的情况,学术界也分别有不同研究。
独立成分分析并不能完全恢复信号源的具体数值,也不能解出信号源的正负符号、信号的级数或者信号的数值范围。
独立成分分析是研究盲信号分离(blind signal separation)的一个重要方法,并且在实际中也有很多应用。
数学定义
线性独立成分分析可以分为无噪声模型和有噪声模型,其中无噪声模型可看作有噪声模型的特例。非线性独立成分分析的情况应该单独处理。
一般定义
观察的数据或者信号用随机向量 表示,独立成分量可以定义为向量。独立成分分析的目的是通过线性变换把观察的数据, 转换成独立成分向量 , 而独立成分分量满足互相统计独立的特性。统计独立的量化通常通过某指定函数来衡量。
基本模型
线性无噪声独立成分分析
外部链接
- What is independent component analysis? (页面存档备份,存于互联网档案馆) by Aapo Hyvärinen
- Introductory chapter (页面存档备份,存于互联网档案馆) of the book A. Hyvärinen, J. Karhunen, E. Oja (2001). Independent Component Analysis (页面存档备份,存于互联网档案馆)
- FastICA as a package for Matlab, in R language, C++, and Python (页面存档备份,存于互联网档案馆)
- ICALAB Toolboxes for Matlab, developed at Riken
- High Performance Signal Analysis Toolkit provides C++ implementations of FastICA and Infomax
- Free software for ICA by JV Stone.
- Demonstration of the cocktail party problem (页面存档备份,存于互联网档案馆)
- EEGLAB Toolbox (页面存档备份,存于互联网档案馆) ICA analysis of EEG for Matlab, developed at UCSD.
- FMRLAB Toolbox (页面存档备份,存于互联网档案馆) ICA analysis of fMRI for Matlab, developed at UCSD