劉陽,高敬鵬
哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001
盲源分離問題最早起源于“雞尾酒會(huì)”,目的是在源信號(hào)與混合矩陣均未知的情況下,從觀測(cè)到的若干個(gè)混合信號(hào)中分離出有用的信號(hào)[1]。盲源分離技術(shù)經(jīng)過多年的發(fā)展,已經(jīng)在眾多領(lǐng)域得到了廣泛的應(yīng)用。近些年隨著圖像處理和神經(jīng)網(wǎng)絡(luò)等學(xué)科領(lǐng)域的不斷興起,盲源分離技術(shù)又具有了新的研究價(jià)值和實(shí)用意義[2?3]。當(dāng)觀測(cè)信號(hào)數(shù)量小于源信號(hào)時(shí),這一問題可具體為欠定盲源分離問題,欠定盲源分離在工程運(yùn)用中更具實(shí)用價(jià)值,但同時(shí)技術(shù)難度更大,因此欠定盲源分離問題在未來有待進(jìn)一步的發(fā)展。目前解決欠定盲源分離的主流方法是稀疏分量分析法,這一方法要求先對(duì)混合矩陣進(jìn)行估計(jì),再進(jìn)一步恢復(fù)出源信號(hào),因此估計(jì)出一個(gè)高精度的混合矩陣對(duì)最終的恢復(fù)效果至關(guān)重要,直接影響最終的重構(gòu)效果[4?5]。近些年來,隨著對(duì)各種聚類算法的研究,F(xiàn)CM算法成為解決混合矩陣估計(jì)的主流算法之一。FCM算法相比K-means、K-Hough等算法[6?7]有數(shù)據(jù)劃分詳細(xì)、歸類精準(zhǔn)的優(yōu)點(diǎn),但這一算法也存在諸多缺陷。FCM算法需要預(yù)先設(shè)定聚類數(shù)目,且存在對(duì)初始聚類中心敏感的問題,初始聚類中心的設(shè)置不當(dāng)有時(shí)會(huì)對(duì)聚類產(chǎn)生災(zāi)難性的后果[8]。此外,噪點(diǎn)的存在也會(huì)使聚類中心發(fā)生偏移,影響最終的聚類結(jié)果。本文針對(duì)這些問題提出了基于密度結(jié)構(gòu)分析的改進(jìn)FCM算法,并以此為基礎(chǔ)實(shí)現(xiàn)混合矩陣估計(jì)。
通用的盲源分離模型如圖1所示。
圖1 盲源分離模型
盲源分離模型主要分為混合系統(tǒng)和分離系統(tǒng)2部分?;旌舷到y(tǒng)的數(shù)學(xué)模型可表示為
式中:X(t)=[x1(t),x2(t),···,xM(t)]為在t時(shí)刻接收到的M維觀測(cè)信號(hào);混合矩陣A為M×N維矩陣;S(t)=[s1(t),s2(t),···,sM(t)]為維度為N的源信號(hào);N(t)為傳輸過程中的噪聲信號(hào)。
分離模型對(duì)應(yīng)的數(shù)學(xué)公式為
式中:Y(t)=[y1(t),y2(t),···,yN(t)]為分離之后最終估計(jì)出來的源信號(hào);W為分離矩陣。一般來說,當(dāng)分離矩陣W=A?1估計(jì)出來的源信號(hào)精度最高。
實(shí)際應(yīng)用中,根據(jù)盲源分離源信號(hào)數(shù)目n和觀測(cè)信號(hào)數(shù)目m的不同,可分為不同的情況:當(dāng)m=n時(shí),屬于正定盲源分離;當(dāng)m>n時(shí),屬于超定盲源分離;當(dāng)m<n時(shí),屬于欠定盲源分離。文章主要 研究欠定盲源分離情況。
在欠定盲源分離問題中,由于直接接收到的混合信號(hào)方向聚集性很差,并且存在大量冗余,進(jìn)行預(yù)處理可以一定程度上增強(qiáng)信號(hào)的線性聚集性,去除絕大多數(shù)的冗余散點(diǎn),提高計(jì)算效率。
預(yù)處理首先需要對(duì)接收到的混合信號(hào)做短時(shí)傅立葉變換。在時(shí)域范圍內(nèi),信號(hào)的方向聚集性很差,在完成短時(shí)傅立葉變換之后,從時(shí)頻域的角度處理,信號(hào)的方向聚集性能夠得到一定的增強(qiáng)。
在時(shí)頻變換的基礎(chǔ)上需要進(jìn)一步去除低能量點(diǎn)。由于線性盲源分離混合矩陣的散點(diǎn)圖對(duì)應(yīng)多條直線,一般情況下,離原點(diǎn)中心較遠(yuǎn)的散點(diǎn)對(duì)直線的方向確定影響較大,而一些距離原點(diǎn)中心距離較近的低能量點(diǎn)作用不大,反而由于其離散性會(huì)對(duì)估計(jì)結(jié)果造成干擾。因此,有必要篩選掉這些低能量時(shí)頻點(diǎn),低能量點(diǎn)的判定公式如下
公式(3)中參數(shù) σ∈(0,1),通常情況下取值范圍為0.05~0.2,具體的數(shù)值根據(jù)實(shí)際情況選取。在去除絕大多數(shù)的低能量點(diǎn)后,觀測(cè)信號(hào)時(shí)頻點(diǎn)的集合變小,留下的散點(diǎn)對(duì)混合矩陣的估計(jì)更具有實(shí)際意義。
欠定盲源分離情況下,接收到的混合信號(hào)在實(shí)際應(yīng)用過程大多都不是天然稀疏的,但是通過選取適當(dāng)?shù)南∈杌?,仍可以將信?hào)進(jìn)行稀疏表示[9?10]。對(duì)稀疏性較差的信號(hào),為增強(qiáng)信號(hào)在特定稀疏基下的稀疏表示能力,可以對(duì)混合信號(hào)做單源等比處理。由于不同的源信號(hào)在時(shí)域上無法完全同步,因此必然存在某些時(shí)刻只有一個(gè)信號(hào)起主要作用,而其他信號(hào)為零或無限趨近于零,這種時(shí)刻點(diǎn)存在的時(shí)頻點(diǎn)稱為單源時(shí)頻點(diǎn)。經(jīng)過公式推導(dǎo),在這種情況下理論上各觀測(cè)信號(hào)時(shí)頻點(diǎn)實(shí)部與虛部之間比值為一恒定值,等于混合矩陣對(duì)應(yīng)列向量的比值,這一比值稱為單源等比系數(shù)。單源等比模型可用以下公式表示
在實(shí)際問題中,各個(gè)信號(hào)分量實(shí)部或虛部之間的比值不可能完全相等,這里定義一個(gè)常數(shù)ω為誤差閾值。這樣最終的單源等比模型可修正為
式中ω的經(jīng)驗(yàn)值為(0,1)。
FCM算法是一種基于隸屬度劃分的模糊聚類算法,該算法可具體描述為:假設(shè)樣本集合為X={x1,x2,···,xn},聚類中心為C={c1,c2,···,cn},將它分為c類,引入隸屬度矩陣U(x),使得下面給定的目標(biāo)函數(shù)式(6)趨于最小
其中隸屬度滿足歸一化約束條件
FCM算法具體計(jì)算如下。
1) 初始化所有參數(shù),包括閾值ε,聚類中心C0,模糊系數(shù)m,迭代次數(shù)l=0,最大迭代次數(shù)T以及隸屬矩陣U0。
2) 利用式(8)和式(9)更新聚類中心C和隸屬度矩陣U。
3) 計(jì)算相鄰兩次目標(biāo)函數(shù)之差,若差值小于迭代,直到滿足要求。
OPTICS聚類算法是基于密度的聚類算法,目標(biāo)是將空間中的數(shù)據(jù)按照密度分布進(jìn)行聚類,理論上可以獲得任意密度的聚類[11?12]。OPTICS算法在DBSCAN基礎(chǔ)上新增了核心距離和可達(dá)距離的概念。
核心距離:當(dāng)某一數(shù)據(jù)點(diǎn)p∈D,D為數(shù)據(jù)集合,以該點(diǎn)為核心,包含minP個(gè)數(shù)據(jù)點(diǎn)的最小鄰域半徑定義為核心距離,表達(dá)式為
可達(dá)距離:假定p,o∈D,對(duì)于給定的ε和可minP,可達(dá)距離可定義為
可達(dá)距離可以理解為在p是核心點(diǎn)、并且p與o密 度可達(dá)的條件下,核心點(diǎn)對(duì)應(yīng)的最小鄰域半徑。
OPTICS算法總結(jié)如下。
算法輸入:數(shù)據(jù)集合D,ε和minP。
算法輸出:可達(dá)序列和相應(yīng)的可達(dá)序列圖。
預(yù)處理:初始化各種參數(shù),計(jì)算集合中每個(gè)點(diǎn)的核心距離及對(duì)應(yīng)的可達(dá)距離。
1) 初始化2個(gè)隊(duì)列矩陣,用作儲(chǔ)存種子隊(duì)列和結(jié)果隊(duì)列。
2) 判斷集合中的數(shù)據(jù)點(diǎn)是否已經(jīng)完全處理,如果完成,就結(jié)束算法,否則隨機(jī)添加一個(gè)未經(jīng)處理的數(shù)據(jù)點(diǎn)到種子隊(duì)列開始步驟3)。
3) 若種子隊(duì)列為空,跳轉(zhuǎn)步驟2),若非空,從種子隊(duì)列中取出第一個(gè)點(diǎn)做拓展處理,若該點(diǎn)不存在于結(jié)果隊(duì)列中,則將該點(diǎn)按可達(dá)距離排序插入到結(jié)果隊(duì)列中。
①若種子隊(duì)列中取出第一個(gè)點(diǎn)是核心對(duì)象,計(jì)算與該點(diǎn)有關(guān)的所有直接密度可達(dá)點(diǎn),如果不是,重復(fù)進(jìn)行步驟3);②若通過計(jì)算比較,結(jié)果隊(duì)列中已經(jīng)不存在任何與該拓展點(diǎn)有關(guān)的直接密度可達(dá)點(diǎn),進(jìn)行步驟3),否則繼續(xù)等待;③ 若結(jié)果隊(duì)列在之前已存儲(chǔ)過與該點(diǎn)有關(guān)的直接密度可達(dá)點(diǎn),但新計(jì)算的可達(dá)距離相比舊值更小,則予以替換,重新調(diào)整結(jié)果隊(duì)列;④若結(jié)果隊(duì)列中不存在與該點(diǎn)有關(guān)計(jì)算的直接密度可達(dá)點(diǎn),則將該點(diǎn)按序插入結(jié)果隊(duì)列中。
4) 算法結(jié)束,輸出的結(jié)果隊(duì)列即為可達(dá)序列。
OPTICS算法聚類結(jié)果如圖2所示。
圖2 可達(dá)距離序列圖
圖2為通過OPTICS算法進(jìn)行密度結(jié)構(gòu)分析的結(jié)果,反映了可達(dá)距離與可達(dá)對(duì)象序列的關(guān)系,可以對(duì)數(shù)據(jù)進(jìn)行密度結(jié)構(gòu)分析,可達(dá)距離會(huì)隨著對(duì)象序列的疏密程度呈現(xiàn)出高低分布,每個(gè)波谷的位置對(duì)應(yīng)一個(gè)數(shù)據(jù)中心,波峰對(duì)應(yīng)位于相鄰2個(gè)數(shù)據(jù)中心之間的散點(diǎn),波峰與波谷的距離差距越大表示數(shù)據(jù)的離散程度越大。因此通過對(duì)數(shù)據(jù)的密度結(jié)構(gòu)分析,可以在先驗(yàn)信息不足的條件下,確定數(shù)據(jù)大致聚類中心以及聚類數(shù)目。
1) 初始參數(shù)優(yōu)化
FCM算法優(yōu)化的核心之一是對(duì)初始參數(shù)的優(yōu)化,包括初始聚類中心和聚類數(shù)目。前面介紹了基于OPTICS算法的密度結(jié)構(gòu)分析,通過OPTICS算法最終輸出反映了數(shù)據(jù)密度結(jié)構(gòu)的可達(dá)序列??蛇_(dá)序列中波谷的位置即為數(shù)據(jù)的聚類中心,因此對(duì)得到的可達(dá)距離序列進(jìn)行波谷搜尋便可確定具體的聚類數(shù)目和大致的聚類中心。確定這2項(xiàng)參數(shù),將這2項(xiàng)參數(shù)作為初始參數(shù)應(yīng)用在FCM算法的聚類中可以解決FCM算法過于依賴初始聚類中心和聚類數(shù)目的缺陷。
2) 目標(biāo)函數(shù)優(yōu)化
FCM算法優(yōu)化的另一個(gè)核心是盡可能地消除孤立散點(diǎn)導(dǎo)致的聚類中心偏移。OPTICS密度結(jié)構(gòu)分析輸出的可達(dá)序列另一項(xiàng)重要屬性是和數(shù)據(jù)的離散程度有關(guān),可達(dá)距離序列反映了每個(gè)樣本點(diǎn)與相鄰聚類中心離散程度。對(duì)孤立散點(diǎn)最理想的優(yōu)化做法是盡量根據(jù)散點(diǎn)的離散情況來分配其在聚類中心隸屬度劃分的權(quán)重,即遠(yuǎn)離聚類中心的散點(diǎn)不會(huì)或者盡可能小地影響聚類中心的確定,而靠近聚類中心的散點(diǎn)會(huì)直接影響最終的聚類中心確定。這里可以考慮把可達(dá)序列作為離散動(dòng)態(tài)加權(quán)因子對(duì)FCM的目標(biāo)函數(shù)進(jìn)行修正。
假設(shè)OPTICS算法聚類之后得到的可達(dá)距離序列為L,把可達(dá)距離序列作為動(dòng)態(tài)加權(quán)系數(shù)對(duì)式(6)進(jìn)行修正,修正后的目標(biāo)函數(shù)為
當(dāng)數(shù)據(jù)點(diǎn)遠(yuǎn)離聚類中心時(shí),可達(dá)距離增大,算法無法收斂;當(dāng)數(shù)據(jù)點(diǎn)靠近聚類中心時(shí),可達(dá)距離變小,算法快速收斂。通過這一加權(quán)策略,可以提高算法的收斂速度,防止聚類中心偏移,從而有效改善噪點(diǎn)對(duì)聚類結(jié)果的影響。
利用Lagrange函數(shù)對(duì)式(12)進(jìn)行重新構(gòu)建,對(duì)uij和ci求偏導(dǎo)得到式(13)和式(14)
進(jìn)一步求得聚類中心C和隸屬度矩陣U為
基于密度結(jié)構(gòu)分析的改進(jìn)FCM算法步驟總結(jié)如下。
1) 用OPTICS算法對(duì)樣本點(diǎn)進(jìn)行密度結(jié)構(gòu)分析,得到可達(dá)距離L,并通過波谷搜索,確定聚類數(shù)目和初始聚類中心。
2) 用步驟1)中得到的聚類數(shù)目和聚類中心初始化FCM的聚類參數(shù),并按照式(12)將可達(dá)距離L作 為動(dòng)態(tài)加權(quán)因子對(duì)目標(biāo)函數(shù)進(jìn)行優(yōu)化。
3) 根據(jù)式(15)和式(16),并按照傳統(tǒng)FCM聚類的迭代方法不斷迭代,判斷是否滿足輸出條件 ,最終求得隸屬度矩陣U和聚類中心C。
本文提出了基于密度結(jié)構(gòu)分析的改進(jìn)FCM算法,并利用這一算法實(shí)現(xiàn)了混合矩陣估計(jì),具體的混合矩陣估計(jì)步驟如下。
1) 對(duì)接收的混合信號(hào)進(jìn)行預(yù)處理,包括時(shí)頻變換和低能量點(diǎn)去除,得到信號(hào)的時(shí)頻散點(diǎn)。
2) 判斷信號(hào)稀疏性,若信號(hào)的稀疏性較差且冗余散點(diǎn)過多,對(duì)信號(hào)進(jìn)一步做單源等比處理,增強(qiáng)信號(hào)的線性聚集性。
3) 對(duì)單源等比處理后的數(shù)據(jù)密度結(jié)構(gòu)分析,從目標(biāo)函數(shù)和初始參數(shù)兩方面對(duì)FCM算法進(jìn)行優(yōu)化,并用優(yōu)化后的算法進(jìn)行聚類。
4) 用得到的聚類結(jié)果計(jì)算混合矩陣。
基于改進(jìn)FCM算法的混合矩陣估計(jì)流程如圖3所示。
圖3 混合矩陣估計(jì)流程
本文采用以下2個(gè)標(biāo)準(zhǔn)來對(duì)估計(jì)混合矩陣的性能進(jìn)行評(píng)估。
1) 歸一化均方誤差(normalized mean square error,NMSE,在公式中用NMSE表示),數(shù)學(xué)表達(dá)式為
歸一化均方誤差越小說明矩陣估計(jì)性能越高,所估計(jì)出的混合矩陣越接近原混合矩陣。
2) 偏離角度,表達(dá)式為
式中:a為原混合矩陣A的列矢量;為得到的估計(jì)矩陣中與a對(duì)應(yīng)的列矢量。
偏離角度反映了原矩陣與估計(jì)矩陣之間的角度偏離情況,這個(gè)數(shù)值越小時(shí),說明2個(gè)矩陣之間的相似度越高,越有助于最終的源信號(hào)重構(gòu)。
實(shí)驗(yàn)選用語音信號(hào)作為源信號(hào),具體來源可參考http://www.speech.cs.cmu.edu/cmu_arctic/。從中隨機(jī)截取4段語音數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),長度為48 000,采樣頻率為16 kHz。選取的源信號(hào)如圖4所示。
圖4 語音源信號(hào)
經(jīng)過式(19)中的混合矩陣得到如圖5所示的觀測(cè)信號(hào)。
圖5 語音觀測(cè)信號(hào)
對(duì)觀測(cè)信號(hào)進(jìn)行預(yù)處理,時(shí)頻變換這里選用短時(shí)傅立葉變換,窗函數(shù)選用Hanning窗,窗口長度設(shè)定為512,疊合長度為256,低能量去除的閾值取0.1。最終預(yù)處理后的散點(diǎn)圖如圖6所示。由圖6可以看出通過時(shí)頻變換,信號(hào)在時(shí)頻域呈現(xiàn)出一定的方向性,但是冗余散點(diǎn)過多,需要進(jìn)一步做單源等比處理去除冗余散點(diǎn),結(jié)果如圖7所示。
圖6 預(yù)處理后的散點(diǎn)圖
圖7 單源等比處理后的散點(diǎn)圖
單源等比后數(shù)據(jù)的線性聚集性增強(qiáng),為了方便聚類,對(duì)樣本數(shù)據(jù)做歸一化處理,將所有散點(diǎn)映射到球面上,歸一化結(jié)果如圖8所示。
圖8 歸一化后的散點(diǎn)圖
用OPTICS算法對(duì)歸一化后的數(shù)據(jù)進(jìn)行密度結(jié)構(gòu)分析,結(jié)果如圖9所示。從圖9中可以看出聚類數(shù)目為4,初始聚類中心可從波谷處的位置選取,以此2項(xiàng)參數(shù)為基礎(chǔ)實(shí)現(xiàn)對(duì)FCM初始參數(shù)的優(yōu)化。
圖9 OPTICS密度結(jié)構(gòu)分析結(jié)果
分別用基于密度結(jié)構(gòu)分析的改進(jìn)FCM算法和傳統(tǒng)FCM算法對(duì)單源等比后的數(shù)據(jù)集進(jìn)行聚類對(duì)比,橫向比較聚類成功率,其中傳統(tǒng)FCM初始參數(shù)(聚類中心、聚類數(shù)目)的設(shè)置為隨機(jī)選取。在樣本數(shù)據(jù)保持不變的情況下,分別重復(fù)進(jìn)行100次聚類,統(tǒng)計(jì)聚類成功次數(shù)如表1所示。
表1 聚類成功次數(shù)統(tǒng)計(jì)
實(shí)驗(yàn)結(jié)果表明,傳統(tǒng)的FCM算法由于初始聚類中心和聚類數(shù)目選用規(guī)則為隨機(jī)選取,因此會(huì)出現(xiàn)一定概率的聚類失敗,但通過本文的改進(jìn)方法可以實(shí)現(xiàn)對(duì)初始參數(shù)的優(yōu)化,避免因初始參數(shù)的設(shè)置不當(dāng)而導(dǎo)致的聚類失敗。
再對(duì)2種算法的迭代次數(shù)進(jìn)行對(duì)比,結(jié)果如圖10所示。
圖10 聚類收斂迭代曲線對(duì)比
迭代次數(shù)和目標(biāo)函數(shù)收斂情況表明,得益于對(duì)目標(biāo)函數(shù)的優(yōu)化,本文改進(jìn)算法相比于傳統(tǒng)FCM算法有著更低的迭代次數(shù)和更快的收斂速度,同時(shí)目標(biāo)函數(shù)值也略有降低,能帶來更好的聚類效果。
在聚類成功的基礎(chǔ)上,利用改進(jìn)的聚類算法估計(jì)混合矩陣,并選用2種經(jīng)典的聚類算法K-means算法與FCM算法作為對(duì)比。
K-means算法估計(jì)出的混合矩陣為
FCM算法估計(jì)出的混合矩陣為
本文提出的算法估計(jì)出的混合矩陣為
根據(jù)上面估計(jì)的混合矩陣,結(jié)合性能評(píng)估準(zhǔn)則,計(jì)算歸一化均方誤差和偏離角度如表2和表3所示。
表2 歸一化均方誤差對(duì)比 dB
表3 偏離角度數(shù)據(jù)對(duì)比 (°)
首先對(duì)比歸一化均方誤差,從表2可以看出,改進(jìn)后的FCM算法相對(duì)于傳統(tǒng)FCM算法和Kmeans算法可使歸一化均方誤差最少減小6 dB。然后對(duì)比偏離角度,表3中的數(shù)據(jù)表明了估計(jì)矩陣與混合矩陣之間的夾角偏離情況,可以看出改進(jìn)的FCM算法計(jì)算出的矩陣偏離角度相對(duì)于傳統(tǒng)方法得到的偏離角度最多可減少1.5°。兩項(xiàng)對(duì)比結(jié)果均表明,由于本文對(duì)FCM算法初始參數(shù)和目標(biāo)函數(shù)的雙重優(yōu)化,最終估計(jì)出的混合矩陣精度和性能都得到提高。
本文提出了一種基于密度結(jié)構(gòu)分析的改進(jìn)FCM聚類算法,并將這一改進(jìn)算法用于盲源分離的混合矩陣估計(jì)中。本文的改進(jìn)算法針對(duì)傳統(tǒng)FCM算法存在的問題,通過密度結(jié)構(gòu)分析確定了正確的聚類數(shù)目和大致的初始聚類中心,實(shí)現(xiàn)對(duì)FCM算法初始參數(shù)的優(yōu)化,同時(shí)輸出的可達(dá)距離序列作為加權(quán)因子應(yīng)用到FCM目標(biāo)函數(shù)中,從而降低噪點(diǎn)對(duì)聚類結(jié)果的影響,實(shí)現(xiàn)對(duì)目標(biāo)函數(shù)的優(yōu)化。實(shí)驗(yàn)結(jié)果和理論分析說明了文中模型、方法的有效性。