Convergenza dall'algoritmo EM con distribuzione della miscela bivariata


9

Ho un modello di miscela che voglio trovare lo stimatore della massima verosimiglianza di un dato insieme di dati e un insieme di dati parzialmente osservati . Ho implementato sia l'E-step (calcolando l'aspettativa di dato e i parametri correnti ), sia il M-step, per minimizzare la verosimiglianza negativa data la prevista .xzzxθkz

Come ho capito, la probabilità massima sta aumentando per ogni iterazione, questo significa che la probabilità logaritmica negativa deve diminuire per ogni iterazione? Tuttavia, come ho ripetuto, l'algoritmo non produce effettivamente valori decrescenti della probabilità logaritmica negativa. Invece, può essere sia in diminuzione che in aumento. Ad esempio, questi erano i valori della probabilità logaritmica negativa fino alla convergenza:

inserisci qui la descrizione dell'immagine

C'è qui che ho frainteso?

Inoltre, per i dati simulati quando eseguo la massima verosimiglianza per le vere variabili latenti (non osservate), ho una corrispondenza quasi perfetta, indicando che non ci sono errori di programmazione. Per l'algoritmo EM converge spesso in soluzioni chiaramente non ottimali, in particolare per un sottoinsieme specifico dei parametri (ovvero le proporzioni delle variabili di classificazione). È noto che l'algoritmo può convergere in minimi locali o punti fissi, esiste una ricerca euristica convenzionale o allo stesso modo per aumentare la probabilità di trovare il minimo globale (o massimo) . Per questo particolare problema credo che ci siano molte classificazioni mancate perché, della miscela bivariata, una delle due distribuzioni assume valori con probabilità uno (è una miscela di vite in cui la vita reale è trovata daT=zT0+(1z) dove indica l'appartenenza a una delle due distribuzioni. L'indicatore è ovviamente censurato nel set di dati. zzinserisci qui la descrizione dell'immagine

Ho aggiunto una seconda cifra per quando inizio con la soluzione teorica (che dovrebbe essere vicina all'ottimale). Tuttavia, come si può vedere, la probabilità e i parametri differiscono da questa soluzione in una chiaramente inferiore.

modifica: i dati completi sono nella forma dove è un tempo osservato per il soggetto , indica se il tempo è associato a un evento reale o se è censurato a destra (1 indica evento e 0 indica censura a destra), è il tempo di troncamento dell'osservazione (possibilmente 0) con l'indicatore di troncamento e infine è l'indicatore a cui appartiene la popolazione dell'osservazione (poiché è bivariato, dobbiamo solo considerare 0 e 1).xi=(ti,δi,Li,τi,zi)tiiδiLiτizi

Per abbiamo la funzione di densità , similmente è associata alla funzione di distribuzione della coda . Per l'evento di interesse non si verificherà. Sebbene non ci sia associato a questa distribuzione, la definiamo come , quindi e . Ciò produce anche la seguente distribuzione completa della miscela:z=1fz(t)=f(t|z=1)Sz(t)=S(t|z=1)z=0tinff(t|z=0)=0S(t|z=0)=1

f(t)=i=01pif(t|z=i)=pf(t|z=1) e S(t)=1p+pSz(t)

Procediamo a definire la forma generale della probabilità:

L(θ;xi)=Πif(ti;θ)δiS(ti;θ)1δiS(Li)τi

Ora, viene osservato solo parzialmente quando , altrimenti non è noto. La piena probabilità diventazδ=1

L(θ,p;xi)=Πi((pfz(ti;θ))zi)δi((1p)(1zi)(pSz(ti;θ))zi)1δi((1p)(1zi)(pSz(Li;θ))zi)τi

dove è il peso della distribuzione corrispondente (eventualmente associato ad alcune covariate e ai rispettivi coefficienti mediante una funzione di collegamento). Nella maggior parte della letteratura questo è semplificato alla seguente responsabilitàp

(ziln(p)+(1p)ln(1p)τi(ziln(p)+(1zi)ln(1p))+δizifz(ti;θ)+(1δi)ziSz(ti;θ)τiSz(Li;θ))

Per la fase M , questa funzione è massimizzata, sebbene non nella sua interezza in 1 metodo di massimizzazione. Invece non possiamo separarlo in parti .l(θ,p;)=l1(θ,)+l2(p,)

Per il k: th + 1 E-step , dobbiamo trovare il valore atteso delle variabili latenti (parzialmente) non osservate . Usiamo il fatto che per , quindi .ziδ=1z=1

E(zi|xi,θ(k),p(k))=δi+(1δi)P(zi=1;θ(k),p(k)|xi)

Qui abbiamo, diP(zi=1;θ(k),p(k)|xi)=P(xi;θ(k),p(k)|zi=1)P(zi=1;θ(k),p(k))P(xi;θ(k),p(k))

che ci dàP(zi=1;θ(k),p(k)|xi)=pSz(ti;θ(k))1p+pSz(ti;θ(k))

(Notare qui che , quindi non vi è alcun evento osservato, quindi la probabilità dei dati è data dalla funzione di distribuzione della coda.δi=0xi


Potresti scrivere dall'inizio le variabili del nostro problema e le tue equazioni E e M?
alberto

1
Certo, ho modificato la domanda con maggiori dettagli riguardanti l'E e M-step
Good Guy Mike

Per chiarire, i valori tracciati sono il MLE completo dati i valori stimati per i dati incompleti.
Bravo ragazzo Mike,

Che cos'è ? Non capisco "sebbene non ci sia t associato a questa distribuzione, la definiamo inf ...". Sz
wij,

1
L'algoritmo EM massimizza direttamente la probabilità attesa di dati completi, ma può garantire l'aumento della probabilità di dati osservati. Stai verificando l'aumento della probabilità dei dati osservati?
Randel,

Risposte:


6

L'obiettivo di EM è massimizzare la probabilità di log dei dati osservati,

l(θ)=iln[zp(xi,z|θ)]

Sfortunatamente, questo tende ad essere difficile da ottimizzare rispetto a . Invece, EM forma e massimizza ripetutamente la funzione ausiliariaθ

Q(θ,θt)=Ez|θt(ilnp(xi,zi|θ))

Se massimizza , EM lo garantisceθt+1Q(θ,θt)

l(θt+1)Q(θt+1,θt)Q(θt,θt)=l(θt)

Se vuoi sapere esattamente perché questo è il caso, la Sezione 11.4.7 di Murphy's Machine Learning: A Probabilistic Perspective fornisce una buona spiegazione. Se l'implementazione non soddisfa queste disuguaglianze, hai commesso un errore da qualche parte. Dire cose del genere

Ho un adattamento perfetto, indicando che non ci sono errori di programmazione

è pericoloso. Con molti algoritmi di ottimizzazione e apprendimento, è molto facile commettere errori ma ottenere risposte dall'aspetto corretto per la maggior parte del tempo. Un'intuizione a cui sono affezionato è che questi algoritmi hanno lo scopo di gestire i dati disordinati, quindi non sorprende che gestiscano bene anche i bug!


Sull'altra metà della tua domanda,

esiste una ricerca euristica convenzionale o allo stesso modo per aumentare la probabilità di trovare il minimo globale (o massimo)

Il riavvio casuale è l'approccio più semplice; il successivo più semplice è probabilmente la ricottura simulata rispetto ai parametri iniziali. Ho anche sentito parlare di una variante di EM chiamata ricottura deterministica , ma non l'ho usata personalmente, quindi non posso dirvi molto.


1
Bella risposta (+1). Sarebbe ancora meglio se includessi riferimenti formali (in particolare, un riferimento a una fonte parzialmente citata "Apprendimento automatico: una prospettiva probabilistica").
Aleksandr Blekh,

Grazie mille per la risposta Ho scoperto che l'algoritmo converge correttamente ora dopo aver corretto un errore nel codice, ma solo quando escludo i miei dati troncati. Altrimenti va in tilt. Credo che questo sia il risultato di alcuni errori.
Bravo ragazzo Mike,

In effetti, il problema è che ho a che fare con il "troncamento eterogeneo", ovvero esiste un punto di troncamento individuale per ogni osservazione, piuttosto che una soglia di troncamento unanime per tutte le osservazioni. Non ho mai riscontrato o non riesco a trovare queste impostazioni in letteratura, quindi non posso verificare di risolverlo correttamente. Se per caso avessi visto questa impostazione, mi piacerebbe dare un'occhiata a quei riferimenti! Li
Bravo ragazzo Mike,
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.