第五章 盲源抽取
第三、四章讨论的方法是通过批处理算法或自适应算法“一次性”地将所有的源信号分离出来,这种方式可以称为是“并行式的盲源分离”。
本章要讨论的盲源抽取是将源信号一个一个地逐次提取出来,即一次只分离出一个源信号,而且每提取出的源信号都不同,或者每提取出的一个源信号,就将该源信号从混合的信号中去掉,然后再进行下一次提取,这种盲源分离方式称为“串行式的盲源分离”。
仍然考虑线性瞬时混合的信号模型,即
x(t)=Hs(t) (5-1) 从原理上来说,盲源抽取的目标是:设计一个矢量w,使得
wTH=[0,L,0,aj,0L,0] (5-2) 其中,aj≠0是任意一个常数,j∈1,2,LN。如果每次提取操作所对应的aj的位置不同,则经过一系列的提取操作后,就可以分离出所有的源信号。
根据源信号是否具有“时间结构”,可以将盲源提取分为“无色源”的盲提取和“有色源”的盲提取。对这两类不同的源进行盲提取时,所使用的准则和方法有所不同,本章将分别加以介绍。
第一节 基于四阶累量判据的无色源的盲提取
1. 模型与假设
对于(5-1)式的信号模型,有如下一些假设:
1) 关于H
H是满秩矩阵,即rank(H)=N 2) 关于s(t)
(1)s(t)是零均值的“平稳”随机向量 (2)s(t)具有“空间独立性”
对于i≠j和任意的可积函数f(⋅)、g(⋅),有
E[f(si(t))g(sj(t))]=E[f(si(t))]E[g(sj(t))] (5-3)
(3)s(t)具有“时间独立性”,或“没有时间结构”
对于任意的i,si(t)是一个i.i.d.的随机过程,所以有
E[f(si(t))g(si(t−τ))]=E[f(si(t))]E[g(si(t−τ))] ∀τ≠0 (5-4) (4)s(t)的所有分量信号都是非高斯的,且四阶累量k4(si)≠0,i=1,2,L,N。 2. 求解步骤和代价函数
求解步骤采用“二步法”,如下图所示。
W=UQ
图5-1 二步法示意图
第一步:球化(空间解相关)。对x(t)进行球化处理的方法与前二章介绍的方法相同,可以用批处理算法实现,也可以用自适应算法来实现。
第二步:盲提取。依次求解一组正交向量u1,u2,L,uN,分别对球化后的信号z(t)进行处理,逐个逐个地分离出源信号。注意,这里的正交向量ui相当于正交变换矩阵U的第i行构成的列向量。
不失一般性,设
yi(t)=uz(t)=其中uik是ui的第k个元素。
由于源信号的各个分量信号si是非高斯的,根据中心极限定量,则yi必定比各个si更接近高斯分布。只有当vik中,k=1,2,L,N,只有一个非零元素时,yi距离高斯分布最远,此时有
T
i
∑u
k=1
N
ikk
z(t)=∑viksk(t) (5-5)
k=1
N
yi=ajsj (5-6)
因为高斯随机变量的四阶累量为0,以及微分熵最大(方差一定时),因此四阶累量或负熵都可以作为任意一个概率密度函数偏离相同方差的高斯概率密度函数程度的度
量,由此能够构造相应的盲提取的代价函数。本小节只讨论用四阶累量构造代价函数,而采用负熵作为代价函数将在后续小节中讨论。
令代价函数为
φ(ui)=|k4(yi)| (5-7)
4
2
2
k4(yi)=E(yi)−3[E(yi)] (5-8) 当yi为高斯分布时,k4(yi)=0,φ(yi)=0;yi偏离高斯分布越远,φ(yi)越大。所以,只要使得φ(yi)达到局部极大值点,就能够提取出一个源信号。
由此可以将求解ui的问题,描述为求解下列的带约束条件的优化问题:
ui=argmax{φ(ui)=|k4(yi)|} (5-9)
ui
s. t. ||ui||=uiui=1 (5-10) 3. 抽取一个源的算法
1)求代价函数的常规梯度和常规随机梯度 因为 yi=uiz,所以有
E[yi]=uiE[zz]ui=||ui||
T44
φ(ui)=|k4(uTz)|=|E[(uz)]−3||u||| iii
2
T
T
2
T
2T
常规梯度为:
∂φ(ui)T32
z)]{[z(uz)]3u||u||} (5-11) =4sgn[k4(uTE−iiii
∂ui⎧⎪+1T
其中,sgn[k4(uiz)]=⎨
⎪⎩−1
常规随机梯度为:
k4(uTiz)>0k4(uz)
T
i
∂φ(u)T32
∇φ(yi)==4sgn[k4(uT)]{()−3||||} (5-12) zzuzuuiiii
∂ui
2)迭代更新方程
在批处理算法中采用常规梯度,ui的迭代更新方程为:
ui(k+1)=ui(k)+μ⋅∂φ(ui)/∂ui
=ui(k)+μ⋅4sgn[k4(uz)]{E[z(uz)]−3ui||ui||}
T
T
3
Ti
Ti
3
2
ui(k+1)=αui(k)+μ⋅4sgn[k4(uiz)]{E[z(uiz)]} (5-13) 其中,α=(1−12μ⋅sgn[k4(uiz)]||ui||)。 在自适应算法中采用常规随机梯度,ui的更新方程为:
T
2
ui(k+1)=ui(k)+μ⋅∇φ(ui)
=αui(k)+μ⋅4sgn[k4(uz)]{z(k)[u(k)z(k)]}
Ti
Ti
3
(5-14)
3)归一化
为了满足式(5-10)的约束条件,需要对式(5-13)或式(5-14)的每一次计算 结果进行归一化处理,即
ui(k+1)
→ui(k+1) (5-15)
||ui(k+1)||
考虑到归一化的作用,式(5-13)和式(5-14)可以简化为:
ui(k+1)=ui(k)+μisgn[k4(uiz)]{E[z(uiz)]} (5-16)
T3
ui(k+1)=ui(k)+μisgn[k4(uTz)]{z(k)[u(k)z(k)]} (5-17) ii
T
T
3
注意几点:
(1) 批处理算法的每次更新是利用一批数据(比如,z(0),z(1),L,z(K))来进
行处理,而且每次更新所用到的一批数据是相同的;
自适应算法在每次更新时,只利用一个数据点(比如,z(i)),而且每次
更新所用到的数据点是不同的;
(2) 关于sgn[k4(uTiz)]。如果有源信号的非高斯性的先验信息,即源信号是超
高斯的或亚高斯的,则直接用+1或-1替代即可。否则,必须要利用一批 数据来估计k4(uTiz)的正负性。
(3) k4对个别比较大的异常数据点(野点,outlier)很敏感,所以当z(t)中有
一些野点时,可能会导致算法收敛慢或不稳定。
(4) ui(k+1)和ui(k)的方向接近一致时,迭代更新算法趋于收敛。
4. 抽取多个源的算法
从原理上说,只要重复利用“提取一个源的算法”,而且每次取不同的ui(0),就可以逐次地提取出多个源信号。但是,为了保证每次提取出的源信号都是尚未提取过的源信号,必须在重复使用提取一个源的算法之前,将已经提取出来的源信号去掉。
注意到U是一个正交矩阵,只要保证每一个抽取算法确定的ui是相互正交,就能够达到上述的目的,而Gram-Schmidt正交化方法是达到这个目标的一个有效手段。下面做详细的描述。
设已经用了“提取一个源的算法” 1p−次,确定了p−1个正交向量u1,u2, L,up−1,现在第p次利用“提取一个源的算法”,确定第p个向量up,且up正交于u1,u2, L,up−1。
如果在确定up的每一步迭代中,都按照下列方式进行正交归一化,即
正交化:
up(k+1)−
∑
i=1
p−1
p
(k+1),ui>ui→up(k+1) (5-18)
其中,=uTp(k+1)ui是up(k+1)在ui上的投影。 归一化:
up(k+1)||up(k+1)||
→up(k+1) (5-19)
逐次盲提取多个独立源的算法步骤总结如下:
1) 将观测数据x(t)球化,得到z(t) 2) 设N为待提取的源信号的数目,令p=1 3) 任取up(0),且||up(0)||=1
4) 按照式(5-16)或(5-17)迭代更新,得到up(k+1) 5) 按照式(5-18)进行正交化 6) 按照式(5-19)进行归一化 7) 如果up(k+1)未收敛,跳转步骤4) 8) p+1→p,如p≤N,跳转步骤3) 9) 结束
第二节 基于四阶累量和固定点迭代算法的盲源抽取(Fast ICA)
Fast ICA是一种基于批处理方式的快速盲抽取算法,其核心是求解非线性方程根的不动点(固定点)迭代数值算法。
1. 不动点迭代的原理
考虑求解非线性方程f(x)=0的根,不失一般性,假设该方程有一个根x*=a。 如果能将f(x)改写成
f(x)=x−g(x) (5-20) 则求f(x)=0的根等价于求x−g(x)=0的根,即
x=g(x) (5-21) 当x=x*=a时,必有
a=g(a) (5-22) 式(5-22)的含义是:x*=a经过映射g(a)后仍然等于a,即a是g(⋅)的不动点。
采用迭代法求解(5-22)式,其迭代方程为
xk+1=g(xk) (5-23) 可以证明:只要在x迭代时取值的范围内满足
|g′(x)|=|∂g(x)/∂x|
2. 牛顿迭代法
仍然考虑求解非线性方程f(x)=0的根。
将f(x)在xk的邻域内泰勒展开,并做一阶近似,得到
f(x)≈f(xk)+f′(xk)(x−xk) (5-25) 则f(x)=0的根近似为
xk+1=xk−
f(xk)
(5-26) f′(xk)
可见,牛顿迭代法求解方程根,其迭代过程也可以纳入“不动点迭代”的框架中。
只要选择的初始点接近方程的根,则不动点迭代过程能够快速地收敛。
3. 基于四阶累量准则的不动点算法
由(5-11)式可知:
∂φ(ui)/∂ui=4sgn[k4(uiz)]{E[z(uiz)]−3ui||ui||} (5-27) 当算法收敛时,有||ui||2,以及∂φ(yi)/∂ui=0,所以有
TT32
3ui=E[z(uiz)] (5-28) (5-28)式具有(5-21)式的形式,故可以用不动点迭代法求解。
T3
迭代更新:
ui(k+1)=E[z(ui(k)z)] (5-29) 归一化:
T
3
ui(k+1)
→ui(k+1) (5-30)
||ui(k+1)||
注意,考虑到迭代之后的归一化,迭代方程中的系数3可以省掉。
用式(5-28)替代式(5-16),就得到了基于不动点迭代的盲源抽取算法,再结合
Gram-Schmidt正交化方法,可以依次抽取出所有的源信号。由于采用不动点该迭代算法无需引入步长参数μi以及sgn[k4(uT所以应用简单方便,同时其具有较快的收敛速度,iz)],
ICA。 因此通常将采用不动点迭代算法的盲源抽取称为快速ICA算法,简称 Fast
应该注意到, Fast ICA算法虽然在形式上如“在线(on-line)算法”一样有迭代更新,但实际上是批处理算法,即反复地利用“一组数据”进行迭代计算,直至算法收敛。
在这里,有必要说明“recursive algorithm(递推算法)”和“iterative algorithm(迭代算法)”的一些细微差别。递推算法的每次更新要用到新的数据,而迭代算法的每次更新则用相同的数据或不需要输入新的数据;另外更新的标记k对两者也意义不同,对迭代算法,k仅仅代表更新的次数,而递推算法的k既代表新输入数据的时间,又代表更新的次数。由此可以看出,通常的在线(自适应)算法是属于“递推算法”,而Fast ICA算法是属于“迭代算法”。
Fast ICA由于反复使用所有数据,充分挖掘了数据的信息,而在线算法的各时刻数据仅适用一次,因此在收敛速度上Fast ICA比在线算法要快得多,收敛所需要的数据量比在线算法少。
第三节 基于负熵和固定点迭代算法的盲源抽取
本节将介绍基于负熵准则的Fast ICA算法。 1. 负熵的近似表示
盲源抽取的目标是求一个向量wi使得
yi=wTix=ajsj
(5-31)
(5-31)式可以解释为:在N维的线性向量空间中,寻找一个向量wi,使得接收到的混合信号向量x在向量wi的投影只含有一个源信号,即投影方向向量wi的选取应满足投影后数据yi的非高斯性最强。而yi非高斯性可以采用负熵来度量,即
J[p(yi)]=HG(yi)−H(yi) (5-32) 由于yi负熵的计算要已知概率分布,其通常难以获得,因此需要用近似的方法估计负熵。
在第三章,我们介绍了采用高阶统计量来近似负熵,其主要缺点是:数据中的野点 (outliers)对估计的结果影响很大,因此估计结果不够稳健。为此,文献[3]给出了一种非多项式函数逼近的方法估计负熵。
如果yi为零均值和单位方差,则经过一些推导和分析后,负熵可以近似表示为:
J(yi)=c[E{G(yi)}−E{G(v)}] (5-33) 其中的G(⋅)为非二次型的函数,v~N(0,1),yi是输出信号,c为常量。
2
2. 基于负熵的代价函数
为了寻找满足(5-31)式的wi,可采用下列的代价函数,即
φ(wi)=[E{G(yi)}−E{G(v)}]2 (5-34)
T
另外,为保证E[yi2]=1,还应该满足下列的约束条件,即
E[(wix)]=1 (5-35) 综合式(5-34)和(5-35),wi的求解问题可以描述为下列的约束最优化问题:
wi=argmax{φ(wi)} (5-36)
wi
2
s. t. E{(wix)}=1 (5-37)
T2
可以证明,如果G(⋅)满足:
E{sjg(sj)−g′(sj)}[E{G(sj)}−E{G(v)}]>0 (5-38) 其中sj为源信号,G(⋅)是一个平滑的偶函数,g(⋅)为G(⋅)的1阶导数,g′(⋅)为G(⋅)的2阶导数;则式(5-36)和(5-37)的解wi是H−1的某一行。
G(⋅)有三种典型的选择: 1)选择1
G1(x)=
1
log[cosh(a1x)],g1(x)=G1′(x)=tanh(a1x) (5-39) a1
其中,1≤a1≤2是常数。对大多数应用而言,这个一个比较好的选择。
2)选择2
12
′(x)=xexp(−a2x2/2) (5-40) G2(x)=−exp(−a2x/2),g2(x)=G2
a2
其中,a2≈1是常数。这个选择非常适合于源信号具有较强的超高斯性,或要求 对野点有非常好的稳健性。 3)选择3
G3(x)=
14
′(x)=x3 (5-41) x,g3(x)=G3
4
2
(x),很明显,G3(⋅)比较适合于源信号具有亚高 这个选择使得代价函数φ(wi)∝k4
斯性,且观测的数据中没有或有很少野点。
G(v)与wi无关。应该注意到,因此,一旦选定了G(⋅),φ(wi)的极大化等价于E{G(yi)}的极大化或极小化,或者说,φ(wi)的极大值点与E{G(yi)}的极值点是一致的!
2
由此可知,在约束条件E{(wTix)}=1下,确定φ(wi)的极大值点的方程为
即
∂∂2
E{G(wTx)}−βE{(wTiix)}=0 (5-42) ∂wi∂wi
T
E{xg(wix)}−βCwi=0 (5-43) 其中C=E[xxT],β为待定的常数。
3. 采用二步法的盲抽取
第一步是球化,其方法如前面介绍的方法相同,这里不再赘述。球化后的数据向量为
z,E[zzT]=I,
第二步是确定ui。将(5-43)式中的x和wi分别用z和ui替代,得到极值点ui应满足的方程,即
f(ui)=E{zg(uiz)}−βui=0 (5-44)
2TTT
而ui的约束条件是E{(uTiz)}=uiE[zz]ui=uiui=1。
T
1)确定ui的不动点迭代法 迭代更新:
ui(k+1)=E{zg[ui(k)z]} (5-45) 归一化:
T
u(k+1)
→ui(k+1) (5-46)
||ui(k+1)||
但是,研究表明该方法的收敛性能不够好。
2)确定ui的牛顿迭代法
为了应用牛顿迭代法,需要求向量f(ui)对向量ui的微分,这是一个矩阵,即
∂f(ui)
=E[zzTg′(uTiz)]−βI (5-47)
∂ui
T
′T利用E[zzTg′(uTiz)]≈E[zz]E[g(uiz)]化简(5-47)式,得到
∂f(ui)
={E[g′(uTiz)]−β}I (5-48) ∂ui
所以采用牛顿迭代法的迭代更新方程为
ui(k+1)=ui(k)−[f′(ui(k))]f[ui(k)] (5-49) 即
−1
E{zg(uTi(k)z)}−βui(k) ui(k+1)=ui(k)− (5-50) T
E[g′(ui(k)z)]−β
化简(5-50)式得到
T′z−uE{zg[uT(k)]}E{g[ii(k)z]} (5-51) ui(k+1)=−T
E[g′(ui(k)z)]−β
考虑到(5-51)式的分母为标量以及归一化的作用,则确定ui的牛顿迭代法如下:
迭代更新:
ui(k+1)=E{zg[ui(k)z]}−E{g′[ui(k)z]}ui(k) (5-52) 归一化:
T
T
ui(k+1)
→ui(k+1) (5-53)
||ui(k+1)||
研究表明:牛顿迭代法比不动点迭代具有更好的收敛性能。
4. 采用一步法的盲抽取
一步法直接利用x确定wi,无须球化过程。将(5-43)式写为
CE{xg(wix)}−βwi=0 (5-54) 这里要注意到wi的约束条件不是wTiwi=1,而是
−1T
E{(wix)}=wiCwi=1 (5-55)
采用与上述相同的推导过程,得到基于不动点迭代法和基于牛顿迭代法的一步盲抽取算法。
T2T
1)确定wi的不动点迭代法 迭代更新:
wi(k+1)=CE{xg[wi(k)x]} (5-56) 归一化:
−1
T
→wi(k+1) (5-57)
2)确定wi的牛顿迭代法 迭代更新:
wi(k+1)=CE{xg[wi(k)x]}−E{g′[wi(k)x]}wi(k) (5-58) 归一化:
−1TT
→wi(k+1) (5-59)
5. 迭代过程的稳定化
牛顿法的收敛性与迭代的初始点的选择有很大关系,如果选择的初始点在最优解附近,则迭代过程很快收敛到最优解;反之,如果选择的初始点离最优解较远或选择得不合适,可能导致迭代过程在最优解附近震荡,收敛很慢甚至不收敛。为了避免这种情况,可以引入一个可变的步长,对迭代方程进行修正,提高迭代过程的稳定性。
引入μ(k),0
E{zg(uT(k)z)}−β(k)u(k) ui(k+1)=ui(k)−μ(k)⋅ (5-60) T
′E[g(ui(k)z)]−β(k)
这里β(k)可以设置为
T
β(k)=E[uT(k)zg(u(k)z)] (5-61) i
通常设置步长参数μ(0)=1, 此后μ(k)是随着k的增加逐渐减小,以保证算法的稳定收敛;而μ(k)衰减的快慢程度可以根据实际应用情况而定。
同理,对一步法的迭代方程也可进行同样的修正,即
E{xg(wTi(k)x)}−β(k)wi(k) wi(k+1)=wi(k)−μ(k)⋅ (5-62) T
E[g′(wi(k)x)]−β(k)
T
β(k)=E[wT(k)xg(wii(k)x)] (5-63)
6. 多个源的盲抽取
对于二步法,在第二步确定正交向量时,只要在每次迭代中采用Gram-Schmidt正交化方法,对迭代后的向量进行修正,就能够保证相继抽取出的源信号是不同的。其方法在前面已经介绍过,这里不在赘述。
而对于一步法,只要使得相继抽取出的信号w1x,w2x,L,wp−1x,L不相关,就能保证每次抽取出不同的源信号。
设采用一步法已经估计出p−1个向量w1,w2, L,wp−1,现在第p次利用一步法确定
第p个向量wp,且wpx与w1x,w2x, L,wp−1x不相关,即
E[(wpx)(wix)]=0,i=1,2,L,p−1 (5-64) 在确定wp的每一步迭代中,可采用类似于Gram-Schmidt正交化的去相关运算,然TT
后再进行归一化即可。具体的方法是:
去相关:
wp(k)−
∑p−1
[w
Tp
(k)Cwi]wi→wp(k) i=1
归一化:
wp(k)=
w(k) 很容易验证,采用(5-65)式修正后的wp满足采用(5-64)式。
另外,注意到C=E[xxT],当x为球化后的数据时,C=E[xxT]=I,此时,(式和(5-66)式是一个标准的Gram-Schmidt正交归一化过程。
(5-65)
(5-66)
5-65)
第四节 有色源的的盲源抽取
1. 模型与假设
仍然考虑线性瞬时混合的信号模型,即
x(t)=Hs(t) (5-66) 并有如下一些假设:
1) 关于H:H是满秩矩阵,即rank(H)=N 2) 关于s(t)
(1)s(t)是零均值的“平稳”随机向量 (2)s(t)具有“空间独立性”
对于i≠j和任意的可积函数f(⋅)、g(⋅),有
E[f(si(t))g(sj(t))]=E[f(si(t))]E[g(sj(t))] (5-67) (3)s(t)是有色源,即“具有时间结构”
对于任意的i∈{1,2,L,N},si(t)是可以建模为一个M阶的AR模型,即
si(t)=ξi(t)−
∑bs(t−k) (5-68)
ikik=1
M
其中,ξi(t)是零均值、i.i.d. 的新息过程(innovation process)。对于i≠j,
ξi(t)与ξj(t)是相互独立的,且对于k=1,2,L,M,bik与bjk不完全相同,即
不同的源的时间相关性是不同的。
2.抽取方法
为了能一个一个地抽取出源信号,可反复地使用“抽取-压缩”过程,如图5-2所示。
L
x
1
1
2L
图5-2 抽取-压缩过程示意图
抽取算法:从混合的信号中抽取出某个源信号。
压缩算法:将已经提取出的源信号分量从混合信号中消除掉。
应该注意到,这种“抽取-压缩”的盲源抽取过程,与前几节介绍的方法有所不同。
3. 抽取算法的结构和代价函数
由于每一级的抽取算法和压缩算法是相同的,故下面以第一级为例,介绍抽取算法。 抽取算法的结构示意图如图5-3所示。
y1(t)
图5-3 抽取器的结构示意图
抽取器有两个模块构成,第一个模块是线性组合器w1=[w11,w12,L,w1N]T,其输出为
y1(t)=w1x1(t) (5-69)
其中,第一次提取时x1(t)=x(t)。
第二个模块是由FIR滤波器构成的预测器,其输出信号为
T
%1(t)=y1(t)− y
%∑w
k=1
L
1k1
y(t−k) (5-70)
%1=[w%11,w%12,L,w%1L]T为FIR滤波器的系数向量,且L≥M。 其中,w
%12(t)]达到最小时,有 根据源信号模型和线性预测的原理可知,当E[y
y1(t)=csi(t) 或
y1(t)=0 (5-71) 式中c为常数,i∈{1,2,L,N}。
为了避免y1(t)=0,可以对y1(t)的功率做一约束E[y12(t)]=1。 因此,可以定义如下的代价函数
其中β>0为惩罚因子。
%1问题等价于求解下列代价的求解线性组合器的加权向量w1和滤波器的系数向量w约束最优化问题:
%1)=argminφ(w1,w%1) (5-73) (w1,w
%1w1,w
4.在线自适应的抽取算法
根据式(5-69)、(5-70)和(5-72),可以求得代价函数的常规随机梯度为
%1=∑w%1kx1(t−k)。 其中,x
k=1
L
利用随机梯度,可以构造下列的在线自适应更新算法。
%1(t)x%1−β(1−E(y1(t))]y1(t)x(t)} (5-76) w(t+1)=w(t)−μ1(t){y
2
%1k(t+1)=w%1k(t)−μ%1(t)y%1(t)y1(t−k) (5-77) w
E[y12(t+1)]=E[y12(t)]+(1−λ){E[y12(t)]−y12(t)] (5-77)
%1(t)>0,λ>0为小的步长(或学习速率)。 其中,μ1(t)>0,μ4. 压缩(deflation)算法
不失一般性,假设在第j次“抽取-压缩”过程中,提取出了第j个源信号的波形为
yj(t),现在希望利用压缩算法获得xj+1(t)。
压缩的算法可以表述为:设计一个向量 aj=[aj1,aj2,L,ajN]T,使得
xj+1(t)=xj(t)−ajyj(t) (5-78) 的功率最小,即使得下列的代价函数最小,
由(5-79)式和(5-78)式可得到代价函数的常规随机梯度为
利用随机梯度方法,得到下列的向量aj的自适应更新算法:
aj(t+1)=aj(t)+j(t)yj(t)xj+
1(t) (5-80)
阅读文献
[1] N. DelfosseI, P. Loubaton, Adaptive blind separation of independent sources: A deflation approach,
Signal Processing, 45, 59-83, 1995
[2] A. Hyvarinen, E. Oja, A Fast Fixed-Point Algorithm for Independent Component Analysis, Neural
Computation, 9, 1483–1492, 1997
[3] A. Hyvarinen, Fast and Robust Fixed-Point Algorithms for Independent Component Analysis, IEEE Trans. Neural Networks, Vol.10, No.3, 626-634, 1999
[4] A. Cichocki, R. Thawonmas, On-line Algorithm for Blind Signal Extraction of Arbitrarily Distributed, but
Temporally Correlated Sources Using Second Order Statistics, Neural Processing Letters 12: 91-98, 2000
第五章 盲源抽取
第三、四章讨论的方法是通过批处理算法或自适应算法“一次性”地将所有的源信号分离出来,这种方式可以称为是“并行式的盲源分离”。
本章要讨论的盲源抽取是将源信号一个一个地逐次提取出来,即一次只分离出一个源信号,而且每提取出的源信号都不同,或者每提取出的一个源信号,就将该源信号从混合的信号中去掉,然后再进行下一次提取,这种盲源分离方式称为“串行式的盲源分离”。
仍然考虑线性瞬时混合的信号模型,即
x(t)=Hs(t) (5-1) 从原理上来说,盲源抽取的目标是:设计一个矢量w,使得
wTH=[0,L,0,aj,0L,0] (5-2) 其中,aj≠0是任意一个常数,j∈1,2,LN。如果每次提取操作所对应的aj的位置不同,则经过一系列的提取操作后,就可以分离出所有的源信号。
根据源信号是否具有“时间结构”,可以将盲源提取分为“无色源”的盲提取和“有色源”的盲提取。对这两类不同的源进行盲提取时,所使用的准则和方法有所不同,本章将分别加以介绍。
第一节 基于四阶累量判据的无色源的盲提取
1. 模型与假设
对于(5-1)式的信号模型,有如下一些假设:
1) 关于H
H是满秩矩阵,即rank(H)=N 2) 关于s(t)
(1)s(t)是零均值的“平稳”随机向量 (2)s(t)具有“空间独立性”
对于i≠j和任意的可积函数f(⋅)、g(⋅),有
E[f(si(t))g(sj(t))]=E[f(si(t))]E[g(sj(t))] (5-3)
(3)s(t)具有“时间独立性”,或“没有时间结构”
对于任意的i,si(t)是一个i.i.d.的随机过程,所以有
E[f(si(t))g(si(t−τ))]=E[f(si(t))]E[g(si(t−τ))] ∀τ≠0 (5-4) (4)s(t)的所有分量信号都是非高斯的,且四阶累量k4(si)≠0,i=1,2,L,N。 2. 求解步骤和代价函数
求解步骤采用“二步法”,如下图所示。
W=UQ
图5-1 二步法示意图
第一步:球化(空间解相关)。对x(t)进行球化处理的方法与前二章介绍的方法相同,可以用批处理算法实现,也可以用自适应算法来实现。
第二步:盲提取。依次求解一组正交向量u1,u2,L,uN,分别对球化后的信号z(t)进行处理,逐个逐个地分离出源信号。注意,这里的正交向量ui相当于正交变换矩阵U的第i行构成的列向量。
不失一般性,设
yi(t)=uz(t)=其中uik是ui的第k个元素。
由于源信号的各个分量信号si是非高斯的,根据中心极限定量,则yi必定比各个si更接近高斯分布。只有当vik中,k=1,2,L,N,只有一个非零元素时,yi距离高斯分布最远,此时有
T
i
∑u
k=1
N
ikk
z(t)=∑viksk(t) (5-5)
k=1
N
yi=ajsj (5-6)
因为高斯随机变量的四阶累量为0,以及微分熵最大(方差一定时),因此四阶累量或负熵都可以作为任意一个概率密度函数偏离相同方差的高斯概率密度函数程度的度
量,由此能够构造相应的盲提取的代价函数。本小节只讨论用四阶累量构造代价函数,而采用负熵作为代价函数将在后续小节中讨论。
令代价函数为
φ(ui)=|k4(yi)| (5-7)
4
2
2
k4(yi)=E(yi)−3[E(yi)] (5-8) 当yi为高斯分布时,k4(yi)=0,φ(yi)=0;yi偏离高斯分布越远,φ(yi)越大。所以,只要使得φ(yi)达到局部极大值点,就能够提取出一个源信号。
由此可以将求解ui的问题,描述为求解下列的带约束条件的优化问题:
ui=argmax{φ(ui)=|k4(yi)|} (5-9)
ui
s. t. ||ui||=uiui=1 (5-10) 3. 抽取一个源的算法
1)求代价函数的常规梯度和常规随机梯度 因为 yi=uiz,所以有
E[yi]=uiE[zz]ui=||ui||
T44
φ(ui)=|k4(uTz)|=|E[(uz)]−3||u||| iii
2
T
T
2
T
2T
常规梯度为:
∂φ(ui)T32
z)]{[z(uz)]3u||u||} (5-11) =4sgn[k4(uTE−iiii
∂ui⎧⎪+1T
其中,sgn[k4(uiz)]=⎨
⎪⎩−1
常规随机梯度为:
k4(uTiz)>0k4(uz)
T
i
∂φ(u)T32
∇φ(yi)==4sgn[k4(uT)]{()−3||||} (5-12) zzuzuuiiii
∂ui
2)迭代更新方程
在批处理算法中采用常规梯度,ui的迭代更新方程为:
ui(k+1)=ui(k)+μ⋅∂φ(ui)/∂ui
=ui(k)+μ⋅4sgn[k4(uz)]{E[z(uz)]−3ui||ui||}
T
T
3
Ti
Ti
3
2
ui(k+1)=αui(k)+μ⋅4sgn[k4(uiz)]{E[z(uiz)]} (5-13) 其中,α=(1−12μ⋅sgn[k4(uiz)]||ui||)。 在自适应算法中采用常规随机梯度,ui的更新方程为:
T
2
ui(k+1)=ui(k)+μ⋅∇φ(ui)
=αui(k)+μ⋅4sgn[k4(uz)]{z(k)[u(k)z(k)]}
Ti
Ti
3
(5-14)
3)归一化
为了满足式(5-10)的约束条件,需要对式(5-13)或式(5-14)的每一次计算 结果进行归一化处理,即
ui(k+1)
→ui(k+1) (5-15)
||ui(k+1)||
考虑到归一化的作用,式(5-13)和式(5-14)可以简化为:
ui(k+1)=ui(k)+μisgn[k4(uiz)]{E[z(uiz)]} (5-16)
T3
ui(k+1)=ui(k)+μisgn[k4(uTz)]{z(k)[u(k)z(k)]} (5-17) ii
T
T
3
注意几点:
(1) 批处理算法的每次更新是利用一批数据(比如,z(0),z(1),L,z(K))来进
行处理,而且每次更新所用到的一批数据是相同的;
自适应算法在每次更新时,只利用一个数据点(比如,z(i)),而且每次
更新所用到的数据点是不同的;
(2) 关于sgn[k4(uTiz)]。如果有源信号的非高斯性的先验信息,即源信号是超
高斯的或亚高斯的,则直接用+1或-1替代即可。否则,必须要利用一批 数据来估计k4(uTiz)的正负性。
(3) k4对个别比较大的异常数据点(野点,outlier)很敏感,所以当z(t)中有
一些野点时,可能会导致算法收敛慢或不稳定。
(4) ui(k+1)和ui(k)的方向接近一致时,迭代更新算法趋于收敛。
4. 抽取多个源的算法
从原理上说,只要重复利用“提取一个源的算法”,而且每次取不同的ui(0),就可以逐次地提取出多个源信号。但是,为了保证每次提取出的源信号都是尚未提取过的源信号,必须在重复使用提取一个源的算法之前,将已经提取出来的源信号去掉。
注意到U是一个正交矩阵,只要保证每一个抽取算法确定的ui是相互正交,就能够达到上述的目的,而Gram-Schmidt正交化方法是达到这个目标的一个有效手段。下面做详细的描述。
设已经用了“提取一个源的算法” 1p−次,确定了p−1个正交向量u1,u2, L,up−1,现在第p次利用“提取一个源的算法”,确定第p个向量up,且up正交于u1,u2, L,up−1。
如果在确定up的每一步迭代中,都按照下列方式进行正交归一化,即
正交化:
up(k+1)−
∑
i=1
p−1
p
(k+1),ui>ui→up(k+1) (5-18)
其中,=uTp(k+1)ui是up(k+1)在ui上的投影。 归一化:
up(k+1)||up(k+1)||
→up(k+1) (5-19)
逐次盲提取多个独立源的算法步骤总结如下:
1) 将观测数据x(t)球化,得到z(t) 2) 设N为待提取的源信号的数目,令p=1 3) 任取up(0),且||up(0)||=1
4) 按照式(5-16)或(5-17)迭代更新,得到up(k+1) 5) 按照式(5-18)进行正交化 6) 按照式(5-19)进行归一化 7) 如果up(k+1)未收敛,跳转步骤4) 8) p+1→p,如p≤N,跳转步骤3) 9) 结束
第二节 基于四阶累量和固定点迭代算法的盲源抽取(Fast ICA)
Fast ICA是一种基于批处理方式的快速盲抽取算法,其核心是求解非线性方程根的不动点(固定点)迭代数值算法。
1. 不动点迭代的原理
考虑求解非线性方程f(x)=0的根,不失一般性,假设该方程有一个根x*=a。 如果能将f(x)改写成
f(x)=x−g(x) (5-20) 则求f(x)=0的根等价于求x−g(x)=0的根,即
x=g(x) (5-21) 当x=x*=a时,必有
a=g(a) (5-22) 式(5-22)的含义是:x*=a经过映射g(a)后仍然等于a,即a是g(⋅)的不动点。
采用迭代法求解(5-22)式,其迭代方程为
xk+1=g(xk) (5-23) 可以证明:只要在x迭代时取值的范围内满足
|g′(x)|=|∂g(x)/∂x|
2. 牛顿迭代法
仍然考虑求解非线性方程f(x)=0的根。
将f(x)在xk的邻域内泰勒展开,并做一阶近似,得到
f(x)≈f(xk)+f′(xk)(x−xk) (5-25) 则f(x)=0的根近似为
xk+1=xk−
f(xk)
(5-26) f′(xk)
可见,牛顿迭代法求解方程根,其迭代过程也可以纳入“不动点迭代”的框架中。
只要选择的初始点接近方程的根,则不动点迭代过程能够快速地收敛。
3. 基于四阶累量准则的不动点算法
由(5-11)式可知:
∂φ(ui)/∂ui=4sgn[k4(uiz)]{E[z(uiz)]−3ui||ui||} (5-27) 当算法收敛时,有||ui||2,以及∂φ(yi)/∂ui=0,所以有
TT32
3ui=E[z(uiz)] (5-28) (5-28)式具有(5-21)式的形式,故可以用不动点迭代法求解。
T3
迭代更新:
ui(k+1)=E[z(ui(k)z)] (5-29) 归一化:
T
3
ui(k+1)
→ui(k+1) (5-30)
||ui(k+1)||
注意,考虑到迭代之后的归一化,迭代方程中的系数3可以省掉。
用式(5-28)替代式(5-16),就得到了基于不动点迭代的盲源抽取算法,再结合
Gram-Schmidt正交化方法,可以依次抽取出所有的源信号。由于采用不动点该迭代算法无需引入步长参数μi以及sgn[k4(uT所以应用简单方便,同时其具有较快的收敛速度,iz)],
ICA。 因此通常将采用不动点迭代算法的盲源抽取称为快速ICA算法,简称 Fast
应该注意到, Fast ICA算法虽然在形式上如“在线(on-line)算法”一样有迭代更新,但实际上是批处理算法,即反复地利用“一组数据”进行迭代计算,直至算法收敛。
在这里,有必要说明“recursive algorithm(递推算法)”和“iterative algorithm(迭代算法)”的一些细微差别。递推算法的每次更新要用到新的数据,而迭代算法的每次更新则用相同的数据或不需要输入新的数据;另外更新的标记k对两者也意义不同,对迭代算法,k仅仅代表更新的次数,而递推算法的k既代表新输入数据的时间,又代表更新的次数。由此可以看出,通常的在线(自适应)算法是属于“递推算法”,而Fast ICA算法是属于“迭代算法”。
Fast ICA由于反复使用所有数据,充分挖掘了数据的信息,而在线算法的各时刻数据仅适用一次,因此在收敛速度上Fast ICA比在线算法要快得多,收敛所需要的数据量比在线算法少。
第三节 基于负熵和固定点迭代算法的盲源抽取
本节将介绍基于负熵准则的Fast ICA算法。 1. 负熵的近似表示
盲源抽取的目标是求一个向量wi使得
yi=wTix=ajsj
(5-31)
(5-31)式可以解释为:在N维的线性向量空间中,寻找一个向量wi,使得接收到的混合信号向量x在向量wi的投影只含有一个源信号,即投影方向向量wi的选取应满足投影后数据yi的非高斯性最强。而yi非高斯性可以采用负熵来度量,即
J[p(yi)]=HG(yi)−H(yi) (5-32) 由于yi负熵的计算要已知概率分布,其通常难以获得,因此需要用近似的方法估计负熵。
在第三章,我们介绍了采用高阶统计量来近似负熵,其主要缺点是:数据中的野点 (outliers)对估计的结果影响很大,因此估计结果不够稳健。为此,文献[3]给出了一种非多项式函数逼近的方法估计负熵。
如果yi为零均值和单位方差,则经过一些推导和分析后,负熵可以近似表示为:
J(yi)=c[E{G(yi)}−E{G(v)}] (5-33) 其中的G(⋅)为非二次型的函数,v~N(0,1),yi是输出信号,c为常量。
2
2. 基于负熵的代价函数
为了寻找满足(5-31)式的wi,可采用下列的代价函数,即
φ(wi)=[E{G(yi)}−E{G(v)}]2 (5-34)
T
另外,为保证E[yi2]=1,还应该满足下列的约束条件,即
E[(wix)]=1 (5-35) 综合式(5-34)和(5-35),wi的求解问题可以描述为下列的约束最优化问题:
wi=argmax{φ(wi)} (5-36)
wi
2
s. t. E{(wix)}=1 (5-37)
T2
可以证明,如果G(⋅)满足:
E{sjg(sj)−g′(sj)}[E{G(sj)}−E{G(v)}]>0 (5-38) 其中sj为源信号,G(⋅)是一个平滑的偶函数,g(⋅)为G(⋅)的1阶导数,g′(⋅)为G(⋅)的2阶导数;则式(5-36)和(5-37)的解wi是H−1的某一行。
G(⋅)有三种典型的选择: 1)选择1
G1(x)=
1
log[cosh(a1x)],g1(x)=G1′(x)=tanh(a1x) (5-39) a1
其中,1≤a1≤2是常数。对大多数应用而言,这个一个比较好的选择。
2)选择2
12
′(x)=xexp(−a2x2/2) (5-40) G2(x)=−exp(−a2x/2),g2(x)=G2
a2
其中,a2≈1是常数。这个选择非常适合于源信号具有较强的超高斯性,或要求 对野点有非常好的稳健性。 3)选择3
G3(x)=
14
′(x)=x3 (5-41) x,g3(x)=G3
4
2
(x),很明显,G3(⋅)比较适合于源信号具有亚高 这个选择使得代价函数φ(wi)∝k4
斯性,且观测的数据中没有或有很少野点。
G(v)与wi无关。应该注意到,因此,一旦选定了G(⋅),φ(wi)的极大化等价于E{G(yi)}的极大化或极小化,或者说,φ(wi)的极大值点与E{G(yi)}的极值点是一致的!
2
由此可知,在约束条件E{(wTix)}=1下,确定φ(wi)的极大值点的方程为
即
∂∂2
E{G(wTx)}−βE{(wTiix)}=0 (5-42) ∂wi∂wi
T
E{xg(wix)}−βCwi=0 (5-43) 其中C=E[xxT],β为待定的常数。
3. 采用二步法的盲抽取
第一步是球化,其方法如前面介绍的方法相同,这里不再赘述。球化后的数据向量为
z,E[zzT]=I,
第二步是确定ui。将(5-43)式中的x和wi分别用z和ui替代,得到极值点ui应满足的方程,即
f(ui)=E{zg(uiz)}−βui=0 (5-44)
2TTT
而ui的约束条件是E{(uTiz)}=uiE[zz]ui=uiui=1。
T
1)确定ui的不动点迭代法 迭代更新:
ui(k+1)=E{zg[ui(k)z]} (5-45) 归一化:
T
u(k+1)
→ui(k+1) (5-46)
||ui(k+1)||
但是,研究表明该方法的收敛性能不够好。
2)确定ui的牛顿迭代法
为了应用牛顿迭代法,需要求向量f(ui)对向量ui的微分,这是一个矩阵,即
∂f(ui)
=E[zzTg′(uTiz)]−βI (5-47)
∂ui
T
′T利用E[zzTg′(uTiz)]≈E[zz]E[g(uiz)]化简(5-47)式,得到
∂f(ui)
={E[g′(uTiz)]−β}I (5-48) ∂ui
所以采用牛顿迭代法的迭代更新方程为
ui(k+1)=ui(k)−[f′(ui(k))]f[ui(k)] (5-49) 即
−1
E{zg(uTi(k)z)}−βui(k) ui(k+1)=ui(k)− (5-50) T
E[g′(ui(k)z)]−β
化简(5-50)式得到
T′z−uE{zg[uT(k)]}E{g[ii(k)z]} (5-51) ui(k+1)=−T
E[g′(ui(k)z)]−β
考虑到(5-51)式的分母为标量以及归一化的作用,则确定ui的牛顿迭代法如下:
迭代更新:
ui(k+1)=E{zg[ui(k)z]}−E{g′[ui(k)z]}ui(k) (5-52) 归一化:
T
T
ui(k+1)
→ui(k+1) (5-53)
||ui(k+1)||
研究表明:牛顿迭代法比不动点迭代具有更好的收敛性能。
4. 采用一步法的盲抽取
一步法直接利用x确定wi,无须球化过程。将(5-43)式写为
CE{xg(wix)}−βwi=0 (5-54) 这里要注意到wi的约束条件不是wTiwi=1,而是
−1T
E{(wix)}=wiCwi=1 (5-55)
采用与上述相同的推导过程,得到基于不动点迭代法和基于牛顿迭代法的一步盲抽取算法。
T2T
1)确定wi的不动点迭代法 迭代更新:
wi(k+1)=CE{xg[wi(k)x]} (5-56) 归一化:
−1
T
→wi(k+1) (5-57)
2)确定wi的牛顿迭代法 迭代更新:
wi(k+1)=CE{xg[wi(k)x]}−E{g′[wi(k)x]}wi(k) (5-58) 归一化:
−1TT
→wi(k+1) (5-59)
5. 迭代过程的稳定化
牛顿法的收敛性与迭代的初始点的选择有很大关系,如果选择的初始点在最优解附近,则迭代过程很快收敛到最优解;反之,如果选择的初始点离最优解较远或选择得不合适,可能导致迭代过程在最优解附近震荡,收敛很慢甚至不收敛。为了避免这种情况,可以引入一个可变的步长,对迭代方程进行修正,提高迭代过程的稳定性。
引入μ(k),0
E{zg(uT(k)z)}−β(k)u(k) ui(k+1)=ui(k)−μ(k)⋅ (5-60) T
′E[g(ui(k)z)]−β(k)
这里β(k)可以设置为
T
β(k)=E[uT(k)zg(u(k)z)] (5-61) i
通常设置步长参数μ(0)=1, 此后μ(k)是随着k的增加逐渐减小,以保证算法的稳定收敛;而μ(k)衰减的快慢程度可以根据实际应用情况而定。
同理,对一步法的迭代方程也可进行同样的修正,即
E{xg(wTi(k)x)}−β(k)wi(k) wi(k+1)=wi(k)−μ(k)⋅ (5-62) T
E[g′(wi(k)x)]−β(k)
T
β(k)=E[wT(k)xg(wii(k)x)] (5-63)
6. 多个源的盲抽取
对于二步法,在第二步确定正交向量时,只要在每次迭代中采用Gram-Schmidt正交化方法,对迭代后的向量进行修正,就能够保证相继抽取出的源信号是不同的。其方法在前面已经介绍过,这里不在赘述。
而对于一步法,只要使得相继抽取出的信号w1x,w2x,L,wp−1x,L不相关,就能保证每次抽取出不同的源信号。
设采用一步法已经估计出p−1个向量w1,w2, L,wp−1,现在第p次利用一步法确定
第p个向量wp,且wpx与w1x,w2x, L,wp−1x不相关,即
E[(wpx)(wix)]=0,i=1,2,L,p−1 (5-64) 在确定wp的每一步迭代中,可采用类似于Gram-Schmidt正交化的去相关运算,然TT
后再进行归一化即可。具体的方法是:
去相关:
wp(k)−
∑p−1
[w
Tp
(k)Cwi]wi→wp(k) i=1
归一化:
wp(k)=
w(k) 很容易验证,采用(5-65)式修正后的wp满足采用(5-64)式。
另外,注意到C=E[xxT],当x为球化后的数据时,C=E[xxT]=I,此时,(式和(5-66)式是一个标准的Gram-Schmidt正交归一化过程。
(5-65)
(5-66)
5-65)
第四节 有色源的的盲源抽取
1. 模型与假设
仍然考虑线性瞬时混合的信号模型,即
x(t)=Hs(t) (5-66) 并有如下一些假设:
1) 关于H:H是满秩矩阵,即rank(H)=N 2) 关于s(t)
(1)s(t)是零均值的“平稳”随机向量 (2)s(t)具有“空间独立性”
对于i≠j和任意的可积函数f(⋅)、g(⋅),有
E[f(si(t))g(sj(t))]=E[f(si(t))]E[g(sj(t))] (5-67) (3)s(t)是有色源,即“具有时间结构”
对于任意的i∈{1,2,L,N},si(t)是可以建模为一个M阶的AR模型,即
si(t)=ξi(t)−
∑bs(t−k) (5-68)
ikik=1
M
其中,ξi(t)是零均值、i.i.d. 的新息过程(innovation process)。对于i≠j,
ξi(t)与ξj(t)是相互独立的,且对于k=1,2,L,M,bik与bjk不完全相同,即
不同的源的时间相关性是不同的。
2.抽取方法
为了能一个一个地抽取出源信号,可反复地使用“抽取-压缩”过程,如图5-2所示。
L
x
1
1
2L
图5-2 抽取-压缩过程示意图
抽取算法:从混合的信号中抽取出某个源信号。
压缩算法:将已经提取出的源信号分量从混合信号中消除掉。
应该注意到,这种“抽取-压缩”的盲源抽取过程,与前几节介绍的方法有所不同。
3. 抽取算法的结构和代价函数
由于每一级的抽取算法和压缩算法是相同的,故下面以第一级为例,介绍抽取算法。 抽取算法的结构示意图如图5-3所示。
y1(t)
图5-3 抽取器的结构示意图
抽取器有两个模块构成,第一个模块是线性组合器w1=[w11,w12,L,w1N]T,其输出为
y1(t)=w1x1(t) (5-69)
其中,第一次提取时x1(t)=x(t)。
第二个模块是由FIR滤波器构成的预测器,其输出信号为
T
%1(t)=y1(t)− y
%∑w
k=1
L
1k1
y(t−k) (5-70)
%1=[w%11,w%12,L,w%1L]T为FIR滤波器的系数向量,且L≥M。 其中,w
%12(t)]达到最小时,有 根据源信号模型和线性预测的原理可知,当E[y
y1(t)=csi(t) 或
y1(t)=0 (5-71) 式中c为常数,i∈{1,2,L,N}。
为了避免y1(t)=0,可以对y1(t)的功率做一约束E[y12(t)]=1。 因此,可以定义如下的代价函数
其中β>0为惩罚因子。
%1问题等价于求解下列代价的求解线性组合器的加权向量w1和滤波器的系数向量w约束最优化问题:
%1)=argminφ(w1,w%1) (5-73) (w1,w
%1w1,w
4.在线自适应的抽取算法
根据式(5-69)、(5-70)和(5-72),可以求得代价函数的常规随机梯度为
%1=∑w%1kx1(t−k)。 其中,x
k=1
L
利用随机梯度,可以构造下列的在线自适应更新算法。
%1(t)x%1−β(1−E(y1(t))]y1(t)x(t)} (5-76) w(t+1)=w(t)−μ1(t){y
2
%1k(t+1)=w%1k(t)−μ%1(t)y%1(t)y1(t−k) (5-77) w
E[y12(t+1)]=E[y12(t)]+(1−λ){E[y12(t)]−y12(t)] (5-77)
%1(t)>0,λ>0为小的步长(或学习速率)。 其中,μ1(t)>0,μ4. 压缩(deflation)算法
不失一般性,假设在第j次“抽取-压缩”过程中,提取出了第j个源信号的波形为
yj(t),现在希望利用压缩算法获得xj+1(t)。
压缩的算法可以表述为:设计一个向量 aj=[aj1,aj2,L,ajN]T,使得
xj+1(t)=xj(t)−ajyj(t) (5-78) 的功率最小,即使得下列的代价函数最小,
由(5-79)式和(5-78)式可得到代价函数的常规随机梯度为
利用随机梯度方法,得到下列的向量aj的自适应更新算法:
aj(t+1)=aj(t)+j(t)yj(t)xj+
1(t) (5-80)
阅读文献
[1] N. DelfosseI, P. Loubaton, Adaptive blind separation of independent sources: A deflation approach,
Signal Processing, 45, 59-83, 1995
[2] A. Hyvarinen, E. Oja, A Fast Fixed-Point Algorithm for Independent Component Analysis, Neural
Computation, 9, 1483–1492, 1997
[3] A. Hyvarinen, Fast and Robust Fixed-Point Algorithms for Independent Component Analysis, IEEE Trans. Neural Networks, Vol.10, No.3, 626-634, 1999
[4] A. Cichocki, R. Thawonmas, On-line Algorithm for Blind Signal Extraction of Arbitrarily Distributed, but
Temporally Correlated Sources Using Second Order Statistics, Neural Processing Letters 12: 91-98, 2000