ICA 是否需要先运行 PCA?

机器算法验证 主成分分析 降维 模式识别 独立成分分析
2022-03-19 10:15:55

我查看了一篇基于应用程序的论文,说在应用 ICA 之前应用 PCA(使用 fastICA 包)。我的问题是,ICA(fastICA)是否需要先运行 PCA?

这篇论文提到

...还有人认为,预应用 PCA 通过 (1) 在白化之前丢弃小的尾随特征值和 (2) 通过最小化成对依赖关系来降低计算复杂性来提高 ICA 性能。PCA 对输入数据进行去相关;其余的高阶依赖由 ICA 分离。

其他论文也在 ICA 之前应用 PCA,例如,this one

在 ICA 之前运行 PCA 还有其他优点和缺点吗?请提供理论和参考资料。

3个回答

fastICA 方法确实需要一个预白化步骤:首先使用 PCA 对数据进行转换,从而得到一个对角协方差矩阵,然后对每个维度进行归一化,使得协方差矩阵等于单位矩阵(白化)。

数据的无限变换会导致恒等协方差矩阵,如果您的源是高斯的,您将停在那里(对于高斯多元分布,均值和协方差是足够的统计数据),在存在非高斯源的情况下,您可以最小化一些测量对白化数据的依赖性,因此您寻找最大化独立性的白化数据的旋转。FastICA 使用信息论测量和定点迭代方案来实现这一点。

我会推荐 Hyvärinen 的工作来更深入地了解这个问题:

  • A. Hyvärinen。用于独立分量分析的快速且稳健的定点算法。IEEE 神经网络汇刊 10(3):626-634, 1999。
  • A. Hyvärinen、J. Karhunen、E. Oja,独立成分分析,Wiley & Sons。2001年

请注意,进行 PCA 和进行降维并不完全相同:当您的观测值(每个信号)多于信号时,您可以执行保留 100% 解释方差的 PCA,然后继续进行白化和定点迭代以获得独立分量的估计。是否应该执行降维高度依赖于上下文,它基于您的建模假设和数据分布。

将 PCA 应用于您的数据具有旋转原始坐标轴的唯一效果。它是一个线性变换,就像傅里叶变换一样。因此,它真的不能对您的数据做任何事情。

但是,新 PCA 空间中表示的数据具有一些有趣的特性。在使用 PCA 进行坐标旋转之后,您可以根据已建立的标准(例如新轴解释的总方差百分比)丢弃一些维度。根据您的信号,您可以通过这种方法实现大量的降维,这肯定会提高以下 ICA 的性能。在不丢弃任何 PCA 组件的情况下进行 ICA 不会对后续 ICA 的结果产生影响。

此外,由于坐标轴的正交性,还可以轻松地对 PCA 空间中的数据进行白化。白化具有均衡所有维度的方差的效果。我认为这是 ICA 正常工作所必需的。否则,只有少数具有最大方差的 PCA 组件会主导 ICA 结果。

在 ICA 之前,我真的没有看到基于 PCA 的预处理有任何缺点。

Giancarlo 已经引用了 ICA 的最佳参考...

fastICA算法的推导只需要一步白化。首先,您选择步骤的方向(如梯度下降),这不需要白化数据。然后,我们必须选择步长,这取决于 Hessian 的倒数。如果数据被白化,则此 Hessian 矩阵是对角线且可逆的。

那么它是必需的吗?如果您只是将步长固定为常数(因此不需要白化),您将拥有标准的梯度下降。具有固定小步长的梯度下降通常会收敛,但可能比原始方法慢得多。另一方面,如果您有一个大数据矩阵,那么白化可能会非常昂贵。即使在没有美白的情况下收敛速度较慢,您的情况也可能会更好。

我很惊讶在任何文献中都没有提到这一点。一篇论文讨论了这个问题: Jimin Ye 和 Ting Huang 的New Fast-ICA Algorithms for Blind Source Separation without Prewhitening

他们提出了一种更便宜的美白选择。我希望他们已经将只运行 ICA 而没有美白作为基线的明显比较,但他们没有。作为另一个数据点,我尝试运行 fastICA 而不对玩具问题进行美白,并且效果很好。

更新:另一个很好的解决白化问题的参考在这里:鲁棒的独立成分分析,Zaroso 和 Comon他们提供不需要美白的算法。