机器学习笔记五——EM算法与高斯混合模型

Python 机器学习 EM算法 EM算法(期望最大化算法,Expectation-Maximization Algorithm)是一种迭代优化技术,广泛用于含有隐变量(latent variables)的概率模型参数估计。EM算法的目标是找到模型参数的最大似然估计,尤其是当模型中存在无法直接观测的隐藏数据时。它通过迭代两个步骤来逼近最大似然解:E步(期望步)和M步(最大化步)。 阅读详情

一、EM算法

概率模型有时既含有观测变量,又含有隐变量(latent variable)。如果只含观测变量,那么直接用极大似然估计法估计模型参数即可;但当模型含有隐变量时,就需要采用EM算法,EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。

1.1 EM算法

用YYY表示观测随机变量的数据,ZZZ表示隐随机变量的数据,YYY和ZZZ连在一起称为完全数据。假设给定观测数据YYY,其概率分布是P(Y∣θ)P(Y|\theta)P(Y∣θ),其中θ\thetaθ是需要估计的模型参数,YYY和ZZZ的联合概率分布是P(Y,Z∣θ)P(Y,Z|\theta)P(Y,Z∣θ),那么完全数据的对数似然函数是log⁡P(Y,Z∣θ)\log P(Y,Z|\theta)logP(Y,Z∣θ),P(Z∣Y,θ)P(Z|Y,\theta)P(Z∣Y,θ)是给定观测数据YYY和参数θ\thetaθ下隐变量ZZZ的条件概率分布,EM算法通过迭代求解L(θ)=log⁡P(Y∣θ)L(\theta)=\log P(Y|\theta)L(θ)=logP(Y∣θ)的极大似然估计:

∙\bullet\quad∙选择参数的初始值θ(0)\theta^{(0)}θ(0)
∙E\bullet\quad E∙E步:记θ(i)\theta^{(i)}θ(i)为第iii次迭代参数θ\thetaθ的估计值,在第i+1i+1i+1次,计算Q(θ,θ(i))=EZ[log⁡P(Y,Z∣θ)∣Y,θ(i)]=∑Zlog⁡P(Y,Z∣θ)P(Z∣Y,θ(i))(1)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)})\tag1Q(θ,θ(i))=EZ​[logP(Y,Z∣θ)∣Y,θ(i)]=Z∑​logP(Y,Z∣θ)P(Z∣Y,θ(i))(1)
其中,P(Z∣Y,θ(i))P(Z|Y,\theta^{(i)})P(Z∣Y,θ(i))是在给定观测数据YYY和当前的参数估计θ(i)\theta^{(i)}θ(i)下隐变量数据ZZZ的条件概率分布,Q(θ,θ(i))Q(\theta, \theta^{(i)})Q(θ,θ(i))的第1个变元表示要极大化的参数,第二个变元表示参数的当前估计值,每次迭代实际在求Q(θ,θ(i))Q(\theta, \theta^{(i)})Q(θ,θ(i))及其极大。

∙M\bullet\quad M∙M步:求使Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))极大化的θ\thetaθ,确定第i+1i+1i+1步迭代的参数的估计值θ(i+1)\theta^{(i+1)}θ(i+1)θ(i+1)=arg⁡max⁡θQ(θ,θ(i))(2)\theta^{(i+1)}=\arg \max_\theta Q(\theta,\theta^{(i)})\tag2θ(i+1)=argθmax​Q(θ,θ(i))(2)

∙\bullet\quad∙重复EEE步和MMM步,直至收敛

QQQ函数:
完全数据的对数似然函数log⁡P(Y,Z∣θ)\log P(Y,Z|\theta)logP(Y,Z∣θ) 关于在给定观测数据YYY和当前参数θ(i)\theta^{(i)}θ(i)下 对未观测数据ZZZ的条件概率分布P(Z∣Y,θ(i))P(Z|Y,\theta^{(i)})P(Z∣Y,θ(i))的期望 称为QQQ函数,即Q(θ,θ(i))=EZ[log⁡P(Y,Z∣θ)∣Y,θ(i)](3)Q(\theta, \theta^{(i)})=E_Z[\log P(Y, Z|\theta)|Y,\theta^{(i)}]\tag3Q(θ,θ(i))=EZ​[logP(Y,Z∣θ)∣Y,θ(i)](3)

1.2 EM算法的导出

为什么EM算法能近似实现对观测数据的极大似然估计呢?

对于含有隐变量的概率模型,目标是极大化观测数据YYY关于参数θ\thetaθ的对数似然函数,即极大化L(θ)=log⁡P(Y∣θ)=log⁡∑ZP(Y,Z∣θ)=log⁡(∑ZP(Z∣θ)P(Y∣Z,θ))(4)L(\theta)=\log P(Y|\theta)=\log \sum_ZP(Y,Z|\theta)=\log (\sum_ZP(Z|\theta)P(Y|Z,\theta))\tag4L(θ)=logP(Y∣θ)=logZ∑​P(Y,Z∣θ)=log(Z∑​P(Z∣θ)P(Y∣Z,θ))(4)
注意到P(Y,Z∣θ)=P(Z∣θ)P(Y∣Z,θ)P(Y,Z|\theta)=P(Z|\theta)P(Y|Z,\theta)P(Y,Z∣θ)=P(Z∣θ)P(Y∣Z,θ)

极大化(4)(4)(4)式的主要困难是含有未观测数据并有包含和(或积分)的对数。

EM算法是通过逐步迭代近似极大化L(θ)L(\theta)L(θ)的。假设θ(i)\theta^{(i)}θ(i)为第iii次迭代参数θ\thetaθ的估计值,我们希望新的估计值θ\thetaθ能使L(θ)L(\theta)L(θ)增加,即L(θ)>L(θ(i))L(\theta)\gt L(\theta^{(i)})L(θ)>L(θ(i)),为此,考虑它们的差L(θ)−L(θ(i))=log⁡(∑ZP(Z∣θ)P(Y∣Z,θ))−log⁡P(Y∣θ(i))(5)L(\theta) - L(\theta^{(i)})=\log(\sum_ZP(Z|\theta)P(Y|Z,\theta))-\log P(Y|\theta^{(i)})\tag5L(θ)−L(θ(i))=log(Z∑​P(Z∣θ)P(Y∣Z,θ))−logP(Y∣θ(i))(5)
利用Jensen不等式[1]得到其下界L(θ)−L(θ(i))=log⁡(∑ZP(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i)))−log⁡P(Y∣θ(i))L(\theta) - L(\theta^{(i)})=\log(\sum_Z P(Z|Y,\theta^{(i)})\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})})-\log P(Y|\theta^{(i)})L(θ)−L(θ(i))=log(Z∑​P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ)​)−logP(Y∣θ(i))≥∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))−log⁡P(Y∣θ(i))\ge\sum_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})}-\log P(Y|\theta^{(i)})≥Z∑​P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ)​−logP(Y∣θ(i))=∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i))(6)=\sum_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\tag6=Z∑​P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Z∣θ)P(Y∣Z,θ)​(6)

令B(θ,θ(i))=L(θ(i))+∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i))B(\theta,\theta^{(i)})=L(\theta^{(i)})+\sum\limits_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}B(θ,θ(i))=L(θ(i))+Z∑​P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Z∣θ)P(Y∣Z,θ)​,则L(θ)≥B(θ,θ(i))L(\theta)\ge B(\theta,\theta^{(i)})L(θ)≥B(θ,θ(i))

即函数B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))是L(θ)L(\theta)L(θ)的一个下界,为了使L(θ)L(\theta)L(θ)尽可能增大,可选择θ(i+1)\theta^{(i+1)}θ(i+1)使B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))尽可能增大,即θ(i+1)=arg⁡max⁡θB(θ,θ(i))(7)\theta^{(i+1)}=\arg \max_\theta B(\theta,\theta^{(i)})\tag7θ(i+1)=argθmax​B(θ,θ(i))(7)

所以θ(i+1)=arg⁡max⁡θ(L(θ(i))+∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i)))\theta^{(i+1)}=\arg \max_\theta (L(\theta^{(i)})+\sum\limits_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})})θ(i+1)=argθmax​(L(θ(i))+Z∑​P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Z∣θ)P(Y∣Z,θ)​)=arg⁡max⁡θ(∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i)))=\arg \max_\theta (\sum\limits_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})})=argθmax​(Z∑​P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Z∣θ)P(Y∣Z,θ)​)=arg⁡max⁡θ∑ZP(Z∣Y,θ(i))log⁡(P(Y∣Z,θ)P(Z∣θ))=\arg \max_\theta \sum\limits_Z P(Z|Y,\theta^{(i)})\log (P(Y|Z,\theta)P(Z|\theta))=argθmax​Z∑​P(Z∣Y,θ(i))log(P(Y∣Z,θ)P(Z∣θ))=arg⁡max⁡θ∑ZP(Z∣Y,θ(i))log⁡(P(Y,Z∣θ))=\arg \max_\theta \sum\limits_Z P(Z|Y,\theta^{(i)})\log (P(Y, Z|\theta))=argθmax​Z∑​P(Z∣Y,θ(i))log(P(Y,Z∣θ))=arg⁡max⁡θQ(θ,θ(i))(8)=\arg \max_\theta Q(\theta,\theta^{(i)})\tag8=argθmax​Q(θ,θ(i))(8)

EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。

1.3 EM算法的收敛

设θ(i)(i=1,2,⋯ )\theta^{(i)}(i=1,2,\cdots)θ(i)(i=1,2,⋯)为EM算法得到参数估计序列,P(Y∣θ(i))P(Y|\theta^{(i)})P(Y∣θ(i))为对应的似然函数序列,则P(Y∣θ(i))P(Y|\theta^{(i)})P(Y∣θ(i))是单调递增的,即P(Y∣θ(i+1))≥P(Y∣θ(i))(9)P(Y|\theta^{(i+1)})\ge P(Y|\theta^{(i)})\tag9P(Y∣θ(i+1))≥P(Y∣θ(i))(9)

EM算法不能保证找到全局最优值,因此初始值的选择会对最后的结果产生影响,常用的办法是选取几个不同的初始值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。

二、高斯混合模型

2.1 高斯混合模型

高斯混合模型是指具有如下形式的概率分布模型P(y∣θ)=∑k=1Kαkϕ(y∣θk)(10)P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta_k)\tag{10}P(y∣θ)=k=1∑K​αk​ϕ(y∣θk​)(10)
其中,αk\alpha_kαk​是系数,αk≥0,∑k=1Kαk=1\alpha_k\ge0, \sum\limits_{k=1}^K\alpha_k=1αk​≥0,k=1∑K​αk​=1,ϕ(y∣θk)\phi(y|\theta_k)ϕ(y∣θk​)是高斯分布密度函数,θk=(μk,σk2)\theta_k=(\mu_k,\sigma^2_k)θk​=(μk​,σk2​) ϕ(y∣θk)=12πσkexp⁡{−(y−μk)22σk2}(11)\phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}\exp\{-\frac{(y-\mu_k)^2}{2\sigma_k^2}\}\tag{11}ϕ(y∣θk​)=2π​σk​1​exp{−2σk2​(y−μk​)2​}(11)

2.2 高斯混合模型参数估计的EM算法

假设观测数据y1,⋯ ,yNy_1,\cdots,y_Ny1​,⋯,yN​由高斯混合模型P(y∣θ)=∑k=1Kαkϕ(y∣θk)P(y|\theta)=\sum\limits_{k=1}^K\alpha_k\phi(y|\theta_k)P(y∣θ)=k=1∑K​αk​ϕ(y∣θk​)生成,其中,θ=(α1,⋯ ,αK;θ1,⋯ ,θK)\theta=(\alpha_1,\cdots,\alpha_K;\theta_1,\cdots,\theta_K)θ=(α1​,⋯,αK​;θ1​,⋯,θK​),我们用EM算法来估计参数θ\thetaθ

定义隐变量γjk={1第j个观测数据来自第k个分模型0否则(12)\gamma_{jk}=\begin{cases} 1&第j个观测数据来自第k个分模型\\ 0&否则 \end{cases}\tag{12}\\ γjk​={10​第j个观测数据来自第k个分模型否则​(12)
其中j=1,2⋯ ,N;k=1,2⋯ ,Kj=1,2\cdots,N;\quad k=1,2\cdots,Kj=1,2⋯,N;k=1,2⋯,K

从而有完全数据(yj,γj1,⋯ ,γjK)(y_j, \gamma_{j1},\cdots,\gamma_{jK})(yj​,γj1​,⋯,γjK​),j=1,2⋯ ,Kj=1,2\cdots,Kj=1,2⋯,K,所以可以写出完全数据的似然函数P(y,γ∣θ)=∏j=1NP(yj,γj1,⋯ ,γjK∣θ)=∏k=1K∏j=1N[αkϕ(yj∣θk)]γjk=∏k=1Kαknk∏j=1N[12πσkexp⁡{−(yj−μk)22σk2}]γjk(12)P(y,\gamma|\theta)=\prod_{j=1}^NP(y_j, \gamma_{j1},\cdots,\gamma_{jK}|\theta)\\ =\prod_{k=1}^K\prod_{j=1}^N[\alpha_k\phi(y_j|\theta_k)]^{\gamma_{jk}}\\ =\prod_{k=1}^K\alpha_k^{n_k}\prod_{j=1}^N[\frac{1}{\sqrt{2\pi}\sigma_k}\exp\{-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}\}]^{\gamma_{jk}}\tag{12}P(y,γ∣θ)=j=1∏N​P(yj​,γj1​,⋯,γjK​∣θ)=k=1∏K​j=1∏N​[αk​ϕ(yj​∣θk​)]γjk​=k=1∏K​αknk​​j=1∏N​[2π​σk​1​exp{−2σk2​(yj​−μk​)2​}]γjk​(12)
其中nk=∑j=1Nγjk,∑k=1Knk=Nn_k=\sum\limits_{j=1}^N\gamma_{jk}, \sum\limits_{k=1}^Kn_k=Nnk​=j=1∑N​γjk​,k=1∑K​nk​=N
所以对数似然函数为log⁡P(y,γ∣θ)=∑k=1K{nklog⁡αk+∑j=1Nγjk[log⁡(12π)−log⁡σk−12σk2(yj−μk)2]}(13)\log P(y,\gamma|\theta)=\sum_{k=1}^K\{n_k\log\alpha_k+\sum\limits_{j=1}^N\gamma_{jk}[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\}\tag{13}logP(y,γ∣θ)=k=1∑K​{nk​logαk​+j=1∑N​γjk​[log(2π​1​)−logσk​−2σk2​1​(yj​−μk​)2]}(13)

 
∙E−step\bullet\quad E-step∙E−step
所以Q(θ,θ(i))=E[log⁡P(y,γ∣θ)∣y,θ(i)]=E{∑k=1K{nklog⁡αk+∑j=1Nγjk[log⁡(12π)−log⁡σk−12σk2(yj−μk)2]}=∑k=1K{∑j=1NE(γjk)log⁡αk+∑j=1NE(γjk)[log⁡(12π)−log⁡σk−12σk2(yj−μk)2]}(14)Q(\theta,\theta^{(i)})=E[\log P(y,\gamma|\theta)|y,\theta^{(i)}]=E\{\sum_{k=1}^K\{n_k\log\alpha_k+\sum\limits_{j=1}^N\gamma_{jk}[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\}\\ =\sum_{k=1}^K\{\sum_{j=1}^NE(\gamma_{jk})\log\alpha_k+\sum_{j=1}^NE(\gamma_{jk})[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\}\tag{14}Q(θ,θ(i))=E[logP(y,γ∣θ)∣y,θ(i)]=E{k=1∑K​{nk​logαk​+j=1∑N​γjk​[log(2π​1​)−logσk​−2σk2​1​(yj​−μk​)2]}=k=1∑K​{j=1∑N​E(γjk​)logαk​+j=1∑N​E(γjk​)[log(2π​1​)−logσk​−2σk2​1​(yj​−μk​)2]}(14)
注意到nk=∑j=1Nγjkn_k=\sum\limits_{j=1}^N\gamma_{jk}nk​=j=1∑N​γjk​,所以E(nk)=∑j=1NE(γjk)E(n_k)=\sum\limits_{j=1}^NE(\gamma_{jk})E(nk​)=j=1∑N​E(γjk​)

而E(γjk)=P(γjk=1∣y,θ)=P(γjk=1,yj∣θ)∑k=1KP(γjk=1,yj∣θ)=P(yj∣γjk=1,θ)P(γjk=1∣θ)∑k=1KP(yj∣γjk=1,θ)P(γjk=1∣θ)=αkϕ(yi∣θk)∑k=1Kαkϕ(yi∣θk)(15)E(\gamma_{jk})=P(\gamma_{jk}=1|y,\theta)\\ =\frac{P(\gamma_{jk}=1,y_j|\theta)}{\sum\limits_{k=1}^KP(\gamma_{jk}=1,y_j|\theta)}\\ =\frac{P(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)}{\sum\limits_{k=1}^KP(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)}\\ =\frac{\alpha_k\phi(y_i|\theta_k)}{\sum\limits_{k=1}^K\alpha_k\phi(y_i|\theta_k)}\tag{15}E(γjk​)=P(γjk​=1∣y,θ)=k=1∑K​P(γjk​=1,yj​∣θ)P(γjk​=1,yj​∣θ)​=k=1∑K​P(yj​∣γjk​=1,θ)P(γjk​=1∣θ)P(yj​∣γjk​=1,θ)P(γjk​=1∣θ)​=k=1∑K​αk​ϕ(yi​∣θk​)αk​ϕ(yi​∣θk​)​(15)
其中j=1,2⋯ ,N;k=1,2⋯ ,Kj=1,2\cdots,N;\quad k=1,2\cdots,Kj=1,2⋯,N;k=1,2⋯,K

所以E(γjk)E(\gamma_{jk})E(γjk​)可以看作是在当前模型参数下,第jjj个观测数据来自第kkk个分模型的概率,称为分模型kkk对观测数据yjy_jyj​的响应度。

 
∙M−step\bullet\quad M-step∙M−step
即θ(i+1)=arg⁡max⁡θQ(θ,θ(i))\theta^{(i+1)}=\arg\max\limits_{\theta}Q(\theta,\theta^{(i)})θ(i+1)=argθmax​Q(θ,θ(i))。将Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))分别对μk,σk2\mu_k, \sigma_k^2μk​,σk2​分别求偏导并令其为0即可得到μ^k,σ^k2\hat{\mu}_k, \hat{\sigma}^2_kμ^​k​,σ^k2​,在∑k=1Kαk=1\sum\limits_{k=1}^K\alpha_k=1k=1∑K​αk​=1的条件下,对αk\alpha_kαk​求偏导即可得到α^k\hat{\alpha}_kα^k​:
μ^k=∑j=1Nγ^jkyj∑j=1Nγ^jk(16)\hat{\mu}_k=\frac{\sum\limits_{j=1}^N\hat{\gamma}_{jk}y_j}{\sum\limits_{j=1}^N\hat{\gamma}_{jk}}\tag{16}μ^​k​=j=1∑N​γ^​jk​j=1∑N​γ^​jk​yj​​(16)
σ^k2=∑j=1Nγ^jk(yj−μk)2∑j=1Nγ^jk(17)\hat{\sigma}^2_k=\frac{\sum\limits_{j=1}^N\hat{\gamma}_{jk}(y_j-\mu_k)^2}{\sum\limits_{j=1}^N\hat{\gamma}_{jk}}\tag{17}σ^k2​=j=1∑N​γ^​jk​j=1∑N​γ^​jk​(yj​−μk​)2​(17)
α^k=nkN=∑j=1Nγ^jkN(18)\hat{\alpha}_k=\frac{n_k}{N}=\frac{\sum\limits_{j=1}^N\hat{\gamma}_{jk}}{N}\tag{18}α^k​=Nnk​​=Nj=1∑N​γ^​jk​​(18)
其中,k=1,⋯ ,Kk=1,\cdots,Kk=1,⋯,K

机器学习---使用 EM 算法来进行高斯混合模型的聚类 每个观测数据,根据随机生成的概率值,使用 np.random.normal 生成服从正态分布的随机数,并。差 Sigma,两个高斯分布的均值 Mu1 和 Mu2,混合模型中的分布数量 k,观测数据的数量 N,迭。在内部的两个嵌套的 for 循环中,分。中,计算了分母 Denom,它是高斯分布密度函数的归一化项,用于计算每个样本属于每个分布的。均值的分子部分,Denom 是对应的分母部分,它是所有样本对应的隐藏变量的期望值的总和。在内部的第二个循环中,计算了分子 Numer,它是样本属于某个分布的概率。 阅读详情

相关推荐

机器学习——EM算法 知识点与面试总结

提出:有时候任务中含有一些不能观察到的隐含变量,样本的产生和隐含变量有关,而求模型的参数时一般用最大似然估计,由于隐变量的存在,所以对似然函数参数求导是求不出来的,这时采用EM算法来求导。 总结:是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。两个步骤交替计算: E步:利用当前估计的参数值,求出在该参数下隐含变量的条件概率值(计算对数似然的期望值); M步:结合E步求出的隐含变量

qq_34896915的博客 7603

机器学习算法之GMM模型

作者:RayChiu_Labloy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 单高斯分布GM估计参数 关于高斯分布 高尔顿钉板 自然界中,很多事物的取值服从高斯分布。如高尔顿钉板: 每次弹珠往下走的时候,碰到钉子会随机往左还是往右走,可以观测到多次随机过程结合的结果趋近于正太分布。 单维高斯概率密度函数 其中表示均值,表示方差。 单维高斯GM参数估计过程 我们的方法是...

RayChiu757374816的博客 6016

机器学习笔记 - 什么是高斯混合模型(GMM)?

高斯混合模型 (GMM) 是一种机器学习算法。它们用于根据概率分布将数据分类为不同的类别。高斯混合模型可用于许多不同的领域,包括金融、营销等等!这里要对高斯混合模型进行介绍以及真实世界的示例、它们的作用以及何时应该使用GMM。 高斯混合模型 (GMM) 是一个概率概念,用于对真实世界的数据集进行建模。GMM是高斯分布的泛化,可用于表示可聚类为多个高斯分布的任何数据集。 高斯混合模型是一种概率模型,它假设所有数据点都是从具有未知参数的...

学以致用 知行合一 5万+

GMM高斯混合模型

GMM高斯混合模型 一、GMM简介 GMM 全称是高斯混合模型,顾名思义,其本质就是将n个高斯模型混合叠加在一起,主要用处是用来作异常检测,聚类等;优点就是可解释性好,在低维数据上有着不错的效果; 常见的异常检测算法,例如:KNN,Kmeans,通常在低维数据上有不错的效果,在高维数据上的表现就不是很好,原因如下: 1、传统方法对高维数据的处理分两步,先将高维数据降维到低维上面,再在低维数据上面作密度估计; 2、但高维数据降维之后,不容易保留足够多的关键信息;而且,降维后和密度估计是独立的,这样很容易陷入局

weixin_43171677的博客 4213

高斯混合模型的EM算法在MATLAB中的实现

本文还有配套的精品资源,点击获取 简介:本实现展示了如何在MATLAB中使用高斯混合模型(GMM)结合期望最大化(EM)算法来处理数据聚类和概率密度估计问题。GMM模型假设数据由多个高斯分布组合而成,而EM算法通过迭代两个步骤(期望步和最大化步)来优化GMM参数,从而更好地拟合含有隐变量的数据集。代码文件包括主要的EM算法实现、辅助函数以及数据集和许可协议文件。该方法在计算...

weixin_34945060的博客 1400

高斯混合模型与EM算法的Matlab实现

高斯混合模型是一种概率模型,它可以模拟出复杂的数据分布。在GMM中,数据被假定为来自多个高斯分布的混合,每个高斯分布代表一个数据源或“簇”。模型的目的是找到一个最佳的混合,使得这些高斯分布的加权和能够最好地拟合整个数据集。Matlab是一个高性能的数值计算和可视化软件,广泛应用于工程计算、算法开发、数据分析和可视化等领域。首先,确保系统中安装了最新版本的Matlab。打开Matlab,你会看到一个简洁的用户界面,包含命令窗口、编辑器和工作空间等部分。

weixin_36303807的博客 838

混合高斯模型_高斯混合模型(GMM)

1.高斯混合模型是由若干的基于高斯概率密度函数形成的模型2.从几何角度,GMM是多个高斯分布叠加而成的加权平均的结果3.从混合模型角度,每个样本是从某个高斯分布抽样得到的4.直接利用MLE无法求解高斯混合模型,得利用EM算法求解GMM5.假设K个高斯分布组成的GMM,求解参数有3K个:每个高斯分布的抽样概率,每个高斯分布的均值和协方差矩阵高斯混合模型,英文是Gaussian Mixtur...

weixin_39633455的博客 827

告别Root!用Termux+ADB在Android上玩转自动化(保姆级教程)

本文详细介绍了如何在非Root环境下使用Termux和ADB实现Android自动化操作,无需Root权限即可运行自动化脚本。通过Termux搭建Linux终端环境,结合ADB无线调试和Python脚本,实现点击、滑动、截图等自动化功能,适用于定时任务、自动签到等场景。

weixin_42548888的博客 536

混合高斯模型

混合高斯模型(Gaussian Mixture Model,简称 GMM)是一种概率模型,通过将数据视为由多个高斯分布(正态分布)的加权组合而生成,适用于聚类、密度估计、数据分布建模等场景。scikit-learn提供了GaussianMixture类,可轻松完成训练、预测和评估。在实际应用时,需要选择合适的成分数(K),常用AIC/BIC进行决策。

彬彬侠的博客 3449

海康威视HiTools实战:5分钟搞定工业镜头选型(附避坑指南)

本文详细解析了海康威视HiTools在工业镜头选型中的应用,通过五步操作流程帮助用户快速匹配适合的镜头型号。文章深入探讨了工业视觉系统的核心参数,包括焦距、视野、景深和畸变控制,并提供了光源搭配和系统集成的实战指南,助力提升机器视觉检测精度与效率。

u0v1w2x3的博客 1056

基于DPLL算法解决3-SAT问题(C++实现)

近日看到一个3-SAT问题(Boolean SATisfiability Problem, 布尔逻辑可满足性问题),试着写了个算法求解。

qq_63241496的博客 2214

斯坦福大学机器学习——EM算法求解高斯混合模型

EM算法(Expection-Maximizationalgorithm,EM)是一种迭代算法,通过E步和M步两大迭代步骤,每次迭代都使极大似然函数增加。但是,由于初始值的不同,可能会使似然函数陷入局部最优。下面来谈谈EM算法以及其在求解高斯混合模型中的作用。

linkin1005的专栏 3万+

HyperLPR3车牌识别-Android-SDK光速部署与使用

基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.快速部署AndroidSDK

tunm 6117

聚类——高斯混合模型及EM算法以及Python实现

高斯混合模型 核心思想 假设数据集是按照一定统计过程产生的,那么聚类的过程就是通过样本学习相应统计分布模型的参数 混合模型简介 混合模型将数据看作是从不同的概率分布得到的概率的观测值的集合。通常采用高斯分布,称之为高斯混合模型。一个数据的产生可以分成两个过程: 1. 选择分模型k, 概率为归一化后的αkαk\alpha_k(分模型的个数就是簇的个数) 2. 由分模型根据概率分布...

slx_share的博客 8239

AutosarMCAL开发——基于TC3x系列时钟系统浅析

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 888

Qt垂直滚动条QVerticalScrollBar详解:从基础到实战的控件开发指南

本文系统解析Qt中QVerticalScrollBar的用法,从基础概念到进阶技巧。主要内容包括:1)基础认知:介绍其继承关系、作用及典型应用场景;2)核心用法:创建方法、关键属性配置和信号槽连接;3)进阶技巧:自定义样式表美化外观,以及与自定义内容区域的联动实现;4)实战注意事项,如避免循环触发和高DPI适配等。文章强调掌握QVerticalScrollBar对提升Qt滚动类功能开发效率的重要性,并建议通过自定义文本编辑器实践巩固知识点。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 757

斯坦福机器学习笔记(七)——高斯混合模型与EM算法

一 高斯混合模型 我们给定一个训练集{x(1),⋯,x(m)}{x(1),⋯,x(m)}\left\{ {{x}^{\left( 1 \right)}},\cdots ,{{x}^{\left( m \right)}} \right\} ,由于是高斯混合模型(Mixtures of Gaussians ,GMM)属于无监督算法,因此训练集中不会出现任何标签。 我们希望通过指定联合分布p(x(i...

戴璞微的学习之路 6112

【100%通过率】华为OD机试真题 Python 实现【网上商城优惠活动 / 模拟商场优惠打折II】

某网上商场举办优惠活动,发布了满减、打折、无门槛3种 优惠券,分别为: 1:每满100元优惠10元,无使用数限制,如100~199元可以使用1张减10元,200~299可使用2张减20元,以此类推; 2:92折券,1次限使用1张,如100元,则优惠后为92元, 3:无门槛5元优惠券,无使用数限制,直接减5元。

MISAYAONE的博客 9369

机器学习笔记之高斯混合模型(三)EM算法求解高斯混合模型(E步操作)

上一节介绍了尝试使用极大似然估计求解高斯混合模型的模型参数,但无法求出解析解。本节将介绍使用EM算法求解高斯混合模型的模型参数。

静静的学习就好 1419

使用CubeMX配置STM32H7的FreeRTOS

本文将介绍如何使用CubeMX配置STM32H7的FreeRTOS,并提供相应的源代码示例。通过使用CubeMX,你可以轻松地配置FreeRTOS和系统资源,并生成相应的初始化代码和配置文件。在"FreeRTOS"选项卡的"Tasks"部分,可以配置系统中的任务。首先,打开CubeMX软件。在"FreeRTOS"选项卡的"Resources"部分,你可以配置FreeRTOS使用的资源,例如,堆内存和信号量。例如,我们可以创建两个简单的任务,一个任务将在循环中切换LED的状态,另一个任务将通过串口打印消息。

JeeVue的博客 711

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

机器学习最易懂之EM算法详解与python实现

文章目录0、前言1、EM算法引入EM算法推导逼近证明收敛高斯混合分布总结混合高斯分布模型E步主要计算内容M步 主要计算内容参考博客 0、前言 EM算法是机器学习十大算法之一,它很简单,但是也同样很有深度,简单是因为它就分两步求解问题, E步:求期望(expectation) M步:求极大(maximization) 深度在于它的数学推理涉及到比较繁杂的概率公式等,所以本文会介绍很多概率方面的知...

Elenstone的博客 6405

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【机器学习】EM算法

本文详细介绍了EM算法及其在高斯混合模型(GMM)中的应用。EM算法是一种迭代优化方法,适用于含有隐变量的概率模型参数估计。文章解析了EM算法的理论基础,包括E步骤(期望)和M步骤(最大化)的实现细节,并重点阐述了GMM模型的参数初始化、对数似然计算和收敛判断方法。通过Python代码实现了包含K-means和随机两种初始化方式的GMM模型,提供了完整的GUI界面支持数据加载、参数设置和可视化分析。实验结果表明,该方法能有效处理聚类任务,并可通过轮廓系数等指标评估模型性能。

2401_84149564的博客 2281

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

经典机器学习模型(九)EM算法在高斯混合模型中的应用

经典机器学习模型(九)EM算法在高斯混合模型中的应用

qq_44665283的博客 1343

浅谈高斯混合模型与EM算法 - An overview of GMM and EM algorithm

Expectation-Maximization 算法简述 高斯混合模型(Gaussian Mixture Model, GMM) 用EM算法学习高斯混合模型 Expectation-Maximization 算法简述 高斯混合模型(Gaussian Mixture Model, GMM) 用EM算法学习高斯混合模型 感谢李航——《统计学习方法》清华大学出版...

止于至玄 1529

机器学习教程 之 EM算法 :高斯混合模型聚类算法 (python基于《统计学习方法》实现,附数据集和代码)

之前写过一篇博客讲述极大似然方法, 这一方法通常适用于知道观测数据YYY,求解模型参数θ\thetaθ的场合,即P(Y∣θ)P(Y|\theta)P(Y∣θ)。 但是,在更多场合除了模型参数是未知的外,还有隐变量ZZZ也是未知的,即P(Y,Z∣θ)P(Y,Z|\theta)P(Y,Z∣θ)。多个隐藏模型的混合,会使得普通的极大似然方法用起来不是那么方便,比如求解高斯混合模型(GMM), 隐马尔可夫...

冯良骏 的 博客 3657

【机器学习】2.EM算法和GMM高斯混合模型

EM(Expectation-Maximization)是针对含隐变量的概率模型的参数估计迭代算法,核心是通过交替执行“期望步(E步)”和“最大化步(M步)”,逼近含隐变量模型的最大似然解(MLE)。GMM是由KKKEM算法是处理含隐变量模型参数估计的通用框架,GMM是EM算法的经典应用,核心是通过“责任”的交替计算与参数更新拟合多峰分布。相比K-Means,GMM能输出概率分布,更贴合真实数据的统计特性,是机器学习中聚类、密度估计、生成模型的重要工具。

Charlie482的博客 986
上一篇: 多元统计分析笔记二——多元分布
下一篇: 模型融合之Boosting
米法·
博客等级 码龄8年 179粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值