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