em(expectation maximization algorithm)用於含有隱變數的概率模型引數的極大似然估計。
例子:有三枚a,b,c硬幣。首先a為選擇硬幣,對其進行投擲,其投擲結果正則選擇b硬幣進行投擲,反為選擇c硬幣,然後根據選擇的硬幣再進行投擲,記錄該硬幣的投擲結果,正面為1,反面為0;重複上述過程。投擲實驗過程如下,
圖1-1 投擲a,b,c硬幣實驗
實驗的記錄結果為:0,1,1,0,1,1,1,0,0,1
現假設只能看到擲硬幣的結果(如下),不能看到過程,即表示看不到所記錄的結果'1'和'0'是由b硬幣還是由c硬幣擲出來的,也等同於看不到 a選擇硬幣的投擲結果,試估計這三枚硬幣出現正面的概率分別是多少。
圖1-2 只能看到擲硬幣的結果
因此,這三硬幣的一次試驗的模型可以寫作如下:
那麼,根據總的十次試驗觀測資料得到模型的似然函式如下,
再對似然函式求極大化,便可這三枚硬幣出現正面的概率分別是多少,
然而,對於上述的
是沒有解析解的,只能通過迭代求,而em演算法就是用於求解該問題的一種迭代演算法。
首先,選取引數的初始值,例如上述的三枚硬幣的投擲問題
,接著進行迭代(i,表示第i次迭代),重複em步驟,直到引數的估計值趨於穩定;
e步:在模型引數
下計算,
來自b硬幣的概率
m步:更新引數,
根據上面的em步驟,三枚硬幣在
的初始引數下,每次迭代的結果如下
第一次迭代的e步驟:
第一次迭代的m步驟:
第二次迭代的e步驟:
第二次迭代的m步驟:
引數趨於穩定,故
如果初始值取
,那麼得到引數的極大似然估計則為
,可見em演算法初始值的不同將得到不同的估計結果。
em演算法流程:
輸入:觀測變數資料y,隱變數資料z,聯合分布
。條件分布
;輸出:模型引數
;選擇引數的初始值
進行迭代
e步:為第i次迭代的引數估計值,在第i+1次迭代的e步中,計算
(3)m步:求使
極大化的
,確定下一次(第i+1次)迭代的引數估計值
(4)重複(2),(3),直至收斂。
在em演算法的流程中q函式為完全資料的對數似然函式
,關於在給定觀測資料y和當前引數
下,其對未觀測資料z的條件概率分布的
期望。
統計學習方法九 EM演算法
一 em演算法是什麼?em演算法是一種迭代演算法,用於含有隱變數的概率模型引數的極大似然估計。作用 簡單直白的說,估計引數 是一種生成模型 1 用在概率模型中 2 含有隱變數 3 用極大似然估計方法估計引數 個人理解,概率模型中的一些引數,通常是一些概率 1 如果概率模型中的變數全部可觀測,那可以統...
《統計學習方法》筆記(十三) EM
em本身是一種迭代演算法,目的是實現含有隱變數的模型引數的極大似然估計,以及後驗分布的眾數。em也可以用來補全缺失的資料集。在此不做重點考慮 演算法描述 輸入 觀測變數資料y,隱含變數z,聯合分布p y,z theta 條件分布p z y,theta 輸出 模型引數theta 1.選擇引數的初值th...
統計學習方法 第9章 EM演算法
2019 july 04 em演算法 em 演算法精髓 em 演算法是通過不斷求解下界得極大化逼近對數似然函式極大化得演算法。構造下界函式 jessen 不等式 通過巧妙地取 q 的值而保證在引數的當前迭代點處下界函式與要求解的目標函式數值相等 jessen 不等式取等號 從而保證優化下界函式後在新...