机器学习第七篇:详解EM算法
01|概念及原理:
EM算法是一種迭代算法,用于含有隱變量的概率模型參數的極大似然估計,或極大后驗概率估計。EM算法的每次迭代分兩步完成:E步,求期望(expectation);M步,求極大值(maximization).所以這一算法稱為期望極大算法,簡稱EM算法。(你看懂了嗎?反正我第一次看是一臉懵。沒關系接下來通過一個例子,你就能明白了。)
(三硬幣模型)? 假設有A,B,C這些硬幣正面出現的概率分別是π,p和q。進行如下擲硬幣試驗:先擲硬幣A,根據其結果選出硬幣B或C,正面選硬幣B,反面選硬幣C;然后擲選出的硬幣,擲硬幣的結果出現正面記作1,出現反面記作0;獨立重復n次試驗(這里n=10),觀測結果如下:1,1,0,1,0,0,1,0,1,1
假設只能看到擲硬幣的結果,不能觀測擲硬幣的過程,問如何估計三硬幣正面出現的概率,即三硬幣的模型參數(即π,p和q),求解這個模型參數的過程就是EM算法,也可以說是EM算法的目的就是求取這個模型的最大化參數。(硬幣A出現的結果就是隱變量)
下圖中紅色問號就是一個隱變量,在整個過程中我們是看不到A的結果,我們只能看到最后紅色1的結果,而我們現在要做的就是通過紅色1的結果去求取A、B、C正面出現的概率。求取的原則是使A、B、C的概率最大化,求取的方法是不停迭代(也就是不停地試),直到概率最大為止。
本圖來源于:http://blog.csdn.net/sajiahan/article/details/53106642
02|數學推導:
一般地,用Y表示觀測隨機變量的數據,Z表示隱隨機變量的數據。Y和Z在一起稱為完全數據,觀測數據Y又稱為不完全數據。假設給定觀測數據Y,其概率分布是P(Y|θ),其中θ是需要估計的模型參數,那么不完全數據Y的似然函數是P(Y|θ),對數似然函數L(θ)=logP(Y|θ);假設Y和Z的聯合概率分布是P(Y,Z|θ),那么完全數據的對數似然函數是logP(Y,Z|θ)。
03|算法步驟:
EM算法就是通過迭代求L(θ)=logP(Y|θ)的極大似然估計。
EM算法步驟的第一步就是設定一個參數初值,這是人為設定的,這個值將會影響后續的參數迭代。
Q函數:
Q函數其實就是L(θ),也就是EM算法其實就是求取Q函數的極大值。
04|EM算法的應用:
EM算法常用在非監督學習問題中,即訓練數據只有輸入沒有對應的輸出。EM算法可以用于生成模型的非監督學習。生成模型由聯合概率分布P(X,Y)表示,可以認為非監督學習訓練數據是聯合概率分布產生的數據。X為觀測數據,Y為未觀測數據。
總結
以上是生活随笔為你收集整理的机器学习第七篇:详解EM算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OAI搭建总结
- 下一篇: 机器学习第八篇:详解逻辑斯蒂回归算法