J'essaie d'apprendre à utiliser les champs aléatoires de Markov pour segmenter des régions dans une image. Je ne comprends pas certains des paramètres du MRF ni pourquoi la maximisation des attentes que j'effectue ne parvient pas parfois à converger vers une solution.
En partant du théorème de Bayes, j'ai , où est la valeur d'échelle de gris du pixel et est une étiquette de classe. J'ai choisi d'utiliser une distribution gaussienne pour , tandis que est modélisé à l'aide du MRF.
J'utilise une fonction potentielle pour le MRF qui a à la fois des potentiels de clique par paire et une valeur potentielle pour l'étiquette de classe du pixel en cours de classification. La valeur potentielle d'un seul pixel est une constante qui dépend de l'étiquette de classe . Les fonctions potentielles par paire sont évaluées pour les voisins à 4 connectés et renvoient positif si le voisin a la même étiquette de classe que ce pixel et si les étiquettes diffèrent.
Au moment de la maximisation des attentes où je dois trouver les valeurs de et qui maximisent la valeur attendue de la vraisemblance logarithmique, j'ai utilisé une méthode d'optimisation numérique (gradient conjugué essayé, BFGS, méthode de Powell) mais toujours constater que la valeur de deviendrait négative, les augmenteraient considérablement et une itération ou deux plus tard, l'image entière serait affectée à une seule étiquette (arrière-plan: l'attribution des étiquettes de classe en fonction des paramètres MRF a été effectuée à l'aide d'ICM). Si je supprimais les alphas, c'est-à-dire en utilisant uniquement des potentiels de clique par paire, alors la maximisation des attentes fonctionnerait très bien.
Veuillez expliquer quel est le but des alphas pour chaque classe? Je pensais qu'ils seraient liés à la quantité de cette classe qui est présente dans l'image, mais cela ne semble pas. Une fois que le MRF a fonctionné avec seulement des potentiels par paire, je l'ai comparé à un modèle de mélange gaussien simple et j'ai constaté qu'ils produisaient des résultats presque identiques. Je m'attendais à ce que les potentiels par paire lissent un peu les classes, mais cela ne s'est pas produit. Veuillez indiquer où je me suis trompé.
Réponses:
Diagnostic
Cela ressemble à un problème d'initialisation.
Le modèle MRF que vous utilisez n'est pas convexe et, en tant que tel, a plusieurs minima locaux. Pour autant que je sache, toutes les techniques d'optimisation existantes sont sensibles à l'initialisation, ce qui signifie que la qualité de la solution finale est fortement affectée par le point de départ de la procédure d'optimisation.
Solution suggérée
Je suggère d'essayer différentes stratégies pour initialiser le modèle. Par exemple, une stratégie qui me vient à l'esprit est la suivante:
former d'abord un modèle pour et ignorer le terme précédent pour l'instant; qui est fix p ( x ) d'être uniforme, par exemple, par réglage α = β = 0 et les maintenir fixées . Si vous voulez être plus amateur, vous pouvez fixer p ( x ) pour être une distribution mutinomimale qui représente les fréquences relatives des étiquettes dans l'ensemble d'apprentissage. Vous pouvez le faire en définissant les valeurs α de manière appropriée.p(y|x) p(x) α=β=0 p(x) α
dégeler les termes unaires et par paires dans le modèle MRF; c'est-à-dire, laissez votre optimiseur modifier la valeur de et β .α β
L'initialisation suggérée n'est en aucun cas le meilleur moyen d'initialiser votre optimisation, mais plutôt une seule option possible.
la source