概率模型有時既有觀測變量, 又有隱變量, 當(dāng)存在隱變量時, 直接的最大似然估計(jì)無法直接搞定零院。
EM算法是一種迭代算法, 對于含有隱變量(hidden variable)的概率模型參數(shù)的極大似然估計(jì)或極大后驗(yàn)概率估計(jì).
EM算法每次迭代分兩步: E步, 求期望; M步, 求極大; 因此EM算法稱為期望極大算法.
最經(jīng)典的例子就是拋3個硬幣:
假設(shè)三枚硬幣, 分別記作A,B,C裕偿,正面出現(xiàn)的概率分別為
. ,拋A硬幣決定B和C(A正面, 選B; A反面, 選C), 然后拋B或者C決定正反面, 正面記1, 反面記0; 然后估算3個硬幣的正反面概率值崖媚。
下面對著三枚硬幣建模模型:
上式, 隨機(jī)變量y是觀測變量, 一次試驗(yàn)最終結(jié)果是1, 則y=1; 否則, y=0; 隨機(jī)變量z是隱變量, 表示中間為觀測到的擲硬幣A的結(jié)果; 是模型參數(shù), 這模型是以上數(shù)據(jù)的生成模型.
注意: 對隱變量的理解是理解EM算法的第一要義, 這里, 隨機(jī)變量y的數(shù)據(jù)可以觀測, 但是隨機(jī)變量z的數(shù)據(jù)不可觀測.
我們可以簡單的來核對一下這個概率模型寫得對不對。我們畫出一次拋擲硬幣的整個過程塑顺,并計(jì)算出相應(yīng)的概率汤求。然后帶入到上面的公式中就可以知道模型構(gòu)建是否正確了。
case | A(z) | B | C | prob |
---|---|---|---|---|
1 | 1 | 1 | - | |
2 | 1 | 0 | - | |
3 | 0 | - | 1 | |
4 | 0 | - | 0 |
分析:
- 試驗(yàn)結(jié)果為1
根據(jù)上表, 有
同時, y=1帶入上式(1), 有:
- 試驗(yàn)結(jié)果為0
根據(jù)上表, 有
同時, y=1帶入上式(1), 有:
可見, 公式(1)符合實(shí)際實(shí)驗(yàn)結(jié)果.
用極大似然估計(jì)求參數(shù):
觀測數(shù)據(jù), 為觀測數(shù)據(jù)
, 則觀測數(shù)據(jù)的似然函數(shù)為:
即,
考慮求模型參數(shù)的極大似然估計(jì):
該問題沒有解析解, 只能通過迭代的方法求解, EM算法便是可求解這一問題的一種迭代算法.
一般地, 用Y表示觀測變量的數(shù)據(jù), Z表示隱變量的數(shù)據(jù), Y和Z連在一起稱為完全數(shù)據(jù), 觀測數(shù)據(jù)Y又稱不完全數(shù)據(jù).
不完全數(shù)據(jù)Y的概率分布是, 對數(shù)似然函數(shù)
完全數(shù)據(jù)Y和Z的聯(lián)合概率分布, 對數(shù)似然函數(shù)是
EM算法通過迭代求的極大似然估計(jì), 每次迭代先求E(期望), 后求M(極大化).
Q函數(shù):
完全數(shù)據(jù)的對數(shù)似然
關(guān)于給定觀測數(shù)據(jù)Y和當(dāng)前參數(shù)
下對未觀測數(shù)據(jù)Z的條件概率分布
的期望稱為Q函數(shù):
EM算法:
輸入: 觀測變量數(shù)據(jù), 隱變量數(shù)據(jù)Z, 二者聯(lián)合分布, 條件分布
輸出: 模型參數(shù)
(1) 選擇參數(shù)的初值
, 開始迭代
注意: EM算法對初始值敏感, 不同的初值可能得到不同的參數(shù)估計(jì)值
(2) E步: 第i+1次迭代的E步, 計(jì)算:
這里 ,是第i次迭代參數(shù)
的估計(jì)值,
是在觀測數(shù)據(jù)Y和當(dāng)前參數(shù)估計(jì)
下隱變量數(shù)據(jù)Z的條件概率分布
(3)M步: 求使極大化的
, 確定第i+1次迭代的參數(shù)估計(jì)值
, 完成一次迭代
:
每次迭代使似然函數(shù)增大或達(dá)到局部極值.
(4) 重復(fù)(2)(3)步, 直到收斂.
迭代終止條件, 一般是對較小的, 若滿足:
則停止迭代.