主成分分析(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}的某种特征最大化。

 

主成分分析(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仍为高斯随机向量,此时它的各个分量不仅仅是线性无关的,它们还是独立的。

 

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

 

独立成分分析(ICA)

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}是相互独立的。

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.
 

 
三楼:因缘际会

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

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

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

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

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

类似的,如果原始独立信号是均匀分布的,第二步就需要从

旋转到

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

三、ICA只是让输出信号尽量独立,实际应用中因种种因素,比如噪声影响、非线性因素、太多源信号的影响等等,输出往往不是完全独立。这时很多情况下ICA的输出还是包含了主要的独立的成分,是有意义的。

四、总的来说,不相关是非常一种弱的独立性(线性独立性),一般必须配合别的性质使用才能得出唯一的结果:在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都是要找到一组基,这组基张成一个特征空间,数据的处理就都需要映射到新空间中去。

posted @ 2017-03-16 15:20  minks  阅读(2781)  评论(0编辑  收藏  举报