在求解概率模型的時候,如果需要的變數都是觀測變數,不涉及到隱藏變數的話,可以使用極大似然或者貝葉斯估計來求解模型的引數。比如:對於單高斯模型來講,如果知道觀測變數,那麼就可以使用極大似然或者最小均方誤差來估計高斯模型的均值和方差。
如果模型同時包含觀察變數和隱藏變數的話,傳統的方法不能完成模型的估計,此時就需要引入em演算法。比如:對於混合高斯模型來講,除了需要估計高斯模型的均值和方差,還涉及到每個高斯模型的權重資訊,這個權重資訊就可以認為是隱變數,所以一般使用em來求解gmm的引數。
其中y表示觀測變數,z表示隱含變數。
由於包含隱含變數z,所以無法正常求解。
使用迭代的方法,一步步的求模型引數,使其逐漸逼近於最優,即保證本次的模型引數qi+1相比上一次的模型引數qi,使得似然函式的值變大。
為了實現似然函式的遞增,基於觀察資料y和本次的模型引數qi,構造基於未知變數q的q(q,qi)函式,作為似然函式l的下限,q函式最大值對應的q即為本次迭代的模型引數qi+1。
為什麼可以保證q函式的最大值一定會使得似然函式l的值變大呢?
因為q有兩個性質:乙個是作為l的下限,同時還滿足在qi這個點l和q函式的值是相等的,如果qi+1滿足q(qi+1)>=q(qi),同時
q(qi)==l(qi)
l(qi)>=q(qi), l(qi+1)>=q(qi+1)
不難推出l(qi+1)>=l(qi),但是無法保證求出的模型引數是全域性最優,所以初值的選擇非常重要。
em演算法是expectationmaximization的簡稱,每次迭代分為兩步:
e步,求期望:
即為q函式
m步,求極大:
求q函式最大時對應的q作為qi+1
如果q對應於多組未知變數,分別求導等於0求解
1. 非監督學習
對於監督學習,訓練資料(x,y)都是已知的,對於非監督學習,只知道輸入x,不知道輸出y。
可以將輸出y作為隱藏變數(未觀測資料),em演算法可以學習非監督學習的生成模型。
2. gmm訓練
理解EM演算法
em演算法應對的問題 隨機變數x 中y為觀測變數,存在一部分不能直接觀測的變數z,因此不能直接使用最大似然方法估計引數。em基本思路 1 expectation 直接假設分布引數的初始值,求隱變數z期望,從而 補全 不完全觀測資料,相當於得到了完全變數x的觀測樣本。2 maximization 利用...
EM演算法學習筆記 1 對EM演算法的簡單理解
因做實驗的需要,最近在學習 em演算法,演算法介紹的資料網上是有不少,可是沒有一篇深入淺出的介紹,演算法公式太多,比較難懂,畢竟她是 ml領域 10大經典演算法之一 且一般是結合 gmm模型的引數估計來介紹 em的。看過不少 em的資料,現將自己對 em演算法用稍微通俗點的文字寫下來,當然你可以用 ...
如何理解EM演算法
em演算法是極大似然解的一種演算法。當使用基於極大似然估計的模型時,模型中存在隱變數,就要用到em演算法進行引數估計。以投硬幣為例說明 現有兩枚硬幣1和2,隨機投擲正面朝上的概率是p1和p2,然後為了估計這兩個概率做了上面的實驗,我們可以很容易得出 p1 3 1 2 15 0.4 p2 2 3 10...