最近因為準備面試,重新看了下em演算法。覺得還是有了新的收穫。大家都知道em演算法是用來解決含有隱含變數的不完全資料問題。一般部落格中舉的最多的例子就是男生女生身高的問題。具體為:假如有一批人,我們已經測得了每個人的身高,這些人中包含男生和女生,問如何分別求解得到男生和女生的身高分布的引數(一般假設都是服從正態分佈)。前人的部落格都說了因為log在求和符號的外面,一般的極大似然法沒法求解這個問題,原因就在於我們並不知道每乙個身高資料到底是男生的還是女生的。而em演算法的提出了一種迭代求解的思路:我們首先假設我們知道每個身高是來自男生分布還是女生分布;然後在已知隱含變數的情況下,即我們已經可以把這批人分成兩半,每一半利用極大似然估計就可以求得均值和方差了;然後把求得的均值和方差再帶回去估計每個樣本是屬於男性還是女性。
em演算法的英文名稱叫做expectation maximization。通常分為兩步,即常說的e步和m步。一般e步的作用是求期望,m步即將e步求得的期望最大化,然後得到新的引數(如混合高斯分布裡的均值和方差)。實際上e步幹的事應該是求得每個隱含變數的後驗分布,即p(
zi|x
i;θ)
,這就是所謂的q函式,基於每個樣本的這個分布我們就可以得到每個樣本的隱含變數值zi
。當我們得到了每個樣本的隱含變數後,就可以把期望公式計算好了,這就是我們常說的計算期望。
EM演算法的一些感想
em演算法是最大似然估計方法 引數估計方法的一種 為什麼要引入em呢 我覺得 因為引數theta本身是依賴於資料的完整特徵 但是只觀察了部分特徵x 因此需要引入隱藏特徵z 才能建立起theta與x,z的關係。怎麼開始這個過程呢?我們現在自己的腦袋裡假設存在乙個theta 當然我們未知 利用這個the...
EM演算法的一些整理
今天把em演算法又重新看了一遍,於是決定對em演算法做一些整理,把em演算法的整個流程理清。對於一般的給定樣本,我們可以用最大似然估計或者損失函式來求解模型的引數,此時的樣本資料是完備的。但是對於某些樣本資料可能由兩個部分組成,乙個是我們觀測到的資料,還有一些是我們無法觀測的資料,也就是隱變數,對於...
em演算法的一些理解
資料 不完全資料,即含有隱變數 無法觀測的變數 目的 求出模型中所有引數的合理估計。為什麼使用em演算法 不同於極大似然估計,可以顯式的求出使得資料似然度最大的引數,在含有隱變數的模型中,由於需要對隱變數做全概率展開,所以最終的似然函式是求和的形式,而且關鍵的是沒有隱變數資料所以無法求出最大似然度對...