EM演算法的理解

2021-10-06 11:16:22 字數 1024 閱讀 5378

建議先看一下下面這篇關於極大似然函式的理解,要不下面理解起來有點困難。

極大似然的理解

還是上面的部落格中的例子。

你想要的知道學校的男生和女生的身高分布。你該怎麼做呢?首先假設全校同學的身高分布是符合正態分佈的。那麼,我們就需要知道正態分佈的均值和方差。那該怎麼求呢?總不能全部統計一下吧,這樣太費時費力了。然後你就想到了乙個好辦法,通過隨機抽樣,取出100個男生和100個女生,然後統計他們的身高分布,然後用這200個人的身高分布近似代替總體的身高分布。

上面這個例子是極大似然估計的方法,但是我們加入改一下題目。還是求學校裡面男生和女生的身高分布,同樣抽取了200個人,但是你不知道你抽出來的人是男生還是女生,這時候你怎麼估計?隨機抽出乙個人的身高,問你是男生還是女生,你又怎麼估計?

em的意思是「expectation maximization」,具體方法為:

上面的學生屬於男生還是女生我們稱之為隱含引數,女生和男生的身高分布引數稱為模型引數。

em 演算法解決這個的思路是使用啟發式的迭代方法,既然我們無法直接求出模型分布引數,那麼我們可以先猜想隱含引數(em 演算法的 e 步),接著基於觀察資料和猜測的隱含引數一起來極大化對數似然,求解我們的模型引數(em演算法的m步)。由於我們之前的隱含引數是猜測的,所以此時得到的模型引數一般還不是我們想要的結果。我們基於當前得到的模型引數,繼續猜測隱含引數(em演算法的 e 步),然後繼續極大化對數似然,求解我們的模型引數(em演算法的m步)。以此類推,不斷的迭代下去,直到模型分布引數基本無變化,演算法收斂,找到合適的模型引數。

乙個最直觀了解 em 演算法思路的是 k-means 演算法。在 k-means 聚類時,每個聚類簇的質心是隱含資料。我們會假設 k 個初始化質心,即 em 演算法的 e 步;然後計算得到每個樣本最近的質心,並把樣本聚類到最近的這個質心,即 em 演算法的 m 步。重複這個 e 步和 m 步,直到質心不再變化為止,這樣就完成了 k-means 聚類。

具體推導見這篇博文,說實話有點複雜。。。

理解EM演算法

em演算法應對的問題 隨機變數x 中y為觀測變數,存在一部分不能直接觀測的變數z,因此不能直接使用最大似然方法估計引數。em基本思路 1 expectation 直接假設分布引數的初始值,求隱變數z期望,從而 補全 不完全觀測資料,相當於得到了完全變數x的觀測樣本。2 maximization 利用...

EM演算法簡單理解

在求解概率模型的時候,如果需要的變數都是觀測變數,不涉及到隱藏變數的話,可以使用極大似然或者貝葉斯估計來求解模型的引數。比如 對於單高斯模型來講,如果知道觀測變數,那麼就可以使用極大似然或者最小均方誤差來估計高斯模型的均值和方差。如果模型同時包含觀察變數和隱藏變數的話,傳統的方法不能完成模型的估計,...

如何理解EM演算法

em演算法是極大似然解的一種演算法。當使用基於極大似然估計的模型時,模型中存在隱變數,就要用到em演算法進行引數估計。以投硬幣為例說明 現有兩枚硬幣1和2,隨機投擲正面朝上的概率是p1和p2,然後為了估計這兩個概率做了上面的實驗,我們可以很容易得出 p1 3 1 2 15 0.4 p2 2 3 10...