學習筆記 EM演算法

2022-11-24 17:54:22 字數 2299 閱讀 7255

em演算法是一種迭代演算法,用於含有隱變數(hidden variable)的概率模型引數的極大似然估計,或極大後驗概率估計。em演算法的每次迭代由兩步組成:e步,求期望(expectation);m步,求極大(maximization)。

給一些觀察資料,可以使用極大似然估計法,或貝葉斯估計法估計模型引數。但是當模型含有隱變數時,就不能簡單地使用這些方法。有些時候,引數的極大似然估計問題沒有解析解,只能通過迭代的方法求解,em演算法就是可以用於求解這個問題的一種迭代演算法。

選擇引數的初值\(\theta^\),開始迭代;

e步:記\(\theta^\)為第\(i\)次迭代引數\(\theta\)的估計值,在第\(i+1\)次迭代的e步,計算$$q(\theta, \theta^) = e_z[\log p(y, z|\theta) | y, \theta^]$$ $$= \sum_z \log p(y, z | \theta) p (z|y, \theta^)$$ 這裡,\(p(z|y, \theta^)\)是在給定觀測資料y和當前的引數估計\(\theta^\)下隱變數資料z的條件概率分佈;

m步:求使\(q(\theta, \theta^)\)極大化的\(\theta\),確定第\(i+1\)次迭代的引數的估計值\(\theta^\) $$\theta^ = \arg \max_ q(\theta, \theta^)$$

重複第(2)步和第(3)步,直到收斂。

其中的函式\(q(\theta, \theta^)\)是em演算法的核心。稱為q函式。

假設觀測資料\(y_1,y_2,...,y_n\)由高斯混合模型生成,$$p(y | \theta) = \sum_^k \alpha_k \phi(y|\theta_k)$$其中,\(\theta = (\alpha_1, \alpha_2, ..., \alpha_k; \theta_1, \theta_2,...,\theta_k)\)。我們用em演算法估計高斯混合模型的引數\(\theta\)。

明確隱變數,寫出完全資料的對數似然函式

可以認為觀測資料是這樣產生的:首先依概率\(\alpha_k\)選擇第k個分模型,然後根據這個分模型的概率分佈生成一個資料。計算出完全資料的對數似然函式為$$\log p(y, \gamma | \theta) = \sum_^k n_k \log \alpha_k + \sum_^n \gamma_ [\log(\frac}) - \log \sigma_k - \frac (y_i - \mu_k)^2]$$其中,\(\gamma_\)為1代表第j個觀測來自第k個分模型,否則為0,\(n_k = \sum_^n \gamma_\),\(\sum_^k n_k = n\)。

觀測資料\(y_j\)及未觀測資料\(\gamma_\),完全資料是\((y_j,\gamma_,\gamma_,...,\gamma_, j = 1,2,...,n\)

em演算法的e步:確定q函式

計算出q函式為:$$q(\theta, \theta^) = \sum_^k n_k \log \alpha_k + \sum_^n \hat [\log (\frac}) - \log \sigma_k - \frac (y_i - \mu_k)^2]$$ 其中,$$\hat = e(\gamma_ | y, \theta) = \frac^k \alpha_k \phi (y_i | \theta_k)}$$ $$n_k = \sum_^n e\gamma_$$

確定em演算法中的m步

迭代的m步是求函式\(q(\theta, \theta^)\)對\(\theta\)的極大值,即求新一輪迭代的模型引數:$$\theta^ = \arg \max_ q(\theta, \theta^)$$

通過求偏導可以得到計算相應引數的表示式。

取引數的初始值開始迭代

e步:依據當前模型引數,計算分模型k對觀測資料\(y_i\)的響應度$$\hat = \frac^k \alpha_k \phi (y_i | \theta_k)}, j = 1,2,...,n; k = 1,2,...,k$$

m步:計算新一輪迭代的模型引數:$$\hat = \frac^n \hat y_j}^n \hat}, k = 1,2,...,k$$ $$\hatk^2 = \frac^n \hat (y_j - \mu_k)2}n \hat}, k = 1,2,...,k$$ $$\hatk = \frac^n \hat}, k = 1,2,...,k$$

重複第(2)步和第(3)步,直到收斂。

(注:本文為讀書筆記與總結,側重演算法原理,**為[《統計學習方法》](一書第九章)

出處:[

09 EM演算法

今天是2020年3月5日星期四。預計開學時間不會早於四月初,真是好訊息,可以有大把的時間整理知識點 實際上發文章的時間都6月6號了,希望9月份能開學啊,不耽誤找工作 每次導師找,整個人會變的特別煩躁,煩躁加不安,其它事情一點都做不下去,焦慮。改小 這幾天耽誤了一些時間,查了些em演算法的例子,怎樣理...

EM演算法 入門案例

4種實驗結果 e 1 e 2 e 3 e 4 記錄它們發生的次數 y 1 y 2 y 3 y 4 記錄次數結果 12518 2034 4種結果發生的概率 frac frac frac frac frac frac frac 求 theta 的估計值?l theta frac frac frac fr...

EM演算法簡易推導

網上和書上有關於em演算法的推導,都比較複雜,不便於記憶,這裡給出一個更加簡短的推導,用於備忘。在不包含隱變數的情況下,我們求最大似然的時候只需要進行求導使導函式等於0,求出引數即可。但是包含隱變數,直接求導就變得異常複雜,此時需要em演算法,首先求出隱變數的期望值 e步 然後,把隱變數當中常數,按...