盲源分离问题综述摘要:盲源分离,是从观测到的混合信号中恢复不可观测的源信号的问题。作为阵列信号处理的一种新技术,近几年来受到广泛关注。本文主要阐述了盲源分离问题的数学模型、典型算法以及盲源分离的应用,并结合盲源分离问题的研究现状,分析了其未来的发展方向。主题词:盲源分离;盲源分离的典型算法1.引言盲信号分离问题起源于人们对“鸡尾酒会”问题的研究。在某个聚会上,我们正在相互交谈,同一时刻同一场景下其他人的交谈也在同时进行着,可能还有乐队的音乐伴奏,这时整个会场上是一片嘈杂。但是非常奇妙的是,作为交谈对象的双方,我们能够在这混乱的众多声音中很清晰的听到对方的话语,当然,如果我们偶尔走神,将精力放在乐队奏出的音乐时,我们也同样可以听清楚音乐的主旋律。这种可以从由许多声音所构成的混合声音中选取自己需要的声音而忽视其他声音的现象就是鸡尾酒会效应。如何在这种从观察到的混合信号中分离出源信号的问题就是所谓的盲分离(BlindSignalSeparation,BSS)问题,有时也被称为盲源分离(BlindSourceSeparation)问题。1986年,法国学者JeannyHerault和ChristianJutten提出了递归神经网络模型和基于Hebb学习律的学习算法,以实现两个独立源信号混合的分离,这一篇开创性论文的发表使盲源分离问题的研究有了实质性的进展。随着数字信号处理理论和技术的发展以及相关学科的不断深入,大量有效的盲分离算法不断被提出,使盲分离问题逐渐成为当今信息处理领域中最热门的研究课题之一,在无线通信、图象处理、地震信号处理、阵列信号处理和生物医学信号处理等领域得到了广泛的应用。2.盲源分离问题的数学模型盲源分离是指在不知道源信号和信道传输参数的情况下,根据输入信号的统计特性,仅由观测信号恢复出源信号各个独立成分的过程。盲源分离研究的信号模型主要有三种:线性混合模型、卷积混合模型和非线性混合模型。2.1线性混合模型线性混合模型在神经网络、信号处理等研究中常常用到,其数学模型描述为:𝑆1(𝑡),𝑆2(𝑡)…𝑆𝑛(𝑡)是一个随机的时间序列,用m个话筒表示接收到的混合信号,用𝑋1(𝑡),𝑋2(𝑡)…𝑋𝑚(𝑡)来表示。它们有如下关系:{𝑋1(𝑡)=𝑎11𝑆1(𝑡)+⋯+𝑎1𝑛𝑆𝑛(𝑡)…𝑋𝑚(𝑡)=𝑎𝑚1𝑆1(𝑡)+⋯+𝑎𝑚𝑛𝑆𝑛(𝑡)其中{𝑎𝑖𝑗}是未知的混合系数,在线性瞬时混合中,一般假定{aij}是未知的常数矩阵。盲源分离需要解决的问题就是如何从接收到的观察信号中估计出源信号𝑆1(𝑡),𝑆2(𝑡)…𝑆𝑛(𝑡)和混合矩阵的过程。实际上式还应该存在一个干扰存项,如果考虑到噪声的存在,那么上式可以推广到更一般的情况,即为:X(t)=AS(t)+n(t)X(t)=(𝑋1(𝑡),𝑋2(𝑡)…𝑋𝑚(𝑡))为接收到的m维随机向量,又称为观察向量,也是唯一可以利用的条件,S(t)=(𝑆1(𝑡),𝑆2(𝑡)…𝑆𝑛(𝑡))是n维独立的源信号组成的向量,又称为隐含向量,因为它们是未知的观察不到的向量,有时也称为独立分量,n(t)为噪声向量,A是{𝑎𝑖𝑗}系数组成的混合矩阵。盲分离问题就是求得一个分离矩阵W,通过W就可以仅从观察信号X(t)中恢复出源信号S(t)。设y(t)是源信号的估计矢量,则分离系统可由下式表示:Y(t)=WX(t)2.2卷积混合模型考虑到延迟和滤波的混迭信号的线性混合,这通常被称为卷积混合,其数学模型描述为:Y(t)=∑𝑊(k)x(t−k)∞𝑘=−∞因为传输的延时以及接收系统频响的差异,瞬时混合系统盲分离算法一般不能够处理卷积混合问题。一类很有研究前景的方法就是频域盲源分离算法,利用频域算法可以提高BSS方法的收敛速度和学习速度,另外时域卷积问题可以变换为频域相乘问题。2.3非线性混合模型非线性混合是一种研究最为广泛的模型,即将源信号线性混合后再通过一个非线性函数得到观察信号,其数学模型描述为:Y(t)=f(Z(t))=f(AS(t))求解时首先寻找一个非线性函数g(t),使得g(t)=f−1(t),即非线性的校正阶段,然后同线性瞬时混合的盲分离求解一样寻找一个分离矩阵从而求得源信号的近似。3.盲源分离问题的典型算法3.1H-J算法Herault和Jutten可能是最早对盲源分离问题进行研究的,他们引进了仿神经的算法,是一种逐步调整权重的神经网络。图一H-J算法仿神经网络由图可知,Y(t)=X(t)-WY(t),即Y(t)=(I+W)−1X(t),算法的实质就是引入了信号的高阶统计信息,不过由于学习每一步过程中都要对矩阵(I+W)求逆,导致运算量增加。H-J算法中非线形函数的选取具有随意性,在理论上没有给出令人满意的收敛性证明,但是在实际应用中的收敛性相当不错。不过需要注意的是H-J算法仅用于观察信号数目与源信号数目相同的情况下,仍然具有一定的局限性。3.2最大熵算法从信息理论角度来考虑,盲信号分离问题就是一个以分离系统最大熵为准则,利用神经网络或自适应算法,通过非线性函数来间接获得高阶累积量的过程。这种方法的思想就是当神经元输出Z的各个分量𝑧𝑖相互独立时,其熵最大,所以这种方法又称为最大熵算法。Bell和Sejnowski的这种方法是将Linskers的信息传输最大化理论推广到非线性单元来处理任意分布的输入信号。这一原理具体内容如下:假设信号通过S型函数传输时,如果该S型函数的斜率部分与信号的高密部分保持一致时,则可以实现信息的最大化传输。由最大熵原理可以知道,当输出熵最大时,互熵也最大,即有最多的信息通过了可逆变换从输入端传输到输出端。这时输入变量的概率密度函数和可逆变换G之间的关系由Linsker的最多信息原理(InfomaxPrinciple)描述:当函数G的最陡部分与输入变量的最陡概率部分向重合时,最大的信息从输入端传导了输出端。图二最大熵算法网络结构示意图对于最大熵算法所处理的最基本的问题就是要使得一个神经网络处理单元的输出Y(t)中包含的关于其输入X(t)的互信息最大。这个算法只能够分离出超高斯信号的混合,这个限制的重要原因是在算法中使用了非线性函数log,非线性函数是log就相当于强加一个先验知识超高斯分布给源信号。3.3最小互信息算法最小互信息(MinimumMutualInformation,MMI)的基本思想是选择神经网络的权值矩阵W,使得输出Y的各个分量之间的相关性最小化。这里的信号间的相互依赖关系可以用Y的概率密度函数及其各个边缘概率密度函数的乘积间的K-L散度来表示。在使用互信息作为信号分离的代价函数时,对输出的各个分量无需使用非线性变换这种预处理手段。由随机梯度算法得到:𝑑W(t)𝑑𝑡=𝜂(𝑡){𝑊−𝑇−𝜙(𝑌)𝑥𝑇其中𝜂(𝑡)为学习率,𝜙(𝑌)函数的选取与独立元的本身性质有关。函数𝜙(𝑌)的选取对于整个算法的性能有很大的影响,如果知道了真正的概率密度函数,最好的选择就是使用它们,但是实际中我们很难知道这些知识,只能够进行概率密度的自适应估计,所以对这个关键的非线性函数进行研究,也是一个值得关注的问题。3.4最大似然算法最大似然估计(MaximumLikelihoodEstimation,MLE)是利用已经获得的观测样本来估计样本的真实概率密度。具有诸如一致性、方差最小性以及全局最优性等很多优点,但是最大似然估计需要知道关于输入信号概率分布函数的先验知识,这是很难满足的,所以必须尽量避开它。最大似然估计首先是由Girolami和Fyfe于1996年提出用于盲分离问题,而Pearlmutter和Parra从最大似然估计推导出通用的ICA学习规则。目前,最大似然算法是解决盲分离问题的一个非常普遍的方法。通过推导可以得到标准化的最大似然函数:L(x1,x2,…xn;𝜃)=∫𝑝𝑥(𝑥)𝑙𝑜𝑔𝑝𝑥(𝑥;𝜃)dx=−𝐷𝑝𝑥(𝑥)||𝑝𝑥(𝑥;𝜃)−H(𝑝𝑥(𝑥))由此式我们可以发现最大似然函数是由Kullback-Leibler散度和熵值得到的,而第二项的熵不依赖于参数,相当于一个常数项。Cardoso将上式转化为一个盲源分离问题:px(x)为x的概率分布函数,混合信号由X=AS给出,θ=A为所要求的未知的混合矩阵,参数集Θ是一组可逆的N×N的矩阵。这样由上式可以得到最大似然估计的代价函数就变成𝜙𝐿=−𝐷𝑝𝑥(𝑥)||𝑝𝑥(𝑥;𝜃)3.5独立分量分析算法(ICA)信号经过变换后,使不同信号分量之间的相关性最小化,并尽可能相互统计独立。目前已经有很多有效的在线ICA算法,如自然梯度算法、EASI算法、广义ICA算法、灵活ICA算法和迭代求逆ICA算法等。这些算法都可归类为最小均方算法(LMS),但LMS型算法存在收敛速度和稳态性能之间的矛盾,一般有如下几种典型的独立分量分析算法。1.快速定点算法(FastICA)FastICA算法基于非高斯性最大化原理,使用固定点迭代理论寻找𝑊𝑇X的非高斯性最大值。该算法采用牛顿迭代算法,对观测变量X的大量采样点进行批处理,每次从观测信号中分离出一个独立分量,是一种快速的寻优迭代算法。FastICA算法适用于任何非高斯信号,具有良好的收敛性(二次收敛),同时不需要选择学习步长。但该算法只能以批处理的方式进行,不适合实时应用的需要,而且随着信号源个数的增加,算法性能会明显变差。算法的梯度公式如下:∆W=diag(𝛼𝑖){diag(𝛽𝑖)+E[g(y)𝑦𝑇]W式中:αi=-1βi+E[g′(yi)];βi=-E[yig′(yi)]。2.自然梯度算法由于分离矩阵的变化空间是黎曼空间,而自然梯度∂J(y;W)∂WWTW是随机梯度∂J(y;W)∂W在黎曼空间的扩展,所以自然梯度更真实地反映了最速下降方向,同时由于右乘正定矩阵消去了矩阵求逆运算,因此自然梯度算法在收敛速度和稳定性方面都较随机梯度有所改善。梯度公式如下:∆W=μ[I-g(y)yT]W,式中:μ为学习步长3.等变化自适应算法(EASI)EASI算法用相对梯度∂J(y;W)∂W代替一般的随机梯度进行优化计算,是一种将白化过程和去除高阶相关过程同时进行的一种具有等变化性的算法。但是EASI算法需要选取学习率参数,且其选取是否合适直接影响算法的收敛性能,且其对于超高斯信号的收敛速度没有递归最小二乘(RLS)算法快。其梯度公式如下:ΔW=μ[I-yyT+g(y)yT-ygT(y)]W自然梯度算法、EASI算法和迭代求逆算法都具有等变化性,但只适合于亚高斯或超高斯信号单独存在的情况。在亚高斯和超高斯信号同时存在时,可以使用广义ICA算法和灵活ICA算法等自适应算法,但它们的计算比较复杂。3.6非线性PCA算法主分量分析PCA是以输入数据协方差矩阵的最大特征值以及相应的特征向量定义的常规的统计信号处理方法,标准的PCA方法仅仅用到了输入数据的二阶统计量,输出数据之间满足互不相关。将高阶统计量引入标准的PCA方法中就称为非线性PCA(NonlinearPCA,NLPCA)方法,利用非线性PCA可以完成对输入信号的盲分离。高阶统计量是以隐含的方式引入计算的,算法采用自适应迭代的方法,易于工程实现。非线性PCA有两个优点:一是输入-输出间的映射是非线性的,而标准PCA只能够实现线性映射;二是非线性PCA在处理输入数据时,考虑了高阶统计量,而不仅仅是其二阶统计量,这个特性对于盲信号处理是特别有用的。非线性PCA的代价函数为:J(W)=E[||V−W·g(WTV)||2]这里的权值W是m×m的矩阵,g(·)是对矢量的非线性函数,在非线性准则里,g(·)通常是一些奇函数,如亚高斯信号g(t)=tanh(t),超高斯信号g(t)=t3等。3.7非线性混合盲分离算法在非线性混合模型中,盲信号分离算法的分离目标是获取逆线性混合矩阵。非线性盲分离的研究主要有以下几类方法:1.自组织映射(SOM)法