Allenare un campo casuale di Markov di base per classificare i pixel in un'immagine


16

Sto cercando di imparare come usare Markov Random Fields per segmentare le regioni in un'immagine. Non capisco alcuni dei parametri nell'MRF o perché la massimizzazione delle aspettative che eseguo non riesca a convergere in una soluzione a volte.

A partire dal teorema di Bayes, ho p(x|y)=p(y|x)p(x)/p(y) , dove y è il valore della scala dei grigi del pixel e è un'etichetta di classe. Ho scelto di usare una distribuzione gaussiana per , mentre è modellato usando MRF.p ( y | x ) p ( x )xp(y|x)p(x)

Uso una potenziale funzione per MRF che ha sia potenziali di cricca a coppie che un valore potenziale per l'etichetta di classe del pixel da classificare. Il valore potenziale per singolo pixel è una costante che dipende dall'etichetta della classe . Le potenziali funzioni a coppie vengono valutate per i vicini a 4 connessi e restituiscono un positivo se il vicino ha la stessa etichetta di classe di questo pixel e se le etichette differiscono.x β - βαxββ

Nel punto della massimizzazione delle aspettative dove devo trovare i valori diα(x) e β che massimizzano il valore atteso della verosimiglianza, ho usato un metodo di ottimizzazione numerica (ho provato il gradiente coniugato, BFGS, metodo di Powell) ma avrei scopri sempre che il valore di β diventerebbe negativo, gli α s aumenterebbero drammaticamente e una iterazione o due dopo l'intera immagine verrebbe assegnata a una sola etichetta (sfondo: l'assegnazione delle etichette di classe dati i parametri MRF è stata fatta usando ICM). Se avessi rimosso gli alfa, cioè usando solo potenziali di cricca a coppie, la massimizzazione delle aspettative avrebbe funzionato bene.

Spiega qual è lo scopo degli alfa per ogni classe? Ho pensato che sarebbero stati correlati alla quantità di quella classe che è presente nell'immagine, ma non sembra. Una volta che l'MRF funzionava con potenziali solo a coppie, l'ho confrontato con un modello di miscela gaussiana diretto e ho scoperto che producevano risultati quasi identici. Mi aspettavo che i potenziali a coppie appianassero un po 'le classi, ma non è successo. Si prega di avvisare dove ho sbagliato.


Solo curioso, perché hai scelto il modello grafico non indirizzato?

Nella mia applicazione, il valore della scala dei grigi dei conteggi dei pixel e dei pixel adiacenti ha maggiori probabilità di avere la stessa etichetta di classe, ma non c'è motivo di usare una beta diversa per ogni cricca a coppie. Spero di aver capito bene la tua domanda.
Chippies

1
Gli alfa costanti sembrano servire allo scopo di modellare la distribuzione precedente sulle etichette. Come hai immaginato, gli alfa corretti probabilmente sovrapporrebbero quelle etichette che si incontrano più spesso nel set di addestramento. Se il tuo modello funziona bene senza di loro, perché non li lasci cadere dal modello? La tua descrizione non è abbastanza dettagliata per rispondere al motivo per cui gli alfa dovrebbero crescere e rovinare tutto, ma probabilmente hai bisogno di regolarizzazione. Prova ad aggiungere il gaussiano prima di alfa al modello, cioè aggiungi al log-posteriore, questo probabilmente impedirebbe l'adattamento eccessivo. λα2
Roman Shapovalov,

Cosa non è chiaro dalla tua domanda: 1) La tua probabilità p (y | x) si decompone su pixel, quindi usi un gaussiano 1D per ciascuno? 2) Qual è l'obiettivo esatto che ottimizzi in EM (hai menzionato la verosimiglianza, ma usi MRF per la modellazione precedente)? 3) Definisci potenziali nel dominio logaritmico? Aumentare beta significa aumentare P (x) o energia, che è -log P (x) o energia negativa? 4) Riesci a ridurre effettivamente l'obiettivo EM impostando tali alfa degeneri o l'ottimizzazione fallisce?
Roman Shapovalov,

Che dire della propagazione delle credenze loopy?
Wolfsatthedoor,

Risposte:


1

Diagnosi

Sembra un problema di inizializzazione.

Il modello MRF che si sta utilizzando non è convesso e, come tale, ha più minimi locali. Per quanto ne so, tutte le tecniche di ottimizzazione esistenti sono sensibili all'inizializzazione, il che significa che la qualità della soluzione finale è fortemente influenzata da dove si avvia la procedura di ottimizzazione.

Soluzione suggerita

Suggerisco di provare diverse strategie per inizializzare il modello. Ad esempio, una strategia che mi viene in mente è la seguente:

  1. addestrare prima un modello per e ignorare il termine precedente per ora; cioè fix p ( x ) di essere uniforme, per esempio, dalla regolazione α = β = 0 e tenerli fissi . Se vuoi essere più elaborato, puoi correggere p ( x ) in modo che sia una distribuzione mutinomimale che rappresenti le frequenze relative delle etichette nel set di addestramento. Puoi farlo impostando i valori α in modo appropriato.p(y|x) p(x)α=β=0 p(x)α

  2. sbloccare i termini unari e a coppie nel modello MRF; ovvero, lascia che il tuo ottimizzatore cambi il valore di e β .αβ

L'inizializzazione suggerita non è affatto il modo migliore per inizializzare l'ottimizzazione, ma piuttosto solo un'opzione possibile.

Infine, come ha suggerito Roman Shapovalov , puoi considerare di regolarizzare i tuoi parametri precedenti; per esempio, ponendo un priore gaussiano su di loro: dove λ α e λ β sono iperparametri che possono essere interpretati come le varianze dei priori gaussiani.λα||α||2+λβ||β||2λαλβ

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.