Estoy intentando aprender cómo usar los campos aleatorios de Markov para segmentar regiones en una imagen. No entiendo algunos de los parámetros en el MRF o por qué la maximización de expectativas que realizo a veces no puede converger en una solución.
A partir del teorema de Bayes, tengo , donde es el valor de escala de grises del píxel es una etiqueta de clase. Elegí usar una distribución gaussiana para , mientras que se modela usando el MRF.
Utilizo una función potencial para el MRF que tiene potenciales de camarilla por pares y un valor potencial para la etiqueta de clase del píxel que se clasifica. El valor potencial de un solo píxel es una constante que depende de la etiqueta de clase . Las funciones potenciales por pares se evalúan para los 4 vecinos conectados y devuelven positivo si el vecino tiene la misma etiqueta de clase que este píxel y si las etiquetas difieren.
En el punto de la maximización de expectativas donde tengo que encontrar los valores de y que maximizan el valor esperado de la probabilidad logarítmica, utilicé un método de optimización numérica (gradiente conjugado probado, BFGS, método de Powell) pero siempre descubra que el valor de se volvería negativo, las s aumentarían drásticamente y una o dos iteraciones más tarde la imagen completa se asignaría a una sola etiqueta (fondo: la asignación de etiquetas de clase dados los parámetros MRF se realizó usando ICM). Si eliminé los alfas, es decir, solo usando potenciales de camarilla por pares, entonces la maximización de expectativas funcionaría bien.
¿Explica cuál es el propósito de los alfas para cada clase? Pensé que estarían relacionados con la cantidad de esa clase que está presente en la imagen, pero parece que no. Una vez que conseguí que el MRF funcionara solo con potenciales por pares, lo comparé con un modelo de mezcla gaussiana directo y descubrí que producían resultados casi idénticos. Esperaba que los potenciales por pares suavizaran un poco las clases, pero eso no sucedió. Por favor avise dónde me equivoqué.
Respuestas:
Diagnóstico
Esto suena como un problema de inicialización.
El modelo MRF que está utilizando no es convexo y, como tal, tiene múltiples mínimos locales. Hasta donde sé, todas las técnicas de optimización existentes son sensibles a la inicialización, lo que significa que la calidad de la solución final se ve muy afectada por el lugar desde el que inicia el procedimiento de optimización.
Solución sugerida
Sugiero probar diferentes estrategias para inicializar el modelo. Por ejemplo, una estrategia que me viene a la mente es la siguiente:
entrenar un modelo para primero e ignorar el término anterior por ahora; es decir, arreglar p ( x ) para que sea uniforme, por ejemplo, estableciendo α = β = 0 y manteniéndolos fijos . Si quieres ser más elegante, puedes arreglar p ( x ) para que sea una distribución mutinomimal que represente las frecuencias relativas de las etiquetas en el conjunto de entrenamiento. Puede hacer esto estableciendo los valores de α adecuadamente.p(y|x) p(x) α=β=0 p(x) α
descongelar los términos unarios y por pares en el modelo MRF; es decir, deje que su optimizador cambie el valor de y β .α β
La inicialización sugerida es, de ninguna manera, la mejor manera de inicializar su optimización, sino más bien, solo una opción posible.
fuente