[PYTHON] PRML: Chapitre 8 Modèle graphique Suppression du bruit d'image

Aperçu

PRML Chapitre 8 Modèle graphique, 8.3.3 Exemple: implémentation de la suppression du bruit d'image en Python

Cahier Jupyter résumant le code et les résultats expérimentaux.

Modèle graphique

__ Modèle graohical probabiliste __ (modèle graohical probabiliste) est une représentation graphique de la distribution de probabilité. En utilisant le modèle graphique pour l'analyse, la dépendance entre les variables stochastiques peut être lue intuitivement.

directed-graph.png

La figure ci-dessus montre la distribution de probabilitép(x_{1}, x_{2}, x_{3}) = p(x_{1})p(x_{2}|x_{1})p(x_{3}|x_{2})À__Graphique dirigé (filet bageien)で表したものである.頂点À__nœud,辺À__Lien__Est appelé.

undirected-graph.png

La figure ci-dessus montre la même distribution de probabilité que __ graphe non orienté (champ de probabilité de Markov) . Dans le modèle graphique non dirigé, l'ensemble des nœuds liés est appelé clique. Dans la figure ci-dessus, $ \ {x {1}, x {2} \}, \ {x {2}, x {3} \} $ sont les ruisseaux. Le graphe non orienté exprime la distribution de probabilité sous la forme du produit de la fonction _potentielle __ $ \ psi {C} (\ mathbf {x} _ {C}) $ sur le ruisseau C.

p(\mathbf{X}) = \frac{1}{Z}\prod_{C}{\psi_{C}(\mathbf{x}_{C})}

Ici, $ Z $ est une constante de standardisation. Puisque la fonction potentielle est limitée au positif au sens étroit, il convient de l'exprimer comme une fonction exponentielle.

\psi_{C}(\mathbf{x_{\rm{C}}}) = \exp\\{-E(\mathbf{x_{\rm{C}}})\\}

Ici, $ E (\ mathbf {x_ {\ rm {C}}}) $ est appelé __ fonction d'énergie __ (fonction d'énergie), et cette représentation de fonction exponentielle est __ distribution de Boltzman. Est appelé.

L'une des caractéristiques importantes et intéressantes du modèle graphique est que __l'indépendance conditionnelle __ de la distribution simultanée entre plusieurs variables stochastiques peut être lue directement à partir du graphique sans procédures analytiques. Le cadre général pour y parvenir est appelé __ séparation dirigée __ (séparation en d). On connaît également des algorithmes qui calculent la somme des distributions simultanées à grande vitesse et déduisent des probabilités périphériques, et des algorithmes qui déduisent des combinaisons de valeurs de variables stochastiques qui maximisent les probabilités simultanées à grande vitesse (somme des produits par passage de message, max- algorithme de somme). Voir PRML pour ces fonctionnalités importantes.

Exemple: suppression du bruit d'image

Nous expliquons comment utiliser le graphe non orienté à l'aide d'un exemple de suppression de bruit dans une image binaire. On suppose que l'image observée incluant le bruit est décrite comme un tableau bidimensionnel de valeurs de pixels binaires $ y_ {i} \ in \ {-1, +1 \} $. Ici, $ i = 1, \ points, D $ sont les numéros de série des pixels. Cette image observée a une faible probabilité (10% ici) à partir d'une image binaire inconnue (sans bruit) décrite par $ x_ {i} \ in \ {-1, +1 \} $. On suppose qu'il a été obtenu en inversant aléatoirement le code du pixel.

Puisque le niveau de bruit est suffisamment bas, on s'attend à ce qu'une forte corrélation demeure entre $ x_ {i} $ et $ y_ {i} $. Nous savons également qu'il existe une forte corrélation entre les pixels adjacents $ x_ {i} $ et $ x_ {j} $ dans l'image. Ces connaissances préalables sont représentées par le modèle de champ stochastique de Markov correspondant au graphe non orienté présenté dans la figure ci-dessous.

PGM.png

Ce graphique présente deux types de ruisseaux composés de deux variables. Les ruisseaux de la forme $ \ {x_ {i}, y_ {i} \} $ sont associés à des fonctions d'énergie qui représentent la corrélation entre ces variables. Ici, nous utilisons une fonction très simple de la forme $ - \ eta x_ {i} y_ {i} $ pour ces creeks. Cependant, $ \ eta $ est une constante positive. Cette fonction d'énergie a l'effet désiré d'avoir une énergie faible (probabilité élevée) lorsque $ x_ {i} $ et $ y_ {i} $ ont le même signe et une énergie élevée (faible probabilité) lorsqu'ils ont des signes différents. Avoir.

Un autre type de ruisseau consiste en une paire de variables adjacentes $ \ {x_ {i}, x_ {j} \} $. Cependant, $ i $ et $ j $ sont les nombres de pixels adjacents. Concernant ces ruisseaux, on souhaite également que l'énergie soit plus faible lorsque les deux valeurs de pixels ont le même signe que lorsqu'elles ont le même signe. Par conséquent, nous utilisons la fonction d'énergie donnée par $ - \ beta x_ {i} x_ {j} $. Cependant, $ \ beta $ est également une constante positive.

Puisqu'il ne doit s'agir que d'une fonction non négative sur le ruisseau maximal pour être une fonction potentielle, elle peut être multipliée par toute fonction non négative du sous-ensemble du ruisseau. Ici, le terme $ hx_ {i} $ peut être ajouté en fonction de la $ i $ ème valeur de pixel $ x_ {i} $ de l'image silencieuse. Ce terme a pour effet de biaiser les valeurs des pixels de sorte qu'elles tendent à avoir un signe particulier.

Pour résumer ce qui précède, la fonction énergétique totale de ce modèle est

E(\mathbf{x}, \mathbf{y}) = h \sum_{i} x_{i} - \beta \sum_{\\{i, j\\}} x_{i}x_{j} - \eta \sum_{i} x_{i}y_{i}

Peut être écrit. De plus, en utilisant cela, la distribution simultanée de $ \ mathbf {x} $ et $ \ mathbf {y} $

p(\mathbf{x}, \mathbf{y}) = \frac{1}{Z} \exp\\{-E(\mathbf{x}, \mathbf{y})\\}

Donné par. La correction de $ \ mathbf {y} $ à l'image observée détermine la distribution conditionnelle $ p (\ mathbf {x} | \ mathbf {y}) $. Ce problème est un exemple du modèle Ising, qui a été largement étudié en physique statistique. Pour restaurer l'image hautement probable $ \ mathbf {x} $ à partir de l'image observée $ \ mathbf {y} $, utilisez une méthode d'itération simple appelée __ modes conditionnels itérés (ICM). Tu peux l'utiliser. Dans cette méthode, la méthode ascendante du gradient est simplement appliquée pour chaque axe. Tout d'abord, initialisez la variable $ \ {x {i} \} $. Par exemple, $ x {i} = y_ {i} $ pour tout $ i $. Sélectionnez ensuite les nœuds $ x_ {j} $ un par un et gardez les valeurs des autres variables de nœuds fixées dans deux états possibles de $ x_ {j} $ ($ x_ {j} = + 1 $ et $ Évaluer l'énergie totale à x_ {j} = -1 $). Enfin, définissez la valeur de $ x_ {j} $ sur celle avec la plus petite énergie. Ces mises à jour sont répétées à différents endroits et se terminent lorsque certaines conditions d'arrêt appropriées sont remplies. Les nœuds peuvent être mis à jour régulièrement par balayage raster, ou les nœuds peuvent être sélectionnés au hasard.

La figure ci-dessous montre les résultats lorsque les paramètres sont $ h = 0, \ beta = 1, \ eta = 1 $.

MRF-ICM.png

Considération

Recommended Posts

PRML: Chapitre 8 Modèle graphique Suppression du bruit d'image
PRML Chapitre 14 Implémentation Python de modèle mixte conditionnel
Implémentation PRML Chapitre 3 Modèle de fonction de base linéaire
Suppression du flou d'image