具有二元混合物分布的EM算法的收敛


9

我有一个混合模型,我想要找到给定一组数据x和一组部分观测数据的最大似然估计量z。我已经实现两个E-步骤(计算的期望z给定x和电流参数θk),和M-步骤,以减少给定的期望的负对数似然z

据我了解,每次迭代的最大可能性都在增加,这意味着负对数似然性必须在每次迭代中都在减少吗?但是,正如我所进行的迭代,该算法实际上并未产生负对数似然率的递减值。相反,它可能同时在减少和增加。例如,这是直到收敛的负对数似然的值:

在此处输入图片说明

我在这里误解了吗?

另外,对于模拟数据,当我对真正的潜在变量(未观察到)执行最大似然法时,我的拟合度非常接近,表明没有编程错误。对于EM算法,它通常收敛到明显次优的解决方案,尤其是对于特定参数子集(即,分类变量的比例)。众所周知,该算法可以收敛到局部最小值或固定点,是否有常规的搜索试探法或同样地增加了找到全局最小值(或最大值)的可能性。对于这个特殊的问题,我相信会有很多未命中类别,因为对于双变量混合,两个分布之一采用概率为1的值(这是生命周期的混合,其中通过其中, z表示属于任一分布。指标 z当然在数据集中被检查。 T=zT0+(1z)zz在此处输入图片说明

我从理论解开始添加了第二个数字(应该接近最优值)。但是,可以看出,可能性和参数从该解决方案变为明显较差的解决方案。

xi=(ti,δi,Li,τi,zi)tiiδiLiτizi是观测值所属人群的指标(由于其二元变量,我们只需要考虑0和1)。

z=1fz(t)=f(t|z=1)Sz(t)=S(t|z=1)z=0tinff(t|z=0)=0和。这还会产生以下完整的混合物分布:S(t|z=0)=1

f(t)=i=01pif(t|z=i)=pf(t|z=1)S(t)=1p+pSz(t)

我们继续定义可能性的一般形式:

L(θ;xi)=Πif(ti;θ)δiS(ti;θ)1δiS(Li)τi

现在,当,只能部分观察到,否则未知。完全可能性变为zδ=1

L(θ,p;xi)=Πi((pfz(ti;θ))zi)δi((1p)(1zi)(pSz(ti;θ))zi)1δi((1p)(1zi)(pSz(Li;θ))zi)τi

其中是相应分布的权重(可能通过某些链接函数与某些协变量及其各自的系数相关联)。在大多数文献中,这简化为以下对数似然p

(ziln(p)+(1p)ln(1p)τi(ziln(p)+(1zi)ln(1p))+δizifz(ti;θ)+(1δi)ziSz(ti;θ)τiSz(Li;θ))

对于M步,此功能被最大化,尽管不是全部采用1种最大化方法。取而代之的是,我们不能将其分为。l(θ,p;)=l1(θ,)+l2(p,)

对于第k:th + 1个E步,我们必须找到(部分)未观察到的潜在变量。我们使用这样的事实:,则。ziδ=1z=1

E(zi|xi,θ(k),p(k))=δi+(1δi)P(zi=1;θ(k),p(k)|xi)

在这里,我们有P(zi=1;θ(k),p(k)|xi)=P(xi;θ(k),p(k)|zi=1)P(zi=1;θ(k),p(k))P(xi;θ(k),p(k))

这给了我们P(zi=1;θ(k),p(k)|xi)=pSz(ti;θ(k))1p+pSz(ti;θ(k))

(请注意,,因此没有观察到的事件,因此数据的概率由尾分布函数给出。δi=0xi


您能否从一开始就写出我们问题的变量,以及您的E和M方程式?
alberto

1
当然,我编辑了有关E和M步的更多详细信息的问题
好家伙Mike

为了明确起见,给出的值是给定的不完整数据的估计值的完整MLE。
好家伙迈克

什么是?我不理解“尽管与此分布没有关联,但我们将其定义为inf ...”。Sz
wij 2015年

1
EM算法直接使预期的完整数据似然性最大化,但可以保证观察到的数据似然性的增加。您是否正在检查观测数据可能性的增加?
兰德尔2015年

Answers:


6

EM的目标是最大化观察到的数据对数似然性,

l(θ)=iln[zp(xi,z|θ)]

不幸的是,这往往很难针对进行优化。相反,EM反复形成并最大化辅助功能θ

Q(θ,θt)=Ez|θt(ilnp(xi,zi|θ))

如果最大化,则EM保证θt+1Q(θ,θt)

l(θt+1)Q(θt+1,θt)Q(θt,θt)=l(θt)

如果您想确切地知道为什么会这样,墨菲的《机器学习:概率论》的第11.4.7节提供了很好的解释。如果您的实施符合这些不平等,你犯了一个错误的地方。说像

我非常接近完美,表明没有编程错误

是危险的。借助大量的优化和学习算法,很容易犯错误,但大多数时候仍能获得外观正确的答案。我喜欢的直觉是这些算法旨在处理混乱的数据,因此它们也能很好地处理错误也就不足为奇了!


在问题的另一半,

是否有常规的搜索试探法或同样会增加找到全局最小值(或最大值)的可能性

随机重启是最简单的方法。下一个最简单的方法可能是对初始参数进行模拟退火。我还听说过EM的一种变种,即确定性退火,但是我个人没有使用过它,因此无法告诉您太多有关它的信息。


1
好答案(+1)。如果您要包括正式的参考文献(尤其是对部分引用的参考资料“机器学习:概率论的观点”的参考文献),那就更好了。
Aleksandr Blekh

非常感谢您的回答。我发现修正了代码错误后,该算法确实可以正确收敛,但是仅当我排除了截断的数据时才可以正确收敛。否则,它会变成麻烦。我相信这是某些错误的结果。
好家伙迈克

实际上,问题在于我处理的是“异构截断”,即每个观察都有一个单独的截断点,而不是所有观察都有一个一致的截断阈值。我从未在文献中遇到或找不到这些设置,因此无法验证我是否正确解决了该设置。如果您有任何机会看到此设置,我很想看看这些参考!Li
好家伙迈克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.