Cours IA CPGE MP Partie 1
Cours IA CPGE MP Partie 1
Cours IA CPGE MP Partie 1
artificielle
Codage des images: Après le texte, l’image est le support le plus
utilisé pour communiquer. Dans le domaine du numérique, les images
sont constituées d’une matrice L x H (Largeur x Hauteur) de points
élémentaires que l’on nomme généralement des pixels (abréviation
de Picture Element). Chaque pixel a une couleur codée sur un
nombre plus ou moins grand de bits. Le périphérique de sortie (écran,
imprimante, …) se doit de restituer les pixels de manière ordonnée en
fonction de leur position respective (x, y) et de leur couleur.
2
On distingue trois types d’images :
3
Images en niveau de gris : chaque pixel est codé sur 8bits=1octet
Image en couleur avec le mode RVB (Rouge, Vert et Bleu, ou en anglais RGB)
correspond à celui fourni par la plupart des caméras couleur, il est naturellement
utilisé pour la reproduction de couleurs sur écran (base noire). C’est le mode de
composition des couleurs basé sur le principe des couleurs additives : le rouge, le
vert et le bleu sont les trois primaires utilisés dans la constitution de couleurs à
partir de sources lumineuses. Une image en couleur est codé sur 24 bits
4
Exemple : (codage RVB)
5
Présentation
• Le traitement d'images est une branche du traitement
de signal dédiée aux images et vidéo
• Dans cette partie nous allez utilisé les deux modules
matplotlib.pyplot et matplotlib.image pour effectuer
quelque traitement sur des image numérique
• Une image numérique est représenter par matrice des
nombres entier
6
Présentation
• chaque point (x, y) dans une
image est nommé pixel
7
Ouvrir et afficher une image
• Ouvrir et afficher une image binaire ou une
image niveau de gris
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread(fichier_image)
plt.imshow(img, cmap='gray')
plt.show()
• Exemple
8
Ouvrir et afficher une image
• Ouvrir et afficher une image couleur
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread(fichier_image)
plt.imshow(img)
plt.show()
• Exemple
9
Inverser une image
• Pour retourner une image on utilise La
fonction flipud() du module numpy
• Exemple :
10
Passage en niveau de gris
• convertir une image en niveaux de gris en utilisant la formule de
conversion standard RGB en niveaux de gris qui est:
imgGray = 0.2989 * Red + 0.5870 * Green + 0.1140 * Blue
• Exemple :
11
Rotation d'une image
• Pour faire pivoter une image on peut utiliser
le module PIL.Image ou le module scipy.ndimage
• Exemple :
12
Redimensionner une image
• Pour faire pivoter une image on peut utiliser
le module PIL.Image
• Exemple :
13
Histogramme d'une image
• L’histogramme d’une image mesure la distribution
des niveaux de gris dans l’image.
• l’histogramme d’une image à valeurs entières est
construit de la manière suivante: pour chaque niveau
de gris V, on compte le nombre de pixels ayant la
valeur V.
seuillage fixe
• Le seuillage est une opération qui affecte la valeur 0
à tous les pixels dont le niveau est inférieur à celui du
seuil.
• Exemple :
15
Détection de contours
• Un contour est une changement soudain d’intensité de lumière
ou de couleur de pixels adjacents.
• Il existe plusieurs méthode pour détecter de contour
– Filtre de gradient
– Filtre de Sobel
– Filtre de Canny
• Exemple :
16
Flou d'une image
• Le floutage d’une image est
un processus de réduction
du niveau de bruit dans l’image
• Exemple
1
7
18
19
Introduction à l’apprentissage automatique
Définition: Machine Learning (apprentissage automatique)
concerne l’étude, la conception et le développement d’algorithmes
qui permettent aux ordinateurs d’apprendre sans être explicitement
programmés (Arthur Samuel).
Programmation classique
Données Résultats
Programme
Machine Learning
Données Programme
Résultats
20
Introduction à l’apprentissage automatique
Programmation classique:
- Développement de programmes pour la gestion de stock
- Administration d’une entreprise, ….
- Gestion d’un cabinet de formations, …..
21
Introduction à l’apprentissage automatique
Machine Learning: On ne dispose pas d’une formule ou d’une
méthode analytique qui permet de trouver les résultats à partir des
données.
Connaissez vous une méthode analytique ou un algorithme précis qui permet de
reconnaitre l’une des images suivantes ? S’agit-il du chiffre 6 ou 9 ou la lettre v ?
22
Introduction à l’apprentissage automatique
23
Introduction à l’apprentissage automatique
Vérification de signature sur un chèque:
Connaissez vous une méthode analytique ou un algorithme précis qui permet de
vérifier si l’image suivante (extraite de la partie à droite en bas d’un chèque)
représente la signature correcte d’un client d’une banque ou non ?
24
Introduction à l’apprentissage automatique
25
Introduction à l’apprentissage automatique
26
Quelques applications de Machine Learning
Exemples:
- Prédiction des prix: Estimer
le prix d’une maison en fonction de sa
superficie, sa localisation, possibilité de Parking ou non etc… Ces
estimations sont faites en observant d’autres produits similaires
pour en tirer des conclusions.
27
Quelques applications de Machine Learning
https://www.01net.com/actualites/ia-ces-chercheurs-ont-decouvert-un-puissant-antibiotique-grace-a-l-apprentissage-
automatique-1862232.html?fbclid=IwAR0sdwCFrxJdMg2d75jAtGZ1EF_JH21ouRfr98v2hx2cEHpzYcH0R9QSTvM
28
Quelques applications de Machine Learning
ML pour COVID-19
Machine learning-based prediction of COVID-19 diagnosis
based on symptoms
https://www.nature.com/articles/s41746-020-00372-6
30
Quelques applications de Machine Learning
31
Quelques applications de Machine Learning
32
Quelques applications de Machine Learning
35
Quelques applications de Machine Learning
37
Quelques applications de Machine Learning
Datasets: exemples
https://archive.ics.uci.edu/ml/index.php
https://www.kaggle.com/datasets
39
L’apprentissage automatique est une branche de
l’intelligence artificielle
Le Machine Learning ou Apprentissage automatique est une branche de
l’intelligence artificielle qui concerne la conception, l’analyse, le développement
et l’implémentation de modèles, permettant à une machine d’apprendre à partir
des données par un processus systématique afin de remplir une tâche.
40
Les types d’apprentissage automatique
Exemple:
Les données d'entrée représentent des images et la cible
(ou target en anglais) représente la catégorie de photos.
43
Apprentissage supervisé (supervised learning)
Voiture
Oiseau
Chat
Chien
cheval
44
Apprentissage supervisé (supervised learning)
45
Apprentissage supervisé (supervised learning)
46
Apprentissage supervisé (supervised learning)
47
Apprentissage non supervisé (unsupervised learning)
48
Apprentissage non supervisé (unsupervised learning)
49
Apprentissage non supervisé (unsupervised learning)
50
Les 7 étapes de l’apprentissage automatique
51
Les 7 étapes de l’apprentissage automatique
3) Choix du modèle.
4) Formation et apprentissage du modèle
5) L'évaluation : une fois l'algorithme d'apprentissage
automatique entraîné sur un premier jeu de donnée, on
l'évalue sur un deuxième ensemble de données afin de
vérifier que le modèle ne fasse pas de surapprentissage.
6) Réglage des paramètres: Ajuster les paramètres pour de
meilleures performances
7) Le déploiement : le modèle est déployé en production pour
faire des prédictions, et potentiellement utiliser les nouvelles
données en entrée pour se ré-entraîner et être amélioré.
52
Classification binaire
• La classification est une tâche très répandue en Machine Learning. Dans ce
genre de problématique, on cherche à mettre une étiquette (un label) sur une
observation : une tumeur est-elle maligne ou non maligne, une transaction
est- elle frauduleuse ou non frauduleuse … ces deux cas sont des exemples
de classification.
• Quand on a deux choix d’étiquettes possibles (tumeur maligne ou non), on
parle de Binary Classification (classification binaire). Par ailleurs, l’étiquette Y
aura deux valeurs possibles 0 ou 1. En d’autres termes Y{0,1}
53
Classification binaire et multiclasses
Le but du jeu c’est qu’on trouve une ligne (Boundary Decision) séparant les
deux groupes (les cercles et les carrés).
Note : Pour l’exemple de la tumeur, on peut attribuer arbitrairement la classe
(étiquette) 1 pour dire qu’il s’agit d’une tumeur maligne et la valeur 0 pour les
tumeurs bénignes.
Quand notre problème a plusieurs étiquettes possibles (par exemple classifier
un article dans une catégorie (“sport”, “politique”, “High-Tech”)…), on parle
de Multi-class classification. Dans ce cas on peut attribuer arbitrairement les
numéros des classes aux observations du Training Set. Dans l’exemple vu en
TP en haut pour la reconnaissance des chiffres : dix classes: 0,1,2,3,4,5,6,7,8,9
54
Supervised Learning
55
KNN: k Nearest Neighbors
56
KNN: k Nearest Neighbors
57
KNN: k Nearest Neighbors
58
KNN: k Nearest Neighbors
on va simplement regarder les k voisins les plus proches de ce point
et regarder quelle classe constitue la majorité de ces points afin d'en
en déduire la classe du nouveau point. Par exemple ici, si on utilise
le 5-NN, on peut prédire que la nouvelle donnée appartient à la
classe rouge puisqu'elle a 3 rouges et 2 bleus dans son entourage.
Vote Majoritaire
59
KNN: k Nearest Neighbors
on va simplement regarder les k voisins les plus proches de ce point
et regarder quelle classe constitue la majorité de ces points afin d'en
en déduire la classe du nouveau point. Par exemple ici, si on utilise
le 5-NN, on peut prédire que la nouvelle donnée appartient à la
classe rouge puisqu'elle a 3 rouges et 2 bleus dans son entourage.
Vote Majoritaire
60
KNN: k Nearest Neighbors
3. Définir les k plus
1. Initialiser la 2. Calculer la proches voisins
nouvelle donnée Distance & Voter pour les
1.Calculer la distance
2.Trouver les plus proches voisins étiquettes
3.Votez pour les étiquettes
61
KNN: k Nearest Neighbors
62
KNN: k Nearest Neighbors
Avantages Inconvénients
• Apprentissage rapide • Prédiction Lente et coûteuse en
• Ne nécessite pas une temps et en mémoire, car il faut
généralisation de modèle stocker tous les exemples et il faut
• Peut être utile en cas de données les revoir de nouveau pour chaque
non linéaires. prédiction.
• Méthode facile à comprendre . • Ne convient pas pour les grandes
dimensions.
63
KNN: L’algorithme
1.Charger les données
2.Initialiser k au nombre de plus proches voisins choisi
3. Pour chaque exemple dans les données:
3.1 Calculer la distance entre notre requête et l’observation itérative actuelle de la
boucle depuis les données.
3.2 Ajouter la distance et l’indice de l’observation concernée à une collection
ordonnée de données
4. Trier cette collection ordonnée contenant distances et indices de la plus petite
distance à la plus grande (dans l’ordre croissant).
5. Sélectionner les k premières entrées de la collection de données triées (équivalent aux k plus
proches voisins)
6. Obtenir les étiquettes des k entrées sélectionnées
7. Si régression, retourner la moyenne des k étiquettes
8. Si classification, retourner le mode (valeur la plus fréquente/commune) des k étiquettes
64
KNN: k Nearest Neighbors
Tp 26
KNN: k Nearest Neighbors
Rappel sur enumerate:
Mots = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(Mots)))
#[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
print(list(enumerate(Mots, start=1)))
#[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter’)]
Tp 27
KNN: k Nearest Neighbors
Tp 27
KNN: k Nearest Neighbors
Tp 27
KNN: k Nearest Neighbors
Tp 27
Matrice de confusion
71
Matrice de confusion
72
Matrice de confusion
73
74
75
76
Apprentissage non supervisé (unsupervised learning)
77
Apprentissage non supervisé (unsupervised learning)
canar
Lapin
hérisson
78
Apprentissage non supérvisé
79
Classification supervisée et non supervisée
Ce qui ressemble
s’assemble !
80
Apprentissage non supervisé
• Matrice de similarité 0
d(2,1) 0
d(3,1) d ( 3,2) 0
: : :
d ( n,1) d ( n,2) ... ... 0
81 81
Apprentissage non supervisé
d (i, j) (| x x | | x x | ... | x x | )
q
q q q
i1 j1 i2 j2 ip jp
d(p1,p2)=120
d(p1,p3)=132
Conclusion: p1 ressemble plus à p2 qu’à p3
Apprentissage non supervisé
Clustering
le processus de regroupement d'entités similaires. Les données
groupées sont utilisées pour créer des clusters. Le but de cette
technique est de rechercher des similitudes dans les données ainsi
que de déterminer à quel groupe de nouvelles données doivent
appartenir. Ex : k-means (CPGE), hierarchical clustering, db-scan..
85
Apprentissage non supervisé
86 86
La méthode des k-moyennes (K-Means)
Méthode des centres mobiles
88
Apprentissage non supervisé - Clustering
Méthode des centres mobiles: K-means
• dist(3,M2)<dist(3,M3)3 passe dans C2. Tous les autres objets ne bougent pas.
C1={1}, M1=1, C2={2,3}, M2=2.5,C3={6,7,8,13,15,17} et M3= 66/6=11
• dist(6,M2)<dist(6,M3)6 passe dans C2. Tous les autres objets ne bougent pas.
C1={1}, M1=1, C2={2,3,6}, M2=11/3=3.67, C3={7,8,13,15,17}, M3= 12
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
0 0
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
10 10
9 9
8 8
7 7
6 6
5 5
4 4
3
3
2
2
1
1
0
0
0 1 2 3 4 5 6 7 8 9 10
90 0 1 2 3 4 5 6 7 8 9 10
Apprentissage non supervisé - Clustering
Méthode des centres mobiles: K-means
Tp 51
91
92
93
94
95
96