独立成分分析ICA与FastICA

1.盲源分离

1.1 未知信号的观测混合

考虑这样一种情况,由某些物体或源发出的一组信号,这些源可能包括,例如,发出电信号的不同脑区;在一个房间说话的几个人,发出语音信号;发出雷达信号的移动电话,等等.进一步假设有几个传感器或接收器,这些传感器放置在不同的位置上,这样,每个传感器纪录的是源信号带有不同权重的混合.前面所说的鸡尾酒会问题就符合这样的情况。
举一个具体的例子来说明盲源分离问题.用s1(t),s2(t)和s3(t)表示三个源信号,分别表示在t时刻的幅度,用x1(t),x2(t)和x3(t)表示三个观测信号.x(t)是s(t)的权重和:

其中常系数aij(i,j∈{1,2,3})表示混合权重,与源信号和传感器的距离有关.这些混合系数是未知的,既然我们在一般情况下很难知道混合系统的性质.源信号也是未知的,因为我们不能直接记录它们。

作为解释,见上图所示的波形.它们是某些源信号的线性混合。它们看上去完全是一些噪声信号,实际上,有些具有结构的源信号隐藏在这些观测信号中
我们想要做的就是从混合信号x1(t),x2(t)和x3(t)中找到源信号,这就是盲源分离问题(blind source separation,BSS).盲指的是源信号未知,混合系统未知(混合系数未知)
为了使问题简单化,假设由未知系数aij(i,j∈{1,2,3))所构成的系数矩阵是可逆的。则由它的逆矩阵w=(wij) 3x3可得到未知的源信号:

比较有趣的是,假设源信号之间是相互统计独立的,用独立成分分析就可以解决这个问题。 

1.2 基于独立的源分离

现在我们的问题是:如何估计如上方程中的系数wij?我们想要获得一般的方法,事实上,又回到刚开始的问题,即寻找多维数据的好的表示。因此,我们使用非常一般的统计性质.我们所得到的是混合信号值,需要找到矩阵W,使得表示由源信号si给出。
这个问题的一个令人感到吃惊的解是考虑信号的统计独立性。事实上,如果信号是非高斯的,我们可以决定系数wij以便信号:

是统计独立的。如果信号yl,y2和y3是独立的,则可认为它们就是所要求的源信号sl,s2和s3。
利用统计独立性这一信息,我们可以估计系数矩阵w.对于上图所示的观测信号,用ICA算法估计系数矩阵w,所得到的源信号如下图所示。这些用算法所估计出的信号实际上就是创建混合信号的源信号。

2.独立成分分析模型

我们首先给出标准的(即源信号的个数等于混合信号的个数)无噪声独立成分分析的线性模型.标准的线性独立成分分析模型的矩阵形式为X=AS;
其中随机向量X=(x1,x2,...,xn)表示观测数据或观测信号(observed data),随机向量S=(s1,s2,...,sn)表示源信号,称为独立成分(independent components),A称为nxn的混合矩阵(mixing matrix),在该模型中,X表示的是一个随机向量,x(t)表示随机向量X的一个样本.假设源信号是相互统计独立的。
这就是标准的独立成分分析模型,可以看作是一个生成模型(generativemodel),它的意思是说观测信号是通过源信号混合而生成的,在这个意义下,独立成分也称为隐含或潜在交量(hidden/latent , nariable ),也就是说这些独立成分是无法直接观测到的,另一方面,混合系数矩阵A也是未知的.独立成分分析的任务就是:在只知道观测信号X的T个样本x(1),…,x(T),且在源信号S和混合矩阵A未知的条件下,假设源信号si(0=1,…,n)之间是相互统计独立的,来求解混合矩阵A和源信号s

2.1 独立成分分析的假设条件

为了实现独立成分分析,必须给出几个假设条件:
a.各个成分之间是相互统计独立的.
这是独立成分分析的一个基本原则.比较有趣的是假设统计独立这个原则,就可以实现ICA模型的估计。这也是独立成分分析可以广泛应用在许多领域的一个重要原因.直观的说,如果任意的随机变量序列y1,y2,…,yn之间是相互统计独立的,则这就意味着从随机变量yi(i=1,…,n)的信息中不能得到随机变量yj(i≠j)的任何信息。随机变量之间的统计独立性可以通过概率密度函数来精确的刻画。如果用p(y1,…,yn)表示yi(0=1,…,n)的联合概率密度函数(joint probability density function),用pi(yi)表示随机变量yi(1=1,…,n)的边际概率密度
函数(marginal probability density function),那么我们说yi(i=1,…,他)是相互统计独立的,如果满足:

b.独立成分是服从非高斯分布的
直观的说,高斯信息太过于“简单”,真正有意义的信息是服从非高斯分布的信息。高斯随机变量的高阶累积量为零,而对于独立成分分析而言,高阶信息是实现独立成分分析的本质因素,这也是独立成分分析和其它数据处理方法诸如主成分分析和因子分析的本质区别.况且,真实世界的许多数据是服从非高斯分布的.事实
上,标准的独立成分分析也可以考虑为非高斯因子分析(nongaussian factor analysis)。Comon,Hyviirinen详细说明了独立成分必须是非高斯的原因,一般的,在标准的独立成分分析中最多只允许有一个成分服从高斯分布如果独立成分中有两个以上的高斯成分,用标准的独立成分分析来处理这样的数据是不可能的标准的独立成分分析只挖掘数据的非高斯结构,在某些思想上与投影寻踪(projection pursuit)相似,如果需要进一步挖掘数据的其它信息,应发展新的思想来解决更为复杂的情况.有一些学者致力于这方面的研究,例如利用数据或信号的时间结构和相关的信息来完成这样的任务。
c.假设混合矩阵是方阵
事实上,对于标准的独立成分分析而言,还有一个假设就是混合矩阵为方阵.也就是说,独立成分的个数等于观测混合信号的个数,进一步假设混合矩阵A是可逆的,这可以使得计算简单化,求混合矩阵A就等价于求它的逆矩阵w,则源信号就可以很容易的得到:S=(W-1)X。
对于标准的独立成分分析而言,当给定上述的三个条件时,独立成分分析就是可实现的,也就是说混合矩阵和独立成分是可以求解的。

2.2 独立成分分析无法确定的因素

从独立成分分析的模型可以看出下列因素是很难确定的:
a.不能确定独立成分的方差、能量
事实上,原因是很明显的,由于混合矩阵和独立成分都是未知的,如果对独立成分乘上某个标量ai≠0,或同时对混合矩阵相应的除以一个相同的标量,则不影响混合信号的值。
因此,在独立成分分析算法中,可以固定独立成分的方差,由于独立成分是随机变量,则最自然的方法就是假设独立成分具有单位方差。
b.不能确定独立成分的顺序
在独立成分分析的绝大多数应用中,这两个不确定性并不是十分重要的,用ICA算法所得到的解能够满足相当多的实际应用,所得到的源信号的幅度和排序对于通常所考虑的问题影响不大.所以我们可以说独立成分分析所求得的解是波形保持解.在某些特殊的应用中,我们需要确定输出成分的顺序,可以通过某些统计量的大小来规定输出独立成分的顺序,这样的规定,使得这个问题转化为一个具有某些约束的问题,即标准的ICA问题转化为约束ICA问题。

2.3数据的中心化

不失一般性,我们可以假设混合变量和独立成分是零均值的.这个假设在相当程度上简化了算法,如无特殊说明,假设混合变量和独立成分都是零均值的.
如果零均值并不成立,我们可以通过预处理来达到这个条件.一般的,我们使用中心化观测变量这一技术,即减去样本均值

2.4 不相关和白化

独立和不相关(uncorrelated)是紧密相关的概念,因此,可以设想使用估计不相关变量的方法来同样估计独立成分,这样的典型方法为白化(whitening)或球化(sphering),通常由主成分分析(principal component analysis)来进行.但用这样的方法来估计独立成分通常是不可行的,一般的,白化是以独立成分分析的预处理技术身份出现的。
不相关是独立的较弱形式,两个随机变量y1,y2是不相关的,那么它们的协方差是零:

如果随机变量是零均值的,协方差化为相关coor(y1,y2)=E{y1,y2),不相关相当于零相关.
如果随机变量是独立的,它们即是不相关的.这是因为两个随机变量y1和y2是独立的,那么对于任意两个函数h1和h2,我们有:

这就是我们常说的,独立意味着不相关,而不相关并不意味着独立
比不相关稍强的概念是白化.白化的随机向量y与它的各分量是不相关的,并且具有单位方差.换句话说,随机向量Y的协方差矩阵是单位阵

白化意味着我们将观测数据向量x进行线性变换,使得新向量

是白化的随机向量.白化有时称为球化.
白化变换总是可行的.白化的一个流行方法是协方差矩阵的特征值分解(EVD)

这里,E是E(XXT)的特征向量组成的正交矩阵,D是它的特征值组成的对角矩阵. 这样,白化可以通过白化矩阵来完成!

3.直观解释与理解

服从均匀分布的独立成分sl和s2的联合分布.其中横坐标表示s1,纵坐标表示s2

为了进一步解释ICA的统计模型,考虑服从下列均匀密度分布的两个互相独立的随机变量:

这个联合分布是在一个方形上均匀分布的,其中样本点是从这个分布随机取样得到的。

现在如果用混合矩阵:

将源信号s1和s2混合,就得到混合信号xI和x2,他们的联合分布见下图.从上图可以看出随机变量s1和s2是相互独立的,因为如果给定s1的任何一个值,我们不能断定s2的任何信息而将两个随机变量sl和s2混合后得到混合变量x1和22,则x1和x2之间就不是独立的了,因为当给定xl的取值后就可能得到zx2的信息,比如在下图的四个角处,x1和x2的关系就是已经确定了

观测混合信号。x1和x2的联合分布.其中横坐标表示x1,纵坐标表示x2。
估计ICA数据模型的问题现在成为仅利用混合x1和x2的信息来估计混合矩阵A.实际上,我们可以通过观察上图来直观的估计矩阵A:平行四边形的边的方向就是混合矩阵A的列所指的方向.这样独立成分分析的解可以通过确定混合方向来得到,但在标准的ICA中这样的计算是较为复杂的,我们可以寻找更为方便,计算简单的算法,这里只给出ICA的直观解释.对于复杂的情况,特别是稀疏超完各问题,我们可以通过一些这样的几何解释来帮助问题的解决


4.负熵最大的FastICA算法

ICA算法的研究可分为基于信息论准则的迭代估计方法基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性。基于信息论的方法研究中,各国学者从最大熵、最小互信息、最大似然和负熵最大化等角度提出了一系列估计算法。如FastICA算法, Infomax算法,最大似然估计算法等。基于统计学的方法主要有二阶累积量、四阶累积量等高阶累积量方法。

4.1目标函数部分

4.1.1负熵判别准则

由极大熵原理可知,在方差相同的条件下,所有概率分布中,高斯分布的熵最大;因而我们可以利用熵来度量分布的非高斯性。因此通过度量分离结果的非高斯性,作为分离结果独立性的度量;当非高斯性达到最大时,表明已完成对各个分量的分离。因为FastICA算法以负熵最大作为一个搜寻方向,因此先讨论一下负熵判决准则。由信息论理论可知:在所有等方差的随机变量中,高斯变量的熵最大,因而我们可以利用熵来度量非高斯性,常用熵的修正形式,即负熵。

负熵的定义:   其中XG是和X具有相同协方差的随机变量,H()为变量的微分熵

微分熵定义:

联系极大熵原理,XG为高斯分布,所以J(X)>=0;当且仅当X本身也为高斯分布时=0;所以J(x)的值越大,证明X的非高斯性越强,

4.1.2负熵与独立性关系

假设n维随机变量X=[X1,X2……Xn],其互信息为I(X):

互信息即为:独立分布乘积分布与联合分布之间的负熵J(X),当Xi相互独立时,互信息为0;

由于计算J(X)需要联合分布函数和各个分量的分布函数,这个显然不切实际;所以采用非线性变换g(x)后的均值期望来近似替代。

由于Xi即为观测数据X分离后的独立变量Si,再由中心极限定理可知,若随机变量X有许多相互独立的随机变量信号源Si相互组合而成,则不论Si为何种分布,观测变量数据X比Si具有更强的高斯性,换言之Xi的非高斯性更强。所以,负熵J(X)的值越小,即此时的互信息I(X)越小,此时分离的变量Si独立性越好。

4.2 优化部分

快速ICA算法是找一个方向以便WX具有最大的非高斯性,也即最大的相互独立性;这里的独立性通过负熵来给出,通过均值近似估计来计算。这里通过白化处理,使W的范数为1,即使WX的方差估计为1;优化过程推导比较复杂,公式太多!

实践中,FastICA算法中用的期望必须用它们的估计值代替。当然最好的估计是相应的样本平均。理想情况下,所有的有效数据都应该参与计算,但这会降低计算速度。所以通常用一部分样本的平均来估计,样本数目的多少对最后估计的精确度有很大影响。迭代中的样本点应该分别选取,假如收敛不理想的话,可以增加样本的数量。


猜你喜欢

转载自blog.csdn.net/sinat_27763257/article/details/80568792