我最近一直在自我研究期望最大化,并在此过程中抓住了一些简单的例子:

这里: :共有三枚硬币$ C_0 $,$ C_1 $和$ C_2 $,带有$ P_0 $,$ P_1 $和$ P_2 $抛弃时降落的概率。扔$ C_0 $。如果结果是头部,则将$ C_1 $ C_1 $ 3次扔,ELSE扔$ C_2 $ 3次。 $ C_1 $和$ C_2 $生成的观察到的数据与此类似:HHH,TTT,HHH,TTT,HHH。隐藏数据是$ C_0 $的结果。估计$ P_0 $,$ P_1 $和$ P_2 $。

并来自 这里: :有两枚硬币$ c_a $和$ c_b $,$ p_a $,$ p_b $是抛弃时降落在头上的概率。每回合,随机选择一枚硬币,然后将其扔十次;记录结果。观察到的数据是这两个硬币提供的折腾结果。但是,我们不知道被选为特定回合的哪一枚硬币。估计$ p_a $和$ p_b $。

虽然我可以得到计算,但我无法将它们解决的方式与原始EM理论联系起来。具体来说,在两个示例的M步长期间,我看不出它们是如何最大化任何东西的。似乎他们正在重新计算参数,并且以某种方式,新参数比旧参数更好。此外,这两个电子步骤甚至看起来都不相似,更不用说原始理论的电子步骤了。

那么这些示例究竟如何工作?

有帮助吗?

解决方案

(此答案使用您给出的第二个链接。)

$ newCommand { like} { text {l}} newCommand { e} { e} { text {e}} $记住了可能的定义: x] = pr [x | theta] = sum_z pr [x,z | theta] $$在我们的情况下,$ theta =( theta_a, theta_b)$是分别a和b land头的概率的估计器,$ x =(x_1, dotsc,x_5)$是$我们的实验结果,每个$ x_i $由10个翻转组成,$ z =(z_1, dotsc,z_5)$是每个实验中使用的硬币。

我们希望找到最大似然估计器$ hat { theta} $。期望最大化(EM)算法就是一种找到(至少局部)$ hat { theta} $的方法。它通过找到条件期望来起作用,然后将其用于最大化$ theta $。这个想法是,通过在每次迭代中不断找到更有可能(即更有可能的)$ theta $,我们将不断增加$ pr [x,z | theta] $,从而增加了可能性函数。在设计基于EM的算法之前,需要完成三件事。

  1. 构建模型
  2. 计算模型下的条件期望(E step)
  3. 通过更新我们当前的$ theta $(m-step)来最大化我们的可能性

构建模型

在进行进一步之前,我们需要弄清楚我们正在计算什么。在e-step中,我们正精确地计算$ log pr [x,z | theta] $的期望值。那么,这个价值是什么?观察$$ begin {align*} log pr [x,z | theta]&= sum_ {i = 1}^5 log sum_ { pr [x_i,z_i = c | theta] = sum_ {i = 1}^5 log sum_ {c in {a,b }}} pr [z_i = c | x_i, theta] cdot frac { pr [x_i,z_i = c | theta]} { pr [z_i = c | x_i, theta]} & geq sum_ {i = 1}^5 sum_ {c in {a,b }} pr [z_i = c | x_i, theta] cdot log frac { pr [x_i,z_i = c | theta]} { pr [z_i = c | x_i, theta]}。 end {align*} $$的原因是我们有5个实验要考虑,我们不知道每个硬币都使用了什么硬币。不平等是由于$ log $是凹的,并应用了詹森的不平等。我们需要下界的原因是我们无法将ARG MAX直接计算为原始方程。但是,我们可以为最终下限计算它。

现在什么是$ pr [z_i = c | x_i, theta] $?给定实验$ x_i $和$ theta $,我们看到硬币$ c $的概率。使用条件概率,$$ pr [z_i = c | x_i, theta] = frac { pr [x_i,z_i = c | theta]}} { pr [x_i | theta]}。$$

尽管我们取得了一些进展,但我们尚未完成模型。给定硬币将序列$ x_i $翻转的概率是多少?让$ h_i = # text {heads in} x_i $ $$ pr [x_i,z_i = c | theta] = frac {1} {2} cdot theta_c^{h_i}(1 - theta_c)^{10 -h_i}, text {for} 。因为$ pr [z_i = a] = pr [z_i = b] = 1/2 $我们有,$$ pr [x_i | theta] = 1/2 cdot( pr [x_i | z_i = a = a , theta] + pr [x_i | z_i = b, theta])。$$

E-Step

好的...那不是很有趣,但是我们现在可以开始做一些EM工作。 EM算法首先要对$ theta $进行一些随机猜测。在此示例中,我们有$ theta^0 =(0.6,0.5)$。我们计算$$ pr [z_1 = a | x_1, theta] = frac {1/2 cdot(0.6^5 cdot 0.4^5)} {1/2 cdot((0.6^5 cdot 0.4 ^5) +(0.5^5 cdot 0.5^5))} 大约0.45。$$此值与纸张中的值一致。现在我们可以计算$ x_1 =(h,t,t,t,h,h,h,t,h,t,h)$中的预期头数{硬币的头} a | x_1, theta] = h_1 cdot pr pr [z_1 = a | x_1, theta] = 5 cdot 0.45 cdot 0.45 lift 2.2。 # text {by coin} b | x_1, theta] = h_1 cdot pr [z_1 = b | x_1, theta] = 5 cdot 0.55 约2.8。 H_1 $。对于$ x_i $和$ h_i $ $ 1 leq i leq 5 $的所有其他值,这将继续使用。多亏了期望的线性性,我们可以找出$$ e [# text {by coin} a | x, theta] = sum_ {i = 1}^5 e [ e [# text {由硬币} a | x_i, theta] $$

m-step

有了我们的预期价值,现在是M的步骤,我们希望在预期价值的情况下最大化$ theta $。这是通过简单归一化完成的! $ theta_a^1 = frac { text {coin} a | x, theta]} = frac {21.3} {21.3 + 9.6} 大约0.71。此过程再次从e-step和$ theta^1 $开始,并继续进行,直到$ theta $ commenge的值(或某些允许阈值)为止。在此示例中,我们有10次迭代和$ hat { theta} = theta^{10} =(0.8,0.52)$。在每次迭代中,由于$ theta $的估计更好,$ pr [x,z | theta] $的值增加。

现在,在这种情况下,该模型非常简单。事情很快就会变得更加复杂,但是EM算法将始终融合,并且始终会产生最大可能的估计量$ hat { theta} $。可能是 当地的 估算器,但是为了解决这个问题,我们可以通过不同的初始化重新启动EM过程。我们可以持续数量,并保留最佳结果(即最终可能性最高的结果)。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top