EM算法:三硬币模型

1.引言

EM算法是一种迭代算法,用于含有隐含变量的概率模型参数的极大似然估计或最大后验概率估计。EM算法每次迭代由两步组成:E步,求期望(Ecpectation);M步,求极大值(Maximization)。所以该算法也称为期望极大算法。

极大似然算法已经其他文章中进行了讨论:极大似然估计初探。极大似然估计虽然简单有效,但可能存在一些问题:对于许多具体问题无法轻易构造似然函数的解析表达式,即使构造出来也可能因为表达式过于复杂导致求解方程组非常困难。

例如使用极大似然估计(MLE)求解正态分布的均值和方差,求log后的似然函数为:
l n ( μ , σ ) = − n l o g σ + { − 1 2 σ 2 ∑ N i = 1 ( X − μ ) 2 } l_n(\mu,\sigma) = -nlog\sigma + \left\{-\frac{1}{2\sigma^2}\underset{i=1}{\overset{N}{\sum}}{(X - \mu)^2} \right\} ln(μ,σ)=nlogσ+{ 2σ21i=1N(Xμ)2}
分别求导:
{ ∂ l n ( μ ^ , σ ^ ) ∂ μ = 0 ∂ l n ( μ ^ , σ ^ ) ∂ σ = 0 \begin{cases} \frac{\partial l_n(\hat{\mu},\hat{\sigma})}{\partial\mu}=0\\ \frac{\partial l_n(\hat{\mu},\hat{\sigma})}{\partial\sigma}=0 \end{cases} { μln(μ^,σ^)=0σln(μ^,σ^)=0
得到:
{ μ ^ = X ˉ n σ ^ 2 = 1 n ∑ n i = 1 ( X i − X ˉ n ) 2 \begin{cases} \hat{\mu} = \bar{X}_n\\ {\hat{\sigma}}^2 = \frac{1}{n}\underset{i=1}{\overset{n}{\sum}}(X_i - \bar{X}_n)^2 \end{cases} μ^=Xˉnσ^2=n1i=1n(XiXˉn)2

基于这些问题,出现了EM算法,通过假设隐藏变量的存在以及迭代的方法,对非完全数据进行估计,极大简化了似然函数方程,方便求解。

2.EM算法实例

以三硬币模型为例进行说明,假设有三枚硬币,分别记为A,B,C。这些硬币正面出现概率分别为a,b,c。进行如下的掷硬币试验:先掷A,如果结果为正面选择投硬币B,为反面投C;然后再掷所选硬币,出现正面记为1,出现反面记为0;独立重复10次该实验观测结果Y为:
1,1,0,1,0,0,1,0,1,1

由于只能观察投掷硬币的结果,无法观察投掷硬币的过程,假设其中A硬币投掷结果为隐含变量Z,试估计三硬币出现正面的概率,即a,b,c的值。

三硬币模型可以写为下式, θ \theta θ表示未知参数:
P ( y ∣ θ ) = ∑ z P ( y , z ∣ θ ) = ∑ z P ( y ∣ z , θ ) = a b y ( 1 − b ) 1 − y + ( 1 − a ) c y ( 1 − c ) 1 − y P(y|\theta) = \underset{z}{\sum}P(y,z|\theta) = \underset{z}{\sum}P(y|z,\theta) \newline =ab^y(1-b)^{1-y}+(1-a)c^y(1-c)^{1-y} P(yθ)=zP(y,zθ)=zP(yz,θ)=aby(1b)1y+(1a)cy(1c)1y
其中随机变量y为可观测变量,随机变量z为未能观测到的投掷硬币A的结果,即隐变量。
观测数据和未观测到的数表示如下:
Y = ( Y 1 , Y 2 , . . . , Y N ) T Z = ( Z 1 , Z 2 , . . . , Z N ) T Y = (Y_1,Y_2,...,Y_N)^T \newline Z = (Z_1,Z_2,...,Z_N)^T Y=(Y1,Y2,...,YN)TZ=(Z1,Z2,...,ZN)T

则观测数据的似然函数为:
P ( Y ∣ θ ) = ∑ Z P ( Y ∣

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值