日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

机器学习 | EM 算法原理

發(fā)布時(shí)間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习 | EM 算法原理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • EM 算法
  • 1. EM 算法的引入
    • 三硬幣模型
  • 2. EM 算法
    • Q 函數(shù)
  • 參考文獻(xiàn)

相關(guān)文章:

機(jī)器學(xué)習(xí) | 目錄

無(wú)監(jiān)督學(xué)習(xí) | GMM 高斯混合原理及Sklearn實(shí)現(xiàn)

本文大部分內(nèi)容搬運(yùn)自李航老師的《統(tǒng)計(jì)學(xué)習(xí)方法》[1],以給出 EM 算法較為完整的定義。

EM 算法

EM 算法是一種迭代算法,1977 年由 Dempster 等人總結(jié)提出,用于含有隱變量(hidden variable)的概率模型參數(shù)的極大似然估計(jì),或極大后驗(yàn)估計(jì)。

EM 算法的每次迭代由兩步組成:E 步:求期望(expectation);M 步:求極大(maximization)。所以這一算法稱為期望極大算法(expectation maximization algorithm, EM)。

1. EM 算法的引入

概率模型有時(shí)即含有觀測(cè)數(shù)據(jù)(observable varible,已知),又含有隱變量或潛在變量(latent varible,未知),如果概率模型的變量都是觀測(cè)變量,那么給定數(shù)據(jù),可以直接使用極大似然估計(jì),或貝葉斯估計(jì)法估計(jì)模型參數(shù)。但是,當(dāng)模型含有隱變量時(shí),就不能簡(jiǎn)單地使用這些估計(jì)方法。EM 算法就是含有隱變量的概率模型參數(shù)的極大似然估計(jì)

三硬幣模型

假設(shè)有三枚硬幣,分別記作 A,B,C。這些硬幣正面出現(xiàn)的概率分別是 π\(zhòng)piπpppqqq。進(jìn)行如下擲硬幣試驗(yàn):

先擲硬幣 A ,若為正面則選硬幣 B ,若為反面則選硬幣 C ;然后擲 A 選出的硬幣( B 或 C ),若為正面則記作 1,若為反面則記作 0,試驗(yàn)結(jié)束。

獨(dú)立重復(fù)試驗(yàn) nnn 次(這里 n=10n=10n=10),觀測(cè)結(jié)果如下:

1,1,0,1,0,0,1,0,1,11,1,0,1,0,0,1,0,1,11,1,0,1,0,0,1,0,1,1

假設(shè)只能觀測(cè)到擲硬幣的結(jié)果,不能觀測(cè)擲硬幣的過(guò)程,問(wèn)如何估計(jì)三硬幣正面出現(xiàn)的概率,即三硬幣模型的參數(shù)。

三硬幣模型可以寫作:

P(y∣θ)=∑zP(y,z∣θ)=∑zP(z∣θ)P(y∣z,θ)=πpy(1?p)1?y+(1?π)qy(1?q)1?y(1)\begin{aligned} 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} \end{aligned} \tag{1}P(yθ)?=z?P(y,zθ)=z?P(zθ)P(yz,θ)=πpy(1?p)1?y+(1?π)qy(1?q)1?y?(1)

這里,隨機(jī)變量 yyy觀測(cè)變量,表示一次試驗(yàn)觀測(cè)的結(jié)果是 1 或 0;隨機(jī)變量 zzz隱變量,表示未觀測(cè)到的擲硬幣 A 的結(jié)果;θ=(π,p,q)\theta=(\pi,p,q)θ=(π,p,q) 是模型參數(shù)。這一模型是以上數(shù)據(jù)的生成模型。注意,隨機(jī)變量 yyy 的數(shù)據(jù)可以觀測(cè),隨機(jī)變量 zzz 的數(shù)據(jù)不可觀測(cè)。

將觀測(cè)數(shù)據(jù)表示為 Y=(Y1,Y2,...,Yn)TY=(Y_1,Y_2,...,Y_n)^TY=(Y1?,Y2?,...,Yn?)T ,未觀測(cè)數(shù)據(jù)表示為 Z=(Z1,Z2,...,Zn)TZ=(Z_1,Z_2,...,Z_n)^TZ=(Z1?,Z2?,...,Zn?)T,則觀測(cè)數(shù)據(jù)的似然函數(shù)為:

P(Y∣θ)=∑ZP(Z∣θ)P(Y∣Z,θ)(2)P(Y|\theta)=\sum_Z P(Z|\theta)P(Y|Z,\theta) \tag{2}P(Yθ)=Z?P(Zθ)P(YZ,θ)(2)

P(Y∣θ)=∏j=1n[πpyj(1?p)1?yj+(1?π)qyj(1?q)1?yj](3)P(Y | \theta)=\prod_{j=1}^{n}\left[\pi p^{y_{j}}(1-p)^{1-y_{j}}+(1-\pi) q^{y_{j}}(1-q)^{1-y_{j}}\right] \tag{3} P(Yθ)=j=1n?[πpyj?(1?p)1?yj?+(1?π)qyj?(1?q)1?yj?](3)

考慮求模型參數(shù) θ=(π,p,q)\theta=(\pi,p,q)θ=(π,p,q),即:

θ^=argmax?θlogP(Y∣θ)(4)\hat{\theta}=arg \max \limits_{\theta} logP(Y|\theta) \tag{4}θ^=argθmax?logP(Yθ)(4)

這個(gè)問(wèn)題沒有解析解,只有通過(guò)迭代的方法求解。EM 算法就是可以用于求解這個(gè)問(wèn)題的一種迭代算法。下面給出針對(duì)以上問(wèn)題的 EM 算法,其推導(dǎo)過(guò)程省略。

EM 算法首先選取參數(shù)的初值,記作 θ(0)=(π(0),p(0),q(0))\theta^{(0)}=(\pi^{(0)},p^{(0)},q^{(0)})θ(0)=(π(0),p(0),q(0)) ,然后通過(guò)下面的步驟迭代計(jì)算參數(shù)的估計(jì)值,直至收斂為止。第 iii 次迭代參數(shù)的估計(jì)值為 θ(i)=(π(i),p(i),q(i))\theta^{(i)}=(\pi^{(i)},p^{(i)},q^{(i)})θ(i)=(π(i),p(i),q(i))。EM 算法的第 i+1i+1i+1 次迭代如下:

E 步:計(jì)算在模型參數(shù) π(i),p(i),q(i)\pi^{(i)},p^{(i)},q^{(i)}π(i),p(i),q(i) 下觀測(cè)數(shù)據(jù) yiy_iyi? 來(lái)自擲硬幣 B 的概率:

μ(i+1)=π(i)(p(i))yj(1?p(i))1?yjπ(i)(p(i))yj(1?p(i))1?yj+(1?π(i))(q(i))yj(1?q(i))1?yj(5)\mu^{(i+1)}=\frac{\pi^{(i)}\left(p^{(i)}\right)^{y_{j}}\left(1-p^{(i)}\right)^{1-y_{j}}}{\pi^{(i)}\left(p^{(i)}\right)^{y_{j}}\left(1-p^{(i)}\right)^{1-y_{j}}+\left(1-\pi^{(i)}\right)\left(q^{(i)}\right)^{y_{j}}\left(1-q^{(i)}\right)^{1-y_{j}}} \tag{5}μ(i+1)=π(i)(p(i))yj?(1?p(i))1?yj?+(1?π(i))(q(i))yj?(1?q(i))1?yj?π(i)(p(i))yj?(1?p(i))1?yj??(5)

M 步:計(jì)算模型參數(shù)的新估計(jì)值

π(i+1)=1n∑j=1nμj(i+1)(6)\pi^{(i+1)}=\frac{1}{n} \sum_{j=1}^{n} \mu_{j}^{(i+1)} \tag{6}π(i+1)=n1?j=1n?μj(i+1)?(6)

p(i+1)=∑j=1nμj(i+1)yj∑j=1nμj(i+1)(7)p^{(i+1)}=\frac{\sum_{j=1}^{n} \mu_{j}^{(i+1)} y_{j}}{\sum_{j=1}^{n} \mu_{j}^{(i+1)}} \tag{7}p(i+1)=j=1n?μj(i+1)?j=1n?μj(i+1)?yj??(7)

q(i+1)=∑j=1n(1?μj(i+1))yj∑j=1n(8)q^{(i+1)}=\frac{\sum_{j=1}^{n}\left(1-\mu_{j}^{(i+1)}\right) y_{j}}{\sum_{j=1}^{n}} \tag{8}q(i+1)=j=1n?j=1n?(1?μj(i+1)?)yj??(8)

進(jìn)行數(shù)字計(jì)算。假設(shè)模型參數(shù)的初值取為:

π(0)=0.5,p(0)=0.5,q(0)=0.5\pi^{(0)}=0.5,\quad p^{(0)}=0.5,\quad q^{(0)}=0.5π(0)=0.5,p(0)=0.5,q(0)=0.5

由式 (5),對(duì) yj=1y_j=1yj?=1yj=0y_j=0yj?=0 均有 μj(1)=0.5\mu_j^{(1)}=0.5μj(1)?=0.5

利用迭代公式 (6-8) ,得到:

π(1)=0.5,p(1)=0.6,q(1)=0.6\pi^{(1)}=0.5,\quad p^{(1)}=0.6,\quad q^{(1)}=0.6π(1)=0.5,p(1)=0.6,q(1)=0.6

由式 (5),

μj(2)=0.5,j=1,2,...,10\mu_j^{(2)}=0.5, \quad j=1,2,...,10μj(2)?=0.5,j=1,2,...,10

繼續(xù)迭代,得:

π(2)=0.5,p(2)=0.6,q(2)=0.6\pi^{(2)}=0.5,\quad p^{(2)}=0.6,\quad q^{(2)}=0.6π(2)=0.5,p(2)=0.6,q(2)=0.6

可以看到參數(shù)以及收斂,于是得到模型參數(shù) θ\thetaθ 的極大似然估計(jì):

π^=0.5,p^=0.6q^=0.6\hat{\pi}=0.5, \quad \hat{p}=0.6 \quad \hat{q}=0.6π^=0.5,p^?=0.6q^?=0.6

π=0.5\pi = 0.5π=0.5 表示硬幣 A 是均勻的,這一結(jié)果容易理解。

如果取初值π(0)=0.5,p(0)=0.6,q(0)=0.7\pi^{(0)}=0.5,\quad p^{(0)}=0.6,\quad q^{(0)}=0.7π(0)=0.5,p(0)=0.6,q(0)=0.7,那么得到的模型參數(shù)的極大似然估計(jì)是 π^=0.4064,p^=0.5368q^=0.6432\hat{\pi}=0.4064, \quad \hat{p}=0.5368 \quad \hat{q}=0.6432π^=0.4064,p^?=0.5368q^?=0.6432 。這就是說(shuō),EM 算法與初值的選擇有關(guān),選擇不同的初值可能得到不同的參數(shù)估計(jì)值。


一般地,用 YYY 表示觀測(cè)隨機(jī)變量的數(shù)據(jù),ZZZ 表示隱隨機(jī)變量的數(shù)據(jù)。YYYZZZ 連在一起稱為完全數(shù)據(jù)(complete-data),觀測(cè)數(shù)據(jù) YYY 又稱為不完全數(shù)據(jù)(incomplete-data)。假設(shè)給定觀測(cè)數(shù)據(jù) YYY,其概率分布是 P(Y∣θ)P(Y|\theta)P(Yθ),其中 θ\thetaθ 是需要估計(jì)的模型參數(shù),那么不完全數(shù)據(jù) YYY 的似然函數(shù)是 P(Y∣θ)P(Y|\theta)P(Yθ),對(duì)數(shù)似然函數(shù)為 L(θ)=log?P(Y∣θ)L(\theta)=\log P(Y|\theta)L(θ)=logP(Yθ);假設(shè) YYYZZZ 的聯(lián)合概率分布是 P(Y,Z∣θ)P(Y,Z|\theta)P(Y,Zθ),那么完全數(shù)據(jù)的對(duì)數(shù)似然函數(shù)是 log?P(Y,Z∣θ)\log P(Y,Z|\theta)logP(Y,Zθ)

EM 算法通過(guò)迭代求 L(θ)=log?P(Y∣θ)L(\theta)=\log P(Y|\theta)L(θ)=logP(Yθ) 的極大似然估計(jì)。每次迭代包含兩步:E 步,求期望;M 步,求極大化。

2. EM 算法

輸入:觀測(cè)變量數(shù)據(jù) YYY,隱變量數(shù)據(jù) ZZZ,聯(lián)合分布 P(Y,Z∣θ)P(Y,Z|\theta)P(Y,Zθ),條件分布 P(Z∣Y.θ)P(Z|Y.\theta)P(ZY.θ)

輸出;模型參數(shù) θ\thetaθ

(1)選擇參數(shù)的初值 θ(0)\theta^{(0)}θ(0),開始迭代;

(2)E 步:記 θ(i)\theta^{(i)}θ(i) 為第 iii 次迭代參數(shù) θ\thetaθ 的估計(jì)值,在第 i+1i+1i+1 次迭代的 E 步,計(jì)算:

Q(θ,θ(i))=EZ[log?P(Y,Z∣θ)∣Y,θ(i)]=∑Zlog?P(Y,Z∣θ)P(Z∣Y,θ(i))(9)\begin{aligned} Q\left(\theta, \theta^{(i)}\right) &=E_{Z}\left[\log P(Y, Z | \theta) | Y, \theta^{(i)}\right] \\ &=\sum_{Z} \log P(Y, Z | \theta) P\left(Z | Y, \theta^{(i)}\right) \end{aligned} \tag{9} Q(θ,θ(i))?=EZ?[logP(Y,Zθ)Y,θ(i)]=Z?logP(Y,Zθ)P(ZY,θ(i))?(9)

(3)M 步:求使 Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i)) 極大化的 θ\thetaθ,確定第 i+1i+1i+1 次迭代的參數(shù)的估計(jì)值 θ(i+1)\theta^{(i+1)}θ(i+1)

θ(i+1)=argmax?θQ(θ,θ(i))(10)\theta^{(i+1)}=arg \max \limits_{\theta} Q(\theta,\theta^{(i)}) \tag{10}θ(i+1)=argθmax?Q(θ,θ(i))(10)

(4)重復(fù)第 (2-3) 步,直到收斂。


下面關(guān)于 EM 算法作幾點(diǎn)說(shuō)明:

步驟 (1) 參數(shù)的初值可以任意選擇,但需注意 EM 算法對(duì)初值是敏感的

步驟 (2) E 步求 Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i)) 。Q 函數(shù)式中 Z 是未觀測(cè)數(shù)據(jù),Y 是觀測(cè)數(shù)據(jù)。注意,Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i)) 的第 1 個(gè)表示要極大化的參數(shù),第 2 個(gè)變?cè)硎緟?shù)的當(dāng)前估計(jì)值。每次迭代實(shí)際在求 Q 函數(shù)及其極大;

步驟 (3) M 步求 Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i)) 的極大化,得到 θ(i+1)\theta^{(i+1)}θ(i+1),完成一次迭代 θ(i)→θ(i+1)\theta^{(i)}\to \theta^{(i+1)}θ(i)θ(i+1),且每次迭代使似然函數(shù)增大或達(dá)到局部極值;

步驟 (4) 給出停止迭代的條件,一般是對(duì)較小的正值 ε1,ε2\varepsilon_1,\varepsilon_2ε1?,ε2?,若滿足:

∥θ(i+1)?θ(i)∥<ε1or∥Q(θ(i+1),θ(i))?Q(θ(i),θ(i))∥<ε2(11)\left\|\theta^{(i+1)}-\theta^{(i)}\right\|<\varepsilon_{1} \quad or \quad\left\|Q\left(\theta^{(i+1)}, \theta^{(i)}\right)-Q\left(\theta^{(i)}, \theta^{(i)}\right)\right\|<\varepsilon_{2}\tag{11} ?θ(i+1)?θ(i)?<ε1?or?Q(θ(i+1),θ(i))?Q(θ(i),θ(i))?<ε2?(11)

則停止迭代。


式 (9) 的函數(shù) Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i)) 是 EM 算法的核心,稱為 Q 函數(shù)(Q function)。

Q 函數(shù)

完全數(shù)據(jù)的對(duì)數(shù)似然函數(shù) log?P(Y,Z∣θ)\log P(Y,Z|\theta)logP(Y,Zθ) 關(guān)于在給定觀測(cè)數(shù)據(jù) YYY 和當(dāng)前參數(shù) θ(i)\theta^{(i)}θ(i) 下對(duì)未觀測(cè)數(shù)據(jù) Z 的條件概率分布 P(Z∣Y,θ(i))P(Z|Y,\theta^{(i)})P(ZY,θ(i)) 的期望稱為 Q 函數(shù),即:

Q(θ,θ(i))=Ez[log?P(Y,Z∣θ)∣Y,θ(i)](11)Q\left(\theta, \theta^{(i)}\right)=E_{z}\left[\log P(Y, Z | \theta) | Y, \theta^{(i)}\right] \tag{11}Q(θ,θ(i))=Ez?[logP(Y,Zθ)Y,θ(i)](11)

參考文獻(xiàn)

[1] 周志華. 機(jī)器學(xué)習(xí)[M]. 北京: 清華大學(xué)出版社, 2016: 155-158.

總結(jié)

以上是生活随笔為你收集整理的机器学习 | EM 算法原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。