郭業(yè)才,張 政
(1.南京信息工程大學(xué) 電子與信息工程學(xué)院,江蘇 南京 210044;2.江蘇省大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心,江蘇 南京 210044)
盲源分離(blind source separation,簡(jiǎn)稱BSS)是當(dāng)前信號(hào)處理領(lǐng)域興起的研究課題之一,它的任務(wù)是在源信號(hào)和混合方式都未知的情況下,僅靠傳感器接收到的信號(hào)恢復(fù)出源信號(hào)[1].根據(jù)對(duì)數(shù)據(jù)的處理方式不同,當(dāng)前盲源分離算法分為批處理盲源分離算法[2-3]以及自適應(yīng)處理盲源分離算法兩大類.與批處理盲源分離算法相比,自適應(yīng)盲源分離算法實(shí)時(shí)跟蹤性能強(qiáng),其中基于自然梯度盲源分離算法(natural gradient algorithm,簡(jiǎn)稱NGA)[4]在采用較大步長(zhǎng)進(jìn)行信號(hào)分離時(shí),收斂速度快、分離性能差,在采用較小步長(zhǎng)時(shí),分離性能較好、收斂速度較慢;研究還表明,除步長(zhǎng)因素外,初始分離矩陣的隨機(jī)選取會(huì)陷入局部收斂,且收斂速度慢.為了同時(shí)保持分離性能好、收斂速度快,受文獻(xiàn)[5]的啟發(fā),引入人工蜂群算法對(duì)盲分離算法中的初始分離矩陣進(jìn)行優(yōu)化.人工蜂群算法(artificial bee colony algorithm,簡(jiǎn)稱ABC)是一種將蜂群尋覓食物行為的原理應(yīng)用于函數(shù)優(yōu)化問(wèn)題上的人工智能算法[6],具備較快的收斂速度以及較好的全局尋優(yōu)能力,適合盲源分離算法的優(yōu)化.
作者先對(duì)人工蜂群算法進(jìn)行改進(jìn),使該算法在初始階段能夠快速收斂到最優(yōu)解所在區(qū)域,收斂精度更高,再以信號(hào)的峰度絕對(duì)值作為目標(biāo)函數(shù),由改進(jìn)的人工蜂群算法(improved artificial bee colony algorithm,簡(jiǎn)稱IABC)對(duì)初始分離矩陣進(jìn)行優(yōu)化,最后利用NGA算法進(jìn)行信號(hào)分離.
n個(gè)相互獨(dú)立的源信號(hào)S(t)=[s1(t),s2(t),…,sn(t)]T經(jīng)過(guò)一個(gè)未知系統(tǒng)進(jìn)行混合得到X(t)=[x1(t),x2(t),…,xm(t)]T,X(t)是m個(gè)觀測(cè)信號(hào),假設(shè)m=n,當(dāng)忽略傳輸延遲效應(yīng)和噪聲后,可以得到
其中:A∈Rn×n是未知系統(tǒng)的一個(gè)非奇異混合矩陣.盲源分離算法的目標(biāo)是在僅知道觀測(cè)信號(hào)X(t)時(shí),通過(guò)迭代得到一個(gè)滿秩的分離矩陣W,以從觀測(cè)信號(hào)中得到分離信號(hào)
其中:Y(t)是對(duì)源信號(hào)S(t)的一個(gè)估計(jì).
在進(jìn)行分離之前對(duì)觀測(cè)信號(hào)進(jìn)行預(yù)處理,預(yù)處理方法有觀測(cè)信號(hào)中心化及白化兩種方法[7].中心化是對(duì)觀測(cè)信號(hào)進(jìn)行去均值,使觀測(cè)信號(hào)為零均值,主要操作是;白化也是常見(jiàn)的一種信號(hào)預(yù)處理方式,通常是為中心化后的觀測(cè)信號(hào)找到一個(gè)白化矩陣V進(jìn)行線性變換得到,保證變換后的信號(hào)Z各分量之間是不相關(guān)的,并且它們的方差為1,即E(ZZT)=I.白化矩陣的求解方式是分解觀測(cè)信號(hào),使為特征向量組成的正交矩陣,而D為特征向量的特征值所組成的對(duì)角矩陣,則白化矩陣可以表示為V=BD1/2BT.
盲源分離算法的目標(biāo)是找到一個(gè)最佳的分離矩陣W使得分離信號(hào)Y(t)的獨(dú)立性最大,通常用KL(Kullback-Leibler)散度來(lái)進(jìn)行計(jì)算,其表示為
其中:pY(Y)為輸出信號(hào)的聯(lián)合概率密度;pY(Yi)為各個(gè)分信號(hào)的邊緣概率密度.式(3)表明,I(Y)≥0,當(dāng)且僅當(dāng)各輸出信號(hào)互相獨(dú)立時(shí),I(Y)=0,要使分離性能最好必須使I(Y)最小化.利用互信息和信息熵的關(guān)系,得到基于最小互信息的盲源分離算法的代價(jià)函數(shù)為[8]
在NGA準(zhǔn)則下,分離矩陣W(t)的更新公式為
其中:μ為算法的步長(zhǎng),I為單位矩陣,f(Y)為非線性的激活函數(shù),選取f(Y)=2tanh(Y)[9].通常盲源分離性能可以用串音誤差來(lái)衡量,該指標(biāo)為
其中:C=WA是整個(gè)系統(tǒng)的全局矩陣,Cik為矩陣C第i行第k列的元素,PI(C)的值越接近零,說(shuō)明分離效果越好.
人工蜂群算法是一種將蜂群尋覓食物行為的原理應(yīng)用于函數(shù)優(yōu)化問(wèn)題上的人工智能算法.標(biāo)準(zhǔn)的人工蜂群算法中蜜蜂被分為引領(lǐng)蜂、跟隨蜂以及偵察蜂3類.在人工蜂群算法的初始階段,隨機(jī)產(chǎn)生的種群規(guī)模含有SN個(gè)解,每一個(gè)解θi為一個(gè)D維向量,代表一個(gè)食物源,每一個(gè)解的適應(yīng)度值代表食物源的質(zhì)量.在引領(lǐng)蜂階段,引領(lǐng)蜂將發(fā)現(xiàn)食物源的位置記錄下來(lái)并進(jìn)行鄰域搜索,即
其中:i∈{1,2,…,SN},j∈{1,2,…,D},i≠k;Θij為第i個(gè)新食物源位于第j維位置,θij表示第i個(gè)原食物源位于第j維位置,θkj表示第k個(gè)食物源位于第j維位置;φij為第i個(gè)原食物源位于第j維位置產(chǎn)生的隨機(jī)數(shù),取值范圍為[-1,1],控制θij的鄰域生成范圍.對(duì)新食物源進(jìn)行適應(yīng)度值計(jì)算并與原食物源的適應(yīng)度值進(jìn)行比較,如果新食物源的適應(yīng)度值大于原食物源的值則接受新食物源位置,否則放棄該食物源,由此確定初始食物源的位置.在跟隨蜂階段,引領(lǐng)蜂將食物源的位置以及實(shí)物源的質(zhì)量傳遞給跟隨蜂,跟隨蜂根據(jù)輪盤賭的形式選擇食物源,第i個(gè)食物源被選擇的概率為
其中:P(Θi)表示第i個(gè)食物源被選擇的概率,F(xiàn)(Θi)表示第i個(gè)食物源的適應(yīng)度函數(shù),且
其中:J(Θi)是被優(yōu)化問(wèn)題的目標(biāo)函數(shù).對(duì)跟隨蜂階段的食物源按式(8)進(jìn)行鄰域搜索,并與初始的食物源進(jìn)行比較,選擇優(yōu)質(zhì)食物源作為新的初始食物源.但是在食物源的搜索過(guò)程中,若出現(xiàn)某一食物源進(jìn)行l(wèi)imit次迭代后都不發(fā)生變化,則放棄該食物源,此時(shí)蜜蜂變?yōu)閭刹旆?,進(jìn)入偵察蜂階段,并重新找到一個(gè)新的食物源,即
其中:rand(0,1)為(0,1)之間均勻分布的隨機(jī)數(shù);θimin與θimax分別為θi的最小值與最大值.
式(8)表明,人工蜂群算法以當(dāng)前食物源為基礎(chǔ)加上其與鄰域食物源的差值得到新的食物源,但是由于鄰域的食物源是隨機(jī)選擇的,可能這個(gè)食物源比當(dāng)前食物源好,也有可能更差,無(wú)法嚴(yán)格控制新食物源向全局最優(yōu)方向搜索,也即對(duì)于搜索過(guò)程的控制力不足,收斂到全局最優(yōu)食物源的過(guò)程比較緩慢[10].針對(duì)人工蜂群算法存在的這一不足,在跟隨蜂階段提出了一種改進(jìn)的搜索方式,引入遺忘因子與鄰域因子對(duì)搜索過(guò)程進(jìn)行動(dòng)態(tài)調(diào)節(jié),提出了一種改進(jìn)的人工蜂群算法(IABC).搜索過(guò)程更新為
其中:η表示遺忘因子,κ是動(dòng)態(tài)鄰域因子.為了在搜索過(guò)程中充分利用當(dāng)前食物源與鄰域食物源的差異信息找到全局最優(yōu),將遺忘因子表示為
相反,為了在搜索后期也具備較好的全局搜索能力,將鄰域因子表示為
其中:γ是一個(gè)常數(shù).根據(jù)當(dāng)前食物源與鄰域食物源的適應(yīng)度值進(jìn)行選擇,當(dāng)前食物源的適應(yīng)度值大于鄰域食物源的適應(yīng)度值時(shí),γ<1;反之,γ>1,且
其中:ωη、ωκ分別表示遺忘因子、鄰域因子的動(dòng)態(tài)調(diào)節(jié),iter表示蜂群算法的迭代次數(shù),itermax表示最大迭代次數(shù).隨著迭代次數(shù)iter的增大,ωη的值由大到小變化,而ωκ的值由小到大變化.
為了確定ωη、ωκ中各參數(shù)值,設(shè)置SN=40,D=10,itermax=1 000,進(jìn)行8次試驗(yàn),每次對(duì)Sphere函數(shù)運(yùn)行20次.以函數(shù)的平均值和收斂到最小值次數(shù)作為實(shí)驗(yàn)結(jié)果,得到了ω1和ω3取值都為0.2,ω2和ω4取值都為1.2,α和β分別取1.8和2.2時(shí),IABC在平均值以及收斂到最小值的次數(shù)上,都能取得很好的效果.
為了驗(yàn)證改進(jìn)后的人工蜂群算法具有更好的收斂性能,分別利用Griewank和Sphere兩個(gè)函數(shù)進(jìn)行了測(cè)試,測(cè)試結(jié)果表明,與標(biāo)準(zhǔn)的ABC相比,IABC收斂速度更快、串音誤差更低.
針對(duì)盲源分離自然梯度算法中存在的分離性能指標(biāo)和收斂速度不能兼顧的問(wèn)題,將改進(jìn)的人工蜂群算法應(yīng)用于盲源分離中,圖1為基于改進(jìn)人工蜂群算法的盲源分離算法原理圖.
以信號(hào)峰度的絕對(duì)值作為優(yōu)化的目標(biāo)函數(shù),對(duì)盲源分離算法中的初始分離矩陣進(jìn)行優(yōu)化.目標(biāo)函數(shù)表示為
其中:kurt(Yi)表示第i個(gè)分離信號(hào)的峰度,在E(YYT)=I的約束條件下,峰度值越大說(shuō)明分離信號(hào)的獨(dú)立性越好.
在人工蜂群算法中將求解峰度最大值轉(zhuǎn)化為求解適應(yīng)度函數(shù)的最小值,按式(10)計(jì)算適應(yīng)度值函數(shù).在傳統(tǒng)盲源分離中Y(t)=WX(t),初始分離矩陣W(0)是一個(gè)n×n的矩陣,在進(jìn)行人工蜂群算法前需要對(duì)其進(jìn)行處理,在E(YYT)=I的約束條件下,可得
初始分離矩陣W(0)是一個(gè)正交矩陣,正交矩陣可以寫成一系列旋轉(zhuǎn)矩陣之積[11].由Givens旋轉(zhuǎn)變換[12]可得,求解n×n的正交矩陣問(wèn)題可以轉(zhuǎn)變?yōu)榍蠼鈔(n-1)/2個(gè)旋轉(zhuǎn)角問(wèn)題.每個(gè)食物源的位置向量Θi與待求問(wèn)題的解一一對(duì)應(yīng),i∈{1,2,…,SN};Θi為D維,D=n(n-1)/2.
基于改進(jìn)人工蜂群算法的盲源分離算法步驟如下:
步驟1 對(duì)觀測(cè)信號(hào)進(jìn)行預(yù)處理;
步驟2 人工蜂群算法初始化,產(chǎn)生SN個(gè)隨機(jī)食物源作為蜂群的初始食物源,同時(shí)給出最大迭代次數(shù)itermax、維數(shù)D、一個(gè)食物源搜索限制次數(shù)limit;
步驟3 利用Givens旋轉(zhuǎn)變換得到初始分離矩陣W(0),根據(jù)Y(t)=W(0)X(t),計(jì)算出Y(t),并對(duì)Y(t)進(jìn)行去均值以及白化處理,用式(16)作為目標(biāo)函數(shù)并按式(10)計(jì)算適應(yīng)度;
步驟4 引領(lǐng)蜂按式(8)搜索新食物源,按式(10)計(jì)算適應(yīng)度并與當(dāng)前食物源的適應(yīng)度值進(jìn)行比較,若大于當(dāng)前食物源的適應(yīng)度值,保留新食物源,否則放棄新食物源;
步驟5 跟隨蜂根據(jù)輪盤賭方式選擇食物源,按式(12)搜索新食物源,按式(10)計(jì)算適應(yīng)度并與當(dāng)前食物源的適應(yīng)度值進(jìn)行比較,若大于當(dāng)前食物源的適應(yīng)度值,保留新的食物源,否則放棄該食物源;
步驟6 對(duì)蜜蜂針對(duì)同一個(gè)食物源進(jìn)行覓食的次數(shù)進(jìn)行記錄,如果蜜蜂的覓食次數(shù)超過(guò)設(shè)定的limit次數(shù)時(shí),那么放棄該食物源,相應(yīng)的引領(lǐng)蜂變?yōu)閭刹旆洌词剑?1)搜索一個(gè)新食物源代替原來(lái)的食物源;
步驟7 記錄當(dāng)前的最優(yōu)食物源,判斷是否達(dá)到終止條件,如果達(dá)到,則輸出目前的最優(yōu)解Θi并轉(zhuǎn)步驟8,否則返回步驟4;
步驟8 根據(jù)輸出的最優(yōu)解Θi得到盲源分離的初始分離矩陣W(0),并由式(6)進(jìn)行分離,得到分離信號(hào).
為了驗(yàn)證基于改進(jìn)人工蜂群算法的盲源分離算法(IABC+NGA)的性能,以基于自然梯度的盲分離算法(NGA)以及基于標(biāo)準(zhǔn)人工蜂群算法的盲分離算法(ABC+NGA)作為比較對(duì)象,進(jìn)行兩個(gè)仿真實(shí)驗(yàn).實(shí)驗(yàn)1采用3路仿真信號(hào)作為源信號(hào),共采用4 500個(gè)點(diǎn)作為采樣點(diǎn).實(shí)驗(yàn)2采用3路麥克風(fēng)采集的相互獨(dú)立的語(yǔ)音信號(hào)作為源信號(hào),語(yǔ)音信號(hào)保存為.WAV文件,共采用14 000點(diǎn)作為采樣點(diǎn),選取矩陣
分別作為實(shí)驗(yàn)1、2的混合矩陣.由Givens旋轉(zhuǎn)變換可知,當(dāng)n=3時(shí),初始分離矩陣寫為
其中:θ1,θ2,θ3∈(0,2π)是3個(gè)旋轉(zhuǎn)矩陣的旋轉(zhuǎn)角.在人工蜂群算法中,問(wèn)題轉(zhuǎn)化為求θ=[θ1,θ2,θ3]的最優(yōu)解,得到最優(yōu)初始分離矩陣W(0),進(jìn)行信號(hào)分離.圖2為實(shí)驗(yàn)1的收斂曲線.
圖2表明:(1)對(duì)傳統(tǒng)盲源分離算法NGA,步長(zhǎng)是影響分離性能的主要因素:步長(zhǎng)μ=0.002時(shí),迭代4 000次收斂;當(dāng)步長(zhǎng)增大到μ=0.008時(shí),迭代1 400次收斂,但分離性能指標(biāo)PI變大,分離性能變差;(2)步長(zhǎng)μ=0.002、蜂群規(guī)模SN=40、itermax=100時(shí),ABC+NGA的收斂速度比 NGA快2 500步,而該文IABC+NGA算法的收斂速度又比ABC+NGA快750步,顯然,收斂速度大大加快;(3)與μ=0.008時(shí)相比,在步長(zhǎng)μ=0.002時(shí),分離性能指標(biāo)PI值大大下降;(4)通過(guò)初始分離矩陣進(jìn)行優(yōu)化后,PI值明顯降低,分離性能得到了大大提高.圖3是利用實(shí)際語(yǔ)音信號(hào)的源信號(hào)進(jìn)行仿真時(shí)的結(jié)果,分析圖3所得結(jié)論與圖2基本相同.
作者對(duì)人工蜂群算法中跟隨蜂階段的搜索方式進(jìn)行改進(jìn),將改進(jìn)后的人工蜂群算法引入到盲源分離中來(lái),利用改進(jìn)的人工蜂群算法對(duì)盲源分離中的初始分離矩陣進(jìn)行優(yōu)化,再利用盲源分離算法進(jìn)行信號(hào)分離,有效地解決了傳統(tǒng)盲源分離算法分離性能指標(biāo)與收斂速度存在的矛盾,在提高分離性能的同時(shí)提高了收斂速度.
[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,F(xiàn)eng D Z,Zhang W W.Adaptive improved natural gradient algorithm for blind source separation[J].Neural Computation,2009,21(3):872-889.
[5]郭業(yè)才,樊康,徐文才,等.基于混合遺傳優(yōu)化的正交小波變換盲均衡算法[J].數(shù)據(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ìn)的自適應(yīng)混合神經(jīng)網(wǎng)絡(luò)盲分離算法[J].計(jì)算機(jī)應(yīng)用研究,2013,30(4):1055-1057.
[9]司錫才,柴娟芳,張?chǎng)?,?一種新的盲源分離擬開(kāi)關(guān)算法[J].哈爾濱工程大學(xué)學(xué)報(bào),2009,30(6):703-707.
[10]黃華.一種改進(jìn)型的人工蜂群算法在云計(jì)算的資源分配中的研究[J].科技通報(bào),2013,29(5):142-146.
[11]劉俊豪.基于粒子群算法和魚(yú)群算法的盲源分離的研究[D].太原:太原理工大學(xué)信息工程學(xué)院,2006.
[12]杜鵑,馮思臣.復(fù)矩陣的 Givens變換及其 QR分解[J].成都理工大學(xué)學(xué)報(bào):自然科學(xué)版,2011,38(6):693-696.