Tuto — EM dans le modèle de mélange
Auteur
- Stéphane Derrode, Centrale Lyon, Dpt Mathématiques & Informatique
Cadre — MSO 3.7, Apprentissage bayésien, tuto en autonomie entre les séances #3 (cours mélange + EM) et #5 (TP HMC noté).
Objectifs
Mettre EM en pratique sur le modèle de mélange gaussien : estimer \((\pi_k, \mu_k, \sigma_k^2)\) depuis une image bruitée sans connaître les labels, puis classer par décision bayésienne. Le tuto fait directement écho à la section Sensibilité aux paramètres du TP de la séance #2, et prépare le TP HMC (séance #5).
Format
Autonomie facile : un notebook unique Tuto_MM.ipynb, tout le code est fourni — il suffit d’exécuter les cellules dans l’ordre et de lire les questions insérées en cours de route.
Pré-requis : numpy, scipy, matplotlib, Pillow. Ouvrez dans VS Code (extensions Python + Jupyter) ou Jupyter.
Récupération¶
Téléchargez et décompressez Tuto_MM.zip :
Tuto_MM/
├── Tuto_MM.ipynb # le tuto (à exécuter)
├── sources/ # cible_64.png, cible_128.png, lapin.png
└── results/ # vide — vos sorties iront ici
Ouvrez Tuto_MM.ipynb dans VS Code et lancez Run All.
Vue d’ensemble¶
| § | Contenu |
|---|---|
| 0 | Imports + paramètres (vrais paramètres du bruit, gardés pour vérifier EM a posteriori) |
| 1 | Chargement image, bruitage, helpers (réutilisés depuis le TP de la séance #2) |
| 2 | Initialisation des paramètres pour EM (heuristique min/max/var) |
| 3 | E-step (responsabilités \(\gamma_n(k)\)) et M-step (mise à jour) — entièrement vectorisés |
| 4 | Boucle EM (70 itérations), historique des paramètres et de la log-vraisemblance |
| 5 | Courbes de convergence : log-vraisemblance, \(\mu_k\), \(\sigma_k^2\), taux d’erreur |
| 6 | Classification finale (EM vs oracle), histogramme + mélange estimé |
| 7 | Démo \(K = 3\) — image synthétique anneaux concentriques, EM tourne sans modification |
Trois questions de réflexion sont insérées dans le notebook : pas de réponse à rendre, juste un guide d’observation.
Évaluation¶
Pas de CR. Ce tuto prépare directement le TP HMC (séance #5, noté).