馮 杭,王勝兵
(海軍工程大學 理學院,武漢 430033)
隨著計算機技術和信息技術的不斷提高,如何從大量復雜多變的數據中提取有用的信息、模式和知識成為亟待解決的問題。在實際問題中,傳統的單一模型已經無法滿足正確性和準確性的要求,有限混合分布[1]的提出為大量隨機現象建立統計模型提供了數學基礎。混合模型可以定義極其復雜的概率密度函數,是分析復雜現象的一個極其重要的工具,從圖像分割技術到股票市場的數據分析,它幾乎涵蓋了金融、經濟、生物、醫學、計算機科學及工程領域等的各個學科[2]。
實際中常用數據擬合方法對混合模型的參數進行估計,由于混合模型的密度函數較復雜,待估計參數較多,一般的數據擬合方法無法準確估計出混合模型的參數值。EM算法是一種被廣泛用于最大似然估計的迭代算法[3],可以對混合模型進行參數估計,還可以用于混合模型的聚類分析。近年來,國內外研究者對EM算法作了大量的研究。Gelffrey[4]利用EM算法討論了有限正態分布的混合模型;孟俊才[5]推導出一些離散型混合分布模型中的參數迭代公式;陳文強[6]利用矩估計法和聚類法研究了處于不同形式下的混合泊松分布的參數估計。
本文針對離散-連續型混合分布參數估計的問題,利用EM算法和極大似然估計原理,給出未知參數的似然函數,推導出參數估計時需要用到的Q函數以及各未知參數的更新公式,并給出了EM算法的流程圖。利用EM算法進行數值模擬仿真實驗,檢驗EM算法在解決這類問題時的有效性。
以正態分布和泊松分布混合為例。假設有觀測數據y1,y2,…,yn,這些觀測數據來自一個由g1個正態分布和g2個泊松分布混合而成的混合分布,該混合分布的分量的權重記為 π1,π2,…,πg1+g2,其和為1。則觀測數據yi的混合密度可以表示為:

其中分量密度:


至此,有限混合模型的估計歸結為對參數向量Ψ的估計。借助于極大似然(ML)估計方法,可以將該問題轉化為一個最優化問題,其優化的目標函數是似然度L(Ψ)或者等價對數似然度logL(Ψ),其定義域是整個參數取值空間。
未知參數的似然函數為:

對數似然函數為:

對于混合分布而言,僅從數據本身難以分辨每一個樣本值yj來自哪個分布,從這個意義上看,觀測值中并不包含數據的全部信息,是“不完整數據”。在EM框架下,每個yj被認為來自混合模型的其中一個分量。用z1,z2,…,zn表示不可觀測的分量指示向量,其中:

用y=(y1,y2,…,yn)T表示觀測數據向量,用z表示缺失數據向量,則x=(yT,zT)T表示完整數據向量。
在有限混合分布模型中,基于參數Ψ的完整數據對數似然度為:

EM算法的每次迭代包含兩個步驟:期望步驟(E-Step)和最大化步驟(M-Step)。算法通過對“含完整數據”的對數似然函數值logLc(Ψ)的逐步迭代計算來求解“含不完整數據”的式(3)。由于logLc(Ψ)依賴于不可觀測的缺失數據z,所以在期望步驟中將logLc(Ψ)用所謂的Q函數來代替。
期望步驟:計算Q函數Q(Ψ;Ψ(k))。
在EM算法的第k+1次迭代中:

這是在給定y和當前Ψ(k)時完整數據對數似然度的條件期望。
記對應zij的隨機變量為Zij,由于完整對數似然度關于缺失數據Zij是線性的,所以,借助可觀測數據y,就能簡單地計算出隨機變量Zij當前的條件期望,即:

其中τi(yj;Ψ(k))是第j個可觀測數據yj屬于有限混合分布的第i個分量的后驗概率。從式(5)和式(6)可得:

最大化步驟的任務則是更新Ψ的估計值Ψ(k+1),從而使得Ψ的整個參數空間上Q(Ψ;Ψ(k))函數取最大值。
最大化步驟:更新Ψ的估計值Ψ(k+1)。
由公式(7)分別對 πi、μi、σi2和λi求導,可得最大化步驟中需要用到的參數迭代公式:
利用EM算法進行參數估計的流程如下頁圖1所示。
本文以正態分布和泊松分布的混合模型為例,利用matlab軟件,按照以下步驟進行混合分布參數估計的數值模擬實驗:
步驟1:設計并生成實驗數據,生成n個服從相應混合分布的隨機數;
步驟2:給定初值Ψ(0);

圖1 EM算法流程圖
步驟4:畫圖驗證并進行誤差分析。
建立二階正態分布和二階泊松分布混合分布模型0.15N(5,12)+0.35Π(8,1.22)+0.15E(5)+0.35E(8),產生1000個來自該模型的隨機數,并選取以下四組不同的初值(第一組初值為原混合模型各參數理論值)。
Ψ(0)=(0.15,0.35,0.15,5,12,8,1.22,5,8)
Ψ(0)=(0.1,0.2,0.3,1,12,2,12,0.1,0.2)
Ψ(0)=(0.3,0.2,0.3,3,12,6,12,0.3,0.4)
Ψ(0)=(0.25,0.25,0.25,5,12,10,12,0.5,0.6)
進行數值模擬,并設定閾值為10-3。
參數估計的結果如表1所示。

表1 混合正態分布和泊松分布參數估計結果
由表1可知,實驗1選取的初值為原混合模型各參數的理論值,通過對此結果進行驗證,可以直觀的看出EM算法對于多種分布混合的參數估計的有效性。
將由EM算法得到的混合分布各個分量的參數的估計值與理論值進行比較,結果如圖2所示。

圖2 實驗1各個分量的參數估計結果
由圖2可以直觀的看出,各個分量的參數的理論值曲線與估計值曲線的貼合程度很高,說明EM算法能夠在很大程度上還原混合正態分布和泊松分布的各個分量的參數,從而證明該算法的有效性。
將由EM算法得到的混合分布即估計值與理論值進行比較,結果如圖3所示。

圖3 實驗1整體估計結果
由圖3可以直觀的看出,EM算法能夠在很大程度上還原混合多種連續型與離散型分布的參數,從而證明該算法的有效性。同時由圖3可以看到,估計出的結果與最初選取的理論值之間存在一定的差異,究其原因有以下兩點:
(1)利用EM算法進行迭代計算過程中,涉及到小數有效數字位數的選取問題,因此存在一定的誤差;
(2)matlab生成的隨機數據是離散的,在數據個數有限的情況下進行數據的統計還原時,無法得到和理論值完全相同的分布函數。
但正是由于以上原因導致的誤差存在,實驗數據在一定程度上說明了,初始參數在某些范圍變化的時候,參數估計值幾乎是相同的,說明此時得到的估計值是對數似然度函數的一個穩定點,進一步證明了EM算法的有效性。
由表1中實驗2、3、4對比可知,各個參數初值的不同會影響估計值的準確程度,因此對于3組實驗分別進行驗證。
以實驗4為例,將由EM算法得到的混合分布各個分量的估計值與理論值進行比較,結果如圖4所示。

圖4 實驗4各個分量的參數估計結果
由圖4可以看出,各個分量的參數估計值曲線與理論值曲線貼合程度較差,說明當超過某一范圍時,初值的改變會使得迭代結果發生較大改變,從另一方面說明了計算結果對于初值的選取是敏感的。
根據上述實驗結果可知:
(1)利用EM算法估計出的參數值能夠較好地還原多種分布混合中各分量分布的參數,證明了該算法的有效性。
(2)初始參數在某一范圍變化時,參數的估計值幾乎是不變的,說明此時得到的估計值是對數似然度函數的一個穩定點。
(3)超出某一變化范圍之后,某些初始值會使得迭代結果發生較大改變,說明計算結果對于初值的選取具有敏感性。
本文利用EM算法,針對離散-連續型混合分布參數估計的問題,以正態分布和泊松分布混合為例,進行了數值模擬實驗,并驗證了EM算法可以有效解決這類問題。但同時發現了EM算法的估計精度受初始值的影響很大這一缺陷,下一步將引入常見的智能優化算法對初始值敏感問題進行改善。