在已知语音信号方向的情况下,波束形成能明显改善语音质量,提高信噪比;然而在实际环境中,人可能是走动的,即使坐立不动,由于身体的扭曲使得语音到达阵列的方向也是变化的,此时波束形成效果受到限制。如果我们能在不知语音信号方向等先验知识的前提下,把混合的语音分离开来,提取感兴趣的语音信号,达到语音增强的目的,这就是独立成分分析(Independent Component Analysis,ICA)。
1 概述
独立成分分析是盲源分离(Blind SourceSepatation,BSS)的一种方法,将混合的信号分离成潜在的信息成分。“盲”的意思即这种方法能在不知或知道很少声源信号属性的情况下将其分离开来。
假设两个说话人同时对着两个位于不同位置的麦克风说话,两个麦克风接收到的信号是两个语音的混合信号,即x1(t)和x2(t),其中x1和 x2表示幅度,t为时间坐标。每个麦克风接收到的信号是两个说话人语音的加权和,假设是线性瞬时混合,则
x1(t) = a11s1+ a12s2
x2(t) = a21s1+ a22s2
其中a11, a12,a21和a21是由说话人与麦克风之间距离决定的参数。盲源分离就是仅利用麦克风接收到的信号x1(t)和x2(t)去估计出原始语音信号s1(t)和s2(t),这就是著名的“鸡尾酒会”问题。
解决这一问题的一种方法就是利用信号si(t)的一些统计信息来估测出aij,从而便解方程组得到s1(t)和s2(t)。在s1(t)和s2(t)统计独立的情况下,独立成分分析能很好解决这一问题。
假设混合变量和独立成分都是零均值的,即使不是零均值,也可通过减去一个平均值使之变为零均值。假设有n个独立成分,用向量和矩阵将独立成分分析模型一般化为
x = As
其中x=[x1 x2 …xn]为麦克风接收到的观察信号,A=[ a11a12 …a1n; a21a22…a2n;…an1an2 …ann]T为混合矩阵,s=[ s1s2 …sn]为待求解的独立信号。这里没有考虑噪声,A和s均是未知的,仅假设si是相互独立的且xi至多只有一个是高斯分布。利用独立成分分析解出A,对其求逆得W=A-1,则独立信号即可解得
s = Wx
一个独立成分分析方法本质是上一个目标函数加上一个自适应更新算法。
2 ICA目标函数
(1) 非高斯性
独立成分非高斯分布是ICA的基本限制,因为如果混合矩阵是正交的且si是高斯分布的,则x1和x2是高斯分布、非相关且具有单位方差,其联合密度曲线完全对称的,它不包含混合矩阵A列方向上的任何信息,因此A是不可估计的。所以非高斯性意味着独立。
假设si具有一致的分布,定义z=ATw,w为W的某一行,则y=wTx=wTAs=zTs为si的线性组合。根据中心极限定理,在一定条件下独立随机变量和的分布比各独立随机变量更接近高斯分布。这样,只要尽可能减少y的高斯性,si就接近于非高斯分布,显然当z中仅有1个非零值时y的高斯性最小,此时y=si。因此,只需要使wTx有最大非高斯性的w就是我们所求的解。
用非高斯性质方法做独立成分分析,需要一个随机变量非高斯性的数学准则。为了便于分析,假设y是零均值且方差为1。常用的标准有以下几种
1) 峰态
峰态,又称4阶累积量,是一种经典的非高斯性准则。y的峰态定义为
kurt(y) = E{y4} – 3(E{y2})2
由于假设y的方差为1,所以右式等于E{y4} – 3,因而峰态仅由E{y4}决定。高斯随机变量的峰态为0,而对于大多数非高斯随机变量,峰态不为0。
峰态值可正可负,具有负峰态的随机变量叫亚高斯随机变量,反之叫超高斯随机变量。超高斯随机变量的概率密度函数曲线两边高中间低,亚高斯随机变量的概率密度函数在零值附近为常数,变量大时峰态很小。
通常用峰态的绝对值或峰态的平方判定变量的非高斯性,其值为0说明是高斯变量,其值越大非高斯性越强。峰态便于计算,假设s1和s2是两个独立随机变量,则
kurt(s1+s2)= kurt(s1)+ kurt(s2)
kurt(αs1) =α4kurt(s1)
其中α为标量。正因为如此,峰态广泛应用于ICA非高斯性的判断标准。
实际应用时可以先初始化权向量w,计算峰态y=wTx增长(峰态为正)或下降(峰态为负)最快的方向,然后运用梯度相关算法更新w,这样就解决了ICA问题。
然而,峰态作为非高斯性判断准则鲁棒性不好,因为它的值由测量采样值估计而来,对异常值极为敏感,因而可能由于采样的原因由异常值计算出错误的峰态。
2) 负熵
负熵是另一种重要的非高斯性判断准则,它由信息论中的熵得来。一个离散随机变量Y的熵H定义为
其中ai是Y的可能取值。将其扩展到连续随机变量和向量便得到微分熵,一个密度为f(y)的随机向量y的微分熵定义为
由信息论知,具有相同方差的随机变量中高斯变量有最大熵,这意味着熵可以作为一种非高斯性判断准则。负熵定义为
J(y) = H(ygauss)– H(y)
其中ygauss是具有和y相同协方差矩阵的高斯随机变量。负熵一定是非负的,仅当y也是高斯分布时负熵为0。
然而,负熵的计算复杂度太大,根据定义就算负熵需要计算概率密度函数,因此,常用负熵的近似值替代以减小计算复杂度。
3) 负熵近似值
经典的负熵近似值是运用高阶成分,如
J( y) ≈ 1/12E{ y 3} 2 + 1/48kurt( y) 2其中随机变量y具有零均值和单位方差。由于右式中包含峰态,因而这种近似的有效性受到限制。为了避免这一问题,可运用最大熵原理,即
其中ki为正常数,v为具有零均值和单位方差的高斯随机变量。变量y假设具有零均值和单位方差,Gi是非二次函数。若仅利用非二次函数,上式近似为
非二次函数G的选取很重要,当G(y)=y4上式等于(5.11)式。下面两个函数G非常有用:
G1(u) = 1/a1logcosh(a1u) ,G2(u) = - exp(-u2/2)
式中1≦a1≦2是合适的常数。这种负熵的近似值是峰态和负熵的折中,简单便于计算,有很好的统计特性,尤其是鲁棒性好。
(2) 最小化互信息最小化互信息是ICA估计的另一种方法。
运用微分熵的概念,m个随机变量yi,i=1…m,的互信息I定义为
互信息是随机变量间独立一种判断方法,它等价于联合密度f(y)与边缘密度和的相对熵。互信息总是非负的,当且仅当变量统计独立其值为0。因此,互信息考虑变量间的整体独立性,而不仅仅是协方差。
由于y=Wx,则根据互信息的性质有
约束yi使之不相关且具有单位方差,即E{yyT}=WE{xxT}WT=I,有
detI = 1 =det WE{xxT}WT=(detW)(det E{xxT})(det WT)
这意味着W必为常数。因为yi具有单位方差,所以熵和负熵仅相差一个常数和符号。因此可得
其中C是一个与W无关的常数。上式表明了互信息和负熵的基本关系,最小化互信息等价于最大化负熵,因而可通过寻找一个W使互信息最小化来实现独立成分分析。
(3) 最大似然估计最大似然估计也是一种常见的ICA估计方法,本质上等价于最小化互信息。
一般的,对于密度为px的随机变量x,y=Wx的密度为px(Wx)|detW|。则长似然定义为
其中fi是si的密度函数。将上式扩展为
实际上,我们不知道独立成分的分布,可以运用ML估计法估计wiTx的密度,将其看做si密度的估计。此时似然和互信息是相同的。
然而,实际应用中最大似然估计和最小化互信息是有一点差别的。最大似然估计必须准确估计密度fi,如果独立成分自然属性信息有误,ML估计可能得到完全错误的结果。