Estou tentando aprender como usar os campos aleatórios de Markov para segmentar regiões em uma imagem. Não entendo alguns dos parâmetros no MRF ou por que às vezes a maximização de expectativas que realizo não converge para uma solução.
A partir teorema de Bayes, eu tenho , onde é o valor de escala de cinza do pixel e é um rótulo de classe. Eu escolhi usar uma distribuição gaussiana para p ( y | x ) , enquanto p ( x ) é modelado usando o MRF.
Uso uma função potencial para o MRF que possui potenciais de clique em pares e um valor potencial para o rótulo de classe do pixel que está sendo classificado. O valor potencial de pixel único é uma constante que depende do rótulo da classe . As funções potenciais em pares são avaliadas para os vizinhos conectados em 4 e retornam positivo se o vizinho tiver o mesmo rótulo de classe que esse pixel e se os rótulos diferirem.
No ponto da maximização da expectativa, em que tenho que encontrar os valores de e que maximizam o valor esperado da probabilidade logarítmica, usei um método de otimização numérica (gradiente conjugado tentado, BFGS, método de Powell), mas sempre descubra que o valor de se tornaria negativo, os aumentariam drasticamente e uma iteração ou duas depois a imagem inteira seria atribuída a apenas um rótulo (background: atribuir rótulos de classe aos parâmetros MRF foi feito usando ICM). Se eu removesse os alfas, ou seja, apenas usando potenciais de clique em pares, a maximização da expectativa funcionaria perfeitamente.
Por favor, explique qual é o objetivo dos alfas para cada classe? Eu pensei que eles estariam relacionados à quantidade dessa classe que está presente na imagem, mas não aparece. Depois que o MRF funcionou apenas com potenciais emparelhados, comparei-o com um Modelo Gaussiano de Mistura direto e descobri que eles produziam resultados quase idênticos. Eu esperava que o potencial dos pares suavizasse um pouco as aulas, mas isso não aconteceu. Por favor, informe onde eu errei.
Respostas:
Diagnóstico
Isso soa como um problema de inicialização.
O modelo MRF que você está usando não é convexo e, como tal, possui vários mínimos locais. Até onde eu sei, todas as técnicas de otimização existentes são sensíveis à inicialização, o que significa que a qualidade da solução final é altamente afetada por onde você inicia o procedimento de otimização.
Solução sugerida
Sugiro tentar estratégias diferentes para inicializar o modelo. Por exemplo, uma estratégia que me vem à mente é a seguinte:
treine um modelo para primeiro e ignore o termo anterior por enquanto; que é a correção p ( x ) para ser uniforme, por exemplo, definindo α = β = 0 e mantendo-os fixos . Se você deseja ser mais sofisticado, pode corrigir p ( x ) como uma distribuição mutinomimal que representa as frequências relativas de rótulos no conjunto de treinamento. Você pode fazer isso definindo os valores α adequadamente.p ( y| x) p ( x ) α = β= 0 p ( x ) α
descongelar os termos unários e aos pares no modelo MRF; ou seja, deixe seu otimizador alterar o valor de e β .α β
A inicialização sugerida é, de maneira alguma, a melhor maneira de inicializar sua otimização, mas apenas uma opção possível.
fonte