最近在学习数据降维的一些方法(有关数据降维的其他内容请看这篇文章),虽然独立成分分析不算是严格意义上的降维方法,但是它和PCA有着千丝万缕的联系,所以打算专门写一篇文章来学习ICA的相关知识,看了挺多的关于ICA的博文,有些文章讲的比较详细。有句话是这么说的:“论文是详细版的知识讲解”,也就是说如果想深入详细的了解某个知识,那么去读相关论文,所以阅读了一篇经典的ICA论文,作者是A. Hyva¨rinen,整篇论文对ICA做出了详细的解释。这篇文章按照原论文的结构,对原论文进行了翻译概括。 目录 2. 独立成分分析(independent component analysis) 2.2 ICA的不明确性(Ambiguities of ICA) 2.3 图解ICA(Illustration of ICA) 3. 什么是独立性(What's independence?) 3.1 定义和基本属性(Definition and fundamental properties) 3.2 不相关变量是部分独立的(Uncorrelated variables are only partly independent) 3.3 为什么独立成分不能是高斯变量(Why Gaussian variables are forbidden) 4 ICA估计原理(Principles of ICA estimation) 4.1 非高斯独立(“Non-Gaussian is independent”) 4.2 非高斯性的度量(Measures of non-Gaussianity) 4.2.3 负熵的近似(Approximations of negentropy) 4.3 互信息最小化(Minimization of mutual information) 4.3.2 通过互信息定义ICA(Defining ICA by mutual information) 4.4 最大似然估计(Maximum likelihood estimation) 4.4.2 信息最大原则(The infomax principle) 4.4.3 互信息连接(Connection to mutual information) 4.5 ICA与投影跟踪(ICA and projection pursuit) 5 ICA的预处理(Preprocessing of ICA) 5.3 进一步的预处理(Further preprocessing) 6 FastICA算法(The FastICA algorithm) 6.1 单元FastICA(FastICA for one unit) 6.2 多元FastICA(FastICA for several unit) 6.3 FastICA 和最大似然(FastICA and maximum likelihood) 6.4 FastICA的属性(Properties of the FastICA algorithm) 1. 动机(Motivation)想象两个人在意见房间内同时说话,有两个位于房间不同位置的麦克风记录时间信号,记录的时间信号分别用 其中 以图1和图2的波形为例,图1表示的波形是原始语音信号,图2表示的波形是混合后即麦克风记录的信号。我们要做的就是通过图2中的信号来恢复图1中的信号。实际上,如果我们知道参数 其中一种方法是我们可以应用信号 2. 独立成分分析(independent component analysis)2.1 ICA的定义(Definition of ICA)为了严格定义ICA,我们可以使用统计隐变量模型。假设我们从n个独立成分观察到n个线性混合信号 假设每一个 用向量-矩阵法表示前面的和式是非常方便的,我们用x表示随机向量,其元素为 有时,我们需要矩阵的列向量,用 我们称(4)式表示的统计模型为独立成分分析或ICA模型。ICA模型是生成模型,它描述了观测数据是如何通过混合元素 ICA的出发点是非常简单的一个假设:成分 ICA是和“盲源分离”(BSS)非常相近的一种方法。“源”是指原始信号,也就是独立成分,比如鸡尾酒宴会中的说话者的语音信号;“盲”是因为我们可知的信息非常少,不知道混合矩阵 2.2 ICA的不明确性(Ambiguities of ICA)在ICA模型,也就是式(4)中,我们很容易看到ICA的一些不太明确的地方: 1. 我们不能确定独立成分的方差(能量) 原因是, 2. 我们不能确定独立成分的顺序 原因同样是 2.3 图解ICA(Illustration of ICA)为了用统计学术语来阐明ICA模型,我们假设两个独立分量服从下面的均匀分布: 选择均匀分布的取值范围,使得均值为0,方差为1。 现在混合这两个独立成分,我们取下面的混合矩阵: 这得出了两个混合变量, 我们可以看到,随机变量 现在估计ICA模型中数据的问题变成了用包含在 然而,实际上,这将是一种非常差的方法,因为它仅适用于具有完全均匀分布的变量。 而且,它在计算上会非常复杂。 我们需要的是一种适用于独立成分的任何分布的方法,并且可以快速可靠地工作。 接下来,在开始开发用于估计ICA模型的方法之前,我们将考虑独立性的确切定义。 3. 什么是独立性(What's independence?)在这一小节我们将会解决两个关键的问题:为什么要假设独立成分是统计独立的?为什么独立成分必须是非高斯变量 3.1 定义和基本属性(Definition and fundamental properties)为了定义独立性,首先考虑两个常量随机变量 对于 式(10)对n个随机变量同样适用,此时联合概率密度函数等于n个部分的边缘概率密度函数的乘积。该定义可用于推导独立随机变量的一个最重要的性质。给定h1和h2两个函数,我们总是有: 其证明过程如下: 3.2 不相关变量是部分独立的(Uncorrelated variables are only partly independent)弱化的独立是不相关。如果两个随机变量 独立一定不相关,但是不相关不一定独立。例如,假设 由式(11)可以得出随机变量
3.3 为什么独立成分不能是高斯变量(Why Gaussian variables are forbidden)在ICA中对独立成分最基础的限制是:独立成分必须为非高斯变量。接下来我们看看为什么高斯变量对ICA不适用,我们假设混合矩阵 其分布如图6所示: 此图显示了密度的完全对称性,因此它不包含混合矩阵 4 ICA估计原理(Principles of ICA estimation)4.1 非高斯独立(“Non-Gaussian is independent”)直观的说,非高斯分布是ICA估计的关键,实际上,没有非高斯性,估计是不可能完成的,正如3.3 中所说的那样。这也可能是ICA后期复苏的主要原因:在传统统计学理论中,大多假设随机变量服从高斯分布,因此这将任何与ICA有关的方法都排除在外了。中心极限定理是概率论中的经典,它表明在一定条件下,独立随机变量之和的分布倾向于高斯分布。 因此,两个独立随机变量的总和通常具有比两个原始随机变量中的任何一个更接近高斯的分布。 现在假设数据向量 为了了解这如何引出ICA估计的基本原理,让我们换一下变量,定义 最大化 4.2 非高斯性的度量(Measures of non-Gaussianity)为了在ICA估计中使用费高斯性,我们必须对随机变量 4.2.1 峰度(Kurtosis)非高斯性的传统度量方式是峰度和四阶累积量。 实际上,我们假设过 其概率密度函数如图7所示: 亚高斯随机变量通常具有“平坦”概率密度函数,其在零附近相当恒定,并且对于较大的变量值而言非常小。 典型的例子是的均匀分布。非高斯性通常通常通过峰度的绝对值或平方来度量,高斯随机变量的峰度为了,而非高斯 峰度或其绝对值在ICA或其它领域度量非高斯性时广泛应用。主要原因是它的计算和理论分析都比较简单:计算简单是因为峰度只需要计算样本数据的四阶矩;而理论分析简单是因为以下的线性特性: 其中 这在几何上意味着 当向量 但是,峰度在实际应用中也存在一些缺陷,主要原因是峰度对异常值非常敏感。其值可能仅取决于分布尾部的少数观测值,这可能是错误的或不相关的观测。 换句话说,峰度是一种不稳定的非高斯性度量。接下来,介绍另一种比峰度优越的非高斯性度量方法:负熵。 4.2.2 负熵(Negentropy)负熵是另一种非常重要的非高斯性量度。 负熵是信息论中熵量的一种概念。熵是信息论中的基本概念,随机变量的熵可以被解释为观察变量包含的信息量。变量越随机,越不可预测,那么它的熵越大,更严格的说,熵和随机变量的编码长度相关,实际上在某些简单的假设下,熵就是随机变量的编码长度。随机变量 其中 在信息论中有个基本的结论:在所有方差相等的随机变量中,高斯变量的熵最大。这意味着熵可以作为非高斯性的一种度量,实际上,这表明高斯分布是所有分布中最“随机”的。随机变量的分布越集中,其熵越小。为了获得对于高斯变量为零并且总是非负的非高斯性度量,通常使用负熵。负熵
4.2.3 负熵的近似(Approximations of negentropy)像上面提到的,负熵的计算非常困难,因此对比函数仍然是理论函数。所以在实际应用中经常会使用一些负熵的近似,接下来介绍具有不错性质的负熵的近似。 传统的负熵近似是使用高阶矩,像下面这种形式: 假设 其中 如果 其中 4.3 互信息最小化(Minimization of mutual information)另外一种基于信息论的估计ICA的方法是互信息最小化。接下来将解释这种方法,并说明它跟上面描述寻找大多数非高斯方向的方法相似。 4.3.1 互信息(Mutual information)根据差分熵的概念,我们定义m个随机变量 互信息是衡量随机变量之间独立性的方法,事实上,它等于联合密度 互信息一个重要的特性是:我们有一个可逆的线性变换 我们试想一下如果 这意味着 其中 4.3.2 通过互信息定义ICA(Defining ICA by mutual information)因为互信息是信息论中随机变量独立性的度量方式,我们可以用它作为寻找ICA变换的准则。此方法是模型估计的替代方法,我们将随机向量 4.4 最大似然估计(Maximum likelihood estimation)4.4.1 似然(The likelihood)一种非常流行的估计ICA模型的方法是最大似然估计,它和信息最大化原则相似。接下来将讨论这种方法,并表明它的本质是和最小化互信息是一样的。在无噪声的ICA模型中可以直接表示似然,然后通过最大似然估计来估计模型。 其中 4.4.2 infomax原则(The infomax principle)另一个相关的对比函数是从神经网络的观点中推导出来的。这是基于最大化具有非线性输出的神经网络的输出熵(或信息流)。假设 如果 4.4.3 互信息连接(Connection to mutual information)为了研究似然和互信息之间的关系,考虑log似然函数的期望,如下: 如果 在实际情况下,我们有很多关于独立成分的先验知识,我们不需要根据数据来估计它们的性质。在任何情况下,如果独立成分的性质是错误了,那么最大似然估计也会给完全错误的结果。 4.5 ICA与投影跟踪(ICA and projection pursuit)如何明确ICA与投影跟踪之间的联系。投影跟踪是在统计学中发展起来的一种技术,用于发现多维数据的“有趣的”投影。这样的投影可用于数据的最佳可视化,以及密度估计和回归等目的。在基本的(1-D)投影跟踪中,我们试图找到方向,使数据在这些方向上的投影具有有趣的分布,即显示某种结构。研究者认为,高斯分布是最没有意思的分布,最有趣的方向是那些显示最低高斯分布的方向,而这正是我们估计ICA模型的方法。 在图8中可以看到找到这种投影的有用性,其中投影追踪方向上的投影是水平的,清楚地显示了数据的聚类结构。 在第一个主成分(垂直方向)上的投影没有显示出这种结构。 在一般公式中,投影跟踪可以看做是ICA的变体。特别是,投影追踪使我们能够解决独立分量 5 ICA的预处理(Preprocessing of ICA)在上一节中,我们讨论了ICA方法的基本统计原理。 基于这些原理的实用算法将在下一节中讨论。 但是,在对数据应用ICA算法之前,进行一些预处理通常非常有用。 在本节中,我们将讨论一些预处理技术,这些技术可以使ICA估计问题更简单,条件更好。 5.1 中心化(Centering)最基础也是最有必要的预处理是对 5.2 白化(whitening)ICA另一个有用的预处理策略是对观测数据白化。这意味着在应用ICA算法之前(中心化之后),我们对观测数据 一种比较流行的白化的方法是协方差矩阵 其中 通过白化将混合矩阵转换为 白化的作用在于可以使新的混合矩阵 我们可以看到,通过白化减少了要估计的参数的数量,现在我们不需要估计原始矩阵 图9对图5中的数据进行了白化,如下所示: 定义分布的正方形现在显然是图4中原始正方形的旋转,剩下的就是估计给出旋转的单个角度。 在接下来的分析中,我们都假设数据经过了预处理:中心化和白化。为了简单起见,预处理的数据就用 5.3 进一步的预处理(Further preprocessing)给定数据集的ICA成功与否可能会跟特定应用的预处理步骤有关。比如数据中包含时间信号,那么带通滤波也将会是很有用的。如果我们对观测信号 现在, 这表明ICA模型依然有效。 6 FastICA算法(The FastICA algorithm)在前面的小节中,介绍了非高斯性的不同度量方式,也就是ICA估计的目标函数。在实际中,还需要一种最大化对比函数的算法,如式(25)那样。这一小节介绍一种非常有效的最大化方法,这里假设数据都是经过预处理的。 6.1 单元FastICA(FastICA for one unit)首先来看单元FastICA,通过“单元”,我们指的是计算单元,最终是人工神经元,具有神经元能够通过学习规则更新的权值向量 其中 1. 选择初始的权值向量 2. 令 3. 令 4. 如果不收敛,就返回步骤2 收敛是指 FastICA推导如下,首先 用牛顿法来解上面的等式,令等式左边为 为了简化矩阵,我们对上式中的第一部分取近似,由于数据是球形的,一个合理的近似是 通过对上式两边同时乘以 6.2 多元FastICA(FastICA for several unit)前面讲的单单元算法只是估计一个独立成分或者一个投影追踪的方向,为了估计几个独立成分,我们需要使用具有权重向量 实现去相关的简单方法是基于类似Gram-Schmidt的去相关的放缩方案。这意味着需要一个个的估计独立成分,当我们已经估计了 然而,在某些应用程序中,可能需要使用对称的去相关,其中没有向量比其他向量具有“特权”,这可以通过矩阵平方根法做到,令: 其中 1. 令 重复步骤2直到收敛 2. 令 步骤一中的范数可以使用矩阵的任意范数,比如2-范数。 6.3 FastICA 和最大似然(FastICA and maximum likelihood)最后,给出FastICA和最大似然估计的联系。如果我们使用式(43)中的中间公式表达FastICA,并以矩阵形式写,我们看到FastICA采用以下形式: 其中 其中 6.4 FastICA的属性(Properties of the FastICA algorithm)与现有的ICA方法相比,FastICA算法和底层对比度函数具有许多所需的特性。 1. 在ICA数据模型的假设下,收敛是立方的(或至少是二次的)。 这与基于(随机)梯度下降方法的普通ICA算法形成对比,其中收敛仅是线性的。 这意味着非常快速的收敛,正如通过对真实数据的模拟和实验所证实的那样 2. 与基于梯度的算法相反,没有选择步长参数。这意味着该算法易于使用。 3. 该算法使用任何非线性g直接找到(实际上)任何非高斯分布的独立分量。 这与许多算法形成对比,其中必须首先获得概率分布函数的一些估计,并且必须相应地选择非线性。 4. 可以通过选择合适的非线性g来优化该方法的性能。 特别地,可以获得稳健和/或最小方差的算法。 实际上,式(40)中的两个非线性具有一些最佳性质 5. 可以逐个估计独立分量,这大致相当于进行投影追踪。 这在探索性数据分析中很有用,并且在仅需要估计某些独立组件的情况下减少了该方法的计算负荷 6. FastICA具有神经算法的大部分优点:它是并行的,分布式的,计算简单的,并且需要很少的存储空间。 只有在不断变化的环境中需要快速适应性时,随机梯度法似乎才是优选的。 原论文中还涉及到了ICA算法的应用:在脑磁图去除数据伪迹中的应用;在金融数据中发现隐藏因子;为自然图像去噪。有兴趣的可以去阅读原文。 参考文献1. Independent component analysis: algorithms and applications 2. 一个简单的FastICA示例 http://www./wordpress/2009/11/22/a-simple-fastica-example/ |
|