Machine Learning - K. Slimani - ESIEA - PDF

Summary

Ce document est un cours de Machine Learning de K. Slimani de l'ESIEA, couvrant l'introduction à l'Intelligence Artificielle et l'Apprentissage Automatique avec des concepts clés comme les algorithmes. Le cours de ML est divisé en plusieurs parties et aborde des sujets comme l'évaluation et les types d'apprentissage.

Full Transcript

Machine Learning P R O F. K H A D I J A S L I M A N I , P R O F. L I O N E L P R E V O S T L D R L A B O R ATO R Y, E S I E A [email protected] 2024/2025...

Machine Learning P R O F. K H A D I J A S L I M A N I , P R O F. L I O N E L P R E V O S T L D R L A B O R ATO R Y, E S I E A [email protected] 2024/2025 K. SLIMANI - NEURAL NETWORKS 1 Course planning Face to face : 27h Exam : 1h30 + MCQ (without doc) Course : 12h TD on machine (python/sklearn) : 15h K. SLIMANI - NEURAL NETWORKS 2 Course planning A Case study approach: ◦ Course ◦ Practical work (case study) Week 1 Week 2 Week 3 Week 4 Assignment K. SLIMANI - NEURAL NETWORKS 3 Intelligence artificielle Évaluation des classificateurs Plan Décider sans apprendre K. SLIMANI - NEURAL NETWORKS 4 Introduction à l'IA K. SLIMANI - NEURAL NETWORKS 5 Que signifie être intelligent ? Savoir comment apprendre ◦ développer un système de connaissances à partir de données. ◦ être capable d'intégrer de nouvelles données (connaissances). ◦ encadré (par un enseignant) ou non encadré (par association) Savoir raisonner (déduire, anticiper) ◦ à partir du système de connaissances et des données expérientielles, être capable de générer ◦ Une décision ◦ Nouvelle connaissance K. SLIMANI - NEURAL NETWORKS 6 Que signifie être intelligent ? 1. Posséder une histoire (mémoire à court/long terme) 2. Posséder des sentiments (= ressentir (percevoir)/exprimer une émotion ?) 3. Posséder la conscience K. SLIMANI - NEURAL NETWORKS 7 Qu’est-ce que l’Intelligence Artificielle ? ◦ L'intelligence artificielle (IA) et l'apprentissage automatique (ML) font partie de l'informatique qui sont corrélées les unes aux autres. ◦ Ces deux technologies sont les technologies les plus tendances utilisées pour créer des systèmes intelligents. K. SLIMANI - NEURAL NETWORKS 8 Qu’est-ce que l’Intelligence Artificielle ? Natural Language Artificial Intelligence DECISION DATA Classification Vision Treatment Detection Neural Expert Discovery network Systems Action Robotics Voice K. SLIMANI - NEURAL NETWORKS 9 Qu’est-ce que l’Intelligence Artificielle ? Les chercheurs intéressés par l’intelligence artificielle voulaient voir si les ordinateurs pouvaient apprendre à partir des données. Le ML n’est pas une science nouvelle : de nombreux algorithmes d’apprentissage automatique existent depuis longtemps. K. SLIMANI - NEURAL NETWORKS 10 Qu’est-ce que l’Intelligence Artificielle ? MAIS, c’est une science qui prend un nouvel élan : la capacité d’appliquer automatiquement des calculs mathématiques complexes au Big Data – encore et encore, de plus en plus vite – est un développement récent. K. SLIMANI - NEURAL NETWORKS 11 Qu’est-ce que l’Intelligence Artificielle ? Nous pouvons le définir de manière résumée comme : “L'apprentissage automatique permet à une machine d'apprendre automatiquement à partir des données, d'améliorer les performances à partir des expériences et de prédire des choses sans être explicitement programmée”. K. SLIMANI - NEURAL NETWORKS 12 Qu’est-ce que l’Intelligence Artificielle ? ▪Le machine learning utilise divers algorithmes pour créer des modèles mathématiques et effectuer des prédictions à l'aide de données ou d'informations historiques. ▪Actuellement, il est utilisé pour diverses tâches telles que la reconnaissance d'images, la reconnaissance vocale, le filtrage des e-mails, le marquage automatique de Facebook, le système de recommandation et bien d'autres. K. SLIMANI - NEURAL NETWORKS 13 Qu’est-ce que l’Intelligence Artificielle ? Une définition plus moderne de Tom Mitchell : « On dit qu'un programme informatique apprend de l'expérience E en ce qui concerne une certaine classe de tâches T et une mesure de performance P, si sa performance aux tâches de T, mesurée par P, s'améliore avec l'expérience E. " Exemple : jouer aux dames. ◦ E = l'expérience de jouer à de nombreux jeux de dames ◦ T = la tâche de jouer aux dames. ◦ P = la probabilité que le programme gagne le prochain jeu K. SLIMANI - NEURAL NETWORKS 14 Apprentissage automatique dans les applications intelligentes K. SLIMANI - NEURAL NETWORKS 15 Ancienne vision de l’apprentissage automatique K. SLIMANI - NEURAL NETWORKS 16 Le pipeline du Machine Learning K. SLIMANI - NEURAL NETWORKS 17 Comment fonctionne le Machine Learning ?  Un système de machine learning apprend à partir des données historiques, crée les modèles de prédiction et, chaque fois qu'il reçoit de nouvelles données, en prédit le résultat.  L'exactitude de la sortie prévue dépend de la quantité de données, car l'énorme quantité de données permet de construire un meilleur modèle qui prédit la sortie avec plus de précision. K. SLIMANI - NEURAL NETWORKS 18 Caractéristiques de Machine Learning  L'apprentissage automatique utilise des données pour détecter divers modèles dans un ensemble de données donné.  Il peut apprendre des données passées et s’améliorer automatiquement.  Il s'agit d'une technologie basée sur les données.  L’apprentissage automatique est très similaire à l’exploration de données car il traite également une énorme quantité de données. K. SLIMANI - NEURAL NETWORKS 19 Types de Machine Learning Les tâches d'apprentissage automatique sont généralement classées en trois grandes catégories. Selon la nature du « signal » ou du « retour » d'apprentissage disponible pour un système d'apprentissage K. SLIMANI - NEURAL NETWORKS 20 Apprentissage Supervisé Le programme reçoit un ensemble de données et sait déjà à quoi devrait ressembler notre sortie correcte ▪ Avoir l’idée qu’il existe une relation entre l’entrée et la sortie ▪ L’objectif est d’apprendre une règle générale qui mappe les entrées aux sorties. K. SLIMANI - NEURAL NETWORKS 21 Formalisation Exemple = Observation + Signification → Apprentissage Supervisé Observation : vecteur aléatoire Xj = (x1, x2,… xD ) ◦ xi : caractéristiques, descripteurs, variables explicatives ◦ Qualitatives (nominal / ordinal) ◦ Quantitatives (continuous / discretes) ◦ D : dimension de l'espace de représentation K. SLIMANI - NEURAL NETWORKS 22 Formalisation Signification : ydj ◦ ydi  ℝ : variable quantitative → regression variable à expliquer/prédire ◦ ydi  ℕ : variable qualitative → classification vérité terrain, étiquette, classe ◦ K : dimension de l'espace de décision (== nombre de classes) → Classification function : soit X l'espace des entrées (représentation) et Y, celui des sorties (décision) h : X → Y tel que h(Xj) ≈ ydj K. SLIMANI - NEURAL NETWORKS 23 Unsupervised Learning Aucune étiquette n'est donnée à l'algorithme d'apprentissage, le laissant seul pour trouver la structure de ses entrées. L'apprentissage non supervisé peut être un objectif en soi (découvrir des modèles cachés dans les données) ou un moyen pour parvenir à une fin (apprentissage des fonctionnalités). K. SLIMANI - NEURAL NETWORKS 24 Reinforcement Learning Un programme informatique interagit avec un environnement dynamique dans lequel il doit atteindre un certain objectif, sans qu'un enseignant ne lui dise explicitement s'il s'est rapproché de son objectif. ◦ Apprendre à conduire une voiture (Google Car) ◦ Apprendre à jouer à un jeu en jouant contre un adversaire (AlphaGo) K. SLIMANI - NEURAL NETWORKS 25 Machine Learning Applications K. SLIMANI - NEURAL NETWORKS 26 Databases Matrice de dimensions (DxN) (#dimension x #exemples) X1 X2 X3 … XN x11 x21 x31 … xN1 x12 x22 x32 … xN2 … x1D x2D x3D xND Signification : y1 y2 y3 yN K. SLIMANI - NEURAL NETWORKS 27 Exemples de Datasets Breast cancer dataset Data Set Characteristics: Multivariate Number of Instances: 699 Area: Life Attribute Characteristics: Integer Number of Attributes: 10 Date Donated 1992-07-15 Complete attribute documentation: 1. Sample code number: id number 2. Clump Thickness: 1 - 10 3. Uniformity of Cell Size: 1 - 10 4. Uniformity of Cell Shape: 1 - 10 5. Marginal Adhesion: 1 - 10 6. Single Epithelial Cell Size: 1 - 10 7. Bare Nuclei: 1 - 10 8. Bland Chromatin: 1 - 10 9. Normal Nucleoli: 1 - 10 10. Mitoses: 1 - 10 11. Class: (2 for benign, 4 for malignant) K. SLIMANI - NEURAL NETWORKS 28 Exemples de Datasets Auto MPG (miles per gallon) dataset Data Set Characteristics: Multivariate Number of Instances: 398 Area: N/A Attribute Characteristics: Categorical, Real Number of Attributes: 8 Date Donated 1993-07-07 Complete attribute documentation: 1. mpg: continuous 2. cylinders: multi-valued discrete 3. displacement: continuous 4. horsepower: continuous 5. weight: continuous 6. acceleration: continuous 7. model year: multi-valued discrete 8. origin: multi-valued discrete 9. car name: string (unique for each instance) K. SLIMANI - NEURAL NETWORKS 29 Exemple : analyse du trafic routier Discrimination camion/autre véhicule 1 exemple K. SLIMANI - NEURAL NETWORKS 30 Exemple : analyse du trafic routier Discrimination camion/autre véhicule K. SLIMANI - NEURAL NETWORKS 31 Fun time Q : « Intuitivement », comment classer un véhicule neuf observé ? x1 x2 ❶ 8 10 ❷ ❷ 13 15 ❶ ❸ ❸ 17 9 K. SLIMANI - NEURAL NETWORKS 32 Évaluation des classificateurs 33 Mesures de performance Base d'apprentissage/de référence Base de test/généralisation = capacité à classer des données nouvelles et inconnues. → La performance opérationnelle K. SLIMANI - NEURAL NETWORKS 34 Evaluating classifiers: Confusion matrix Dans de nombreux cas, dans les problèmes de la vie réelle, vous vous souciez plus de bien prédire une classe que les autres : Détection du cancer : se soucier davantage du cancer est détecté. On peut tolérer occasionnellement de fausses détections mais sans pour autant négliger les vrais cancers. Il existe un besoin pour une mesure de performance capable de favoriser un type d’erreur plutôt qu’un autre. 35 Evaluating classifiers: Confusion matrix Nous avons deux classes : ◦ classe positive (y = 1) ◦ Classe negative (y=0) Faites correspondre chaque point de données à la cellule appropriée 36 Evaluating classifiers: Confusion matrix Sklearn: http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html 37 Evaluating classifiers: Acuracy Accuracy is not ideal for skewed (imbalanced) classes !! 38 Evaluating classifiers: Acuracy Accuracy = (TP+TN)/(FP+FN+TP+TN) Error of classification = 1-Accuracy = (FP+FN)/(FP+FN+TP+TN) 39 Evaluating classifiers: Precision - Recall La précision pour la classe positive répond à la question suivante : Parmi tous les exemples qualifiés de positifs par le classificateur, quelle fraction était correcte ? 40 Evaluating classifiers: Precision - Recall Le rappel pour la classe positive répond à la question suivante : Parmi tous les exemples positifs, quelle fraction le classificateur a-t-il retenu ? 41 Evaluating classifiers: F1 score Il est possible d’optimiser les deux en combinant précision et rappel en une seule valeur, appelée score F1. Meilleure valeur à 1, pire à 0. 42 Décider SANS apprendre : le voisin le plus proche K. SLIMANI - NEURAL NETWORKS 43 Décider SANS apprendre : le voisin le plus proche Données de départ : Objective : Méthode : Un ensemble d'exemples de Décider de la classe d'un vecteur Calculer les distances entre X et référence E de vecteurs étiquetés inconnu l'ensemble des vecteurs Xi de E Xi avec ydi la classe associée Attribuer à X la classe de son voisin le plus proche (distance minimale) K. SLIMANI - NEURAL NETWORKS 44 Calcul de distance (variables quantitatives) Data Vector X Class C2 vectors X=? Class C1 vectors → Distance euclidienne (L2 norm) : d(X1 , X2) = σi=D i=1 (x1i − x 2i ) 2 K. SLIMANI - NEURAL NETWORKS 45 Fun time Q Déterminer la limite de décision définie par deux exemples de classes différentes X1 et X2 - En 1D : X1 = x1 , X2 = x2 - En 2D : X1 = (x1 , y1) et X2 = (x2 , y2) K. SLIMANI - NEURAL NETWORKS 46 Fun time Q : utiliser l’algorithme du ppv pour classer un nouveau véhicule observé ? x1 x2 ❶ 8 10 ❷ 13 15 ❷ ❸ 17 9 ❶ ❸ K. SLIMANI - NEURAL NETWORKS 47 Fun time Q déterminer le taux de reconnaissance et la matrice de confusion du 1-ppv et du 3-ppv ? x1 x2 yd ❶ 8 10 -1 ❷ 13 15 -1 ❸ 17 9 -1 ❷ ❶ ❸ K. SLIMANI - NEURAL NETWORKS 48 Interprétation géométrique → Limites « linéaires par morceaux » K. SLIMANI - NEURAL NETWORKS 49 Interprétation géométrique Les classes sont définies par l'union des zones d'influence des références La résolution spatiale des frontières est liée au nombre de références et à leur densité K. SLIMANI - NEURAL NETWORKS 50 Extension : k-voisins les plus proches 1. Calculer la distance entre X et tous les exemples de la ligne de base 2. Déterminer les k vecteurs KNN(X) les plus proches de la base k = 1 : Ci = argmin d(Xi, X) k  1 : Ci = majority class of {KNN(X)} Variante : unanimité sinon rejet, compte tenu de la distance. K. SLIMANI - NEURAL NETWORKS 51 Exemple : 1-PPV 7 7 6 6 5 5 4 4 3 3 2 2 1 Argmin 1 C 0 0 -1 -1 -1 0 1 2 3 4 5 6 7 -1 0 1 2 3 4 5 6 7 100 examples by class 100 examples by class K = 1, disp = 0.3 K = 1, disp = 0.7 K. SLIMANI - NEURAL NETWORKS 52 Exemple : k-PPV 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 -1 -1 -1 0 1 2 3 4 5 6 7 -1 0 1 2 3 4 5 6 7 K = 11 K = 21 disp = 0.7 disp = 0.7 K. SLIMANI - NEURAL NETWORKS 53 Biais-variance Le choix du paramètre k a une influence directe sur les propriétés du classificateur Faible valeur Grande valeur Bonne résolution Basse résolution (limites complexes entre les classes) (lissage des bordures) Très sensible au bruit (variance élevée) Pas très sensible sur les échantillons et le vecteur à classer au bruit (biais élevé) K. SLIMANI - NEURAL NETWORKS 54 L’algorithme parfait ? Avantages : Très simple à mettre en œuvre (lazy learning) Naturellement multiclasse Incrémental Tend asymptotiquement (N→) vers l’erreur optimale (B < ppv < 2B) 1 i=k S’adapte facilement à la régression : y = σ y sur les PPV(X) k i=1 di L. PREVOST - RÉSEAUX DE NEURONES 55 L’algorithme parfait ? Inconvénients : Stockage des références Quantité de calculs proportionnelle au nombre de références Pas d’extraction d’information utile Réglage du paramètre k L. PREVOST - RÉSEAUX DE NEURONES 56 TD - Analyser les bases de transparents 28-29 pour déterminer leurs caractéristiques (taille, nombre d'exemples, etc.) - Coder les algorithmes 1-knn et k-knn ( langage*) - Savoir déterminer graphiquement des limites en 2D (*) Nous avons les fonctions : d=distance(ex1, ex2) : calcul de la distance entre deux exemples sort(d) : tri des distances par ordre croissant K. SLIMANI - NEURAL NETWORKS 57 Good luck K. SLIMANI - NEURAL NETWORKS 58