Esistono alternative rapide all'algoritmo EM per i modelli di apprendimento con variabili latenti (in particolare pLSA)? Sto bene sacrificando la precisione a favore della velocità.
Esistono alternative rapide all'algoritmo EM per i modelli di apprendimento con variabili latenti (in particolare pLSA)? Sto bene sacrificando la precisione a favore della velocità.
Risposte:
Gli algoritmi di Newton-Raphson possono spesso essere impiegati. Non ho familiarità con pSLA, ma è abbastanza comune usare gli algoritmi Newton-Raphson per i modelli di classe latente. Gli algoritmi di Newton-Raphson sono un po 'più turbati da scarsi valori iniziali rispetto a EM, quindi una strategia è prima di utilizzare alcune iterazioni (diciamo 20) dell'EM e quindi passare a un algoritmo di Newton-Raphson. Un algoritmo con cui ho avuto molto successo è: Zhu, Ciyou, Richard H. Byrd, Peihuang Lu e Jorge Nocedal (1997), "Algorithm 778: L-BFGS-B: subroutine Fortran per limiti su larga scala - ottimizzazione vincolata, "ACM Transactions on Mathematical Software (TOMS) archive, 23 (4), 550-60.
Molto simile all'algoritmo EM è l' algoritmo MM che in genere sfrutta la convessità anziché i dati mancanti nel potenziare o minimizzare una funzione oggettiva. Tuttavia, devi verificare se l'algoritmo MM è applicabile per il tuo problema specifico.
Per LDA, "LDA online" è un'alternativa rapida ai metodi batch come EM standard (http://www.cs.princeton.edu/~blei/papers/HoffmanBleiBach2010b.pdf).
David Blei fornisce software sulla sua pagina: http://www.cs.princeton.edu/~blei/topicmodeling.html
Un'altra alternativa non menzionata finora nelle risposte sono approssimazioni variazionali. Sebbene questi algoritmi non siano esattamente algoritmi EM in tutti i casi, in alcuni casi gli algoritmi EM stanno limitando i casi di algoritmi variazionali del campo medio bayesiano. Il limite riguarda il caso limite degli iperparametri, la scelta dei valori limite - in alcuni casi - ti darà l'algoritmo EM.
In entrambi i casi (algoritmi EM, VB o MM) ci sono 2 modi generici per accelerare le cose:
(1) ridurre la dimensionalità del problema a -dim problema a problemi univariati. Questi sono di solito algoritmi di discesa delle coordinate, ma ho visto algoritmi MM che eseguono anche questo tipo di accelerazione.
(2) migliorare il tasso di convergenza dell'algoritmo EM (o di altro tipo). In un commento JohnRos ha menzionato l'accelerazione di Aitken. Questo proviene dal mondo dell'analisi numerica ma è discusso nel libro EM di McLachlan e Krishnan.
Potrebbero essercene altri che mi sono persi, ma questi sembrano essere i due più grandi.