Organisation du cours
Le cours se compose de trois chapitres, Probabilités, Estimation, Détection, d'un quatrième chapitre d'ouverture consacré à l'apprentissage non supervisé, réduction de dimension et partitionnement, et d'une collection de mini-projets qui les mettent en œuvre. Le fil conducteur est unique : la méthode choisie dépend des hypothèses que nous acceptons de faire, et quand le modèle manque, les données en tiennent lieu.
Le fil du cours
Toute méthode de ce cours, et tous les mini-projets, suivent la même chaîne en quatre temps :
- Le modèle. Les hypothèses que nous acceptons de faire : une loi
, un signal , deux lois concurrentes / , ou, quand le modèle manque, une base d'exemples qui en tient lieu. C'est le choix décisif, la méthode découle des hypothèses, jamais l'inverse. - Le critère de performance. La quantité qui dit ce que « bien » veut dire : biais, variance et MSE pour une estimation,
, et courbe ROC pour une décision. Le critère joue deux rôles : il juge une méthode existante, et, minimisé, il en construit une, c'est alors la loss. - L'optimisation. La recherche du minimum : une forme fermée quand elle existe, les équations normales du modèle linéaire, et des algorithmes numériques sinon, grille, descente de gradient, stratégie en deux temps, minimisations alternées.
- Les tests. Rien ne se croit sans vérification : chaque résultat théorique est confronté à une simulation de Monte-Carlo, chaque seuil se calibre ou se vérifie sous
, et chaque fonction des notebooks s'accompagne de tests automatiques. Les tests d'hypothèses eux-mêmes ne sont que cette vérification, outillée et quantifiée.
Ce squelette se répète à toutes les échelles : il ordonne les chapitres, le premier construit les modèles, les deux suivants déroulent critères puis optimisations, les sections d'un chapitre, Hypothèses, Expression, Propriétés, Exemple, et chaque mini-projet. Un étudiant perdu peut toujours se demander où il se trouve dans la chaîne : modèle, critère, optimisation ou test.
Acquis d'apprentissage visés (AAV)
Les acquis d'apprentissage visés décrivent ce que vous saurez faire à l'issue du module, et non ce que le cours contient. Ils sont cinq, un par grande famille de méthodes, et chacun renvoie aux chapitres qui le construisent. Leur numérotation suit la fiche du module ; les deux acquis relatifs à l'apprentissage non supervisé y sont regroupés en un seul. Chaque évaluation, chaque mini-projet, cible explicitement un ou plusieurs de ces acquis.
À l'issue du module, l'étudiant sera capable de :
- AAV1, Modéliser : choisir, en motivant son choix, une loi paramétrée
pour modéliser un jeu de données, parmi les lois discrètes (Bernoulli, binomiale, géométrique, Poisson, uniforme) et continues (uniforme, exponentielle, normale, normale multidimensionnelle) usuelles ; en connaître les propriétés, loi de masse ou densité, fonction de répartition, espérance et variance ; en simuler des tirages et manipuler ces lois avec scipy.stats; transformer une variable aléatoire et confronter le modèle retenu aux données (chapitre 1). - AAV2, Décider : formaliser un test d'hypothèses dans le cadre général de la détection, hypothèses
/ , statistique de test , seuil, probabilités de fausse alarme et de détection, courbe ROC ; construire les détecteurs classiques et en calculer les statistiques, rapport de vraisemblance (LRT, lemme de Neyman-Pearson), GLRT à paramètres inconnus, filtre adapté, détecteur bayésien, détecteur appris, et les relier aux tests usuels de l'analyse de données, p-value, test t, ANOVA ; éprouver l'adéquation d'un modèle à des données par les tests du et de Kolmogorov-Smirnov, en explicitant la portée et la validité des conclusions (chapitre 3, tests d'adéquation, projet Tests classiques). - AAV3, Estimer : estimer les paramètres d'un modèle en minimisant une loss, maximum de vraisemblance, moindres carrés, estimateurs bayésiens (MAP, MMSE), estimateur appris, et quantifier leur performance, biais, variance, MSE, borne de Cramér-Rao, intervalle de confiance à variance connue puis estimée (chapitre 2) ; maîtriser en particulier le modèle linéaire, régression linéaire multiple, moindres carrés et équations normales, fonctions de base, diagnostic du surapprentissage et régularisation (modèle linéaire).
- AAV4, Structurer : choisir et mettre en œuvre sur un jeu de données une méthode non supervisée, réduction de dimension (PCA) ou partitionnement (K-means), en la comprenant comme un problème de moindres carrés à base inconnue résolu par minimisations alternées ; interpréter la représentation réduite ou les groupes obtenus, choisir le rang ou le nombre de groupes, et utiliser les groupes construits à des fins prédictives, en affectant une nouvelle donnée au groupe le plus proche (chapitre 4, ouverture, projet PCA).
- AAV6, Évaluer : juger la qualité d'un modèle construit avec les méthodes du cours : adéquation d'une loi à des données et comparaison de lois candidates, performance d'un estimateur et signification des coefficients d'une régression, performance d'un détecteur ou d'un classifieur, probabilités de fausse alarme et de détection, courbe ROC et AUC, matrice de confusion, précision et rappel ; et vérifier tout résultat par simulation de Monte-Carlo (chapitres 2 et 3).
S'y ajoute une compétence transversale, travaillée dans tous les mini-projets : implémenter chaque méthode à la main en NumPy, retrouver le résultat avec la bibliothèque de référence, et accompagner chaque fonction de tests automatiques.
Notations
Les conventions suivent Kay, Vol. I & II, et sont utilisées partout, sans exception. La table complète, ensembles et événements, variables aléatoires, lois, moments, estimation, détection, vit sur une page dédiée : Notations.
Pile technologique et imports
Python ≥ 3.11, NumPy, Matplotlib et seaborn pour les figures, scipy.stats pour les lois et les tests, et scikit-learn ponctuellement, pour les réseaux de neurones (MLPRegressor, MLPClassifier) et les métriques ROC des chapitres 2 et 3.
Les imports sont standardisés une fois pour toutes ; tous les blocs de code du cours les supposent faits :
import numpy as np
import scipy.stats as sta
import matplotlib.pyplot as plt
import seaborn as sns
# sklearn : import par sous-module explicite, ex.
# from sklearn.neural_network import MLPRegressorLa règle from scratch → bibliothèque
Chaque notion codée dans ce cours l'est deux fois, et les deux versions doivent coïncider numériquement :
- from scratch : une implémentation NumPy courte, qui montre exactement ce que fait la méthode ;
- bibliothèque : l'équivalent en une à trois lignes avec l'outil de référence ;
- vérification : un
np.allclose(...), les écarts éventuels étant commentés.
Ces miroirs sont rendus en onglets. Exemple avec les équations normales du modèle linéaire :
theta = np.linalg.solve(H.T @ H, H.T @ x)theta_lstsq, *_ = np.linalg.lstsq(H, x, rcond=None)
# >>> np.allclose(theta, theta_lstsq) -> TrueLe vocabulaire des bibliothèques s'installe au fil de l'eau : fit = estimer predict = appliquer le modèle, score = mesurer la performance.
Mini-projets
Les mini-projets appliquent chaque chapitre à un problème complet, de la roulette au décodeur DTMF. Tous suivent la même structure imposée, décrite dans leurs modalités communes : le modèle (une classe au gabarit de scipy.stats), le critère, l'algorithme à la main, le bon outil, la validation Monte-Carlo, et des tests automatiques systématiques. Le livrable est toujours un notebook reproductible, exécutable de bout en bout, graine fixée.
