Answers:
fastICA方法确实需要进行预白化步骤:首先使用PCA转换数据,这将导致对角协方差矩阵,然后对每个维度进行归一化,以使协方差矩阵等于单位矩阵(白化)。
数据存在无限变换,从而导致恒等协方差矩阵,并且如果您的来源是高斯,则可以在此停止(对于高斯多元分布,均值和协方差是足够的统计量),在存在非高斯来源的情况下,您可以最小化一些依赖白化数据的度量,因此您需要轮换白化数据以最大化独立性。FastICA使用信息理论方法和定点迭代方案来实现这一目标。
我建议Hyvärinen的工作对问题有更深的了解:
请注意,进行PCA和进行降维不是一回事:当您观察到的(每个信号)多于信号时,可以执行PCA,保留100%的解释方差,然后继续进行白化和定点迭代以获得独立分量的估计。是否执行降维在很大程度上取决于上下文,并且这取决于您的建模假设和数据分布。
将PCA应用于数据具有旋转原始坐标轴的唯一效果。这是线性变换,与例如傅立叶变换完全一样。因此,它实际上不能对您的数据做任何事情。
但是,新PCA空间中表示的数据具有一些有趣的属性。使用PCA进行坐标旋转后,您可以根据既定标准(例如新轴解释的总差异百分比)放弃某些尺寸。根据您的信号,您可以通过这种方法实现相当大的尺寸缩减,这肯定会提高以下ICA的性能。在不丢弃任何PCA组件的情况下进行ICA不会影响以下ICA的结果。
此外,由于坐标轴的正交性,还可以容易地使PCA空间中的数据变白。美白效果可以均衡所有维度上的差异。我认为这对于ICA正常工作是必要的。否则,只有很少的具有最大方差的PCA分量将支配ICA结果。
我真的没有看到基于ICA之前基于PCA的预处理的任何缺点。
Giancarlo引用了ICA的最佳参考。
fastICA算法的派生只需要一步进行白化。首先,您选择台阶的方向(例如梯度下降),并且不需要白化数据。然后,我们必须选择步长,该步长取决于Hessian的倒数。如果数据变白,则该粗麻布是对角线和可逆的。
那是必需的吗?如果仅将步长固定为常数(因此不需要白化),则将具有标准梯度下降。具有固定小步长的梯度下降通常会收敛,但可能比原始方法慢得多。另一方面,如果您的数据矩阵很大,则白化可能会非常昂贵。即使没有白化,收敛速度也会变慢。
我很惊讶在任何文献中都没有提到这一点。一篇论文讨论了这个问题: Jimin Ye和Ting Huang 提出了 一种无需预增白的盲源分离新Fast-ICA算法。
他们建议美白的价格便宜一些。我希望他们已经包括了仅运行ICA而没有将白化作为基线的明显比较,但是他们没有。作为另一个数据点,我尝试了在没有玩具问题泛白的情况下运行fastICA,并且效果很好。
更新:另一个解决美白的不错参考书在这里:健壮的独立成分分析Zaroso和Comon。它们提供不需要白化的算法。