孫建軍,徐 巖
(蘭州交通大學(xué)電子與信息工程學(xué)院,蘭州 730070)
(?通信作者電子郵箱346206395@qq.com)
在信號處理技術(shù)中,當(dāng)原始信號難以獲知,僅利用觀測信號來恢復(fù)原始信號的技術(shù),稱為盲源分離(Blind Source Separation,BSS)[1]。近年來,隨著該技術(shù)的迅猛發(fā)展,其已成為醫(yī)學(xué)、圖像處理等領(lǐng)域不可或缺的部分。欠定盲源分離(Underdetermined BSS,UBSS)一直是盲源分離技術(shù)研究的難點(diǎn)和熱點(diǎn)?;谛盘柕南∈璺治鍪悄壳敖鉀Q欠定盲源分離問題的首選方法,該方法可簡要概括為兩步,即:首先估計(jì)出混合矩陣值,然后進(jìn)行原始信號恢復(fù)。由此可見,準(zhǔn)確估計(jì)出混合矩陣對于整個問題的良好解決是至關(guān)重要的[2]。近年來,模糊C均值聚類(Fuzzy C-Means clustering,F(xiàn)CM)算法是解決混合矩陣估計(jì)問題的熱門方法之一。然而,該算法存在對初始聚類中心敏感、聚類數(shù)目需手動給出、易陷入局部最優(yōu)解,并且受噪聲點(diǎn)對聚類的影響等問題。面對以上諸多缺陷,Yang 等[3]提出基于魯棒學(xué)習(xí)的FCM 算法,通過構(gòu)造一個FCM算法學(xué)習(xí)框架,使其獲得健全的自主學(xué)習(xí)搜尋能力,但該算法計(jì)算復(fù)雜度過高,不易于實(shí)際應(yīng)用。Yang 等[4]提出用差分進(jìn)化算法來優(yōu)化FCM,首先利用FCM算法獲得初始結(jié)果,然后用差分進(jìn)化算法優(yōu)化,最后再利用FCM算法得到最終結(jié)果,雖然取得了一定的效果,但由于該算法在首次運(yùn)用FCM算法時(shí),并未考慮FCM算法對初始值敏感的問題,導(dǎo)致聚類效果不佳。
本文針對FCM 算法的上述缺陷,提出了一種基于加權(quán)的進(jìn)化規(guī)劃(Evolutionary Programming,EP)與FCM 相結(jié)合的改進(jìn)算法(improved WEighted FCM algorithm based on EP,WEFCM),即將進(jìn)化規(guī)劃(EP)算法強(qiáng)大的搜索能力與FCM 算法的收斂能力相融合,得到基于進(jìn)化規(guī)劃的FCM 算法(FCM algorithm based on EP,EP-FCM),后利用局部離群點(diǎn)檢測(Local Outlier Factor,LOF)算法對EP-FCM 中的目標(biāo)函數(shù)進(jìn)行加權(quán)操作,以達(dá)到自適應(yīng)確定初始聚類中心和克服噪聲對聚類影響的目的,并將其運(yùn)用于混合矩陣估計(jì)。該算法有效地提高了FCM 算法的收斂能力,改善了FCM 算法對初始聚類中心過于敏感的情況,提高了混合矩陣估計(jì)的魯棒性。
通常情況下,欠定盲源分離的線性數(shù)學(xué)模型可描述為:
式中:x(t)=[x1(t),x2(t),…,xM(t)]T表示M個觀測信號;s(t)=[s1(t),s2(t),…,sN(t)]T表示N個原始信號;A∈RM×N為混合矩陣,A=[a1,a2,…,aN],ai表示A的第i個列向量;t表示觀測點(diǎn)時(shí)刻;T表示觀測點(diǎn)數(shù)目。當(dāng)源信號稀疏分布時(shí),信號的絕大部分采樣點(diǎn)都為零或非常接近于零[5]。換言之,同一時(shí)刻,有且僅有一個源信號的取值不為零,即:
由于在非理想情況下,許多信號難以達(dá)到充分稀疏的條件,因此通常會采用短時(shí)傅里葉變換(Short-Time Fourier Transform,STFT)的方法將信號轉(zhuǎn)換到頻域,增加采樣點(diǎn)的數(shù)目,使得采樣點(diǎn)呈現(xiàn)出明晰的方向性[6],則式(1)的STFT 表達(dá)式為:
式中:X(t,ω)和Si(t,ω)分別是x(t)和si(t)的STFT。式(2)可改寫為:
FCM 算法是一種基于劃分的模糊聚類算法[7],該算法通過隸屬度確定數(shù)據(jù)的分類。設(shè)有樣本集合為X={x1,,x2,…,xn},將其分為c類,其聚類中心為C={c1,c2,…,cc},并使給定的目標(biāo)函數(shù)式(5)趨于最小。
FCM算法具體如下:
步驟1 給定預(yù)設(shè)參數(shù):閾值ε,聚類中心c,模糊系數(shù)m,最大迭代次數(shù)T,隸屬度矩陣U0。
步驟2 檢查隸屬度是否滿足歸一化規(guī)定。
步驟3 利用式(7)、(8)分別更新聚類中心和隸屬度矩陣[8]。
步驟4 若目標(biāo)函數(shù)J(U,C)<ε或已迭代到最大次數(shù)T,則停止,輸出結(jié)果;否則繼續(xù)返回步驟3。
FCM算法迭代中,由于目標(biāo)函數(shù)極值點(diǎn)的不確定性,在許多情況下,預(yù)設(shè)的初始聚類中心往往只會盲目地集中在某些極值點(diǎn)周圍,而漏掉了其余極值點(diǎn),導(dǎo)致算法收斂效果不佳,因此如何準(zhǔn)確確定初始聚類中心是算法研究的重中之重。
進(jìn)化規(guī)劃(EP)算法[9]是進(jìn)化算法的分支。該算法側(cè)重于求解預(yù)測問題,并將正態(tài)分布運(yùn)用于變異操作中。與其他進(jìn)化算法相比,進(jìn)化規(guī)劃算法只著眼于進(jìn)化過程。由于在選擇算子時(shí),不使用個體交叉算子和重組算子,因此其搜索過程更平穩(wěn),收斂速度更快,子代產(chǎn)生也更簡單,不會因結(jié)構(gòu)不穩(wěn)定而受到影響[10]。該算法基本實(shí)現(xiàn)過程為:
1)初始化種群。
2)適應(yīng)度函數(shù)選擇。個體的適應(yīng)度函數(shù)表示為F(x),F(xiàn)(x)是由相應(yīng)的目標(biāo)函數(shù)進(jìn)行適當(dāng)變換得到。
3)變異。利用高斯變異算子進(jìn)行變異,個體變異是唯一的最優(yōu)搜索操作,這也是進(jìn)化規(guī)劃算法的特點(diǎn)。
4)選擇。進(jìn)化規(guī)劃算法采用一種隨機(jī)q競爭選擇方式,即會從N個父代和N個子代組成的集合中選擇最優(yōu)的N個個體,作為下一代群體。
基于EP-FCM的聚類算法的具體實(shí)現(xiàn)步驟如下:
步驟1 設(shè)置參數(shù):最大迭代次數(shù)T,初始種群的個數(shù)P,隨機(jī)q選擇中的個數(shù)q,閾值ε1。
步驟2 確定適應(yīng)度函數(shù)[11]。設(shè)聚類數(shù)目為N,si為每一類i(i=1,2,…,N)的個體數(shù),則每一類的聚類中心可表示為:
步驟3 變異。利用式(11)對每個個體進(jìn)行變異操作:
式中:t為迭代次數(shù);F為適應(yīng)度函數(shù);δ為高斯變異算子,服從N(0,1)分布;α和β為預(yù)設(shè)參數(shù),一般設(shè)為1和0。
步驟4 選擇。采用隨機(jī)q競爭選擇法生成新一代個體。具體過程為:
1)從父代群體N和子代群體N'組成的集合H=N∪N'中隨機(jī)選擇q個個體。
2)將q個個體的Fj(j∈(1,2,…,q))與xi的Fxi逐個進(jìn)行比較,計(jì)算q個個體中比xi差的個體總數(shù)bi(bi∈(1,2,…,q)),并將bi記作xi的得分。
3)H個個體逐一比較后,將分?jǐn)?shù)在前N的個體選為下一代。
步驟5 更新聚類中心。若滿足F<ε1,則按式(9)更新聚類中心;否則跳到步驟2。
步驟6 當(dāng)滿足停止條件時(shí),按照式(9)再次更新聚類中心,輸出最終解。
步驟7 將所得聚類中心作為FCM 算法初始聚類中心完成FCM聚類。
局部離群點(diǎn)檢測(LOF)算法[12]是基于密度的離群點(diǎn)檢測算法中比較有代表性的算法之一。該算法會對數(shù)據(jù)集中的每個點(diǎn)計(jì)算一個離群因子LOFk(p),通過判斷LOFk(p)是否接近于1 來判定該點(diǎn)是否為離群點(diǎn)。若LOFk(p)遠(yuǎn)大于1,則認(rèn)為該點(diǎn)是離群點(diǎn);若接近于1,則為正常點(diǎn)。為了敘述LOF 算法,首先引入以下定義。
定義1記樣本中點(diǎn)p與點(diǎn)o之間的歐氏距離為d(p,o)。
定義2記dk(p)為點(diǎn)p的第k距離(k-distance),若滿足以下兩個條件:
1)聚類內(nèi)至少有不包括p在內(nèi)的k個點(diǎn)a,使d(p,a) ≤d(p,o);
2)聚類內(nèi)至多有不包括p在內(nèi)的k-1個點(diǎn)a,使d(p,a) <d(p,o)。則認(rèn)為dk(p)=d(p,o)。定義Nk(p)為點(diǎn)p的第k鄰域,表示p的第k距離內(nèi)所有點(diǎn),因此p的第k鄰域點(diǎn)個數(shù)為:|Nk(p)|≥k。
定義3記rech-distk(p,o)為點(diǎn)o到點(diǎn)p的第k可達(dá)距離,滿足:
定義4局部可達(dá)密度(local reachable density),記作Irdk(p),表示為:
定義5局部離群因子(記作LOFk(p))表示為:
如果所得局部離群因子值小于1,說明p的密度大于其鄰域點(diǎn)密度,p為聚類點(diǎn);若該值接近1,p與鄰域?qū)偻痪垲?;若該值大?,說明p密度小于其鄰域密度,p為噪聲點(diǎn)。通過這種方式,在樣本空間數(shù)據(jù)分布不均勻的情況下也可以準(zhǔn)確發(fā)現(xiàn)離群點(diǎn)。
由于噪聲點(diǎn)的影響,F(xiàn)CM 算法所得類中心的位置往往不在合理區(qū)域,因此本文將LOF 算法加權(quán)策略[13]與EP-FCM 結(jié)合,提出WE-FCM,克服FCM算法對噪聲點(diǎn)敏感的缺陷。
記Lp=LOFk(p)。將Lp作為動態(tài)加權(quán)系數(shù)應(yīng)用到FCM 目標(biāo)函數(shù)及EP算法的適應(yīng)度函數(shù)中。式(5)可展成式(15):
式(10)可展成式(16):
通過上述加權(quán)策略,使得算法的目標(biāo)函數(shù)在樣本密度小的區(qū)域變大,無法收斂,而在樣本密度大的區(qū)域變小,快速收斂,從而有效改善噪聲點(diǎn)對聚類結(jié)果的影響。
算法步驟如下:
步驟1 對樣本點(diǎn)進(jìn)行預(yù)處理。
步驟2 利用LOF算法確定Lp(這里k=20)。
步驟3 用EP算法估計(jì)初值。
步驟4 將得到的初值進(jìn)行FCM 聚類,得到混合矩陣估計(jì)值。
采用兩種性能指標(biāo)對混合矩陣進(jìn)行評價(jià)[14],分別是:
1)歸一化均方誤差(Normalized Mean Square Error,NMSE)。
式中:M、N為混合矩陣的行列數(shù);aij和是混合矩陣A和其估計(jì)值的第i行、第j列。所得NMSE 值越小,則說明混合矩陣的估計(jì)越精確,算法的魯棒性越好。
2)偏離角度。
式中:ai是混合矩陣A的第i列;是其估計(jì)值的第i列。所得偏離角度值越小,則說明混合矩陣的估計(jì)越精確,算法的魯棒性越好。
為驗(yàn)證本文所提算法的有效性,進(jìn)行了兩個實(shí)驗(yàn)仿真,源信號為NOIZEUS語音庫中的信號,采樣頻率為8 kHz。
1)實(shí)驗(yàn)一:隨機(jī)取三路語音信號,根據(jù)式(1)將其變成兩路觀測信號。
混合矩陣A隨機(jī)確定如下:
所得的兩路觀測信號時(shí)域波形如圖1所示。
圖1 兩路觀測信號時(shí)域波形Fig.1 Time domain waveforms of two-way observation signals
由圖1 難以獲知觀測信號方向聚集性的強(qiáng)弱,需要對觀測信號進(jìn)行STFT。本文選用Hanning 窗,窗口長度設(shè)定為512,疊合長度為256。經(jīng)過變換后的觀測信號時(shí)頻域散點(diǎn)圖如圖2所示。
圖2 兩路觀測信號時(shí)頻域散點(diǎn)圖Fig.2 Time-frequency domain scatter plots of two-way observation signals
觀察圖2 可見觀測信號未呈現(xiàn)出明晰的方向性,需要對信號點(diǎn)做進(jìn)一步處理,本文首先利用單源時(shí)頻點(diǎn)處理,使信號呈現(xiàn)出明晰的方向性,然后設(shè)定ε=0.15 進(jìn)行邊緣能量點(diǎn)的篩除[15],最后將剩余信號做歸一化處理,如圖3所示。
圖3 兩路觀測信號預(yù)處理后的散點(diǎn)圖Fig.3 Pre-processed scatter plots of two-way observation signals
所涉及各預(yù)設(shè)參數(shù)為:T=100,m=3,ε=1E -6,N=3,ε1=0.04。
為方便對所提算法做準(zhǔn)確直觀的評估,本文選取了四種具有代表性的混合矩陣估計(jì)算法進(jìn)行比對,分別是經(jīng)典的K均值(K-means)聚類算法[16]、基于霍夫變換的K-Hough 算法[17]、基于遺傳算法的FCM 算法(FCM algorithm based on Genetic Algorithm,GAFCM)[18]、基于密度峰值的FCM 算法(FCM algorithm based on Find Density Peaks,F(xiàn)DP-FCM)[19]。
K-means算法得到的估計(jì)矩陣為:
本文算法得到的估計(jì)矩陣為:
上述各算法所得混合矩陣估計(jì)值的性能指標(biāo)評價(jià)結(jié)果如表1所示。
表1 三路源信號時(shí)各算法性能對比Tab.1 Performance comparison of various algorithms when using three source signals
2)實(shí)驗(yàn)二:隨機(jī)取四路語音信號根據(jù)式(1)將其變成三路觀測信號。
混合矩陣A隨機(jī)確定如下:
所得的三路觀測信號時(shí)域波形如圖4 所示。以下各步驟操作與實(shí)驗(yàn)一相仿,其處理結(jié)果如圖5~圖6。
圖4 三路觀測信號時(shí)域波形Fig.4 Time domain waveforms of three-way observation signals
圖5 三路觀測信號時(shí)頻域散點(diǎn)圖Fig.5 Time-frequency domain scatter plots of three-way observation signals
圖6 三路觀測信號預(yù)處理后的散點(diǎn)圖Fig.6 Pre-processed scatter plots of three-way observation signals
K-means算法得到的估計(jì)矩陣為:
本文算法得到的估計(jì)矩陣為:
上述各算法所得矩陣估計(jì)值的性能指標(biāo)評價(jià)結(jié)果如表2。
表2 四路源信號時(shí)各算法性能對比Tab.2 Performance comparison of various algorithms when using four source signals
分析表1和表2可知,與K-means、K-Hough、GAFCM、FDPFCM 四種算法相比:當(dāng)源信號數(shù)N=3 時(shí),WE-FCM 的NMSE 值較其余四種算法至少減小了4.519 1 dB,偏離角度值最多可減小0.578 3°;當(dāng)源信號數(shù)N=4 時(shí),WE-FCM 的NMSE 值較其余四種算法至少減少了2.108 4 dB,偏離角度值最多可減小2.346 6°。觀察表1 和表2 中各列向量的偏離角度值發(fā)現(xiàn),WE-FCM 的偏離角度值最小且最穩(wěn)定,表明文中所提的LOF加權(quán)策略可有效降低噪聲點(diǎn)對算法估計(jì)精度的影響。因此,源信號數(shù)N=3、N=4 時(shí),相較于K-means、K-Hough、GAFCM、FDP-FCM,WE-FCM 的性能是最好的,即混合矩陣估計(jì)的魯棒性是最好的。
對于FCM 算法在混合矩陣估計(jì)中存在的對初值敏感、魯棒性差、易受噪聲點(diǎn)干擾的問題,本文提出了一種基于WEFCM 的混合矩陣估計(jì)的優(yōu)化算法。實(shí)驗(yàn)仿真結(jié)果表明,在源信號數(shù)N=3、N=4 時(shí),本文算法在算法穩(wěn)定性及矩陣估計(jì)精度方面相較經(jīng)典的K-means、K-Hough、GAFCM、FDP-FCM 都有較大提高,對混合矩陣的估計(jì)是可行和有效的。在后續(xù)研究中,可以關(guān)注更多維數(shù)據(jù)的處理,進(jìn)一步提升算法的實(shí)用性。