EM算法的快速替代方案


13

对于具有潜在变量的模型(尤其是pLSA),EM算法有没有其他快速替代方案?我可以牺牲精度而支持速度。


1
你做过文献调查吗?本文看起来特别相关:潜变量训练的凸松弛
Emre 2012年

1
LSA怎么样?:-)
conjugateprior

1
加速EM的一般方法称为“ Aitken加速器”。如果精度不是问题,则可以尝试使用力矩估算或广义矩估算。
JohnRos 2012年

Answers:


4

牛顿-拉夫森算法通常可以被采用。我对pSLA不熟悉,但是对潜在类模型使用Newton-Raphson算法是很常见的。与EM相比,Newton-Raphson算法的初始值较差,因此麻烦更多,因此一种策略是首先使用EM的几次迭代(例如20次),然后切换到Newton-Raphson算法。我获得了很大成功的一种算法是:Zhu,Ciyou,Richard H. Byrd,Lu Pehuanghuang和Jorge Nocedal(1997),“算法778:L-BFGS-B:用于大规模绑定的Fortran子例程,约束优化”,ACM Transactions on Mathematical Software(TOMS)档案,23(4),550-60。


4

与EM算法非常相似的是MM算法,该算法通常利用凸度而不是在使目标函数最大化或最小化时丢失数据。但是,您必须检查MM算法是否适用于您的特定问题。



2

到目前为止,答案中未提及的另一种选择是变分近似。尽管这些算法并非在所有情况下都完全是EM算法,但在某些情况下EM算法是贝叶斯均场变分算法的限制情况。该限制与超参数的限制情况有关,选择限制值(在某些情况下)将为您提供EM算法。

无论哪种情况(EM,VB甚至是MM算法),都有2种通用的方法来加快处理速度:

(1)降低问题的维数-从维问题到单变量问题。这些通常是协调下降算法,但我也看到过MM算法也可以进行这种加速。ppp

(2)提高您的EM(或其他类型)算法的收敛速度。JohnRos在评论中提到了Aitken加速。这来自于数值分析领域,但McLachlan和Krishnan在EM书中对此进行了讨论。

可能还有其他我想念的东西,但这似乎是两个大问题。

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.