1/32 Introduction à l’apprentissage automatique Séance 2 Apprentissage non-supervisé: partitionnement Dilemme biais-fluctuation et sélection de modèle Frédéric Sur Université de Lorraine / LORIA https://members.loria.fr/FSur/ “machine learning mines” app.wombo.art Apprentissage non-supervisé On dispose de N observations non-étiquetées : (xxi )16i6N En général, les observations sont vectorielles : x ∈ Rd Aujourd’hui, on s’intéresse aux problèmes d’apprentissage non-supervisé : partitionnement → identifier des groupes d’observations homogènes (estimation de densités de probabilité) → modèle probabiliste génératif Pour commencer, quelques exemples. . . 2/32 Exemple : arbre phylogénétique 3/32 Partitionnement Cf TP Exercice 2 Exemple : Google news 4/32 Partitionnement Cf TP Exercice 3 Exemple : génération automatique de texte (1) Modèle probabiliste Claude Shannon (1916-2001) MIT - Bell labs Père de la théorie statistique de l’information Article fondateur : A mathematical theory of communication, 1948 5/32 Exemple : génération automatique de texte (2) 6/32 Exemple : génération automatique de texte (3) 7/32 Approche deep-learning ∼ 2015 Breaking news : 9 novembre 2021 https://cedille.ai/ Exemple : Meow generator Modèle probabiliste Alexia Jolicoeur-Martineau (Univ. McGill) https://ajolicoeur.wordpress.com/cats/ Google : generative models AI 8/32 Une difficulté intrinsèque 9/32 Malédiction de la dimension : Comment comparer des observations x dans un espace de grande dimension ? Ex. : x = séquence de nucléotides, représentation d’un article de journal. . . Comment apprendre une distribution de probabilité p(xx ) sur l’espace des observations ? Ex. : génération de lettres selon p(x|x−1 , x−2 , . . . , x−d ) = p(x, x−1 , x−2 , . . . , x−d )/p(x−1 , x−2 , . . . , x−d ), ou génération d’images selon p(x)= loi des images de chats → dans des cours spécialisés Plan 10/32 1 Partitionnement / classification non supervisée Classifications hiérarchiques (rappels) K -moyennes 2 Dilemme biais-fluctuation et sélection de modèle 3 Point méthodologique 4 Conclusion Partitionnement / classification non supervisée Observations : généralement, points dans Rd Distance / mesure de dissimilarité entre observations d(x, y ) : – L1 , L2 , L∞ . . . – distance d’édition entre mots Mesure de dissimilarité entre classes (cluster) D(A, B) : D(A, B) = min{d(x, y ), x ∈ A, y ∈ B} (single linkage) D(A, B) = max{d(x, y ), x ∈ A, y ∈ B} (complete linkage) nA nB ||mA − mB ||2 (Ward) D(A, B) = n + n A B P P P = 11/32 x∈A∪B ||x − mA∪B ||2 − x∈A ||x − mA ||2 − x∈B ||x − mB ||2 Classifications hiérarchiques (rappels TCS analyse données) Algorithme : 1 initialisation : chaque observation dans une classe différente ; 2 jusqu’à ce qu’il ne reste qu’une classe, fusionner les deux plus proches au sens de D. Sortie : le dendrogramme = arbre binaire de classification, où hauteur des classes proportionnelle à dissimilarité des classes filles. Classification : on fixe une hauteur-seuil dans le dendrogramme. Voir exemples polycopié 12/32 Discussion classification hiérarchique 13/32 Quelle métrique de dissimilarité d entre observations ? Quelle métrique de dissimilarité D entre groupes ? Quels choix de métriques selon la distribution des observations ? Quel nombre de groupes ? Occupation mémoire O(N 2 ) (il faut généralement stocker les distances entre toutes les paires d’observations) Complexité algorithmique O(N 2 log(N)) ( lent ) (il va falloir trier les distances) → ordres de grandeurs (très grossier) : N = 1, 000, 000 nécessite 1To en mémoire et 20 min de traitement. . . Cf TP Exercice 1 K -moyennes (K -means) 14/32 On cherche une partition (C1 , C2 , . . . , CK ) de (xx i )1≤i≤N minimisant E (C1 , C2 , . . . , CK ) = K X X ||xx − m j ||2 j=1 x ∈Cj où m j est la moyenne (barycentre) des x ∈ Cj . (E : inertie dans sklearn) Illustration de l’algorithme de Lloyd 15/32 https://people.eecs.berkeley.edu/~jordan/courses/294-fall09/lectures/clustering/slides.pdf Illustration de l’algorithme de Lloyd 15/32 https://people.eecs.berkeley.edu/~jordan/courses/294-fall09/lectures/clustering/slides.pdf Illustration de l’algorithme de Lloyd 15/32 https://people.eecs.berkeley.edu/~jordan/courses/294-fall09/lectures/clustering/slides.pdf Illustration de l’algorithme de Lloyd 15/32 https://people.eecs.berkeley.edu/~jordan/courses/294-fall09/lectures/clustering/slides.pdf Illustration de l’algorithme de Lloyd 15/32 https://people.eecs.berkeley.edu/~jordan/courses/294-fall09/lectures/clustering/slides.pdf Illustration de l’algorithme de Lloyd 15/32 https://people.eecs.berkeley.edu/~jordan/courses/294-fall09/lectures/clustering/slides.pdf Illustration de l’algorithme de Lloyd 15/32 https://people.eecs.berkeley.edu/~jordan/courses/294-fall09/lectures/clustering/slides.pdf Propriété de l’inertie 16/32 Recherche de K groupes : (C1 , C2 , . . . , CK ) minimise EK = K X X ||xx − m j ||2 j=1 x ∈Cj Si C10 t C100 = C1 : X ||xx − m j ||2 = X ||xx − m j ||2 + x ∈C10 x ∈C1 > X X ||xx − m j ||2 x ∈C100 ||xx − m 0j ||2 + x ∈C10 X ||xx − m 00j ||2 x ∈C100 où m 0j , m 00j sont les barycentres de C10 , C100 Conclusion : (EK ) décroı̂t avec K . Remarque : en pratique, on n’est pas certain d’avoir trouvé le minimum global de l’inertie. . . Heuristique pour le choix de K Exemple : iris de Fisher 150 observations, 4 caractéristiques (longueur et largeur des pétales et sépales) trois variétés d’iris https://scikit-learn.org/stable/auto_examples/datasets/plot_ iris_dataset.html Méthode du coude (elbow method) : on choisit K où la décroissance de Ek devient moins franche Remarque : cela ne dit pas que la partition obtenue est satisfaisante 17/32 Discussion K -moyennes → on peut démontrer que cet algorithme permet la convergence en un nombre fini d’étapes vers un minimum local de E Choix de K ? → méthode du coude Convergence vers un minimum local de E → plusieurs exécutions avec initialisations aléatoires différentes Est-ce une approche adaptée à toute distribution des observations ? Rapide en pratique Cf TP exercice 1 18/32 Plan 19/32 1 Partitionnement / classification non supervisée Classifications hiérarchiques (rappels) K -moyennes 2 Dilemme biais-fluctuation et sélection de modèle 3 Point méthodologique 4 Conclusion Dilemme biais-fluctuation Cadre : apprentissage supervisé. On cherche à faire des prédictions dataset 1 p.p.v. 5 p.p.v. Question : a-t-on intérêt à avoir un modèle compliqué (précis sur les observations d’apprentissage), qui va bien représenter les observations d’apprentissage, ou un modèle simple (grossier) qui va moins bien représenter ces observations mais moins en dépendre ? 20/32 Risque empirique et risque de prédiction 21/32 Données : 0 base d’entraı̂nement : (xi , yi )1≤i≤N , xi ∈ Rd , yi ∈ N ou Rd réalisation d’un N-échantillon i.i.d. (X, Y ) (loi inconnue) Objectif : faire une prédiction y à partir d’une observation x. Comment ? on cherche un prédicteur dans une famille H. Exemple : H = {h : x 7→ a · x + b, a ∈ Rd , b ∈ R} h(x) : prédiction à partir de l’observation x On voudrait : choisir f ∈ H qui minimise l’espérance Rp du coût d’erreur de prédiction (erreur face à une observation inconnue) → impossible car on ne connaı̂t pas la loi de X Ce qu’on fait : on choisit fe ∈ H minimisant le risque empirique Re (coût d’erreur moyen sur la base d’apprentissage) Question : l’espérance du coût d’erreur de fe est-elle grande ? Dilemme biais-fluctuation Rp (f ) ≤ Rp (fe) ≤ Rp (f ) + 2 max |Rp (h) − Re (h)| h∈H | {z } | {z } {z } | biais biais fluctuation Conséquence : choisir un modèle d’apprentissage H, c’est faire un compromis entre biais et fluctuation 22/32 Illustration 23/32 (source : scikit-learn) Régression par polynomes de degré d : comment choisir d ? P → minimisation de Re sur Hd = {x 7→ di=0 ai x i } remarque : H1 ⊂ H4 ⊂ H15 H1 sous-apprentissage (under-fitting) biais élevé fluctuation faible H4 H15 sur-apprentissage (over-fitting) biais faible fluctuation élevée Comment sélectionner un modèle ? 24/32 Les paramètres d’un modèle sont (souvent) estimés par minimisation du risque empirique. Comment choisir un modèle ? Exemples : 1 Dans chaque H , on détermine h minimisant le risque d empirique, mais comment choisir d ? 2 Classification K -ppv (ici, pas de risque) : comment choisir K ? → on calcule l’erreur de prédiction moyenne sur une base de test représentative des observations, indépendante de la base d’apprentissage On observe en pratique : (ex. : choix de Hd ) Sélection de modèle 25/32 Rappel : base de test et base d’apprentissage sont supposées représentatives des données et indépendantes → l’erreur sur la base de test est une estimation du risque moyen de prédiction (contrairement à l’erreur d’apprentissage, cf apprentissage par cœur ) → on choisit le modèle H minimisant l’erreur sur la base de test On remarque : erreur d’apprentissage << erreur de test : sur-apprentissage erreur d’apprentissage ' erreur de test, et erreurs grandes : sous-apprentissage erreur d’apprentissage ' erreur de test, et erreurs petites : OK En pratique avec un jeu de données (xi , yi )1≤i≤N Approche 1 : on met une partie du jeu de données de côté pour servir de base de test, c’est la validation holdout Limite : fluctuation d’échantillonnage vs. taille base d’apprentissage Approche 2 : pour exploiter au mieux le jeu de données, on peut faire de la validation croisée à K plis (K -fold cross validation) on répète K fois : apprentissage sur K − 1 plis, test sur K -ème pli K =5: A A A A T A A A T A A A T A A A T A A A T A A A A → erreur sur T : e1 → erreur sur T : e2 → erreur sur T : e3 → erreur sur T : e4 → erreur sur T : e5 Erreur de validation croisée : moyenne des ei Cas particulier : K = N, leave-one-out cross validation (temps de calcul !) Généralement, K = 5 ou K = 10. 26/32 Exemple illustratif. . . 27/32 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 Données régression linéaire ou quadratique ? → validation croisée à 3 plis 0.6 0.8 1 Exemple illustratif. . . 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 régression linéaire apprentissage test 0.1 0 0 0.2 rég. linéaire, 1er pli RMSE sur base test : 0.1194 27/32 0.4 0.6 0.8 1 Exemple illustratif. . . 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 régression linéaire apprentissage test 0.1 0 0 0.2 rég. linéaire, 2ème pli RMSE sur base test : 0.1193 27/32 0.4 0.6 0.8 1 Exemple illustratif. . . 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 régression linéaire apprentissage test 0.1 0 0 0.2 rég. linéaire, 3ème pli RMSE sur base test : 0.0536 27/32 0.4 0.6 0.8 1 Exemple illustratif. . . 27/32 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 régression quadratique apprentissage test 0.1 0 0 0.2 0.4 0.6 0.8 1 rég. quadratique, 1er pli (pas le même que pour rég. linéaire) RMSE sur base test : 0.0901 Exemple illustratif. . . 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 régression quadratique apprentissage test 0.1 0 0 0.2 rég. quadratique, 2ème pli RMSE sur base test : 0.1749 27/32 0.4 0.6 0.8 1 Exemple illustratif. . . 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 régression quadratique apprentissage test 0.1 0 0 0.2 rég. quadratique, 3ème pli RMSE sur base test : 0.1431 27/32 0.4 0.6 0.8 1 Exemple illustratif. . . 27/32 Scores de validation croisée : Régression linéaire : 0.1194 0.1193 0.0536 moyenne : 0.0974 Régression quadratique : 0.0901 0.1749 0.1431 moyenne : 0.1360 Conclusion : on sélectionne le modèle de la régression linéaire Remarque : on réestime les paramètres de la régression linéaire sur toute la base d’apprentissage. Plan 28/32 1 Partitionnement / classification non supervisée Classifications hiérarchiques (rappels) K -moyennes 2 Dilemme biais-fluctuation et sélection de modèle 3 Point méthodologique 4 Conclusion Un mot sur les travaux dirigés. . . Les contraintes : profils divers, 6 × 2 heures seulement → ce ne sont pas des TD de maths , ni de programmation de manière générale, il faut (bien) utiliser les bibliothèques faites par des gens bien plus forts que nous → le travail est en partie des jeux de données prémâché , notamment le traitement Objectifs dans ce cours : comprendre le fonctionnement de différentes méthodes d’apprentissage savoir à quoi correspondent leurs nombreux paramètres (donc avoir une idée assez précise des maths derrière) mettre en place une méthodologie et étudier différentes applications 29/32 réelles Pratique des data sciences → toute application pratique de méthodes de l’apprentissage nécessite d’intéragir avec un spécialiste du domaine, voire d’en être un. . . (analyse d’images, traitement de la langue, matériaux, chaı̂ne logistique, etc.) → la manipulation des données (recueil, mettre en forme, charger dans la bonne structure de données. . .) est un travail ingrat chronophage → il faut tester différentes méthodes, souvent les combiner → à pratiquer dans des projets ou défis, souvent interdisciplinaires (Kaggle, OpenML.org, challenge Data @ ENS. . .) 30/32 Plan 31/32 1 Partitionnement / classification non supervisée Classifications hiérarchiques (rappels) K -moyennes 2 Dilemme biais-fluctuation et sélection de modèle 3 Point méthodologique 4 Conclusion Conclusion 32/32 Partitionnement / classification non-supervisée classifications hiérarchiques k-means et autres méthodes : DBSCAN, mean-shift. . . The 5 Clustering Algorithms Data Scientists Need to Know : https://towardsdatascience.com/ the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68 Sélection de modèle compromis entre sous- et sur-apprentissage sélection de modèle par validation croisée