基于改进人工蜂群算法的盲源分离算法
2015-12-05郭业才
郭业才,张 政
(1.南京信息工程大学 电子与信息工程学院,江苏 南京 210044;2.江苏省大气环境与装备技术协同创新中心,江苏 南京 210044)
盲源分离(blind source separation,简称BSS)是当前信号处理领域兴起的研究课题之一,它的任务是在源信号和混合方式都未知的情况下,仅靠传感器接收到的信号恢复出源信号[1].根据对数据的处理方式不同,当前盲源分离算法分为批处理盲源分离算法[2-3]以及自适应处理盲源分离算法两大类.与批处理盲源分离算法相比,自适应盲源分离算法实时跟踪性能强,其中基于自然梯度盲源分离算法(natural gradient algorithm,简称NGA)[4]在采用较大步长进行信号分离时,收敛速度快、分离性能差,在采用较小步长时,分离性能较好、收敛速度较慢;研究还表明,除步长因素外,初始分离矩阵的随机选取会陷入局部收敛,且收敛速度慢.为了同时保持分离性能好、收敛速度快,受文献[5]的启发,引入人工蜂群算法对盲分离算法中的初始分离矩阵进行优化.人工蜂群算法(artificial bee colony algorithm,简称ABC)是一种将蜂群寻觅食物行为的原理应用于函数优化问题上的人工智能算法[6],具备较快的收敛速度以及较好的全局寻优能力,适合盲源分离算法的优化.
作者先对人工蜂群算法进行改进,使该算法在初始阶段能够快速收敛到最优解所在区域,收敛精度更高,再以信号的峰度绝对值作为目标函数,由改进的人工蜂群算法(improved artificial bee colony algorithm,简称IABC)对初始分离矩阵进行优化,最后利用NGA算法进行信号分离.
1 盲源分离算法
n个相互独立的源信号S(t)=[s1(t),s2(t),…,sn(t)]T经过一个未知系统进行混合得到X(t)=[x1(t),x2(t),…,xm(t)]T,X(t)是m个观测信号,假设m=n,当忽略传输延迟效应和噪声后,可以得到
其中:A∈Rn×n是未知系统的一个非奇异混合矩阵.盲源分离算法的目标是在仅知道观测信号X(t)时,通过迭代得到一个满秩的分离矩阵W,以从观测信号中得到分离信号
其中:Y(t)是对源信号S(t)的一个估计.
在进行分离之前对观测信号进行预处理,预处理方法有观测信号中心化及白化两种方法[7].中心化是对观测信号进行去均值,使观测信号为零均值,主要操作是;白化也是常见的一种信号预处理方式,通常是为中心化后的观测信号找到一个白化矩阵V进行线性变换得到,保证变换后的信号Z各分量之间是不相关的,并且它们的方差为1,即E(ZZT)=I.白化矩阵的求解方式是分解观测信号,使为特征向量组成的正交矩阵,而D为特征向量的特征值所组成的对角矩阵,则白化矩阵可以表示为V=BD1/2BT.
盲源分离算法的目标是找到一个最佳的分离矩阵W使得分离信号Y(t)的独立性最大,通常用KL(Kullback-Leibler)散度来进行计算,其表示为
其中:pY(Y)为输出信号的联合概率密度;pY(Yi)为各个分信号的边缘概率密度.式(3)表明,I(Y)≥0,当且仅当各输出信号互相独立时,I(Y)=0,要使分离性能最好必须使I(Y)最小化.利用互信息和信息熵的关系,得到基于最小互信息的盲源分离算法的代价函数为[8]
在NGA准则下,分离矩阵W(t)的更新公式为
其中:μ为算法的步长,I为单位矩阵,f(Y)为非线性的激活函数,选取f(Y)=2tanh(Y)[9].通常盲源分离性能可以用串音误差来衡量,该指标为
其中:C=WA是整个系统的全局矩阵,Cik为矩阵C第i行第k列的元素,PI(C)的值越接近零,说明分离效果越好.
2 人工蜂群算法
2.1 标准的人工蜂群算法
人工蜂群算法是一种将蜂群寻觅食物行为的原理应用于函数优化问题上的人工智能算法.标准的人工蜂群算法中蜜蜂被分为引领蜂、跟随蜂以及侦察蜂3类.在人工蜂群算法的初始阶段,随机产生的种群规模含有SN个解,每一个解θi为一个D维向量,代表一个食物源,每一个解的适应度值代表食物源的质量.在引领蜂阶段,引领蜂将发现食物源的位置记录下来并进行邻域搜索,即
其中:i∈{1,2,…,SN},j∈{1,2,…,D},i≠k;Θij为第i个新食物源位于第j维位置,θij表示第i个原食物源位于第j维位置,θkj表示第k个食物源位于第j维位置;φij为第i个原食物源位于第j维位置产生的随机数,取值范围为[-1,1],控制θij的邻域生成范围.对新食物源进行适应度值计算并与原食物源的适应度值进行比较,如果新食物源的适应度值大于原食物源的值则接受新食物源位置,否则放弃该食物源,由此确定初始食物源的位置.在跟随蜂阶段,引领蜂将食物源的位置以及实物源的质量传递给跟随蜂,跟随蜂根据轮盘赌的形式选择食物源,第i个食物源被选择的概率为
其中:P(Θi)表示第i个食物源被选择的概率,F(Θi)表示第i个食物源的适应度函数,且
其中:J(Θi)是被优化问题的目标函数.对跟随蜂阶段的食物源按式(8)进行邻域搜索,并与初始的食物源进行比较,选择优质食物源作为新的初始食物源.但是在食物源的搜索过程中,若出现某一食物源进行limit次迭代后都不发生变化,则放弃该食物源,此时蜜蜂变为侦察蜂,进入侦察蜂阶段,并重新找到一个新的食物源,即
其中:rand(0,1)为(0,1)之间均匀分布的随机数;θimin与θimax分别为θi的最小值与最大值.
2.2 改进的人工蜂群算法
式(8)表明,人工蜂群算法以当前食物源为基础加上其与邻域食物源的差值得到新的食物源,但是由于邻域的食物源是随机选择的,可能这个食物源比当前食物源好,也有可能更差,无法严格控制新食物源向全局最优方向搜索,也即对于搜索过程的控制力不足,收敛到全局最优食物源的过程比较缓慢[10].针对人工蜂群算法存在的这一不足,在跟随蜂阶段提出了一种改进的搜索方式,引入遗忘因子与邻域因子对搜索过程进行动态调节,提出了一种改进的人工蜂群算法(IABC).搜索过程更新为
其中:η表示遗忘因子,κ是动态邻域因子.为了在搜索过程中充分利用当前食物源与邻域食物源的差异信息找到全局最优,将遗忘因子表示为
相反,为了在搜索后期也具备较好的全局搜索能力,将邻域因子表示为
其中:γ是一个常数.根据当前食物源与邻域食物源的适应度值进行选择,当前食物源的适应度值大于邻域食物源的适应度值时,γ<1;反之,γ>1,且
其中:ωη、ωκ分别表示遗忘因子、邻域因子的动态调节,iter表示蜂群算法的迭代次数,itermax表示最大迭代次数.随着迭代次数iter的增大,ωη的值由大到小变化,而ωκ的值由小到大变化.
为了确定ωη、ωκ中各参数值,设置SN=40,D=10,itermax=1 000,进行8次试验,每次对Sphere函数运行20次.以函数的平均值和收敛到最小值次数作为实验结果,得到了ω1和ω3取值都为0.2,ω2和ω4取值都为1.2,α和β分别取1.8和2.2时,IABC在平均值以及收敛到最小值的次数上,都能取得很好的效果.
为了验证改进后的人工蜂群算法具有更好的收敛性能,分别利用Griewank和Sphere两个函数进行了测试,测试结果表明,与标准的ABC相比,IABC收敛速度更快、串音误差更低.
3 基于改进蜂群算法的盲源分离算法
针对盲源分离自然梯度算法中存在的分离性能指标和收敛速度不能兼顾的问题,将改进的人工蜂群算法应用于盲源分离中,图1为基于改进人工蜂群算法的盲源分离算法原理图.
以信号峰度的绝对值作为优化的目标函数,对盲源分离算法中的初始分离矩阵进行优化.目标函数表示为
其中:kurt(Yi)表示第i个分离信号的峰度,在E(YYT)=I的约束条件下,峰度值越大说明分离信号的独立性越好.
在人工蜂群算法中将求解峰度最大值转化为求解适应度函数的最小值,按式(10)计算适应度值函数.在传统盲源分离中Y(t)=WX(t),初始分离矩阵W(0)是一个n×n的矩阵,在进行人工蜂群算法前需要对其进行处理,在E(YYT)=I的约束条件下,可得
初始分离矩阵W(0)是一个正交矩阵,正交矩阵可以写成一系列旋转矩阵之积[11].由Givens旋转变换[12]可得,求解n×n的正交矩阵问题可以转变为求解n(n-1)/2个旋转角问题.每个食物源的位置向量Θi与待求问题的解一一对应,i∈{1,2,…,SN};Θi为D维,D=n(n-1)/2.
基于改进人工蜂群算法的盲源分离算法步骤如下:
步骤1 对观测信号进行预处理;
步骤2 人工蜂群算法初始化,产生SN个随机食物源作为蜂群的初始食物源,同时给出最大迭代次数itermax、维数D、一个食物源搜索限制次数limit;
步骤3 利用Givens旋转变换得到初始分离矩阵W(0),根据Y(t)=W(0)X(t),计算出Y(t),并对Y(t)进行去均值以及白化处理,用式(16)作为目标函数并按式(10)计算适应度;
步骤4 引领蜂按式(8)搜索新食物源,按式(10)计算适应度并与当前食物源的适应度值进行比较,若大于当前食物源的适应度值,保留新食物源,否则放弃新食物源;
步骤5 跟随蜂根据轮盘赌方式选择食物源,按式(12)搜索新食物源,按式(10)计算适应度并与当前食物源的适应度值进行比较,若大于当前食物源的适应度值,保留新的食物源,否则放弃该食物源;
步骤6 对蜜蜂针对同一个食物源进行觅食的次数进行记录,如果蜜蜂的觅食次数超过设定的limit次数时,那么放弃该食物源,相应的引领蜂变为侦察蜂,按式(11)搜索一个新食物源代替原来的食物源;
步骤7 记录当前的最优食物源,判断是否达到终止条件,如果达到,则输出目前的最优解Θi并转步骤8,否则返回步骤4;
步骤8 根据输出的最优解Θi得到盲源分离的初始分离矩阵W(0),并由式(6)进行分离,得到分离信号.
4 仿真实验
为了验证基于改进人工蜂群算法的盲源分离算法(IABC+NGA)的性能,以基于自然梯度的盲分离算法(NGA)以及基于标准人工蜂群算法的盲分离算法(ABC+NGA)作为比较对象,进行两个仿真实验.实验1采用3路仿真信号作为源信号,共采用4 500个点作为采样点.实验2采用3路麦克风采集的相互独立的语音信号作为源信号,语音信号保存为.WAV文件,共采用14 000点作为采样点,选取矩阵
分别作为实验1、2的混合矩阵.由Givens旋转变换可知,当n=3时,初始分离矩阵写为
其中:θ1,θ2,θ3∈(0,2π)是3个旋转矩阵的旋转角.在人工蜂群算法中,问题转化为求θ=[θ1,θ2,θ3]的最优解,得到最优初始分离矩阵W(0),进行信号分离.图2为实验1的收敛曲线.
图2表明:(1)对传统盲源分离算法NGA,步长是影响分离性能的主要因素:步长μ=0.002时,迭代4 000次收敛;当步长增大到μ=0.008时,迭代1 400次收敛,但分离性能指标PI变大,分离性能变差;(2)步长μ=0.002、蜂群规模SN=40、itermax=100时,ABC+NGA的收敛速度比 NGA快2 500步,而该文IABC+NGA算法的收敛速度又比ABC+NGA快750步,显然,收敛速度大大加快;(3)与μ=0.008时相比,在步长μ=0.002时,分离性能指标PI值大大下降;(4)通过初始分离矩阵进行优化后,PI值明显降低,分离性能得到了大大提高.图3是利用实际语音信号的源信号进行仿真时的结果,分析图3所得结论与图2基本相同.
5 结束语
作者对人工蜂群算法中跟随蜂阶段的搜索方式进行改进,将改进后的人工蜂群算法引入到盲源分离中来,利用改进的人工蜂群算法对盲源分离中的初始分离矩阵进行优化,再利用盲源分离算法进行信号分离,有效地解决了传统盲源分离算法分离性能指标与收敛速度存在的矛盾,在提高分离性能的同时提高了收敛速度.
[1]Cichocki A,Amari S.Adaptive blind signal and image processing:learning algorithms and application[M].New York:Wiley Press,2002.
[2]Souloumiac A.Nonorthogonal joint diagonalization by combining givens and hyperbolic rotations[J].IEEE Trans on Signal Processing,2009,57(6):2222-2231.
[3]Zarzoso V,Comon P.Robust independent component analysis by iterative maximization of the kurtosis contrast with algebraic optimal step size[J].IEEE Trans on Neural Networks,2010,21(2):248-261.
[4]Liu J Q,Feng D Z,Zhang W W.Adaptive improved natural gradient algorithm for blind source separation[J].Neural Computation,2009,21(3):872-889.
[5]郭业才,樊康,徐文才,等.基于混合遗传优化的正交小波变换盲均衡算法[J].数据采集与处理,2011,26(5):503-507.
[6]Karaboga D,Akay B.A comparative study of artificial bee colony algorithm[J].Applied Mathematics and Computation,2009,214(1):108-132.
[7]Li Z J,An J P,Sun L,et al.A blind source separation algorithm based on whitening and non-linear decorrelation[J].2010Second International Conference on Computer Modeling and Simulation(ICCMS’10),2010,1:443-447.
[8]吕淑平,祝捷.一种改进的自适应混合神经网络盲分离算法[J].计算机应用研究,2013,30(4):1055-1057.
[9]司锡才,柴娟芳,张雯雯,等.一种新的盲源分离拟开关算法[J].哈尔滨工程大学学报,2009,30(6):703-707.
[10]黄华.一种改进型的人工蜂群算法在云计算的资源分配中的研究[J].科技通报,2013,29(5):142-146.
[11]刘俊豪.基于粒子群算法和鱼群算法的盲源分离的研究[D].太原:太原理工大学信息工程学院,2006.
[12]杜鹃,冯思臣.复矩阵的 Givens变换及其 QR分解[J].成都理工大学学报:自然科学版,2011,38(6):693-696.