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可以用特征向量和特征值矩阵E和D写成Cx=EDET,E为正交矩阵,满足EET=ETE=I,则E{zzT}=VE{xxT}VT=D-1/2ETEDETDE-1/2=I成立,z的协方差为单位矩阵,所以z是白化的。
式(10-34)中的线性算子V不是唯一的白化矩阵,容易看到,任何矩阵UV(U为正交矩阵)也是白化矩阵。最常用的白化方法是利用协方差矩阵的特征值分解:
E{xxT}=EDET(10-35)式中,E为E{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~,由于它是正交的,只需要估计n(n-1)/2个参数,因此大大减少了ICA的工作量。