330 likes | 479 Views
摺積混合情形下的 聯合近似對角化盲訊號分離方法. 學生:陳仕勛 指導教授:王小川 2008.08.14. 大綱. 盲訊號分離與獨立成份分析 問題簡介 膨脹與排列問題 獨立性與最佳化方法 演算前置處理 AMUSE, FastICA 聯合近似對角化演算法 JADIAG 演算法 摺積混合盲訊號分離 DUET 演算法 解決排列問題 利用廣義高斯分佈解決排列問題 解決膨脹問題. 加速方法與架構 利用巴克刻度加速 利用演算法特性加速 架構 實驗結果與展示 研究趨勢及未來展望. 盲訊號分離與獨立成份分析.
E N D
摺積混合情形下的聯合近似對角化盲訊號分離方法摺積混合情形下的聯合近似對角化盲訊號分離方法 學生:陳仕勛 指導教授:王小川 2008.08.14
大綱 • 盲訊號分離與獨立成份分析 • 問題簡介 • 膨脹與排列問題 • 獨立性與最佳化方法 • 演算前置處理 • AMUSE, FastICA • 聯合近似對角化演算法 • JADIAG演算法 • 摺積混合盲訊號分離 • DUET演算法 • 解決排列問題 • 利用廣義高斯分佈解決排列問題 • 解決膨脹問題 • 加速方法與架構 • 利用巴克刻度加速 • 利用演算法特性加速 • 架構 • 實驗結果與展示 • 研究趨勢及未來展望
盲訊號分離與獨立成份分析 • 盲訊號分離(BSS):聲源(s)有m個,收到的混合訊號(x)有n個。在不知道訊號特性的情形下,利用n個收到的訊號將m個聲源分離開。 • 獨立成份分析(ICA): 假訊m個聲源彼此獨立,設法將它們萃取出來。 • Xnx1=AnxmSmx1 Ymx1=WmxnXnx1
膨脹與排列問題 • 理想的解混合矩陣為W=A-1,此時得到的分離訊號Y=S,即 Y=WX= A-1 (AS)=S • 實際上存在著膨脹與排列兩種不確定性的問題: • 考慮一個新的矩陣Wd=DW,其中D為一個對角矩陣。若利用Wd當作解混合矩陣,求得的分離訊號為: Yd=WdX=DWAS=DS (S經過縮放的結果) S彼此獨立Yd=DS亦彼此獨立Wd為一個解混合矩陣。 • 考慮另外一個矩陣Wp=PW,其中P為一個任意的排列矩陣。若利用WP當作解混合矩陣,求得的分離訊號為: YP=WPX=PWAS=PS ( S排列變換的結果) S彼此獨立YP=PS亦彼此獨立Wp為一個解混合矩陣。 • 在時域應用上沒有太大影響
獨立性與最佳化方法 • 獨立成份分析 = 獨立性函數 + 最佳化演算法。 • 獨立性: • 機率統計學的定義:p(y1,y2) = p1(y1)p2(y2) 即「聯合機率密度函數=邊際機率密度函數之乘積」 • 非相關性: 若隨機變數彼此獨立,則必非相關(但反之不一定正確) • 非高斯性:非高斯分佈且彼此獨立的隨機變數線性組合而成的新隨機變數,會較原本更為接近高斯分佈。
獨立性與最佳化方法 • 整體獨立性函數:量測分離訊號彼此間的獨立性 • 熵(entropy):分離訊號彼此獨立等價於最大化分離訊號的熵值 • 相互資訊(mutual information)與KL距離: • 訊息理論中,m個隨機變數的相互資訊I是量測隨機變數相依性的一個工具。I恆非負,且只有當隨機變數彼此獨立時I = 0。 • 若m個隨機變數彼此獨立,則其聯合機率密度f(y)和邊際機率密度乘積f1(y1)f2(y2)…fm(ym)的KL距離會為零。且此KL距離等於這m個隨機變數的相互資訊。 • 非線性互相關:若隨機變數彼此獨立,則它們的非線性互相關值就會等於零。 E{g1(yi)g2(yj)} = 0 其中g1和g2為非線性函數
獨立性與最佳化方法 • 單一獨立性函數:計算單一訊號相對整體訊號的獨立性 • 負熵(Negentropy):計算隨機變數和高斯變數熵值的差異決定該變數的非高斯性 • 高階動差 (Higher-order cumulants) :峰態(kurtosis) • 最佳化演算法: • 使獨立性最大的方法,可使用任何最佳化演算法。 • 若利用非相關性作判斷時,通常利用「聯合對角化」法使一個或多個共變異矩陣對角化。 • 當被對角化的矩陣只有一個的時候,可以使用簡單的特徵值分解(Eigen-Value Decomposition, EVD)分解之。
演算前置處理 • 為了減少需要計算的變數,通常會假設: • 訊號源的平均為0。(zero mean) • 訊號源的標準差為1。(unit variance) • 混合訊號也應該會保有這兩項特性,但是實際上收到混合訊號並不一定會有這兩個特性。 • 先對混合訊號做兩項前處理: • 集中化 (centering):計算觀察到訊號y的平均 m = E{y},再將所有的訊號y扣掉這個平均,令集中化過的訊號為u = y-m,使得訊號u的平均值為零。 • 白色化 (whitening):計算集中化過訊號u的共變異矩陣,並對其作特徵值分解 其中E為特徵向量構成的矩陣, 為特徵值構成的矩陣。則白色化矩陣 接著將集中化過的訊號u經過一個線性變換z=Vu,如此即可使白色化後的訊號z其共變異矩陣為單位矩陣。
演算前置處理 • s1和s2的機率分佈均為 U[-1,1]的均勻分布。 • (a)為經過混合的訊號。 • (b)為集中化處理的結果。 • (c)為白色化處理的結果。處理後的訊號基底由非正交展開成正交。 • (d)是做完獨立成份分析的結果。 (c)到(d)圖乘上的解混合矩陣W可視為一旋轉矩陣。 • 前處理可能破壞訊號統計特性。
AMUSE演算法 • 一次將所有訊號分離。 • 假設訊號源S彼此不相關。 • 應該為對角矩陣。 • 對經過前處理的混合訊號X,使 成為對角矩陣。 • 對 作特徵值分解,令特徵向量所成矩陣為W,即為解混合矩陣,分離出的訊號Y=WX。
FastICA演算法 • 一次分離一個獨立訊號。 • 利用非線性函數G估計負熵值: • 對前處理過的訊號x,找一個解混合向量w1xn,使J(wTx)的值最小 • 任意選初始的w向量 • 令 • 將w+正規化: • 重覆計算直到收斂
聯合近似對角化演算法 • 給定多個矩陣C1,C2,…,Cn。求出一個聯合對角化矩陣B,使得所有的BCkB*, k=1,2,…,n 能成為(或近似)對角化矩陣。 • 利用聯合對角化的方法解BSS問題時,通常假設C為訊號的 covariance matrix (AMUSE)或 4th-order cumulant matrix (JADE)。 • 若訊號本身彼此獨立,則其covariance matrix必為對角矩陣。如此一來,C1,C2,…,Cn的對角化矩陣B即為BSS問題的解混合矩陣W。
JADIAG演算法 • Cost function: • 輪流對所有的(i,j), i≠j 找一個Tij,更新 使cost function降低量最大化(即(BCkB*)ii, (BCkB*)ij, (BCkB*)ji, (BCkB*)jj成為對角矩陣) • 令P和Q矩陣 可得到「使cost function降低量最大化的Tij會同時聯合對角化P及Q」
JADIAG演算法 • 令 • 假設每次找到的Tij會讓BB+δB。則cost function的減少量為 • 每次找完Tij使其對角化P及Q後,計算cost function的減少量。當減少量小於一定值,就認為Ck已經被聯合對角化。
JADIAG演算法 • 假設P及Q的兩個對角項和右上的非對角項分別為p1,p2,p和q1,q2,q。 • T要聯合對角化P和Q T為 乘上一個對角矩陣和一個排列矩陣。 其中α= p2q* − p*q2, β= p1q2 − p2q1 + p*q − p*q, γ= pq1 − p1q, Δ= β2 − 4αγ • 令 • 則T=
摺積混合盲訊號分離 • 在實際的情形上,聲源到麥克風在時域是摺積混合。和BSS或ICA假設為乘積混合並不一致。 • 要解決摺積混合BSS的問題 • 假設混合矩陣為FIR: FIR所需要的lag相當長。 • 將訊號轉至頻域: 排列與膨脹問題的影響
DUET演算法 • 將混合訊號轉至頻域,假設頻譜上每個點只屬於某一個聲源。 • 計算麥克風訊號的相對延遲和振幅大小 • 將每個點依空間位置作分群。
DUET演算法 • 統計空間中各點訊號強度,利用影像處理技巧柔化統計圖,並估計聲源個數和所在位置。 • 計算混合訊號頻譜中每個點與聲源所在位置的相似度,並分群。 • 將分群後訊號轉回 時域
解決排列問題 • 將訊號轉至頻域,分別對每個頻帶解BSS問題,最後再將解得的訊號轉回時域。 • 假設每個頻帶都能完美解決BSS問題將訊號分離,但是發生排列問題,所有頻帶的訊號沒有按照聲源對齊。訊號轉回時域依然會混雜。 • 解決排列問題: • 估計來源訊號的方向 (DoA) • 計算相鄰頻帶訊號的相關性 • 計算相鄰頻帶解混合矩陣(頻道)的平滑性
利用廣義高斯分佈解決排列問題 • 假設訊號源的分佈為廣義高斯分佈(Generalized Gaussian Density, GGD)。 • 估計各個離散頻率分離訊號之廣義 高斯分佈參數。 • 利用參數的分離情形作初步的對齊。 • 將連續可分離的離散頻率訊號結合為 頻帶,再利用相關性作其餘的對齊演 算,以增加對齊結 果之可靠度。
解決排列問題與膨脹問題 • C(f)為第f個頻帶訊號的共變異矩陣,W(f)為估計出來第f個頻帶的解混合矩陣。 • 假設相鄰頻帶的解混合矩陣W及C有一定的相關性。則對第f+1個頻帶而言,使用W(f)先「預先對角化」,則預先對角化的結果W(f)C(f+1)W*(f)會比C(f+1)還要更近似對角矩陣。 • 在此情形下解得的W'(f+1)(如果沒有排列問題)會很明顯地接近對角矩陣。因此可以很容易地判斷有無發生排列問題。 • 最後再計算 W(f+1)=W'(f+1)W(f),即可解決排列問題 • 解決膨脹問題,只要將原來的解混合矩陣W(f)乘上 diag(W-1(f)) ,即 W'(f)=diag(W-1(f))W(f)
利用巴克刻度加速 • JADIAG 演算法在計算上十分耗時。因此利用人耳聽覺特性進行加速。 • 首先利用FFT將訊號轉到頻域。 • 接著依據 Bark scale(低頻較密集,高頻較稀疏)在每個Bark頻帶內挑選固定個數的頻率做BSS。沒挑到的頻率(f)其解混合矩陣W(f)就和前一個頻率的解混合矩陣W(f-1)相同。 • Bark scale: 20, 100, 200, 300, 400, 510, 630, 770, 920, 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150, 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500.
利用演算法特性加速 • T= • 由觀察得知,T矩陣的元素大部份有著下列的關係: • Tk和Tk+1相同位置非對角項元素絕對值會遞減,最後收斂到0。 • 相同位置非對角項元素的正負號會交錯排列。
利用演算法特性加速 • 對JADIAG演算法進行了修改:在每次迭代得到轉換矩陣T之後,下一次迭代得到的轉換矩陣很有可能上述關係。 • 預估下次的轉換矩陣 • 少部份的轉換矩陣其非對角項元素正負號並不會交錯排列,而是連續不變。這種情形如果發生,上式的加速方式反而會使收斂速度減慢。 • 再修改:在迭代開始後觀察轉換矩陣非對角項的正負號,如果正負號交錯排列上式進行加速。如果轉換矩陣非對角項正負號維持不變,則使用下式進行加速 • 將T'直接和T相乘當成這次迭代的轉換矩陣並計算結果。 • 若迭代超過一定次數,則不論其是否收斂均結束演算法。
實驗結果 • 實驗環境: • 2男2女錄音,男生各10句,女生各9句,共38句。 • 將語料兩兩配對為一組,共有19組,男+男5組,女+女4組,男+女10組。 • 接著將語料由2喇叭同時放出來,並利用兩個麥克風同時錄音。 • 取樣頻率16000Hz,16位元的wav檔
實驗結果 • 效能評比: • 麥克風收到的訊號x1和x2為同樣的2個聲源同時混合的聲音 x1和x2聽起來會相似。 • 分離的訊號y1和y2 y1和y2聽起來應該是不同的兩個聲音。 • 計算分離前訊號的頻譜差異值和分離後訊號的頻譜差異值,將差異值互減的結果可當成分離效果的一個參考。 • 對數頻譜距離(LSD): • 其中L為音框總個數,K為離散頻率個數(即音框長度),S1和S2為要比較的兩個頻域訊號,ε為避免LSD過大的常數。
Demo • 女:帶著天風,捲起塵土而來 • 女:昔日山在虛無縹緲間,思想起
Demo • 女:安多拉美娜!聖鬥士星矢的姊姊叫安多拉美娜 • 男:前方有狀況!!!快把總統推到前面擋子彈
Demo • 男:我隨風而來,隨風而去 • 男:哪裡哪裡,都這麼熟了
研究趨勢 • 近五年來,由於最基本的盲訊號分離及獨立成份分析問題逐漸地被研究解決,研究趨勢慢慢地朝著幾個方向進行: • 不同領域的應用:除了較為熟悉的聲音、影像、通訊等訊號的分離,也出現了腦電波、化學分析、天文學、經濟學方面的應用。 • 即時運算:盡可能地縮短演算法運算的時間,尋找更簡單的解決方法,以求達到即時或近乎即時的效能。 • 特殊條件下的盲訊號分離:例如麥克風數少於人數時的盲訊號分離(未定,under-determined)、已知某幾個獨立聲源的統計特性(半盲,semi-blind)。 • 分離效果評量方法的研究:盲訊號分離的結果很難以客觀的數據衡量,必須找受試者以主觀的聽覺、視覺作評量。因此也出現了「結合多種客觀評量分數以模擬人類主觀感覺結果」的研究。 • 排列問題的解決方法:排列問題對現實中摺積混合的盲訊號分離影響相當大,因此找到更快更好的方法解決排列問題也是近年來研究的方向之一。
未來展望 • 目前盲訊號分離與獨立成份分析實驗所使用的語料並沒有統一的資料庫,聲音訊號本身變異性又極大,造成不同演算法在效能評估上缺乏標準。如果能像語音辨識一樣有一套標準的語料庫供盲訊號分離使用,可以使實驗結果更具公信力。 • 目前的研究結果理論上可將聲源及麥克風數目放大成任意數,但實際實驗結果多為2x2及3x3。或許是由於聲音訊號的複雜性,使得聲源及麥克風數目增加時分離效果不佳。如能成功分離多個聲源及多個麥克風的情形,並且達到即時演算的結果,就能作更為廣泛的實際應用。