Gibt es schnelle Alternativen zum EM-Algorithmus zum Lernen von Modellen mit latenten Variablen (insbesondere pLSA)? Ich finde es in Ordnung, die Präzision zugunsten der Geschwindigkeit zu opfern.
Gibt es schnelle Alternativen zum EM-Algorithmus zum Lernen von Modellen mit latenten Variablen (insbesondere pLSA)? Ich finde es in Ordnung, die Präzision zugunsten der Geschwindigkeit zu opfern.
Antworten:
Newton-Raphson-Algorithmen können oft verwendet werden. Ich bin mit pSLA nicht vertraut, aber es ist ziemlich üblich, Newton-Raphson-Algorithmen für Modelle latenter Klassen zu verwenden. Newton-Raphson-Algorithmen haben etwas mehr mit schlechten Anfangswerten zu tun als EM. Daher besteht eine Strategie darin, zuerst einige Iterationen (z. B. 20) der EM zu verwenden und dann auf einen Newton-Raphson-Algorithmus zu wechseln. Ein Algorithmus, mit dem ich viel Erfolg hatte, ist: Zhu, Ciyou, Richard H. Byrd, Peihuang Lu und Jorge Nocedal (1997). eingeschränkte Optimierung, "ACM Transactions on Mathematical Software (TOMS) Archiv, 23 (4), 550-60.
Dem EM-Algorithmus sehr ähnlich ist der MM-Algorithmus der typischerweise die Konvexität ausnutzt, anstatt Daten beim Erhöhen oder Minimieren einer Zielfunktion zu fehlen. Sie müssen jedoch prüfen, ob der MM-Algorithmus für Ihr spezielles Problem geeignet ist.
Für LDA ist "Online-LDA" eine schnelle Alternative zu Batch-Methoden wie Standard-EM (http://www.cs.princeton.edu/~blei/papers/HoffmanBleiBach2010b.pdf).
David Blei stellt Software auf seiner Seite zur Verfügung: http://www.cs.princeton.edu/~blei/topicmodeling.html
Eine weitere bisher in den Antworten nicht erwähnte Alternative sind Variationsnäherungen. Obwohl diese Algorithmen nicht in allen Fällen genau EM-Algorithmen sind, sind EM-Algorithmen in einigen Fällen einschränkende Fälle von Bayes'schen Mittelfeld-Variationsalgorithmen. Die Grenze bezieht sich auf den Grenzfall der Hyperparameter, und die Auswahl der Grenzwerte - in einigen Fällen - gibt Ihnen den EM-Algorithmus.
In beiden Fällen (EM-, VB- oder sogar MM-Algorithmen) gibt es zwei generische Möglichkeiten, die Dinge zu beschleunigen:
univariaten Problemen. Dies sind normalerweise Algorithmen für den Koordinatenabstieg, aber ich habe MM-Algorithmen gesehen, die auch diese Art der Beschleunigung durchführen.
(2) Verbesserung der Konvergenzrate Ihres EM-Algorithmus (oder eines anderen Typs). In einem Kommentar erwähnte JohnRos die Aitken-Beschleunigung. Dies stammt aus der Welt der numerischen Analyse, wird jedoch im EM-Buch von McLachlan und Krishnan erörtert.
Es mag andere geben, die ich verpasst habe, aber diese scheinen die beiden großen zu sein.