Cours de Machine Learning 2023/2024
Cours de Machine Learning 2023/2024
Cours
Machine Learning
Chargé de cours :
Nacef Abir
Courriel: nacefabir91@[Link]
Année universitaire:2023/2024
Avant Propos
Spécialité : Système d’information + Multimédia et développement web
Niveau : semestre 1
Prérequis : Python
Langue : français 2
Avant Propos
Evaluation
La note du devoir surveillé : un examen partiel, possible de le faire à
partir de la septième semaine de cours
Examen Final : il s’agit d’un examen de synthèse qui aura lieu à la fin
du semestre.
Moyens Pédagogiques
Support de cours papier.
Support de cours numérique.
Sujets d’examens antérieurs.
3
Répartition horaires
4
Objectifs du cours
Comprendre les principes fondamentaux du machine learning à travers une
introduction détaillée, y compris les concepts de base, les différents types
d'apprentissage, et les applications dans divers domaines.
Acquérir les compétences nécessaires pour préparer les données, en
comprenant les techniques de nettoyage, de transformation et de séparation
des ensembles de données.
Explorer en profondeur les algorithmes de machine learning les plus
couramment utilisés, notamment les algorithmes de régression, et de
classification.
Plonger dans le domaine du deep learning en étudiant ses principes, ses
architectures de base telles que les réseaux de neurones et les CNN, ainsi
que ses applications dans plusieurs domaines.
5
Chapitre1
Introduction au
Machine
Learning
Objectifs spécifiques
Examiner les concepts clés de l'intelligence artificielle, y compris sa définition, ses
origines historiques et ses limites actuelles, afin de comprendre l’amélioration
apportée par le Machine Learning.
Explorer le domaine du machine learning, en comprenant ses applications dans
divers domaines.
Comprendre les objectifs du machine learning et les types de connaissances
extraites, y compris les modèles, les règles et les associations.
Explorer le fonctionnement du machine learning, en comprenant les différents types
d'apprentissage (supervisé, non supervisé, renforcement), les algorithmes associés à
chaque type et des exemples d’applications concrets pour chacun.
Comprendre les différentes étapes à suivre pour créer un système de machine
learning et explorer les métriques d'évaluation utilisées pour évaluer les
performances des modèles.
7
Plan
Introduction
Principe de fonctionnement d’une machine
Intelligence Artificielle
Définition, Naissance et Limites
Machine Learning
Domaine d’application
Objectifs du Machine Learning
Type de connaissances extraites
Fonctionnement
Les données
Types d’apprentissage
Etapes à suivre pour créer un système de Machine Learning
Les métriques d’évaluation
8
Introduction
Principe de fonctionnement d’une
machine (1/2)
Une machine est une unité de calcule qui se charge de traiter des données
en fonction d'instructions programmées.
Il est conçu pour effectuer diverses opérations:
Le traitement de l'information,
Le stockage de données
La manipulation de symboles
La résolution de problèmes
L'exécution de tâches variées.
9
Introduction
Principe de fonctionnement d’une
machine (2/2)
Questions:
Quelle valeur au-delà de la restitution des données?
Comment tirer les informations des données?
Comment découvrir les tendances/ les structures à partir des données?
Quel est le programme qui permet de définir un chat?
Connaitre un chat??? 10
Introduction
Intelligence Artificielle: Définition
(1/2)
11
Introduction
Intelligence Artificielle: Définition
(2/2)
L'intelligence artificielle traditionnelle se réfère aux approches classiques
Ces méthodes utilisent des règles explicites pour résoudre des problèmes
dans des domaines spécifiques en imitant le raisonnement humain sur la
base de connaissances préalablement définies.
12
Introduction
Intelligence Artificielle: Naissance
La notion voit le jour dans les années 1950 grâce au
mathématicien Alan Turing.
Dans son livre Computing Machinery and Intelligence, ce dernier
soulève la question d'apporter aux machines une forme d'intelligence.
Il décrit alors un test aujourd'hui connu sous le nom « Test de
Turing »
14
Machine Learning:
Passage de l’intelligence Artificielle
traditionnelle au machine Learning
(1/2)
15
Machine Learning:
Passage de l’intelligence Artificielle
traditionnelle au machine Learning
(2/2)
16
Machine Learning:
Pourquoi apprendre??
18
Machine Learning:
Définition (1/2)
19
Machine Learning:
Définition (2/2)
Grande quantité de données + algorithmes efficaces
On peut espérer qu’un gros volume de données représente bien l’univers
(échantillon).
Des algorithmes sûrs et efficaces
Algorithmes sûrs : fondés théoriquement, corrects.
Efficaces en temps et en espace.
Résultats interprétables.
Paramètres ajustables facilement et rapidement.
20
Domaine d’application (1/6)
21
Domaine d’application (2/6)
Dans les appareils photo des smartphones.
22
Domaine d’application (3/6)
Le domaine militaire (par exemple pour la prise de décisions des drones).
Les fil d’actualité des réseaux sociaux tels que Facebook et Twitter.
Ces plateformes recueillent des données sur leurs utilisateurs pour mieux les
comprendre et améliorer leurs performances. Les algorithmes doivent savoir ce
que les utilisateurs regardent, sur quoi ils cliquent et à quelles publications ils
réagissent sur les réseaux sociaux pour qu’ils peuvent proposer des
recommandations. 24
Domaine d’application (5/6)
25
Domaine d’application (6/6)
26
Objectif du Machine Learning
Créer des modèles qui peuvent être de nature
27
Types de connaissance extraites
Connaissances sous la forme de modèles permettant de
Analyses
e.g. distribution du trafic routier en fonction de l’heure
Règles
e.g. si un client a acheté un produit alors il sera intéressé par un autre.
Attribution de scores de qualité
e.g. score de fidélité au client
Classification d’entités
e.g. mauvais payeurs.
28
Fonctionnement
La création d’un modèle de machine learning est composée des deux phases:
Phase d’entrainement:
Faire tourner un algorithme d’apprentissage, d’une manière itérative sur des
données
Phase de teste
Appliquer le modèle sur des nouvelles données
Phase 1
Phase 2
29
Les Données:
Représentation
Les données peuvent être vues comme une collection d’objets
(enregistrements) et leurs attributs.
Un attribut est une propriété et ou une caractéristique de l’objet.
Un ensemble d’attributs décrit un objet.
30
Les Données:
Attribut- valeur
La valeur d’un attribut est un nombre ou un symbole.
Ne pas confondre attribut et valeur
Types
Quantitative (numérique, exprime une quantité)
Discrète (ex : nombre d’étudiants dans un cours) ou continue (ex : longueur)
Echelle proportionnelle (chiffre d’affaires, taille), ou échelle d’intervalle (température)
Qualitative
Variable ordinale (classement à un concours, échelle de satisfaction client)
Variable nominale (couleur de yeux, diplôme obtenu, sexe)
Les modalités d’une variable sont l’ensemble des valeurs qu’elle prend dans les
données ex : les modalités de notes sont {0, 1, 2, · · · , 20} les modalités de
couleur sont {bleu,vert,noir,...}
31
Types d’apprentissage
Apprentissage supervisé
Apprentissage non-supervisé
Apprentissage semi-supervisé
32
Types d’apprentissage
Apprentissage Supervisé:
fonctionnement (1/2)
Jeu de Données
X y
Algorithme
d’apprentissage y
Input Ouput supervisé
33
X
Types d’apprentissage
Apprentissage Supervisé:
fonctionnement (2/2)
: un problème de régression
discrète set (e.g. {0, 1}) : un problème de classification
peut correspondre à un espace de fonctions linéaires ou non-linéaires
34
Types d’apprentissage
Apprentissage Supervisé: Régression
VS Classification
• Prédire le prix d’un appartement (𝑦) selon • Prédire si un email est un spam (𝑐𝑙𝑎𝑠𝑠𝑒 𝑦 =
sa surface habitable (𝑥) 1) ou non (𝑐𝑙𝑎𝑠𝑠𝑒 𝑦 = 0) selon le nombre de
•Prédire la quantité d’essence consommée liens présent dans l’email (𝑥)
(𝑦) selon la distance parcourue (𝑥) • Prédire si une tumeur est maligne (𝑦 = 1) ou
35
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (1/5)
Déterminer le prix d’un appartement
36
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (2/5)
Déterminer le prix d’un appartement
X y
37
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (3/5)
Déterminer le prix d’un appartement
X y
38
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (4/5)
Autres exemples:
40
Types d’apprentissage
Apprentissage Supervisé:
Classification binaire et multi-classe
Classification binaire: étiquettes Classification multi-classes: étiquettes
binaires indiquant l’appartenance à discrètes correspondent à plusieurs
un classe classes
Identifier un émail spam ou non Identifier les objets dans une image
Identifier l’image d’un chat ou non Identifier les noms des animaux dans
Identifie si une transaction une image
bancaire est frauduleuse ou non Identifier l’expression du visage
Identifier si la langue parlée est parmi une liste prédéfinie
l’arabe ou non Identifier quelle est la langue parlée
… …
41
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Classification multi-classe
42
Types d’apprentissage
Apprentissage non Supervisé:
Fonctionnement
Processus qui prend en entrée des exemples d’apprentissage contenant que des
données d’entrée, Sans sortie
Pas de notion de classe
But : regrouper les exemples en paquets (clusters) d’exemples similaires.
Utilisés principalement en segmentation et réduction de dimension.
Segmentation (Clustering): ou bien regroupement, consiste à identifier des
groupes dans les données
Réduction de dimension: trouver une représentation des données plus fiable
que celle de l’espace dans lequel elles sont représentés (d’origine)
Principe:Etant donné un ensemble non étiqueté S = {xi , i = 1 . . . N} :
modélisation de X
43
Types d’apprentissage
Apprentissage non Supervisé VS
Supervisé (1/2)
44
Types d’apprentissage
Apprentissage non Supervisé VS
Supervisé (2/2)
45
Types d’apprentissage
Apprentissage non Supervisé:
Exemples de Segmentation
46
Types d’apprentissage
Apprentissage semi-Supervisé:
Fonctionnement (1/2)
47
Types d’apprentissage
Apprentissage par renforcement:
Fonctionnement (2/2)
Un agent apprend à prendre des décisions en interagissant avec un environnement
dynamique.
Imaginez un robot qui apprend à jouer à un jeu vidéo. L'agent interagit avec
l'environnement du jeu
Au début, l'agent ne sait pas comment jouer et prend des décisions de manière
aléatoire.
L'agent effectue une action dans l'environnement du jeu, ce qui modifie son état.
Récompense : L'environnement du jeu fournit une récompense à l'agent en
fonction de son action.
Apprentissage : L'agent utilise la récompense reçue pour mettre à jour sa stratégie.
Il ajuste ses actions futures pour maximiser les récompenses attendues.
48
Types d’apprentissage
Apprentissage par renforcement:
Exemple
49
Types d’apprentissage
Apprentissage par renforcement:
Exemple (1/2)
50
Types d’apprentissage
Apprentissage par renforcement:
Exemple (2/2)
51
Les étapes à suivre pour créer un système de ML
5. Entrainer le modèle
6. Évaluer le modèle
52
Création d’un système ML
Formaliser une tache d’apprentissage
53
Création d’un système ML
Collecte des données
La collecte des données est une tache très importante et très lourde
L’ensemble des données d’entrainement doit être collecté dans un format
lisible
Une étape de nettoyage et d’exploration doit être faite pour rendre les
données plus adaptées à l’apprentissage automatique
54
Création d’un système ML
Extraction des caractéristiques
(features)
Extraire un ensemble des caractéristiques qui caractérisent les données.
Il faut bien sélectionner les caractéristiques: une seule caractéristique ne suffi
pas.
Un ensemble de caractéristiques représentées sous forme d’un vecteur qui
doit être discriminant.
55
Création d’un système ML
Choisir le modèle d’apprentissage
56
Création d’un système ML
Entrainer le modèle
Le modèle est exposé aux données d’entrainement et ajuste ses paramètres
pour minimiser une fonction de perte, généralement basée sur la différence
entre les prédictions du modèle et les valeurs réelles (étiquettes correctes)
57
Création d’un système ML
Evaluer le modèle
Après l’entrainement du modèle, il sera évalué par les données de teste.
L’évaluation sera effectuée par la métrique adéquate.
58
Les métriques d’évaluation
Pour la régression
Erreur de prédiction :
L'erreur de prédiction mesure la différence entre les valeurs prédites par un modèle et les
valeurs réelles dans un ensemble de données. Il existe plusieurs façons de calculer
l'erreur de prédiction, notamment l'erreur quadratique moyenne (MSE), l'erreur
absolue moyenne (MAE) et d'autres.
Le coefficient de la détermination R²
Le carré du coefficient de corrélation linéaire: est un indicateur qui permet de juger la
qualité d’une régression linéaire simple. Il mesure l’adéquation entre le modèle et les
données observées ou encore à quel point l’équation de régression est adaptée pour
décrire la distribution des points
59
Les métriques d’évaluation
Pour la classification (1/5)
L’accuracy: quantifie la proportion de prédictions correctes par rapport au nombre
total d'échantillons ou d'observations dans un ensemble de données. En d'autres termes,
l'accuracy mesure la capacité d'un modèle à classifier correctement les échantillons.
L'accuracy est une mesure utile pour évaluer la performance globale d'un modèle de
classification, en particulier lorsque les classes sont équilibrées (c'est-à-dire qu'il y a à
peu près autant d'échantillons dans chaque classe).
Cependant, elle peut être trompeuse dans des situations où les classes sont
déséquilibrées, car un modèle pourrait simplement prédire la classe majoritaire à
chaque fois et obtenir une accuracy élevée tout en étant inefficace pour identifier les
classes minoritaires.
60
Les métriques d’évaluation
Pour la classification (2/5)
Matrice de confusion:
La matrice de confusion est particulièrement utile pour évaluer la capacité
d'un modèle à discriminer entre différentes classes ou catégories.
La matrice de confusion est généralement organisée comme suit :
61
Les métriques d’évaluation
Pour la classification (3/5)
62
Les métriques d’évaluation
Pour la classification (4/5)
Vrai négatif (True Negative) :
La prédiction est négative et c’est la réalité.
Le médecin prédit que la patiente n’est pas enceinte,
ce qui est vrai.
Recall = VP/(VP+FN)
F1-score de la prédiction : une mesure qui combine à la fois la précision et le
rappel d'un modèle de classification en une seule mesure. Il est utile pour évaluer
l'équilibre entre la précision et le rappel.
Préparation des
données
Objectifs spécifiques
Comprendre les différents types de données utilisés en machine learning, notamment
les données structurées, non structurées et semi-structurées, ainsi que les
caractéristiques de chacun de ces types.
Examiner les différentes sources de données utilisées en machine learning,
Explorer les techniques de nettoyage des données, y compris la détection et la gestion
des valeurs manquantes, la détection et la gestion des valeurs aberrantes, la détection
et la gestion des valeurs dupliquées, etc.
Comprendre les techniques de transformation des données telles que la normalisation
et la standardisation.
Examiner les différentes méthodes de transformation des données catégorielles, telles
que l'encodage one-hot, l'encodage ordinal, etc.
Expliquer comment se fait la séparation des données en ensembles d'entraînement, et
de test.
66
Plan
Introduction
Types des données
Source des donnés
Nettoyage des données
Transformation des données
Normalisation
Standardisation
67
Introduction
68
Types des données (1/3)
Données structurées : sont des données organisées dans un format
tabulaire avec des colonnes pré-définies. Chaque colonne correspond à un
attribut spécifique, et chaque ligne représente une observation ou un
exemple de données.
Exemples :
Les bases de données relationnelles, où chaque table représente une
entité et chaque colonne représente un attribut.
Les fichiers CSV (Comma-Separated Values) où les données sont
organisées en colonnes séparées par des virgules.
Les tableaux Excel où les données sont organisées en feuilles de calcul
avec des colonnes et des lignes.
69
Types des données (2/3)
Données non structurées : Les données non structurées ne suivent pas un
schéma pré-défini et ne sont pas organisées dans un format tabulaire. Elles
peuvent inclure du texte, des images, de l'audio, de la vidéo, etc.
Exemples :
Texte : Documents textuels, articles de presse, courriels, tweets, etc.
Images : Photographies, images médicales, captures d'écran, etc.
Audio : Enregistrements vocaux, fichiers musicaux, etc.
Vidéo : Clips vidéo, enregistrements de surveillance, etc.
70
Types des données (3/3)
Les données semi-structurées: sont des données qui combinent à la fois
des éléments structurés et des éléments non structurés.
Par exemple:
Un fichier XML peut contenir des balises qui définissent la structure des
données, mais il peut également inclure des attributs facultatifs ou des éléments
qui ne suivent pas un schéma rigide.
Un fichier JSON peut avoir des champs obligatoires ainsi que des champs
facultatifs ou des structures imbriquées variables.
71
Sources des données
72
Sources des données
Exemple des données populaires (1/2)
ImageNet:
Est une base de données d'images annotées (14,197,122 images), largement
utilisée dans le domaine de l'apprentissage automatique, en particulier dans le
domaine de la vision par ordinateur et de la reconnaissance d'images.
Lancée en 2009, ImageNet contient des millions d'images regroupées en
milliers de catégories ou de classes. Chaque image est accompagnée d'une
annotation décrivant la classe à laquelle elle appartient.
73
Sources des données
Exemple des données populaires (2/2)
74
Nettoyage des données (1/5)
75
Nettoyage des données (2/5)
76
Nettoyage des données (3/5)
Solutions
77
Nettoyage des données (4/5)
Le problème de bruit dans les données : erreur ou variance aléatoire d’une
variable mesurée
Causes
Valeurs aberrantes : Des valeurs extrêmes ou aberrantes peuvent apparaître dans les données en
raison d'erreurs de mesure, de saisie incorrecte des données ou d'événements rares.
Erreurs de mesure : Les erreurs de mesure peuvent survenir lors de la collecte des données, en
particulier dans les données provenant de capteurs ou d'instruments de mesure.
Données manquantes : Les données manquantes peuvent être considérées comme du bruit car
elles peuvent affecter la représentativité et la fiabilité des données, en particulier si leur absence
est aléatoire.
Incohérences ou erreurs de saisie : Des erreurs de saisie peuvent survenir lors de la saisie
manuelle des données, entraînant des incohérences ou des erreurs dans les ensembles de
données.
Variations aléatoires : Les variations aléatoires dans les données peuvent être considérées
comme du bruit lorsqu'elles ne sont pas pertinentes pour la tâche d'analyse ou de modélisation.
78
Nettoyage des données (5/5)
79
Transformation des données
Normalisation
La normalisation (parfois appelée mise à l'échelle min-max) consiste à
transformer les valeurs des caractéristiques pour qu'elles soient comprises
dans une plage spécifique, généralement entre 0 et 1.
La formule de normalisation est :
Cette technique est utile lorsque les valeurs des caractéristiques ont des
plages différentes et que vous voulez les mettre toutes sur la même échelle.
80
Transformation des données
Standardisation
La standardisation (ou z-score standardisation) consiste à transformer les
valeurs des caractéristiques de telle sorte que leur moyenne soit égale à zéro
et leur écart type soit égal à un.
La formule de standardisation est :
Cette technique est utile lorsque les caractéristiques ont des distributions
différentes et que vous voulez les mettre sur la même échelle tout en
préservant la forme de leur distribution.
81
Transformation des données
catégorielles (1/3)
Une étape essentielle dans le prétraitement des données pour de nombreux
algorithmes de machine learning, en particulier ceux qui nécessitent des
données numériques en entrée
Cette transformation est nécessaire car de nombreux modèles de machine
learning ne peuvent pas traiter directement les variables catégorielles.
Les techniques couramment utilisées pour transformer les données
catégorielles :
1. Encodage en variables indicatrices (One-Hot Encoding)
2. Encodage ordinal
3. Encodage de fréquence ou de comptage
4. Encodage basé sur le poids (Target Encoding)
5. Encodage de Hashing
82
Transformation des données
catégorielles (2/3)
1. Encodage en variables indicatrices (One-Hot Encoding)
Cette technique consiste à créer de nouvelles variables binaires (0 ou 1) pour chaque
catégorie possible de la variable catégorielle.
Par exemple, si une variable catégorielle "Couleur" a trois catégories possibles : "Rouge",
"Vert" et "Bleu", elle sera transformée en trois nouvelles variables binaires :
"Couleur_Rouge", "Couleur_Vert" et "Couleur_Bleu".
2. Encodage ordinal
Si les catégories d'une variable catégorielle ont un ordre naturel, telles que "faible",
"moyen" et "élevé", vous pouvez leur attribuer des valeurs numériques ordinales
correspondantes.
Par exemple, "faible" peut être codé comme 1, "moyen" comme 2 et "élevé" comme 3.
83
Transformation des données
catégorielles (3/3)
3. Encodage de fréquence ou de comptage
Cette technique consiste à remplacer chaque catégorie par sa fréquence d'occurrence dans
l'ensemble de données ou par le nombre de fois qu'elle apparaît.
Par exemple, si une variable catégorielle "Pays" a les catégories : "France", "Espagne" et
"France", elle sera transformée en "Pays_France" avec une valeur de 2.
4. Encodage basé sur le poids (Target Encoding)
Cette technique consiste à remplacer chaque catégorie par la moyenne de la variable cible
correspondante pour cette catégorie.
Par exemple, si vous avez une variable catégorielle "Ville" et une variable cible "Prix", vous
pouvez remplacer chaque catégorie de "Ville" par la moyenne des prix des maisons dans cette
ville.
5. Encodage de Hashing
Cette technique consiste à appliquer une fonction de hachage à chaque catégorie pour
la transformer en une valeur numérique.
84
Séparation des données (1/2)
Définir les variables indépendantes et dépendantes : Séparer les données en
variables indépendantes (caractéristiques X) et variables dépendantes (étiquettes
ou cibles y).
Diviser les données en ensembles d'entraînement et de test : Utilisez une
fonction ou une méthode appropriée pour diviser les données en ensembles
d'entraînement et de test. Les proportions typiques sont 70-80% des données
pour l'ensemble d'entraînement et 20-30% pour l'ensemble de test, mais cela
peut varier en fonction de la taille de l'ensemble de données et des exigences du
problème.
Vérifier la distribution des classes (optionnel) : Si votre ensemble de données
est déséquilibré en termes de classes, assurez-vous que la répartition des classes
est similaire dans les ensembles d'entraînement et de test pour éviter les biais.
85
Séparation des données (2/2)
Les algorithmes de
Machine Learning
Objectifs spécifiques
Comprendre les bibliothèques et les outils couramment utilisés pour
implémenter des algorithmes de régression.
88
Plan
Bibliothèques et outils utilisés
Algorithmes de régression
Régression linéaire
Régression polynomiale
Régression logistique
K-Nearest Neighboor (KNN)
Support Vector Machine (SVM)
Arbre de décision
Pour la classification
Pour la régression
Les méthodes d’ensemble
Random Forest
Gradient Boosted Tree
89
Bibliothèques et outils utilisés
Outils (1/2)
[Link] 90
Bibliothèques et outils utilisés
Outils (2/2)
Un service gratuit basé sur le cloud offert par Google qui permet d'écrire,
d'exécuter et de partager du code Python directement dans le navigateur,
sans nécessiter de configuration ou d'installation de logiciels
supplémentaires sur votre ordinateur.
Bibliothèques préinstallées : Colab est livré avec de nombreuses
bibliothèques populaires préinstallées pour l'analyse de données et
l'apprentissage automatique, telles que NumPy, pandas, TensorFlow,
PyTorch, scikit-learn, etc.
91
Bibliothèques et outils utilisés
Bibliothèques (1/2)
Sklearn Numpy
import numpy as np
Pandas est une excellente librairie pour Matplotlib est la librairie qui permet de
importer vos tableaux Excel (et autres visualiser les Datasets, les fonctions, les
formats) dans Python dans le but de résultats sous forme de graphes, courbes
tirer des statistiques et de charger votre et nuages de points.
Dataset dans Sklearn. 93
Algorithmes de régression
94
Algorithmes de régression
Régression linéaire
Exemple 1: prix d’un appartement
𝒙 (𝒊) la surface habitable de
l’exemple 𝒊
𝒚 (𝒊) le prix de l’exemple 𝒊
98
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (4/6)
Phase 4: Minimiser la Fonction coût
Ainsi l’objectif central en Supervised Learning, c’est de trouver les paramètres
du modèle qui minimisent la Fonction Coût. Pour cela, on utilise un algorithme
d’apprentissage, l’exemple le plus courant étant l’algorithme de Gradient
Descent.
l’erreur quadratique
moyenne (Mean Squared
Error)
99
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (5/6)
Phase 4: Minimiser la Fonction coût
La descente de gradient est une méthode itérative qui met à jour les paramètres
dans la direction opposée du gradient de la fonction de coût par rapport aux
paramètres
100
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (6/6)
Phase 4: Minimiser la Fonction coût
On appelle ∝ la vitesse d’apprentissage (Learning rate)
104
Algorithmes de régression
Régression linéaire; Implémentation (4/6)
2er étape:
Modification des
paramètres
105
Algorithmes de régression
Régression linéaire; Implémentation (5/6)
106
Algorithmes de régression
Régression linéaire; Implémentation (6/6)
107
Régressionde
Algorithmes Polynômiale
régressionà
plusieurs variables
Régression polynomiale (1/2)
108
Algorithmes de régression
Régression polynomiale (2/2)
Problème non-linéaire : Un problème plus compliqué ? Pour le nuage de point
ci-dessous, il semblerait judicieux de développer un modèle polynômial de degré
2.
109
Algorithmes de régression
Régression polynomiale: implémentation
(1/2)
Il suffit de générer des variables polynômiales dans notre Dataset en utilisant la
fonction PolynomialFeatures présente dans Sklearn.
110
Algorithmes de régression
Régression polynomiale: implémentation
(2/2)
111
Algorithmes de régression
Régression Logistique (1/6)
classer un email en tant que ‘spam’ ou ‘non spam’. Dans ce genre de
problème, on aura un Dataset contenant une variable target 𝒚 pouvant
prendre 2 valeurs seulement, par exemple 0 ou 1
si 𝑦 = 0, alors l’email n’est pas un spam
si 𝑦 = 1, alors l’email est un spam
112
Algorithmes de régression
Régression Logistique (2/6)
114
Algorithmes de régression
Régression Logistique (4/6)
Génération des données aléatoires
115
Algorithmes de régression
Régression Logistique (5/6)
Création d’un modèle en utilisant SGDClassifier.
Une fois le modèle entraîné, on peut afficher sa frontière de décision avec le code suivant
116
Algorithmes de régression
Régression Logistique (6/6)
Création d’un modèle en utilisant SGDClassifier.
Une fois le modèle entraîné, on peut afficher sa frontière de décision avec le code suivant
117
K-Nearest Neighbour (KNN)
Fonctionnement (1/4)
L’algorithme de Nearest Neighbour (le voisin le plus proche) permet de résoudre des
problèmes de classification à plusieurs classes de façon simple et très efficace. Il est
utilisé aussi pour la régression.
Vous partez vous promener en montagne avec un ami. Avant de partir, il fait 30 °C et
votre ami vous dit qu’il a chaud. Arrivé en montagne, il fait désormais 10 °C et votre
ami vous dit qu’il a froid. En redescendant la vallée, il fait maintenant 15 °C, pensez-
vous que votre ami aura froid ou bien chaud ? 15 °C étant plus proche de 10 °C
(froid) que de 30 °C (chaud), il semble légitime de prédire que votre ami aura froid.
118
K-Nearest Neighbour (KNN)
Fonctionnement (2/4)
Cet exemple vous montre au passage que la variété et la quantité de données dans
votre Dataset est primordiale ! Si vous ne disposez que de 2 points : -20 °C = froid
; 20 °C = chaud, alors vous pourriez conclure que 1 °C est une température
chaude…
119
K-Nearest Neighbour (KNN)
Fonctionnement (3/4)
L’algorithme de Nearest Neighbour calcule ainsi la distance entre le point vert et les
autres points du Dataset et associe le point vert à la classe dont l’exemple est le plus
proche en terme de distance.
Typiquement, on utilise la distance euclidienne (c’est la droite direct entre deux points)
mais d’autres métriques sont parfois plus utiles, comme la distance de Manhattan ou bien
la distance cosinus. Inutile de rentrer dans les détails mathématiques, vous savez
désormais que Sklearn implémente toutes les équations pour vous.
120
K-Nearest Neighbour (KNN)
Fonctionnement (4/4)
Le nombre de voisin K
Pour limiter les problèmes liés au bruit ce qu’on appelle Over fitting, on
peut demander à l’algorithme de trouver les K voisins les plus proches du
point vert.
Cela améliore la qualité du modèle car il devient moins sensible aux
impuretés et cas particuliers qui viendraient empêcher la bonne
généralisation.
121
K-Nearest Neighbour (KNN)
Implémentation (1/4)
122
K-Nearest Neighbour (KNN)
Implémentation (2/4)
Vous pouvez charger ces données depuis Sklearn (la librairie contient des Datasets de
base). Commençons par importer les libraires habituelles :
On apprend aussi que le Dataset comprend 1797 exemples, c’est-à-dire 1797 images, et
que chaque exemple contient 64 features.
Que sont ces 64 features ? il s’agit de la valeur de chacun des 64 pixels qui forment les
images.
Quand on soumet un nouveau chiffre à la machine, l’algorithme de K-NN trouve
l’exemple du Dataset qui ressemble le plus à notre chiffre, basé sur le voisin le plus
proche pour la valeur de chaque pixel.
123
K-Nearest Neighbour (KNN)
Implémentation (3/4)
Vous pouvez charger ces données depuis Sklearn (la librairie contient des
Datasets de base). Commençons par importer les libraires habituelles :
124
K-Nearest Neighbour (KNN)
Implémentation (4/4)
125
Machine à vecteurs de support
Fonctionnement (1/3)
126
Machine à vecteurs de support
Fonctionnement (2/3)
Exemple 1:
Imaginons un plan (espace à deux dimensions) dans lequel sont répartis deux
groupes de points. Ces points sont associés à un groupe : les points (+)
pour y > x et les points (-) pour y < x. On peut trouver un séparateur
linéaire évident dans cet exemple, la droite d'équation y = x. Le problème
est dit linéairement séparable.
127
Machine à vecteurs de support
Fonctionnement (3/3)
Exemple 2:
Pour des problèmes plus compliqués, il n'existe en général pas de séparatrice
linéaire. Imaginons par exemple un plan dans lequel les points (-) sont
regroupés à l'intérieur d'un cercle, avec des points (+) tout autour : aucun
séparateur linéaire ne peut correctement séparer les groupes : le problème
n'est pas linéairement séparable. Il n'existe pas d'hyperplan séparateur.
128
Machine à vecteurs de support
Fonctionnement: Marge maximale
(1/2)
On se place désormais dans le cas où le problème est linéairement séparable.
Même dans ce cas simple, le choix de l'hyperplan séparateur n'est pas évident.
Il existe en effet une infinité d'hyperplans séparateurs, dont les performances
en apprentissage sont identiques (le risque empirique est le même), mais dont les
performances en généralisation peuvent être très différentes.
Pour résoudre ce problème, il a été montré, qu'il existe un unique hyperplan
optimal, défini comme l'hyperplan qui maximise la marge entre
les échantillons et l'hyperplan séparateur.
129
Machine à vecteurs de support
Fonctionnement: Marge maximale
(2/2)
Il existe des raisons théoriques à ce choix. Vapnik a montré que
la capacité des classes d'hyperplans séparateurs diminue lorsque leur marge
augmente.
La marge est la distance entre l'hyperplan et les échantillons les plus
proches. Ces derniers sont appelés vecteurs supports.
130
Machine à vecteurs de support
Fonctionnement: problème non
linéaire
Cas non séparable : kernel trick
La notion de marge maximale et la procédure de recherche de l'hyperplan séparateur
telles que présentées pour l'instant ne permettent de résoudre que des problèmes de
discrimination linéairement séparables.
C'est une limitation sévère qui condamne à ne pouvoir résoudre que des problèmes
jouets, ou très particuliers. Afin de remédier au problème de l'absence de séparateur
linéaire, l'idée de l'astuce du noyau (en anglais kernel trick) est de reconsidérer le
problème dans un espace de dimension supérieure, éventuellement de dimension infinie.
131
Machine à vecteurs de support
Implémentation (1/2)
1. Importer les bibliothèques nécessaires
y_pred = svm_model.predict(X_test)
Bien qu'il s'agisse d'un outil couramment utilisé dans l'exploration de données
pour élaborer une stratégie visant à atteindre un objectif particulier, il est
également largement utilisé dans l'apprentissage automatique,
134
Arbre de décision
Fonctionnement: Classification (1/5)
L’arbre est construit de telle sorte que chaque noeud correspond à la règle
(type de mesure et seuil) qui divisera le mieux l’ensemble d’observations
de départ.
Exemple 1:
136
Arbre de décision
Fonctionnement: Classification (3/5)
Exemple 2: classification des espèces d’iris
Tester par un exemple:
Identifier une fleur avec un sépale de 6 cm et pétale de 4cm
137
Arbre de décision
Fonctionnement: Classification (4/5)
Exemple 2: classification (pureté)
138
Arbre de décision
Fonctionnement: Classification (5/5)
Exemple 2: classification (choisir la règle à appliquer selon le cout)
139
Arbre de décision
Fonctionnement: Régression (1/3)
Exemple 3
140
Arbre de décision
Fonctionnement: Régression (2/3)
Exemple 3
141
Arbre de décision
Fonctionnement: Régression (3/3)
Exemple 3: Régression (mesure de la performance)
142
Les méthodes d’ensemble
Bagging et Boosting (1/2)
Pour résoudre des problèmes de sur apprentissage, et de faible performance
on peut utiliser le Boosting ou le Bagging:
Bagging: rassembler plusieurs modèles plus au moins performants, ce
rassemblement permet d’augmenter la performance de l’ensemble général.
Exemple:
algo1 algo2 algo3 algo4 Ensemble général des différents algorithmes
√ √ x √ √
x √ x √ √
√ x √ √ √
√ x √ √ √
√ √ √ √ √
x √ √ x √
85% 83% 84% 86% 91% 143
Les méthodes d’ensemble
Bagging et Boosting (2/2)
Pour résoudre des problèmes de sur apprentissage, et de faible performance
on peut utiliser le Boosting ou le Bagging:
Itération 1 62%
73%
Itération 2
75%
Itération 3
…
Itération n 91%
144
Foret Aléatoire
Fonctionnement (1/5)
Comme son nom l’indique l’algorithme des forêts aléatoires se fonde sur
les arbres de décisions.
Il est crée pour répondre au problème de de sur-apprentissage ou le
overfiting des arbres de décisions
145
Foret Aléatoire
Fonctionnement (2/5)
Pour mieux comprendre l’intérêt et le fonctionnement de cet algorithme commençons par un exemple :
Vous êtes à la recherche d’une bonne destination de voyage pour vos prochaines vacances. Vous
demandez à votre meilleur ami son avis. Il vous pose des questions sur vos précédents voyages et vous fait
une recommandation.
Vous décidez de demander à un groupe d’ami qui vous posent des questions de manière aléatoire. Ils
vous font chacun une recommandation. La destination retenue est celle qui a été la plus recommandée par
vos amis.
Les recommandations faites par votre meilleur ami et le groupe vous paraîtront toutes deux de bons
choix de destination. Mais lorsque la première méthode de recommandation marchera très bien pour vous,
la deuxième sera plus fiable pour d’autres personnes.
Cela vient du fait que votre meilleur ami, qui construit un arbre de décision pour vous donner une
recommandation de destination, vous connaît très bien ce qui a fait que l’arbre de décision a sur-appris sur
vous (on parle d’overfitting : sur apprentissage).
Votre groupe d’ami représente la forêt aléatoire de multiples arbres de décisions et c’est un modèle,
lorsqu’il est bien utilisé, évite l’écueil de l’overfitting.
Comment est donc est construite cette forêt?
146
Foret Aléatoire
Fonctionnement (3/5)
Construire des arbres en
prenant quelques champs et 1-Création du Dataset
quelques variables
147
Foret Aléatoire
Fonctionnement (4/5)
2- Entrainement de l’arbre de décision
148
Foret Aléatoire
Fonctionnement (5/5)
3- Répéter l’étape 1 et 2 pas mal de fois
149
Le « Gradient Boosting » (XG Boost)
La méthode du gradient boosting sert à renforcer un modèle qui produit des prédictions
faibles,
Vous avez une base de données d’individu avec des informations de démographie et des
activités passés. Vous avez pour 50% des individus leur age mais l’autre moitié est
inconnue.
Vous souhaitez obtenir l’âge d’une personne en fonction du ses activités : courses
alimentaires, télévision, jardinage, jeux vidéo …
Vous choisissez comme modèle un arbre de décision, dans ce cas c’est un arbre de
régression car la valeur à prédire est numérique.
Votre premier arbre de régression est satisfaisant mais largement perfectible : il prédit
par exemple qu’un individu a 19 ans alors qu’en réalité il en a 13, et pour un autre 55 ans
au lieu de 68.
Le principe du gradient boosting est que vous allez refaire un modèle sur l’écart entre la
valeur prédite et la vraie valeur à prédire.
150
Chapitre 4
Deep Learning
Objectifs spécifiques
Comprendre les bases des réseaux de neurones et du deep learning, y compris leur architecture,
leur fonctionnement et leur différence par rapport aux méthodes de machine learning
traditionnelles.
Examiner différents domaines d'application du deep learning et comment il est utilisé dans des
domaines tels que la vision par ordinateur, le traitement du langage naturel et la reconnaissance
de la parole.
Approfondir les architectures de réseaux de neurones, en mettant l'accent sur les réseaux de
neurones convolutifs (CNN) et leur rôle crucial dans le domaine de la vision par ordinateur.
152
Plan
Introduction
Les réseaux de neurones
Deep Learning
Domaine d’application
Architecture
Fonctionnement
Différence entre machine learning et Deep Learning
Convolution Neural Network
Application
Architecture
Construction
Implémentation
153
Introduction
154
Introduction
Naissance des réseaux de neurones
Les neurones sont des cellules excitables connectées les unes aux autres et
ayant pour rôle de transmettre des informations dans le système nerveux
155
Les réseaux de neurones (1/2)
L'un des faits les plus frappants concernant les réseaux de neurones est
qu'ils peuvent calculer n'importe quelle fonction. C'est-à-dire, supposons
que quelqu'un vous remette une fonction compliquée et ondulante, f(x):
Quelle que soit la fonction, il est garanti qu'il y a un réseau de neurones,
qui permet pour chaque entrée possible, x, de calculer la valeur f(x) (ou
une approximation proche) par exemple :
156
Les réseaux de neurones (2/2)
Ce résultat est valable même si la fonction a plusieurs entrées, f=f(x1,
…,xm) et plusieurs sorties. Par exemple, voici un réseau calculant une
fonction avec m=3 entrées et n=2 sorties :
159
Deep Learning
Architecture
[Link] 160
Deep Learning
Fonctionnement (1/6)
Les étapes de création d’un réseau de neurones
1 2 3 4
161
Deep Learning
Fonctionnement (2/6)
1
Les données traversent le réseau de neurones, de l'entrée à la sortie.
Chaque neurone dans une couche reçoit des entrées pondérées,
calcule une somme pondérée, applique une fonction d'activation et
transmet le résultat à la couche suivante.
162
Deep Learning
Fonctionnement (3/6)
1
ReLU: est une fonction d'activation linéaire pour les valeurs positives et zéro
pour les valeurs négatives
Tanh: Elle est similaire à la fonction sigmoïde mais produit une sortie dans
l'intervalle (-1, 1), ce qui la rend centrée autour de zéro. 163
Deep Learning
Fonctionnement (4/6)
1 2
L'objectif est de minimiser cette fonction en ajustant
les poids du réseau. Le type de fonction de coût
utilisé dépend du problème de machine learning
(classification, régression, etc.) et de la tâche
spécifique, comme la cross-entropy pour la
classification ou l'erreur quadratique moyenne pour
la régression.
164
Deep Learning
Fonctionnement (5/6)
1 2 3 4
165
Deep Learning
Fonctionnement (6/6)
166
La différence entre Machine
Learning et Deep Learning
167
CNN (Convolution Neural Network)
Application
L’un des principaux cas d’usage est la reconnaissance d’image. Dans une moindre
mesure, on les utilise aussi pour l’analyse vidéo.
Le traitement naturel du langage. Les modèles CNN sont très efficaces pour l’analyse
sémantique, la modélisation de phrase, la classification ou la traduction.
Utilisés pour la découverte de médicaments. Ils permettent d’identifier les traitements
potentiels en prédisant les interactions entre molécules et protéines biologiques.
Utilisés pour les logiciels de jeu de Go ou de jeu d’échecs auxquels ils sont capables
d’exceller. Une autre application est la détection d’anomalie sur une image en entrée
(input).
168
CNN (Convolution Neural Network)
Architecture (1/7)
L’architecture du Convolutional Neural Network dispose deux parties bien distinctes :
Une partie convolutive : Son objectif final est d’extraire des caractéristiques propres à
chaque image en les compressant de façon à réduire leur taille initiale. En résumé, l’image
fournie en entrée passe à travers une succession de filtres, créant par la même occasion de
nouvelles images appelées cartes de convolutions. Enfin, les cartes de convolutions
obtenues sont concaténées dans un vecteur de caractéristiques appelé code CNN.
Une partie classification : Le code CNN obtenu en sortie de la partie convolutive
est fourni en entrée dans une deuxième partie, constituée de couches entièrement
connectées appelées perceptron multicouche (MLP pour Multi Layers Perceptron). Le rôle
de cette partie est de combiner les caractéristiques du code CNN afin de classer l’image.
169
CNN (Convolution Neural Network)
Architecture (2/7)
170
CNN (Convolution Neural Network)
Architecture (3/7)
Etapes de convolution:
171
CNN (Convolution Neural Network)
Architecture (4/7)
Etapes de convolution:
172
CNN (Convolution Neural Network)
Architecture (5/7)
Pooling:
173
CNN (Convolution Neural Network)
Architecture (6/7)
Pooling:
174
CNN (Convolution Neural Network)
Architecture (7/7)
Pooling:
Couche de Pooling (POOL) : une opération généralement appliquée entre deux couches
de convolution. Celle-ci reçoit en entrée les features maps formées en sortie de la couche
de convolution et son rôle est de réduire la taille des images, tout en préservant leurs
caractéristiques les plus essentielles.
176
CNN (Convolution Neural Network)
Construction (2/2)
La couche d’activation ReLU (Rectified Linear Units) : remplace toutes les valeurs
négatives reçues en entrées par des zéros.
Couche Fully Connected (FC) : Ces couches sont placées en fin d’architecture de
CNN et sont entièrement connectées à tous les neurones de sorties (d’où le terme
fully-connected).
model = [Link]([