主成分分析(PCA)和独立成分分析(ICA)相关资料

来源:知乎:独立成分分析(ICA)与主成分分析(PCA)的区别在哪里(https://www.zhihu.com/question/28845451)
 
- 一楼:魏天闻

首先回答题主的问题:不论是PCA仍是ICA,都不须要你对源信号的分布作具体的假设;若是观察到的信号为高斯,那么源信号也为高斯,此时PCA和ICA等价。下面稍做展开。算法

 

====答案的分割线====机器学习

假设你观察到的信号是n维随机变量\mathbf{x}=(x_1,\ldots,x_n)^T.主成分分析(PCA)和独立成分分析(ICA)的目的都是找到一个方向,即一个n维向量\mathbf{w}=(w_1,\ldots,w_n)^T使得线性组合\sum_{i=1}^nw_ix_i=\mathbf{w}^T\mathbf{x}的某种特征最大化。ide

 

主成分分析(PCA)

PCA认为一个随机信号最有用的信息体包含在方差里。为此咱们须要找到一个方向\mathbf{w}_1,使得随机信号x在该方向上的投影\mathbf{w}_1^T\mathbf{x}的方差最大化。接下来,咱们在与\mathbf{w}_1正交的空间里到方向\mathbf{w}_2,使得\mathbf{w}_2^T\mathbf{x}的方差最大,以此类推直到找到全部的n个方向\mathbf{w}_1,\ldots,\mathbf{w}_n. 用这种方法咱们最终能够获得一列不相关的随机变量:\mathbf{w}_1^T\mathbf{x},\ldots,\mathbf{w}_n^T\mathbf{x}.

【图片来自wikipedia】 学习

 

若是用矩阵的形式,记\mathbf{W}=(\mathbf{w}_1,\ldots, \mathbf{w}_n),那么本质上PCA是把原随机信号x变换成了\mathbf{y}=\mathbf{W}\mathbf{x},其中y知足下面的性质:
  • y的各份量不相关;
  • y_1,\ldots,y_n的方差递减。

特别地,当原随机信号x为高斯随机向量的时候,获得的y仍为高斯随机向量,此时它的各个份量不只仅是线性无关的,它们仍是独立的。spa

 

经过PCA,咱们能够获得一列不相关的随机变量\mathbf{w}_1^T\mathbf{x},\ldots,\mathbf{w}_n^T\mathbf{x},至于这些随机变量是否是真的有意义,那必须根据具体状况具体分析。最多见的例子是,若是x的各份量的单位(量纲)不一样,那么通常不能直接套用PCA。好比,若x的几个份量分别表明某国GDP, 人口,失业率,政府清廉指数,这些份量的单位全都不一样,并且能够自行随意选取:GDP的单位能够是美圆或者日元;人口单位能够是人或者千人或者百万人;失业率能够是百分比或者千分比,等等。对同一个对象(如GDP)选用不一样的单位将会改变其数值,从而改变PCA的结果;而依赖“单位选择”的结果显然是没有意义的。.net

 

独立成分分析(ICA)3d

ICA又称盲源分离(Blind source separation, BSS),它假设观察到的随机信号x服从模型\mathbf{x}=\mathbf{A}\mathbf{s},其中s为未知源信号,其份量相互独立,A为一未知混合矩阵。ICA的目的是经过且仅经过观察x来估计混合矩阵A以及源信号s。对象

大多数ICA的算法须要进行“数据预处理”(data preprocessing):先用PCA获得y,再把y的各个份量标准化(即让各份量除以自身的标准差)获得z。预处理后获得的z知足下面性质:
  • z的各个份量不相关;
  • z的各个份量的方差都为1。

有许多不一样的ICA算法能够经过z把A和s估计出来。以著名的FastICA算法为例,该算法寻找方向\mathbf{w}使得随机变量\mathbf{w}^T\mathbf{z}的某种“非高斯性”(non-Gaussianity)的度量最大化。一种经常使用的非高斯性的度量是四阶矩\mathbb{E}[(\mathbf{w}^T\mathbf{x})^4]。相似PCA的流程,咱们首先找\mathbf{w}_1使得\mathbb{E}[(\mathbf{w}_1^T\mathbf{x})^4]最大;而后在与\mathbf{w}_1正交的空间里找\mathbf{w}_2,使得\mathbb{E}[(\mathbf{w}_2^T\mathbf{x})^4]最大,以此类推直到找到全部的\mathbf{w}_1,\ldots,\mathbf{w}_n. 能够证实,用这种方法获得的\mathbf{w}_1^T\mathbf{z},\ldots,\mathbf{w}_n^T\mathbf{z}是相互独立的。blog

ICA认为一个信号能够被分解成若干个统计独立的份量的线性组合,然后者携带更多的信息。咱们能够证实,只要源信号非高斯,那么这种分解是惟一的。若源信号为高斯的话,那么显然可能有无穷多这样的分解。图片

 

====一些技术细节====
实际上PCA等价于求随机信号x的协方差矩阵的特征值分解(eigenvalue decomposition, EVD)或者奇异值分解(singular value decomposition, SVD)。好比,求\mathbf{w}_1的过程能够写成\max_{\|\mathbf{w}\|=1}\,\textrm{Var}(\mathbf{w}^T\mathbf{x})
注意其中上式中包含欧氏范数为1的约束条件,这是由于若是没有这个约束条件那么右边方差能够无限大,这个问题于是也就变得没有意义了。现假设x的协方差矩阵C为已知,那么上式能够化为\max_{\|\mathbf{w}=1\|} \mathbf{w}^T\mathbf{C}\mathbf{w}
不难看出这个问题的解\mathbf{w}_1对应于矩阵C的最大的特征值\lambda_1的那一个特征向量
相似的,求第n个方向\mathbf{w}_k须要解
\max_{\|\mathbf{w}\|=1; \mathbf{w}^T\mathbf{w}_i=0, \atop\forall i=1,\ldots,k-1} \mathbf{w}^T\mathbf{C}\mathbf{w}
这个问题的解\mathbf{w}_k对应于矩阵C的第k大的特征值\lambda_k的那一个特征向量

另外关于ICA,咱们有下面的“ICA基本定理”:

定理(Pierre Comon, 1994)假设随机信号z服从模型\mathbf{z}=\mathbf{B}\mathbf{s},其中s的份量相互独立,且其中至多能够有一个为高斯;B为满秩方阵。那么若z的份量相互独立当且仅当B=PD,其中P为排列矩阵(permutation matrix),D为对角矩阵。

这个定理告诉咱们,对于原信号x作线性变换获得的新随机向量\mathbf{z}=\mathbf{Q}\mathbf{x},若z的份量相互独立,那么z的各个份量z_i必定对应于某个源信号份量s_j乘以一个系数。到这里,咱们能够看到ICA的解具备内在的不肯定性(inherent indeterminacy)。实际上,由于\mathbf{x}=\mathbf{A}\mathbf{s}=(\alpha \mathbf{A}) (\alpha^{-1}\mathbf{s}),即具有相同统计特征的x可能来自两个不一样的系统,这意味着单从观察x咱们不可能知道它来自于哪个,从而咱们就不可能推断出源信号s的强度(方差)。为了在技术上消除这种不肯定性,人们干脆约定源信号s的方差为1。有了这个约定,再经过数据预处理的方法,咱们能够把原混合矩阵A化为一个自由度更低的正交矩阵:

数据预处理的过程又称为“数据白化”(data whitening)。这里预处理之后获得的z和源信号s的关系为
\mathbf{z}=\mathbf{C}^{-1/2}\mathbf{A}\mathbf{s}=(\mathbf{A}\mathbf{A}^T)^{-1/2}\mathbf{A}\mathbf{s}。取\widetilde{\mathbf{A}}=(\mathbf{A}\mathbf{A}^T)^{-1/2}\mathbf{A},则它能够看作一个新的混合矩阵。容易看出这是一个正交矩阵,它仅有n(n-1)/2个自由度;而原混合矩阵通常有n^2个自由度。


 
- 二楼:牧瀬 紅莉栖

题主多是没有明白独立成分分析和主成成分分析的概念与用法,我给你们补充一个对于通常鸡尾酒会(即盲源分离)问题的处理procedure,直观理解下它们的区别。

对于一组3个模拟信号,如正弦、余弦、随机信号
 
通过随机混合,由6个麦克风录制下来,则观测信号为
 
咱们但愿将他们分解开,这时就该ICA出场了。但在ICA以前,每每会对数据有一个预处理过程,那就是PCA与白化。
白化在这里先不提,PCA本质上来讲就是一个降维过程,大大下降ICA的计算量。
PCA,白化后的结果以下图所示。能够看到,原先的6路信号减小为3路,ICA仅须要这3路混合信号便可还原源信号。
 
下面,ICA通过多步迭代寻优,就会按照信号之间独立最大的假设,将信号解混输出。

总的来讲,ICA认为观测信号是若干个统计独立的份量的线性组合,ICA要作的是一个解混过程。
而PCA是一个信息提取的过程,将原始数据降维,现已成为ICA将数据标准化的预处理步骤。

参考文献:
[1] A. Hyva ̈rinen, J. Karhunen, and E. Oja, Independent Component Analysis, Wiley-Interscience, New York, 2001
[2] J.-F. Cardoso, “Blind signal separation: statistical principles”, Pro- ceedings of the IEEE, vol. 90, n. 8, pp. 2009-2026, October 1998.
[3] A. Hyva ̈rinen and E. Oja, ”A Fast Fixed-Point Algorithm for Inde- pendent Component Analysis”. Neural Computation, 9(7):1483-1492, 1997.
[4] A. Hyva ̈rinen, “Fast and Robust Fixed-Point Algorithms for Inde- pendent Component Analysis”. IEEE Trans. on Neural Networks, 10(3):626-634, 1999.
 

 
三楼:因缘际会

1、PCA和ICA的用途彻底不一样。若是只在乎数据的能量或方差、假设噪声或不感兴趣的信号都比较微弱,那么用PCA就能把主要信号留下来。在某种意义上,ICA更智能——它不在乎信号的能量或方差,只看独立性。因此给定的待分析的混合信号经任意的线性变换都不会影响ICA的输出结果,但会严重影响PCA的结果。

2、若多于一个原始独立信号是正态的,那么ICA的结果不惟一;下面给个直觉。若数据在两个正交方向方差相同(好比协方差是isotropic的),PCA结果不惟一。
大部分算法都用两步来实现ICA:第一步作白化预处理(whitening),让输出信号不相关并且同方差。第二步找一个旋转(就是正交变换)让输出信号不仅不相关(uncorrelated),进而在统计意义上独立(statistically independent)。为简单起见,考虑两维的状况。

若是原始独立信号都是正态的,第一步后输出信号的联合分布以下图:

那么你能够看到,无论怎样旋转,输出的两个信号(在横坐标以及纵坐标上的投影)都是独立的。

非高斯分布下状况就不一样了。在下图中,原始独立的信号都是超高斯的,能够看到白化预处理后的输出虽然不相关,但并不独立:
 
而若想让旋转以后的输出独立,只能旋转到以下位置(或者相差90度的倍数,对应于输出信号的次序或者正负号的变化):

相似的,若是原始独立信号是均匀分布的,第二步就须要从

旋转到

这样就直觉上了解了为何ICA须要假设原始独立信号的非高斯分布以后才有意义。

3、ICA只是让输出信号尽可能独立,实际应用中因种种因素,好比噪声影响、非线性因素、太多源信号的影响等等,输出每每不是彻底独立。这时不少状况下ICA的输出仍是包含了主要的独立的成分,是有意义的。

4、总的来讲,不相关是很是一种弱的独立性(线性独立性),通常必须配合别的性质使用才能得出惟一的结果:在PCA里就配合了能量或方差最大这个性质。而通常状况下独立性比不相关强了不少,在必定条件下,强到了足以把数据的产生过程恢复出来的地步。

更进一步,每当咱们作回归(regression),不论是线性回归仍是非线性回归,噪声和predictor都是不相关的。但不少状况下,它们却不是独立的(!)。这个性质最近十年内在因果关系分析中获得很重要的应用。

 
- 来源:机器学习中PCA和ICA的理解 - zrjdds(http://blog.csdn.net/zrjdds/article/details/50318065)
 
PCA的问题实际上是一个基的变换,使得变换后的数据有着最大的方差。方差的大小描述的是一个变量的信息量,咱们在讲一个东西的稳定性的时候,每每说要减少方差,若是一个模型的方差很大,那就说明模型不稳定了。可是对于咱们用于机器学习的数据(主要是训练数据),方差大才有意义,否则输入的数据都是同一个点,那方差就为0了,这样输入的多个数据就等同于一个数据了。
 

ICA是找出构成信号的相互独立部分(不须要正交),对应高阶统计量分析。ICA理论认为用来观测的混合数据阵X是由独立元S通过A线性加权得到。ICA理论的目标就是经过X求得一个分离矩阵W,使得W做用在X上所得到的信号Y是独立源S的最优逼近,该关系能够经过该式表示:Y = WX = WAS , A = inv(W).

 

ICA相比与PCA更能刻画变量的随机统计特性,且能抑制高斯噪声。从线性代数的角度去理解,PCA和ICA都是要找到一组基,这组基张成一个特征空间,数据的处理就都须要映射到新空间中去。

相关文章
相关标签/搜索