对于具有潜在变量的模型(尤其是pLSA),EM算法有没有其他快速替代方案?我可以牺牲精度而支持速度。
对于具有潜在变量的模型(尤其是pLSA),EM算法有没有其他快速替代方案?我可以牺牲精度而支持速度。
Answers:
牛顿-拉夫森算法通常可以被采用。我对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。
对于LDA,“在线LDA”是诸如标准EM(http://www.cs.princeton.edu/~blei/papers/HoffmanBleiBach2010b.pdf)等批处理方法的快速替代。
David Blei在其页面上提供了软件:http : //www.cs.princeton.edu/~blei/topicmodeling.html
到目前为止,答案中未提及的另一种选择是变分近似。尽管这些算法并非在所有情况下都完全是EM算法,但在某些情况下EM算法是贝叶斯均场变分算法的限制情况。该限制与超参数的限制情况有关,选择限制值(在某些情况下)将为您提供EM算法。
无论哪种情况(EM,VB甚至是MM算法),都有2种通用的方法来加快处理速度:
(1)降低问题的维数-从维问题到单变量问题。这些通常是协调下降算法,但我也看到过MM算法也可以进行这种加速。p
(2)提高您的EM(或其他类型)算法的收敛速度。JohnRos在评论中提到了Aitken加速。这来自于数值分析领域,但McLachlan和Krishnan在EM书中对此进行了讨论。
可能还有其他我想念的东西,但这似乎是两个大问题。