機(jī)器學(xué)習(xí)算法深度總結(jié)(9)-EM算法

概率模型有時既有觀測變量, 又有隱變量, 當(dāng)存在隱變量時, 直接的最大似然估計(jì)無法直接搞定零院。
EM算法是一種迭代算法, 對于含有隱變量(hidden variable)的概率模型參數(shù)的極大似然估計(jì)或極大后驗(yàn)概率估計(jì).
EM算法每次迭代分兩步: E步, 求期望; M步, 求極大; 因此EM算法稱為期望極大算法.

最經(jīng)典的例子就是拋3個硬幣:

假設(shè)三枚硬幣, 分別記作A,B,C裕偿,正面出現(xiàn)的概率分別為\pi, p, q. ,拋A硬幣決定B和C(A正面, 選B; A反面, 選C), 然后拋B或者C決定正反面, 正面記1, 反面記0; 然后估算3個硬幣的正反面概率值崖媚。

下面對著三枚硬幣建模模型:
\begin{align*} P(y|\theta) &= \sum_z P(y,z|\theta) = \sum_z P(z|\theta)P(y|z,\theta) \\ &= \pi p^y(1-p)^{1-y} + (1-\pi)q^y(1-q)^{1-y} \ \ (1) \end{align*}
上式, 隨機(jī)變量y是觀測變量, 一次試驗(yàn)最終結(jié)果是1, 則y=1; 否則, y=0; 隨機(jī)變量z是隱變量, 表示中間為觀測到的擲硬幣A的結(jié)果; \theta=(\pi, p, q)是模型參數(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 - \pi * p
2 1 0 - \pi * (1-p)
3 0 - 1 (1-\pi)*q
4 0 - 0 (1-\pi)*(1-q)

分析:

  1. 試驗(yàn)結(jié)果為1
    根據(jù)上表, 有P(y=1) = P(case1)+P(case3) = \pi * p + (1-\pi)*q
    同時, y=1帶入上式(1), 有:
    P(y=1|\theta) =\pi p^1(1-p)^{1-1} + (1-\pi)q^1(1-q)^{1-1} = \pi p + (1-\pi)q
  2. 試驗(yàn)結(jié)果為0
    根據(jù)上表, 有P(y=0) = P(case2)+P(case4) = \pi * (1-p) + (1-\pi)*(1-q)
    同時, y=1帶入上式(1), 有:
    P(y=0|\theta) =\pi p^0(1-p)^{1-0} + (1-\pi)q^0(1-q)^{1-0} = \pi * (1-p) + (1-\pi)*(1-q)
    可見, 公式(1)符合實(shí)際實(shí)驗(yàn)結(jié)果.

用極大似然估計(jì)求參數(shù)\theta:
觀測數(shù)據(jù)Y=(Y_1,\cdots,Y_n)^T, 為觀測數(shù)據(jù)Z=(Z_1,\cdots,Z_n)^T, 則觀測數(shù)據(jù)的似然函數(shù)為:
P(Y|\theta) = \sum_Z P(Z|\theta)P(Y|Z,\theta)
即,
P(Y|\theta) = \prod_{j=1}^n[ \pi p^{y_j}(1-p)^{1-y_j} + (1-\pi)q^{y_j}(1-q)^{1-y_j}]
考慮求模型參數(shù)\theta=(\pi, p, q)的極大似然估計(jì):
\hat \theta = \arg \underset{\theta}{\max} \log P(Y|\theta)
該問題沒有解析解, 只能通過迭代的方法求解, EM算法便是可求解這一問題的一種迭代算法.

一般地, 用Y表示觀測變量的數(shù)據(jù), Z表示隱變量的數(shù)據(jù), Y和Z連在一起稱為完全數(shù)據(jù), 觀測數(shù)據(jù)Y又稱不完全數(shù)據(jù).

不完全數(shù)據(jù)Y的概率分布是P(Y|\theta), 對數(shù)似然函數(shù)L(\theta) = \log P(Y|\theta)
完全數(shù)據(jù)Y和Z的聯(lián)合概率分布P(Y,Z|\theta), 對數(shù)似然函數(shù)是\log P(Y,Z|\theta)

EM算法通過迭代求L(\theta) = \log P(Y|\theta)的極大似然估計(jì), 每次迭代先求E(期望), 后求M(極大化).

Q函數(shù):

完全數(shù)據(jù)的對數(shù)似然\log P(Y,Z|\theta)關(guān)于給定觀測數(shù)據(jù)Y和當(dāng)前參數(shù)\theta^{(i)}下對未觀測數(shù)據(jù)Z的條件概率分布P(Z|Y,\theta^{(i)}的期望稱為Q函數(shù):
Q(\theta, \theta^{(i)} = E_Z[\log P(Y,Z|\theta)|Y,\theta^{(i)}]

EM算法:
輸入: 觀測變量數(shù)據(jù), 隱變量數(shù)據(jù)Z, 二者聯(lián)合分布P(Y,Z|\theta), 條件分布P(Z|Y,\theta)
輸出: 模型參數(shù)\theta

(1) 選擇參數(shù)的初值\theta^{(0)}, 開始迭代
注意: EM算法對初始值敏感, 不同的初值可能得到不同的參數(shù)估計(jì)值
(2) E步: 第i+1次迭代的E步, 計(jì)算:
\begin{align*} Q(\theta, \theta^{(i)}) &= E_Z[\log P(Y,Z|\theta) | Y, \theta^{(i)}] \\ &=\sum_Z\log P(Y,Z|\theta)P(Z|Y,\theta^{(i)}) \end{align*}
這里 , Q^{(i)}是第i次迭代參數(shù)\theta的估計(jì)值, P(Z|Y, \theta^{(i)})是在觀測數(shù)據(jù)Y和當(dāng)前參數(shù)估計(jì)\theta^{(i)}下隱變量數(shù)據(jù)Z的條件概率分布
(3)M步: 求使Q(\theta, \theta^{(i)})極大化的\theta, 確定第i+1次迭代的參數(shù)估計(jì)值\theta^{(i+1)}, 完成一次迭代\theta^{(i)} \rightarrow \theta^{(i+1)}:
\theta^{(i+1)} = \arg \underset{\theta}{\max} Q(\theta, \theta^{(i)})
每次迭代使似然函數(shù)增大或達(dá)到局部極值.
(4) 重復(fù)(2)(3)步, 直到收斂.
迭代終止條件, 一般是對較小的\epsilon_1,\epsilon_2, 若滿足:
\|\theta^{(i+1)}-\theta^{(i)} \| < \epsilon_1 \; \; \text{or} \; \; \| Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)}) \| < \epsilon_2
則停止迭代.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末严拒,一起剝皮案震驚了整個濱河市扬绪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌裤唠,老刑警劉巖挤牛,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異种蘸,居然都是意外死亡墓赴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門航瞭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诫硕,“玉大人,你說我怎么就攤上這事沧奴。” “怎么了长窄?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵滔吠,是天一觀的道長。 經(jīng)常有香客問我挠日,道長疮绷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任嚣潜,我火速辦了婚禮冬骚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懂算。我一直安慰自己只冻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布计技。 她就那樣靜靜地躺著喜德,像睡著了一般。 火紅的嫁衣襯著肌膚如雪垮媒。 梳的紋絲不亂的頭發(fā)上舍悯,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天航棱,我揣著相機(jī)與錄音,去河邊找鬼萌衬。 笑死饮醇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的秕豫。 我是一名探鬼主播朴艰,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼馁蒂!你這毒婦竟也來了呵晚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沫屡,失蹤者是張志新(化名)和其女友劉穎饵隙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沮脖,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡金矛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了勺届。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驶俊。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖免姿,靈堂內(nèi)的尸體忽然破棺而出饼酿,到底是詐尸還是另有隱情,我是刑警寧澤胚膊,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布故俐,位于F島的核電站,受9級特大地震影響紊婉,放射性物質(zhì)發(fā)生泄漏药版。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一喻犁、第九天 我趴在偏房一處隱蔽的房頂上張望槽片。 院中可真熱鬧,春花似錦肢础、人聲如沸还栓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝙云。三九已至,卻和暖如春路召,著一層夾襖步出監(jiān)牢的瞬間勃刨,已是汗流浹背波材。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留身隐,地道東北人廷区。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像贾铝,于是被迫代替她去往敵國和親隙轻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355