• 沒有找到結果。

第二章 獨立成分分析法(Independent Component Analysis ,ICA)之原理

2.4 ICA 之演算法

這也就表示經過 whitening matrix 轉換過後之 mixing matrix 是一個正交矩陣。這 也就表示當我們在尋找 demixing matrix 時,只要尋找互相垂直的向量即可,這 對整個演算法的簡化有相當大的幫助。

2.4 ICA 之演算法

在 ICA 的演算法中,通常會先定義一個目標函數(Objective function),然後 對此目標函數算最大值或最小值。而在目標函數的定義上,我們必須定義一個我 們可以藉由對他算最大值或最小值而得到獨立元素(Independent Component)的函 數。因此,我們可以將 ICA 演算法分為兩大部分

ICA method = Objective Function + Optimization Algorithm

而目標函數與最佳化演算法的選擇也決定了 ICA 演算法的性質,其中目標函數 的選擇決定了 ICA 演算法是否強健(robustness),而最佳化演算法的選擇與 ICA 演算法的收斂速度有關。

配合 2.3 所提到的前處理,可將 ICA 整體架構描述如圖 2-3。有 correlation 的混 合訊號經過前處理後,訊號彼此為 uncorrelated,再透過目標函數之最佳化,即 可得到獨立元素[11]。

(2.19)

(2.20)

(2.21)

圖 2- 3 ICA 演算法之結構

混合訊號 X

前處理 Centering

whitening

混合訊號 Z

最佳化演算法 目標函數

獨立元素 Y

2.4.1 目標函數

如 2.2.1 所提到的,由於中央極限定理,我們可以藉由尋找一個使結果最不 gaussian 的 W(Maximization of Non-gaussianity)來分出獨立元素。所以,若我們想 要找到一個獨立元素 y 我們可以表示為

z w y= T

其中 w 為行向量。由於我們想要尋找一個使結果最 nongaussian 的 W,對於隨機 變數是否 gaussian 就需要一個量化的量測,也就是去測量(2.22)中 y 的 gaussian 程度。而一般對於 gaussian 程度典型的量測就是 kurtosis 與 neg-entropy。

kurtosis

一隨機變數 y 之 kurtosis 表示為 kurt(y),其定義如下

2 2

4} 3( { })

{ )

(y E y E y

kurt = −

若要簡化此式,我們可以假設 y 已經過調整使得其 variance 等於一,於是等式右 邊可簡化為E{y4}−3。對於 gaussian 的隨機變數 y,其E{y4}等於3(E{y2})2,所 以 kurtosis 為零。Kurtosis 的值可能為正或為負,當一隨機變數之 kurtosis 為正,

我們稱之為 supergussian;若 kurtosis 為負,稱為 subgaussian[12],其中一典型的 例子為均勻分佈(uniform distribution)其分佈如圖所示(圖中灰線是 gaussian 分佈 以做比較)

(2.22)

(2.23)

圖 2- 4 subgaussian 之統計分佈圖

因此我們可以利用 kurtosis 之絕對值或平方當作目標函數,此函數值越小代表越 接近 gaussian,相反地若此函數值越大也就越 nongaussian。

Neg-entropy

雖然我們可以藉由 kurtosis 的計算得知隨機變數的 gaussian 程度,但是 kurtosis 是四次方的量測,在如此高次方的計算之下,所計算出的值很容易受到 某些少數的值的影響,所以用 kurtosis 來量測 gaussian 程度並不穩健(robust)[13]。

另個測量 gaussian 的方法是 neg-entropy,這是由資訊理論(information theory) 發展而來之方法。一個 probability density function 為py(η)的隨機向量 y 之 entropy H 定義如下

η η

η p d

p y

H( )=

y( )log y( )

而所有相同 variance 的隨機變數當中,gaussian 變數之 entropy 最大,這也就意 味著 entropy 可以用來量測一隨機變數是否 gaussian。

爲了得到一個非 gaussian 之量測,我們希望對於一個 gaussian 的隨機變數,

(2.24)

其函數值為零,且對於所有隨機變數之函數值皆大於零,於是定義了 neg-entropy J,對於隨機向量 y 之 neg-entropy 為

) ( ) ( )

(y H y H y

J = gauss

其中ygaussian是與 y 有相同 covariance matrix 之 gaussian 隨機向量。由此式可看出

當 y 為 gaussian,則函數值為零,又 gaussian 變數之 entropy 最大,所以對所有 隨機變數函數值皆大於零。於是尋找 neg-entropy 之最大值即為尋找最

nongaussian 之隨機變數。

雖然 neg-entropy 可用以量測 gaussian 程度,但在計算上卻十分複雜,因此 在實際應用上,需採用對於 neg-entropy 較簡化的近似[14]

)}]2

( { )}

( { [ )

(y E G y E G v

J ∝ −

其中 G 為 non-quadratic function,而 v 為 gaussian random variable。實際上,若 G 函數越平緩則可得到越 robust 之估計,G 函數有以下三種選擇:

y a a

y

G 1

1

1 1 logcosh

) ( =

) 2 / exp(

)

( 2

2 y y

G =− −

4 3(y) y

G =

其中1≤ a1 ≤2。

(2.25)

(2.26)

(2.27) (2.28) (2.29)

2.4.2 針對實數之 FastICA

FastICA 是由 Aapo Hyvärinen 所提出之演算法[15]。此演算法利用 neg-entropy 做為 non-gaussian 之量測,而欲量測之y=wTz,故 2.26 式可表為

而對於 whitening 後之訊號,可做以下近似 I 下之 iteration

w

w

其收斂條件為 w 與 update 之前同方向。當有超過一個 independent component 時,

在 2.3.2 曾提到過,經過 whitening 後,在尋找 demixing matrix 時,只要尋找互 相垂直的向量即可,所以在找第 p 個 w 時,須將前 p-1 個找出之 w 之方向減去

以下利用 FastICA 分離兩個語音,聲源訊號為

圖 2- 5 聲源訊號

經過 mixing matrix 

 

=

5525 . 0 9557 . 0

4047 . 0 5090 .

A 0 之混和,混和訊號為

利用 FastICA 所分離出之結果為

由圖中可看出分離效果佳且 FastICA 收斂速度快,本次分離僅 20 個 steps 即可收 斂。

(sec)

(sec)

(sec) (sec) (sec)

(sec)

第三章 頻域獨立分析法

相關文件