10.5.1  ICA的预处理

10.5.1 ICA的预处理

1.中心化

对观测数据进行中心化处理是ICA算法最基本的预处理步骤,其处理过程是把每个观测数据(也可看作随机变量)X减去其均值向量m=E{X},使X成为零均值变量。

这意味着源信号S的估计信号Y也同时变为零均值的。因为:

E{S}=A-1E{X} (10-31)

不过,通过这样的中心化预处理,混合矩阵仍可保持不变,因此不用担心会对混合矩阵的估计有影响。当利用零均值矩阵对混合矩阵与独立成分进行估计以后,被减掉的均值还可以通过在独立成分上加A-1E{X′}而简单地恢复。

2.白化

一般情况下,我们所获取的观测数据都具有相关性,而白化过程能够很好地去除数据之间的相关,所以在预处理时通常都会对数据做白化处理,从而简化后续独立成分的提取过程。而且与没有经过白化处理的数据相比,白化后的数据收敛性更好。

一个零均值的随机向量z的各分量具有相同的单位方差且相互不相关,我们称z是白化的,换句话说,z的协方差矩阵(包括相关矩阵)是单位矩阵,如下所示:

E{zzT}=I(10-32)

进一步来说,白化过程意味着我们将观测数据向量x与某个矩阵V线性相乘后得

z=Vx(10-33)

得到一个白化的新向量z。白化过程有时也称为球面化。

E=(e1,…,en)是以协方差矩阵Cx=E{xxT}的单位范数特征向量为列的矩阵,D=diag(d1,…,dn)是以Cx的特征值为对角元素的对角矩阵,则线性白化变换可以由式(10-34)给出:

V=D-1/2ET(10-34)

Cx可以用特征向量和特征值矩阵ED写成Cx=EDETE为正交矩阵,满足EET=ETE=I,则E{zzT}=VE{xxT}VT=D-1/2ETEDETDE-1/2=I成立,z的协方差为单位矩阵,所以z是白化的。

式(10-34)中的线性算子V不是唯一的白化矩阵,容易看到,任何矩阵UVU为正交矩阵)也是白化矩阵。最常用的白化方法是利用协方差矩阵的特征值分解:

E{xxT}=EDET(10-35)式中,EE{xxT}的特征向量的正交矩阵;D为相应的特征向量的对角矩阵。

这样,白化过程可以利用下面的白化矩阵来实现:

V=ED-1/2ET(10-36)

矩阵D-1/2只需通过简单的逐元素开方计算得到D-1/2=diag(d1-1/2,…,dn-1/2)。这样得到的白化矩阵记为E{xxT}-1/2或C-1/2。

白化矢量z可以由式(10-37)获得:

z=ED-1/2ETx(10-37)

对信号的白化可以得到一个新的混合矩阵A~,而且A~是正交矩阵,对于混合矩阵A,使用ICA算法需要估计n2个参数,而对于新的混合矩阵A~,由于它是正交的,只需要估计nn-1)/2个参数,因此大大减少了ICA的工作量。