概念
在統計計算中,最大期望(em)演算法是在概率(probabilistic)模型中尋找引數最大似然估計或者最大後驗估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(latent variable)。
最大期望經常用在機器學習和計算機視覺的資料聚類(data clustering)領域。
可以有一些比較形象的比喻說法把這個演算法講清楚。
em演算法就是這樣,假設我們估計知道a和b兩個引數,在開始狀態下二者都是未知的,並且知道了a的資訊就可以得到b的資訊,反過來知道了b也就得到了a。可以考慮首先賦予a某種初值,以此得到b的估計值,然後從b的當前值出發,重新估計a的取值,這個過程一直持續到收斂為止。
em演算法還是許多非監督聚類演算法的基礎(如cheeseman et al. 1988),而且它是用於學習部分可觀察馬爾可夫模型(partially observable markov model)的廣泛使用的baum-welch前向後向演算法的基礎。
估計k個高斯分布的均值
介紹em演算法最方便的方法是通過乙個例子。
考慮資料d是一例項集合,它由k個不同正態分佈的混合所得分布所生成。該問題框架在下圖中示出,其中k=2而且例項為沿著x軸顯示的點。
每個例項使用乙個兩步驟過程形成。
首先了隨機選擇k個正態分佈其中之一。
其次隨機變數xi按照此選擇的分布生成。
這一過程不斷重複,生成一組資料點如圖所示。為使討論簡單化,我們考慮乙個簡單情形,即單個正態分佈的選擇基於統一的概率進行選擇,並且k個正態分佈有相同的方差σ2,且σ2已知。
學習任務是輸出乙個假設h=<μ1…μk>,它描述了k個分布中每乙個分布的均值。我們希望對這些均值找到乙個極大似然假設,即乙個使p(d|h)最大化的假設h。
注意到,當給定從乙個正態分佈中抽取的資料例項x1,x2, …, xm時,很容易計算該分布的均值的極大似然假設。
其中我們可以證明極大似然假設是使m個訓練例項上的誤差平方和最小化的假設。
使用當表述一下式,可以得到:
(公式一)
然而,在這裡我們的問題涉及到k個不同正態分佈的混合,而且我們不能知道哪個例項是哪個分布產生的。因此這是乙個涉及隱藏變數的典型例子。
em演算法步驟
在上圖的例子中,可把每個例項的完整描述看作是三元組,其中xi是第i個例項的觀測值,zi1和zi2表示兩個正態分佈中哪個被用於產生值xi。
確切地講,zij在xi由第j個正態分佈產生時值為1,否則為0。這裡xi是例項的描述中已觀察到的變數,zi1和zi2是隱藏變數。如果zi1和zi2的值可知,就可以用式一來解決均值μ1和μ2。因為它們未知,因此我們只能用em演算法。
em演算法應用於我們的k均值問題,目的是搜尋乙個極大似然假設,方法是根據當前假設<μ1…μk>不斷地再估計隱藏變數zij的期望值。然後用這些隱藏變數的期望值重新計算極大似然假設。這裡首先描述這一例項化的em演算法,以後將給出em演算法的一般形式。
為了估計上圖中的兩個均值,em演算法首先將假設初始化為h=<μ1,μ2>,其中μ1和μ2為任意的初始值。然後重複以下的兩個步驟以重估計h,直到該過程收斂到乙個穩定的h值。
步驟1:計算每個隱藏變數zij的期望值e[zij],假定當前假設h=<μ1,μ2>成立。
步驟2:計算乙個新的極大似然假設h´=<μ1´,μ2´>,假定由每個隱藏變數zij所取的值為第1步中得到的期望值e[zij],然後將假設h=<μ1,μ2>替換為新的假設h´=<μ1´,μ2´>,然後迴圈。
現在考察第一步是如何實現的。步驟1要計算每個zij的期望值。此e[zij]正是例項xi由第j個正態分佈生成的概率:
因此第一步可由將當前值<μ1,μ2>和已知的xi代入到上式中實現。
在第二步,使用第1步中得到的e[zij]來匯出一新的極大似然假設h´=<μ1´,μ2´>。如後面將討論到的,這時的極大似然假設為:
注意此表示式類似於公式一中的樣本均值,它用於從單個正態分佈中估計μ。新的表示式只是對μj的加權樣本均值,每個例項的權重為其由第j個正態分佈產生的期望值。
上面估計k個正態分佈均值的演算法描述了em方法的要點:即當前的假設用於估計未知變數,而這些變數的期望值再被用於改進假設。
可以證明,在此演算法第一次迴圈中,em演算法能使似然性p(d|h)增加,除非它已達到區域性的最大。因此該演算法收斂到對於<μ1,μ2>的乙個區域性極大可能性假設。
em演算法的一般表述
上面的em演算法針對的是估計混合正態分佈均值的問題。更一般地,em演算法可用於許多問題框架,其中需要估計一組描述基準概率分布的引數θ,只給定了由此分布產生的全部資料中能觀察到的一部分。
在上面的二均值問題中,感興趣的引數為θ=<μ1,μ2>,而全部資料為三元組,而只有xi可觀察到,一般地令x=代表在同樣的例項中已經觀察到的資料,並令y=x∪z代表全體資料。注意到未觀察到的z可被看作一隨機變數,它的概率分布依賴於未知引數θ和已知資料x。類似地,y是一隨機變數,因為它是由隨機變數z來定義的。在後續部分,將描述em演算法的一般形式。使用h來代表引數θ的假設值,而h´代表在em演算法的每次迭代中修改的假設。
em演算法通過搜尋使e[lnp(y|h´)]最大的h´來尋找極大似然假設h´。此期望值是在y所遵循的概率分布上計算,此分布由未知引數θ確定。考慮此表示式究竟意味了什麼。
首先p(y|h´)是給定假設h´下全部資料y的似然性。其合理性在於我們要尋找乙個h´使該量的某函式值最大化。
其次使該量的對數lnp(y|h´)最大化也使p(y|h´)最大化,如已經介紹過的那樣。
第三,引入期望值e[lnp(y|h´)]是因為全部資料y本身也是一隨機變數。
已知全部資料y是觀察到的x和未觀察到的z的合併,我們必須在未觀察到的z的可能值上取平均,並以相應的概率為權值。換言之,要在隨機變數y遵循的概率分布上取期望值e[lnp(y|h´)]。該分布由完全已知的x值加上z服從的分布來確定。
y遵從的概率分布是什麼?一般來說不能知道此分布,因為它是由待估計的θ引數確定的。然而,em演算法使用其當前的假設h代替實際引數θ,以估計y的分布。現定義一函式q(h´|h),它將e[lnp(y|h´)]作為h´的乙個函式給出,在θ=h和全部資料y的觀察到的部分x的假定之下。
將q函式寫成q(h´|h)是為了表示其定義是在當前假設h等於θ的假定下。在em演算法的一般形式裡,它重複以下兩個步驟直至收斂。
步驟1:估計(e)步驟:使用當前假設h和觀察到的資料x來估計y上的概率分布以計算q(h´|h)。
步驟2:最大化(m)步驟:將假設h替換為使q函式最大化的假設h´:
當函式q連續時,em演算法收斂到似然函式p(y|h´)的乙個不動點。若此似然函式有單個的最大值時,em演算法可以收斂到這個對h´的全域性的極大似然估計。否則,它只保證收斂到乙個區域性最大值。因此,em與其他最優化方法有同樣的侷限性,如之前討論的梯度下降,線性搜尋和變形梯度等。
資料探勘十大經典演算法 5 最大期望 EM 演算法
在統計計算中,最大期望 em,expectation maximization 演算法是在概率 probabilistic 模型中尋找引數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數 latent variabl 最大期望經常用在機器學習和計算機視覺的資料集聚 data cluster...
資料探勘十大經典演算法(五)最大期望 EM 演算法
最大期望演算法 expectation maximization algorithm,又譯期望最大化演算法 是一種迭代演算法。在 概率 probabilistic 模型中尋找引數 最大似然估計 或者最大後驗估計的演算法,其中 概率模型 依賴於無法觀測的隱藏變數 latent variable 最大期...
資料探勘十大經典演算法 5 最大期望 EM 演算法
資料探勘十大經典演算法 5 最大期望 em 演算法 在統計計算中,最大期望 em,expectation maximization 演算法是在概率 probabilistic 模型中尋找引數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數 latent variabl 最大期望經常用在機器...