Alternative veloci all'algoritmo EM


13

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à.


1
Hai fatto un sondaggio sulla letteratura? Questo documento sembra particolarmente rilevante: Rilassamenti convessi dell'addestramento variabile latente
Emre,

1
Che ne dici di LSA? :-)
conjugateprior

1
Un modo generale per accelerare un EM è chiamato "acceleratore Aitken". Se la precisione non è un problema, prova invece la stima del momento o la stima del momento generalizzata.
JohnRos,

Risposte:


4

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.


4

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.



2

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 p-dim problema a pproblemi 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.