Aller au contenu

TP — Décision bayésienne

Auteur

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 sur cible_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.