Ich versuche zu lernen, wie man zufällige Markov-Felder verwendet, um Regionen in einem Bild zu segmentieren. Ich verstehe einige der Parameter in der MRF nicht oder weiß nicht, warum die von mir durchgeführte Erwartungsmaximierung manchmal nicht zu einer Lösung konvergiert.
Ausgehend von Bayes 'Theorem habe ich , wobei der Grauwert des Pixels und eine Klassenbezeichnung ist. Ich habe mich für eine Gauß-Verteilung für , während mit der MRF modelliert wird.y x p ( y | x ) p ( x )
Ich verwende eine Potentialfunktion für die MRF, die sowohl paarweise Clique-Potentiale als auch einen Potentialwert für die Klassenbezeichnung des zu klassifizierenden Pixels aufweist. Der Einzelpixelpotentialwert ist eine Konstante , die von der Klassenbezeichnung abhängt . Die paarweisen Potentialfunktionen werden für die 4 verbundenen Nachbarn ausgewertet und geben positives wenn der Nachbar die gleiche Klassenbezeichnung wie dieses Pixel hat, und wenn sich die Bezeichnungen unterscheiden.x β -
An dem Punkt in der Erwartungsmaximierung, an dem ich die Werte von und , die den erwarteten Wert der logarithmischen Wahrscheinlichkeit maximieren, habe ich jedoch eine numerische Optimierungsmethode (probierter konjugierter Gradient, BFGS, Powell-Methode) verwendet würde immer feststellen, dass der Wert von negativ wird, die s dramatisch ansteigen und ein oder zwei Iterationen später das gesamte Bild nur einem Etikett zugewiesen wird . Wenn ich die Alphas entfernen würde, dh nur paarweise Clique-Potenziale verwenden würde, würde die Erwartungsmaximierung einwandfrei funktionieren.β β α
Bitte erläutern Sie den Zweck der Alphas für jede Klasse. Ich dachte, sie würden sich auf die Menge dieser Klasse beziehen, die im Bild vorhanden ist, aber es scheint nicht. Als ich die MRF mit nur paarweisen Potentialen zum Laufen brachte, verglich ich sie mit einem einfachen Gaußschen Mischungsmodell und stellte fest, dass sie fast identische Ergebnisse lieferten. Ich hatte erwartet, dass die paarweisen Potenziale die Klassen etwas glätten würden, aber das ist nicht geschehen. Bitte teilen Sie mir mit, wo ich falsch liege.
Antworten:
Diagnose
Das klingt nach einem Initialisierungsproblem.
Das von Ihnen verwendete MRF-Modell ist nicht konvex und weist als solches mehrere lokale Minima auf. Soweit mir bekannt ist, reagieren alle vorhandenen Optimierungstechniken empfindlich auf die Initialisierung. Dies bedeutet, dass die Qualität der endgültigen Lösung stark davon abhängt, von wo aus Sie den Optimierungsvorgang starten.
Vorgeschlagene Lösung
Ich schlage vor, verschiedene Strategien auszuprobieren, um das Modell zu initialisieren. Eine Strategie, die mir zum Beispiel einfällt, ist die folgende:
Trainiere zuerst ein Modell für und ignoriere den vorherigen Term für den Moment; das heißt, fix ist einheitlich, indem beispielsweise und fixiert wird . Wenn Sie schicker sein wollen, können Sie beheben eine mutinomimal Verteilung zu sein , die die relativen Häufigkeiten von Etiketten in dem Trainingssatz darstellt. Sie können dies tun, indem Sie Werte entsprechend einstellen .p ( x ) α = β = 0 p ( x ) αp ( y| x) p ( x ) α = β= 0 p ( x ) α
Lösen Sie die unären und paarweisen Terme im MRF-Modell. Lassen Sie also Ihren Optimierer den Wert von und ändern .βα β
Die vorgeschlagene Initialisierung ist keinesfalls der beste Weg, um Ihre Optimierung zu initialisieren, sondern nur eine mögliche Option.
Schließlich können Sie, wie Roman Shapovalov vorschlug, Ihre vorherigen Parameter regulieren. Zum Beispiel: wobei und sind das kann als Varianz der Gaußschen Priors interpretiert werden.& lgr; & agr; & lgr; & bgr;λα| | α ||2+ λβ| |β| |2 λα λβ
quelle