TP — Décision bayésienne
Auteur
- Stéphane Derrode, Centrale Lyon, Dpt Mathématiques & Informatique
Cadre — MSO 3.7, Apprentissage bayésien, séance #2 (4h en présentiel, sans CR).
Objectifs
Programmer la décision bayésienne sur des données indépendantes pour segmenter une image bruitée (cas K=2 puis K=3), calculer les taux d’erreur, et explorer le comportement du classifieur — étude paramétrique du bruit, sensibilité au mauvais paramétrage (qui motive le cours #3 sur EM), comparaison à un seuillage naïf. Ce TP prépare directement le TP HMC (séance #5, noté) et le TP Kalman (séance #7, noté).
Format et pré-requis
Notebook unique TP_BayesDec.ipynb à exécuter dans VS Code (extensions Python et Jupyter) ou Jupyter. Dépendances : numpy, scipy, matplotlib, Pillow.
Récupération du squelette¶
Téléchargez et décompressez BayDec_Skeleton.zip. Vous obtenez :
BayDec_Skeleton/
├── TP_BayesDec.ipynb # notebook à compléter
├── sources/ # cible_64.png, cible_128.png, lapin.png
└── results/ # vide — vos sorties iront ici
Ouvrez TP_BayesDec.ipynb dans VS Code et exécutez les cellules dans l’ordre.
Vue d’ensemble du notebook¶
Six cellules de code sont à compléter (# TODO) ; les autres sont fournies — il s’agit de les lire, exécuter, et observer ce qui se passe.
| § | Contenu | À faire |
|---|---|---|
| 0 | Imports + paramètres globaux (K, meanTab, varTab…) |
exécuter |
| 1 | Chargement de l’image originale, helpers d’affichage, computeAprioriProba |
exécuter |
| 2 | Bruitage(imageLabels, meanTab, varTab) |
TODO #1 |
| 3 | Histogramme image bruitée + densités gaussiennes pondérées + seuil bayésien | exécuter |
| 4 | BayesianClassif(imageNoisy, meanTab, varTab, piTab) — renvoie une carte de labels |
TODO #2 |
| 5 | Fonctions discriminantes (les \(K\) courbes + classe argmax) | exécuter |
| 6 | errorRateComputing(imageLabels, imageClassif, K) |
TODO #3 |
| 7 | Étude paramétrique du bruit (boucle sur \(\sigma\), courbe eRate(σ)) |
TODO #4 |
| 8 | Sensibilité aux paramètres mal estimés — pont vers le cours #3 (EM) | TODO #5 |
| 9 | Comparaison à un seuillage naïf (K=2) | TODO #6 |
| 10 | Démo K=3 — anneaux concentriques, pipeline complet, générique en K | exécuter |
Évaluation¶
Pas de compte-rendu — c’est un TP d’entraînement. Les enseignants passent vous guider pendant les 4h.
À la fin de la séance, vous devez avoir :
- les 3 fonctions principales (
Bruitage,BayesianClassif,errorRateComputing) fonctionnelles et le pipeline qui tourne surcible_128.png; - les 3 études (paramétrique, sensibilité, seuillage naïf) réalisées et comprises ;
- la démo K=3 exécutée pour vérifier que votre code reste générique.