SlideShare une entreprise Scribd logo
UNIVERSITE IBN ZOHR
FACULTE DES SCIENCES
Département Informatique
Filière Sciences Mathématiques et Informatique
PFE
Présenté par: EL YOUSSFI Haytam
Email : elyoussfihaytam@gmail.com
Pour l’obtention de la
Licence en Sciences Mathématiques et Informatique
Deep Learning : Application à la
reconnaissance d’objets de classes multiples
sur les images et les vidéos
Soutenu le 23/05/2019
Année universitaire 2018-2019
Table des matières
1 Introduction générale 8
2 L’apprentissage automatique et la classification 10
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 L’apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Les types d’apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 La différence entre l’apprentissage supervisé et l’apprentissage non supervisé . . . . . . . . . . 12
2.2.3 L’apprentissage supervisé et les réseaux de neurones profonds . . . . . . . . . . . . . . . . . . 12
2.2.4 L’apprentissage automatique et la vision par ordinateur . . . . . . . . . . . . . . . . . . . . . 13
2.3 L’apprentissage profond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Les motivations de la classification des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Notions de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.1 Définition d’une image numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.2 Caractéristiques de l’image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 Classification des images et l’apprentissage machine . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.7 Classification des images et les réseaux de neurones profonds . . . . . . . . . . . . . . . . . . . . . . 17
2.8 Révolution d’apprentissage profond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.8.1 L’évolution des CPU et des GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.8.2 Les nouvelles architectures de réseaux des neurones utilisés par l’apprentissage profond . . . . 21
2.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Modélisation des neurones 23
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Les neurones biologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Modélisation d’un neurone artificiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Le perceptron simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.1 Régles d’apprentissages de HEB et Frank Rosenblatt . . . . . . . . . . . . . . . . . . . . . . 25
3.4.2 La descente du gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.3 Comment représenter les données en Machine Learning ? . . . . . . . . . . . . . . . . . . . . 27
3.4.4 Exemple d’application du percetron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.5 Les mesures de la performance d’un neurone artificiel : . . . . . . . . . . . . . . . . . . . . . 31
3.4.6 Courbe ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4.7 Les limitations du perceptron : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5 Les réseaux de neurones multicouches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.1 Propagation de l’information, le calcul de la sortie du réseau . . . . . . . . . . . . . . . . . . 35
3.5.2 Le Rétro-propagation de l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.3 classification binaire d’un ensemble de données par réseau de neurones . . . . . . . . . . . . . 39
3.5.4 Le taux d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5.5 Préparation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4 Les Réseaux de neurones convolutifs 53
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 Les réseaux de neurones convolutifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3 Architecture de réseaux de neurones convolutifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 Couche de convolution(CONV) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.2 Couche de pooling (POOL) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3.3 Couches de correction (RELU) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3.4 Couche entièrement connectée (FC) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3.5 Couche de perte (LOSS) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2
TABLE DES MATIÈRES
4.4 Exemples des modèles de CNN : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.5 Choix des paramètres : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.5.1 Nombre de filters : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.5.2 Forme du filtre : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.5.3 Forme du Max Pooling : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6 Méthodes de régularisation : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.1 Empirique : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.2 Explicite : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5 La détection des classes d’objets dans sur les vidéos 60
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 La phase de détection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3 La relation entre la détection et la classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3.1 Les problèmes des fenêtres glissantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.4 R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.5 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6 Implémentation et évaluation 65
6.1 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.2 Logiciels et librairies Utilisés dans l’implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2.2 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2.3 Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2.4 Scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.3 Configuration utilisé dans l’implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.4 Atelier 1 : Exemple d’un classificateur du sexe d’une personne à partir de sa taille et son poids . . . . 66
6.5 Atelier 2 : Exemple d’une classification binaire et multiple par un réseau de neurone multicouches (MLP) 70
6.5.1 Le réseau de neurone multi-couche dans le cas de classification binaire . . . . . . . . . . . . . 70
6.5.2 Le réseau de neurone multi-couche dans le cas d’une classification multiple . . . . . . . . . . 75
6.6 Atelier 3 : Classification multiple avec réseau de neurones convolutifs . . . . . . . . . . . . . . . . . . 77
6.6.1 Architecture de notre réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.6.2 Résultats obtenus et discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.6.3 Comment développer un modèle amélioré ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7 Conclusion et prespectives 89
HAYTAM EL YOUSSFI, PFE: Deep Learning 3
Liste des tableaux
2.1 Voisinnage à 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Voisinnage à 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1 La matrice de confusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 la fonction OU exclusif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4
Table des figures
2.1 Diagramme de l’apprentissage supervisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Diagramme de l’apprentissage non supervisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Diagramme de l’apprentissage par renforcement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 L’apprentissage profond - l’apprentissage automatique - l’intelligence artificielle . . . . . . . . . . . . 14
3.1 Schèma d’un neurone biologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Représentation d’un perceptron mono-couche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Un déplacement dans le sens opposé au gradient (fléche Rose ) raproche Wj de la valeur minimisant
l’erreur (point orange) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4 Une cross-validation à 5 folds : Chaque point appartient à 1 des 5 jeux de test (en blanc) et aux 4
autres jeux d’entraı̂nements (en orange) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Représentation visuelle de la validation de train / test et de la validation croisée. . . . . . . . . . . . 28
3.6 Train / Test Split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.7 Graphe de la fonction ET logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8 Précision et rappel (recall) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.9 Courbe ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.10 AUC (aire sous la courbe ROC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.11 Graphe de la fonction Ou exclusif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.12 Un réseau de neurones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.13 Graphe de la fonction d’identité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.14 Graphe de la fonction Heaviside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.15 Graphe de la fonction sigmoide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.16 Graphe de la fonction Tangente Hyperbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.17 Schéma de rétro-propagation du gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.18 Diagramme de la règle de la chaine dérivée partielle avec un seul chemin . . . . . . . . . . . . . . . . 37
3.19 Diagramme de la règle de la chaine dérivée partielle avec deux chemins . . . . . . . . . . . . . . . . 38
3.20 La distribution des deux ensembles de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.21 Structure du réseau de neurones utilisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.22 Les poids qui relient la couche d’entrée avec la couche cachée . . . . . . . . . . . . . . . . . . . . . 42
3.23 Les poids qui relient la couche cachée avec la couche de sortie . . . . . . . . . . . . . . . . . . . . . 43
3.24 Le sortie de chaque neurone du réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.25 Le descente du gradient du neurone de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.26 Le descente du gradient de chaque neurone de la couche cachée . . . . . . . . . . . . . . . . . . . . 46
3.27 Mise à jour des poids relient la couche entrée avec la couche cachée . . . . . . . . . . . . . . . . . . 46
3.28 Mise à jour des poids relient la couche cachée avec la couche sortie . . . . . . . . . . . . . . . . . . 47
3.29 Les résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.30 Taux d’apprentissage trop bas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.31 Taux d’apprentissage trop élevé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.32 Taux d’apprentissage adéquat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.33 Modéle 1 :Illustration inspirée du cours d’Andrew NG . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.34 Modéle 2 :Illustration inspirée du cours d’Andrew NG . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.35 Exemple de données répondant à une loi normal X ∼ N(3.8, 4.3) . . . . . . . . . . . . . . . . . . . 52
4.1 Architecture standard d’un réseau de neurone convolutif . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2 : Une couche du CNN en 3 dimensions. (Vert = volume d’entrée, bleu = volume du champ récepteur,
gris = couche de CNN, cercles = neurones artificiels indépendants) . . . . . . . . . . . . . . . . . . 55
4.3 Pooling avec un filtre 2x2 et un pas de 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.4 Graphe de la fonction ReLU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.5 Exemples de modèles de CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5
TABLE DES FIGURES
5.1 Détection des objets en utilisant des cadres de sélection . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 Le cadre de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.3 IoU Score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4 les sorties possibles de la détection d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.5 La détection d’un object dans deux différents ”frames” d’un vidéo . . . . . . . . . . . . . . . . . . . 62
5.6 Les problèmes des annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.7 Score Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.8 R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.9 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.1 L’architecture de notre réseaux de neurone Multicouches(MLP) . . . . . . . . . . . . . . . . . . . . . 70
6.2 La distribution des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.3 Visualisation des images des nombres manuscrits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.4 Flux de travail de Tensorflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.5 La configuration de modéle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.6 Entrainement du modéle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.7 Evaluation du modéle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.8 La prédiction sur l’ensemble de donnée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.9 La courbe d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.10 La courbe de précision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.11 L’affichage des poids synaptiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.12 La couche sortie d’un réseau de neurone dans le cas de classification Multiple . . . . . . . . . . . . . 76
6.13 Visualisation des images des nombres manuscrits allant de 0 à 9 . . . . . . . . . . . . . . . . . . . . 76
6.14 La structure de notre réseau de neurone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.15 Base des images :CIFAR-10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.16 La base des images :CIFAR-100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.17 Configuration du modèle 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.18 Configuration du modèle 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.19 Configuration du modèle 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.20 Précision et Erreur pour le Modèle 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.21 Matrice de Confusion pour le Modèle 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.22 Nombre total des images mal et bien classé de modéle 1 . . . . . . . . . . . . . . . . . . . . . . . . 81
6.23 Taux d’erreur et la précision de modéle 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.24 Précision et Erreur pour le Modèle 02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.25 Matrice de Confusion pour le Modèle 02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.26 Nombre total des images mal et bien classé de Modéle 2 . . . . . . . . . . . . . . . . . . . . . . . . 83
6.27 Taux d’erreur et la précision de Modéle 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.28 Précision et Erreur pour le modèle 03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.29 Matrice de Confusion pour le modèle 03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.30 Nombre total des images mal et bien classé du Modéle 3 . . . . . . . . . . . . . . . . . . . . . . . . 85
6.31 Taux d’erreur et la précision du Modéle 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.32 La courbe de précision du modéle 3 prés l’amélioration . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.33 La courbe d’erreur du modéle 3 prés l’amélioration . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
HAYTAM EL YOUSSFI, PFE: Deep Learning 6
TABLE DES FIGURES
Liste des abréviations
DL : L’apprentissage profond ( Deep Learning )
ML :L’apprentissage automatique (Machine learning )
GPU : Un processeur graphique (Graphics Processing Unit)
CPU : unité centrale de traitement (central processing unit)
ROC : La fonction d’efficacité du récepteur (receiver operating characteristic,)
CONV : Couche de convolution
POOL : Couche de pooling
FC : Couche entiérement connectée
CNN : Les réseaux de neurones convolutifs(Convolutional Neural Network )
MLP : Les perceptrons multicouches (Multi Layer Perceptron)
PNL :Système de traitement du langage naturel
RNN : Les réseaux de neurones récurrents
GAFAM : (Google, Apple, Facebook, Amazon, Microsoft).
RVB : (Rouge, Vert, Bleu)
HAYTAM EL YOUSSFI, PFE: Deep Learning 7
Chapitre 1
Introduction générale
Nous vivons dans un monde numérique, où les informations sont stockées, traitées, indexées et recherchées par des
systèmes informatiques, ce qui rend leur récupération une tâche rapide et pas cher. Au cours des dernières années,
des progrès considérables ont été réalisés dans le domaine de classification d’images. Ce progrès est dû aux nombreux
travaux dans ce domaine et à la disponibilité des bases d’images internationales qui ont permis aux chercheurs de
signaler de manière crédible l’exécution de leurs approches dans ce domaine, avec la possibilité de les comparer à
d’autres approches qu’ils utilisent les mêmes bases.
Dans la fin des années 80 Yan le Cun 1
a développé un type de réseau particulier qui s’appelle le réseau de neurone
convolutionnel, ces réseaux sont une forme particulière de réseau neuronal multicouche dont l’architecture des
connexions est inspirée de celle du cortex visuel des mammifères. Par exemple, chaque élément n’est connecté qu’à
un petit nombre d’éléments voisins dans la couche précédente. En 1995, Yan le cun et deux autres ingénieurs ont
développé un système automatique de lecture de chèques qui a été déployé largement dans le monde. À la fin des
années 90, ce système lisait entre 10 et 20 % de tous les chèques émis aux États-Unis. Mais ces méthodes étaient
plutôt difficiles à mettre en oeuvre avec les ordinateurs de l’époque, et malgré ce succès, les réseaux convolutionnels
et les réseaux neuronaux plus généralement ont été délaissés par la communauté de la recherche entre 1998 et 2013.
En 2014 et 2015 trois événements ont soudainement changé la situation. Tout d’abord, les GPU (Graphical Pro-
cessing Unit) capables de plus de mille milliards d’opérations par seconde sont devenus disponibles pour un prix moins
cher. Ces puissants processeurs spécialisés, initialement conçus pour le rendu graphique des jeux vidéo, se sont avérés
être très performants pour les calculs des réseaux neuronaux. Deuxièmement, des expériences menées simultanément
à Microsoft, Google et IBM avec l’aide du laboratoire de Geoff Hinton ont montré que les réseaux profonds pou-
vaient diminuer de moitié les taux d’erreurs des systèmes de reconnaissance vocale. Troisièmement plusieurs records
en reconnaissance d’image ont été battus par des réseaux de neurones convolutionnels. L’événement le plus marquant
a été la victoire éclatante de l’équipe de Toronto dans la compétition de reconnaissance d’objets ”ImageNet” 2
. La
diminution des taux d’erreurs était telle qu’une véritable révolution. Du jour au lendemain, la majorité des équipes
de recherche en parole et en vision ont abandonné leurs méthodes préférées et sont passées aux réseaux de neurones
convolutionnels et autres réseaux neuronaux. L’industrie d’Internet a immédiatement saisi l’opportunité et a commencé
à investir massivement dans des équipes de recherche et développements en apprentissage profond.
Dans notre projet on va utiliser les réseaux de neurones convolutionnels pour classifier les images, on va créer
différents modèles avec différents architectures et par la suite on va appliquer ces modèles sur les bases d’images
(Les IRISIRIS est un jeu de données multivariées présenté par Ronald Fisher dans son papier The use of multiple
measurements in taxonomic problems comme un exemple d’application de l’analyse discriminante linéaire , MNIST
,CIFAR10 . . . .. ) .
Pour ce faire, nous avons structuré notre Projet en quatre chapitres :
 Dans le premièr chapitre on va parlé de Machine learnigng (l’apprentissage automatique) et les différent types
et nous spécialisons sur Deep Learning (L’apprentisage profond ) et les domaines d’application , on particulier
classification des images et les vidéos donc nous présenterons les notions de base de la classification des images,
les différents types des images et leur caractéristiques, ainsi que l’utilisation des réseaux de neurones artificiel
dans la classification des images et les vidéos .
 Dans le deuxième chapitre, nous présenterons la notion de modélisation d’un réseau de neurone, l’utilisation
dans la classification des images et les vidéos et les diffèrents paramétres qui composent de réseau de neurones
.
 Dans le troisième chapitre est consacré à la description des réseaux de neurones convolutionnels ainsi que leurs
l’intérêt dans le domaine de la classification des images et les vidéos .
1. Yan le Cun :est un chercheur en intelligence artificielle et vision artificielle (robotique). Il est considéré comme l’un des inventeurs
de l’apprentissage profond
2. ImageNet est une base de données d’images annotées produit par l’organisation du même nom, à destination des travaux de
recherche en vision par ordinateur.
8
CHAPITRE 1. INTRODUCTION GÉNÉRALE
 Dans le quatrième chapitre, nous montrerons la partie expérimentale de notre travail, nous discuterons des
différents résultats obtenus et nous nous terminerons par une conclusion générale.
 Dans le cinquième chapitre, nous discuterons des méthodes de détection des classes d’objets dans les vidéos en
ignorant leurs fonctionnalités temporelles.
HAYTAM EL YOUSSFI, PFE: Deep Learning 9
Chapitre 2
L’apprentissage automatique et la
classification
2.1 Introduction
Les statistiques montrent qu’il y a plus de 3,8 milliards d’utilisateurs de courrier électronique et que 205 milliard
de courriers sont envoyés par jour. Imaginez combien de courrier vous recevez sur votre adresse de courriel. Lorsque
vous êtes trop actif sur Internet, vous risquez de recevoir du nombreux courriels qui ne vous intéressent pas, vous
aurez du mal à trouver les Emails intéressants. Si les fournisseurs du service de messagerie ne vous protègent pas de
ce problème, alors comment peuvent-ils déterminer si un Email est un spam ou non ?
Les fournisseurs de services du messagerie tels que Gmail utilisent L’apprentissage automatique pour distinguer les
mais des spams.
L’apprentissage automatique collecte les données de vos courriels et l’objectif de votre courrier électronique afin
de prédire les courriels susceptibles d’être du spam. [6]
Alors, qu’est-ce que l’apprentissage automatique et comment ça marche ?
2.2 L’apprentissage automatique
Les machines peuvent-elles penser ?
”Can machines think ?”... The new form of the
problem can be described in terms of a game
which we call the ’imitation game’.
”Les machines peuvent-elles penser ?” ... La
nouvelle forme du problème peut être décrite en
termes de jeu appelé ”jeu d’imitation”.
Alan Mathison Turing
Le jeu d’imitation est joué par trois personnes, un homme et une femme et un interrogateur ou une interrogatrice.
Ce jeu consiste à demander à l’interrogateur de distinguer qui est l’homme et qui est la femme en posant simplement
des questions aux ces deux personnes. S’il y a deux personnes A et B, l’interrogateur doit déterminer si A est un
homme et B est une femme, ou A est une femme et B est un homme. Pour répondre à la question posé, au lieu
d’utiliser un homme et une femme, on utilise une personne et une machine, si l’interrogateur ne peut pas distinguer
qui est la personne, et qui est la machine, si l’interrogateur ne peut pas distinguer qui est la personne, et qui est la
machine,donc on peut dire que les machines pensent, c’est-à-dire que la machine est devenue intelligente, et c’est la
définition de l’intelligence artificielle donnée par Alan Mathison Turing en 1950.[6]
On peut définir les machines intelligentes comme des des machines auto-programmés, creatives, ont la possiblité
de reconnaitre des modèles d’une manière sophistiqué, simuler le cerveau, et de traiter les données rapidement, qui
sont maintenant utilisée pour automatiser le travail de routine, reconaissance de la parole ou des images, établir un
diagnostic en médecine et soutenir la recherche scientifique fondamentale, et maintenant, chercheurs, ingénieurs et
entrepreneurs s’intéressent aux nouvelles technologies telles que :les systèmes de répondeur téléphonique intelligent et
les algorithmes de recherche, les assistants personnels en forme de robots, ainsi que les méthodes de réparation du
cerveau humain blessé ou défectueux.[14]
L’intelligence artificielle a commencée par des essaies d’inventir des jeux d’ordinateurs qui peuvent gangner contre
les humains, c’était le premier domaine sur lequel les scientifiques ont essayé d’appliquer l’intelligence artificielle.
10
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
— En 1952, OXO (ou Morpion, Tic Tac Toe), mis au point par l’informaticien britannique Alexander S. Douglas
pour l’ordinateur EDSAC de l’Université de Cambridge, devint l’un des premiers jeux connus. l’ordinateur
pourrait jouer des jeux parfaits de tic-tac-toe contre un adversaire humain.
— En 1952, Arthur Samuel a inventé un programme appelée ”Samuel Checkers” (jeu de dames) a été l’un des pre-
miers programmes réussis au monde et, une démonstration très précoce du concept fondamental d’intelligence
artificielle (IA), ce programme s’améliorait en jouant, et il parvint à battre le 4e meilleur joueur des États-Unis.
— En 1956, Alex Bernstein un mathématicien américain, joueur d’échecs et employé d’IBM. Avec ses collègues
Michael de V. Roberts, Timothy Arbuckle et Martin Belsky, Alex Bernstein était l’auteur principal du programme
d’échecs Bernstein pour l’IBM 704.
Ces évolutions ont conduit à la naissance d’un nouveau domaine de l’intelligence , qui est l’apprentissage automatique.
L’apprentissage automatique, est l’étude scientifique d’algorithmes et de modèles statistiques que les systèmes
informatiques utilisent pour effectuer efficacement une tâche spécifique sans utiliser d’instructions explicites, en s’ap-
puyant plutôt sur des modèles et sur des inférences.
— Machine Learning is the field of study that
gives computers the ability to learn without being
explicitly programmed.
— L’apprentissage automatique est le domaine
d’étude qui donne aux ordinateurs la possibilité
d’apprendre sans être explicitement programmé.
Arthur Samuel, 1959
Les algorithmes d’apprentissage automatique construisent un modèle mathématique d’échantillons de données,
appelé ”données d’apprentissage”, afin de faire des prédictions ou de prendre des décisions sans être explicitement
programmé pour effectuer la tâche.
Les algorithmes d’apprentissage automatique sont utilisés dans une grande variété d’applications, telles que le filtrage
de courrier électronique et la vision par ordinateur, où il est impossible de développer un algorithme d’instructions
spécifiques pour effectuer la tâche.
L’apprentissage automatique est étroitement lié aux statistiques informatiques, qui se concentrent sur la réalisation
de prédictions à l’aide d’ordinateurs. L’étude de l’optimisation mathématique permet d’appliquer des méthodes, de la
théorie et des domaines d’application au domaine de l’apprentissage automatique.[15]
2.2.1 Les types d’apprentissage automatique
Il existe trois types d’apprentissages dans l’apprentissage automatique ”Machine Learning” :
— L’apprentissage supervisé :L’objectif principal de ce type est de faire apprendre à un modèle en utilisant des
données d’apprentissage étiquetées, ce qui nous permet de faire des prédictions sur des données non vues
ou futures. Terme supervisé ici fait référence à un ensemble d’échantillons où les données de sortie souhaités
libellées sont déjà connues.[3]
Figure 2.1 – Diagramme de l’apprentissage supervisé
— L’apprentissage non supervisé s’agit de trouver des structures sous-jacentes à partir de données non étiquetées.
Puisque les données ne sont pas étiquetées, il n’est pas possible d’affecter au résultat de l’algorithme utilisé un
score d’adéquation. Cette absence d’étiquetage est ce qui distingue les tâches d’apprentissage non-supervisé
des tâches d’apprentissage supervisé.[3]
HAYTAM EL YOUSSFI, PFE: Deep Learning 11
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
Figure 2.2 – Diagramme de l’apprentissage non supervisé
— L’apprentissage par renforcement consiste, pour un agent autonome (robot, etc.), à apprendre les actions à
prendre, à partir d’expériences, de façon à optimiser une récompense quantitative au cours du temps. L’agent
est plongé au sein d’un environnement, et prend ses décisions en fonction de son état courant. En retour,
l’environnement procure à l’agent une récompense, qui peut être positive ou négative. L’agent cherche, au
travers d’expériences itérées, un comportement décisionnel (appelé stratégie ou politique, et qui est une fonction
associant à l’état courant l’action à exécuter) optimal, en ce sens qu’il maximise la somme des récompenses
au cours du temps.[3]
Figure 2.3 – Diagramme de l’apprentissage par renforcement
2.2.2 La différence entre l’apprentissage supervisé et l’apprentissage non supervisé
La principale différence entre les deux types réside dans le fait que l’apprentissage supervisé se fait sur la base
d’une vérité fondamentale. En d’autres termes, nous avons une connaissance préalable de ce que devraient être
les valeurs de sortie de nos échantillons. Par conséquent, l’objectif de l’apprentissage supervisé est d’apprendre une
fonction qui, à partir d’un échantillon de données et des résultats souhaités, se rapproche le mieux de la relation
entre entrée et sortie observable dans les données. En revanche, l’apprentissage non supervisé consiste à apprendre
sans superviseur. Il s’agit d’extraire des classes ou groupes d’individus présentant des caractéristiques communes. La
qualité d’une méthode de classification est mesurée par sa capacité à découvrir certains ou tous les motifs cachés.
2.2.3 L’apprentissage supervisé et les réseaux de neurones profonds
Plus nous connaissons bien un domaine, plus il nous est facile de résoudre des problèmes dans ce domaine.
L’expérience facilite la raisonnement dans un domaine, car nous pouvons utiliser des exemples que nous avons rencontrés
pour trouver des solutions intuitives. En physique, par exemple, nous apprenons un domaine comme l’électricité et le
magnétisme en résolvant de nombreux problèmes et non en mémorisant des formules. Si l’intelligence humaine était
basée uniquement sur la logique, elle devrait être du domaine général, ce qui n’est pas le cas.[13]
Donc, pour créer une intelligence artificielle, nous devons créer un système simulant le cerveau humain. Quatre
indices ont aidé l’IA à devenir un domaine basé sur l’apprentissage par l’expérience, non purement sur la logique :
— Le premier indice était que notre cerveau est un système puissant de reconnaissance des modèles (motifs). Nos
systèmes visuels peuvent reconnaı̂tre un objet dans une scène encombrée en un dixième de seconde, même
si nous n’avons peut-être jamais vu cet objet particulier auparavant et même lorsque l’objet se trouve dans
n’importe quel endroit, quelle que soit sa taille et son orientation. . En bref, notre système visuel se comporte
comme un ordinateur dont l’objet reconnaı̂t un objet est une instruction unique.
— Le deuxième indice était que nos cerveaux peuvent apprendre à effectuer de nombreuses tâches difficiles par la
pratique.
— Le troisième indice était que nos cerveaux ne sont pas remplis de logique ou de règles. Oui, nous pouvons
apprendre à penser de manière logique ou à suivre des règles, mais seulement après beaucoup d’entraı̂nement.
— Le quatrième indice était que nos cerveaux sont remplis de milliards de neurones qui communiquent constam-
ment les uns avec les autres.[13]
HAYTAM EL YOUSSFI, PFE: Deep Learning 12
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
Ceci suggère que, pour résoudre des problèmes difficiles de l’intelligence artificielle, nous devrions nous intéresser à
des ordinateurs dotés d’architectures parallèles au cerveau humain, ce qui conduit à la création de réseaux de neurones
artificiels.
Un réseau de neurones artificiels, ou réseau neuronal artificiel, est un système dont la conception est à l’origine
schématiquement inspirée du fonctionnement des neurones biologiques, et qui par la suite s’est rapproché des méthodes
statistiques.
Définition : Les réseaux de neurones sont une métaphore des structures cérébrales : des assemblages de constituants
élémentaires, qui réalisent chacun un traitement simple voire simpliste, mais dont l’ensemble fait émerger des propriétés
globales dignes d’intérêt. Chaque constituant fonctionne indépendamment des autres, de telle sorte que l’ensemble est
un système parallèle, fortement interconnecté. L’information détenue par le réseau de neurones est distribuée à travers
l’ensemble des constituants, et non localisée dans une partie de mémoire sous la forme d’un symbole. Enfin, un réseau
de neurones ne se programme pas pour réaliser telle ou telle tâche. Il est entraı̂né sur des données acquises, grâce à
un mécanisme d’apprentissage qui agit sur les constituants du réseau afin de réaliser au mieux la tâche souhaitée.[7]
Historique des réseaux de neurones artificiels
— En 1943, le neurophysiologiste Warren McCulloch et le mathématicien Walter Pitts publient un article décrivant
le fonctionnement de neurones en les représentant à l’aide de circuits électriques. Cette représentation sera la
base théorique des réseaux neuronaux.
— En 1957, Frank Rosenblatt invente le perceptron alors qu’il travaillait au laboratoire aéronautique Cornell.
L’invention du perceptron a suscité beaucoup d’enthousiasmes.
— En 1970, Seppo Linnainmaa publie la méthode générale de différenciation automatique (AD) de réseaux
connectés discrets de fonctions différentiables imbriquées. Ceci correspond à la version moderne de back-
propagation, mais n’est pas encore nommé comme tel.
— En 1980, Kunihiko Fukushima publie pour la première fois ses travaux sur le néocognitron, un type de réseau de
neurones artificiels (ANN). La néocognition inspire plus tard les réseaux de neurones convolutionnels (CNN). (la
néocognition a été utilisé pour la reconnaissance de caractères manuscrite et d’autres tâches de reconnaissance
de formes)
L’apprentissage automatique a utilisé des approches algorithmiques pendant plusieurs années, notamment l’ap-
prentissage par arbre de décision, la programmation de la logique inductive, l’apprentissage par renforcement et les
réseaux bayésiens 1
. Mais, aucun n’a atteint l’objectif ultime de l’intelligence artificielle générale.
2.2.4 L’apprentissage automatique et la vision par ordinateur
La vision par ordinateur était l’un des meilleurs domaines d’application pour l’apprentissage automatique depuis
de nombreuses années, bien qu’il requiert encore beaucoup de codage manuel pour faire le travail. Les informaticiens
écrivaient des classificateurs codés à la main tels que des filtres de détection des contours afin que le programme
puisse identifier où un objet commençait et s’arrêtait ; détection de forme pour déterminer si elle avait huit côtés ;
un classificateur pour reconnaı̂tre les lettres S-T-O-P. À partir de tous ces classificateurs codés à la main, ils
développeraient des algorithmes pour donner un sens à l’image et apprendraient pour déterminer s’il s’agissait d’un
signe d’arrêt.
Il ya une raison pour laquelle la vision par ordinateur et la détection d’image n’ont rivalisé avec l’être humain que
très récemment : c’était trop fragile et trop sujet aux erreurs. Le temps et les bons algorithmes d’apprentissage ont
fait toute la différence.
2.3 L’apprentissage profond
1. Un réseau bayésien est en informatique et en statistique un modèle graphique probabiliste représentant des variables aléatoires sous
la forme d’un graphe orienté acyclique.
HAYTAM EL YOUSSFI, PFE: Deep Learning 13
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
Figure 2.4 – L’apprentissage profond - l’apprentissage automatique - l’intelligence artificielle
L’apprentissage profond est un ensemble de méthodes d’apprentissage automatique tentant de modéliser avec un
haut niveau d’abstraction des données grâce à des architectures articulées de différentes transformations non linéaires.
Ces techniques ont permis des progrès importants et rapides dans les domaines de l’analyse du signal sonore ou visuel
et notamment de la reconnaissance faciale, de la reconnaissance vocale, de la vision par ordinateur, du traitement
automatisé du langage. Dans les années 2000, ces progrès ont suscité des investissements privés, universitaires et
publics importants, notamment de la part des GAFAM (Google, Apple, Facebook, Amazon, Microsoft). Les techniques
d’apprentissage profond constituent une classe d’algorithmes d’apprentissage automatique qui :
— utilisent différentes couches d’unité de traitement non linéaire pour l’extraction et la transformation des ca-
ractéristiques ; chaque couche prend en entrée la sortie de la précédente ; les algorithmes peuvent être supervisés
ou non supervisés, et leurs applications comprennent la reconnaissance de modèles et la classification statistique ;
— fonctionnent avec un apprentissage à plusieurs niveaux de détail ou de représentation des données ; à travers
les différentes couches, on passe de paramètres de bas niveau à des paramètres de plus haut niveau, où les
différents niveaux correspondent à différents niveaux d’abstraction des données.
Les advantages de l’apprentissage profond :
— Plus de neurones que les réseaux utilisées par l’apprentissage automatique.
— Moyens plus complexes de connecter des couches / neurones dans les réseaux des neurones.
— Plus grand capacité de calcul disponible pour entrainer un réseau.
— Extraction automatique des caractéristiques. [11]
2.4 Les motivations de la classification des images
La classification des images consiste à répartir systématiquement des images selon des classes établies au préalable,
classer une image lui fait correspondre une classe, marquant ainsi sa parenté avec d’autres images.
En général reconnaı̂tre une image est une taché aisée pour un humain au fil de son existence, il a acquis des
connaissances qui lui permettent de s’adapter aux variations qui résultent de conditions différents d’acquisition.il lui
est par exemple relativement simple de reconnaı̂tre un objet dans plusieurs orientations partiellement caché par un
autre de près ou de loin et selon diverses illuminations.
Toutefois les progrès technologiques en terme d’acquisition d’images (microscopes, caméras, capteurs) et de sto-
ckage engendrent des bases de données riche en information et multiplient les domaines d’applications, il devient
alors difficile pour l’humain d’analyser le nombre important d’images, le temps requis le caractère répétitif de la tâche
et la concentration nécessaire sont problématiques. Toutefois celle-ci n’est pas forcément aisée pour un programme
informatique pour lequel une image est un ensemble de valeur numérique .
L’objectif de la classification d’images est d’élaborer un système capable d’affecter une classe automatiquement à
une image. Ainsi, ce système permet d’effectuer une tâche d’expertise qui peut s’avérer coûteuse à acquérir pour un
être humain en raison notamment de contraintes physiques comme la concentration, la fatigue ou le temps nécessité
par un volume important de données images .
Les applications de la classification automatique d’images sont nombreuses et vont de l’analyse de documents à la
médecine en passant par le domaine militaire. Ainsi on retrouve des applications dans le domaine médical comme la
reconnaissance de cellules et de tumeurs, la reconnaissance d’écriture manuscrite pour les chèques les codes postaux.
Dans le domaine urbain comme la reconnaissance de panneaux de signalisation la reconnaissance de piétons la détection
HAYTAM EL YOUSSFI, PFE: Deep Learning 14
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
de véhicules la reconnaissance de bâtiments pour aider à la localisation. Dans le domaine de la biométrie comme la
reconnaissance de visage, d’empreintes, d’iris.
Le point commun à toutes ces applications est qu’elles nécessitent la mise en place d’une chaı̂ne de traitement à
partir des images disponibles composée de plusieurs étapes afin de fournir en sortie une décision. Chaque étape de la
mise en place d’un tel système de classification nécessite la recherche de méthodes appropriées pour une performance
globale optimale à savoir la phase d’extraction de caractéristiques et la phase d’apprentissage. Typiquement, nous
disposons de données images desquelles il nous faut extraire des informations pertinentes traduites sous formes de
vecteurs numériques. Cette phase d’extraction nous permet de travailler dans un espace numérique. Il s’agit ensuite
d’élaborer dans la phase d’apprentissage, à partir de ces données initiales, une fonction de décision pour décider de
l’appartenance d’une donnée nouvelle à l’une des classes en présence.
2.5 Notions de base
2.5.1 Définition d’une image numérique
Une image est une représentation planaire d’une scène ou d’un objet situé en général dans un espace tridimensionnel,
elle est issue du contact des rayons lumineux provenant des objets formants la scène avec un capteur (caméra, scanner,
rayons X, ...). Il ne s’agit en réalité que d’une représentation spatiale de la lumière.
L’image est considérée comme un ensemble de points auquel est affectée une grandeur physique (luminance, cou-
leur). Ces grandeurs peuvent être continues (image analogique) ou bien discrètes (images digitales). Mathématiquement,
l’image représente une fonction continue IF, appelée fonction image , de deux variables spatiales représentée par
IF(x, y) mesurant la nuance du niveau de gris de l’image aux coordonnées (x, y).
La fonction Image peut se représenter sous la forme suivante :
F : R2
→ R avec R l’ensemble de réels.
(x, y) → F(x, y) avec x,y : deux variables réelles.
— Image couleur RVB :L’oeil humain analyse la couleur à l’aide de trois types de cellules photo ”les cônes”
. Ces cellules sont sensibles aux basses, moyennes, ou hautes fréquences (rouge,vert,bleu). Pour représenter la
couleur d’un pixel, il faut donc donner trois nombres, qui correspondent au dosage de trois couleurs de base :
Rouge, Vert, Bleu. On peut ainsi représenter une image couleur par trois matrices chacune correspondant à
une couleur de base.
— Image d’intensité :C’est une matrice dans laquelle chaque élément est un réel compris entre 0 (noir) et 1
(blanc). On parle aussi d’image en niveaux de gris, car les valeurs comprises entre 0 et 1 représentent les
différents niveaux de gris.
— Image binaire :Une image binaire est une matrice rectangulaire dans l’élément valent 0 ou 1. Lorsque l’on
visualise une telle image, les 0 sont représentés par du noir et les 1 par du blanc.
2.5.2 Caractéristiques de l’image
L’image est un ensemble structuré d’information caractérisé par les paramètres suivants :
— Pixel : Le pixel est l’abréviation du mot  Picture élément  est une unité de surface permettant de définir la
base d’une image numérique. Il matérialise un point donné (x, y) du plan de l’image. L’information présentée
par le pixel est le niveau de gris (ou la couleur) prélevée à l’emplacement correspondant dans l’image réelle.
La différence entre image monochrome et image couleur réside dans la quantité d’informations contenue dans
chaque pixel, par exemple dans une image couleur (RVB : Rouge, Vert, Bleu) la valeur d’un pixel est représentée
sur trois octets pour chaque couleur.
— Dimension et Résolution :La dimension est la taille de l’image. Elle se présente sous forme d’une matrice
dont les éléments sont des valeurs numériques représentatives des intensités lumineuses (pixels). Le nombre
de lignes de cette matrice multiplié par le nombre de colonnes nous donne le nombre total de pixels dans une
image.
Par contre, la résolution est la clarté ou la finesse de détails atteinte par un moniteur ou une imprimante dans
la production d’images. Sur les moniteurs d’ordinateur, la résolution est exprimée en nombre de pixels par unité
de mesure (pouce ou centimètre). On utilise aussi le mot résolution pour désigner le nombre total de pixels
horizontaux et verticaux sur un moniteur. Plus ce nombre est grand, plus la résolution est meilleure.
— Voisinage : Le plan de l’image est divisé en termes de formes rectangulaires ou hexagonales permettant ainsi
l’exploitation de la notion de voisinage (voir figure). Le voisinage d’un pixel est formé par l’ensemble des pixels
qui se situent autour de ce même pixel. On définit aussi l’assiette comme étant l’ensemble de pixels définissant
le voisinage pris en compte autour d’un pixel.
On distingue deux types de voisinage :
HAYTAM EL YOUSSFI, PFE: Deep Learning 15
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
— Voisinage à 4 : On ne prend en considération que les pixels qui ont un coté commun avec le pixel considéré.
P(i,j-1)
P(i-1,j) P(i,j) P(i+1,j)
P(i,j+1)
Table 2.1 – Voisinnage à 4
— Voisinage à 8 : On prend en compte tous les pixels qui ont au moins un point en liaison avec le pixel
considéré.
P(i-1,j-1) P(i,j-1) P(i+1,j-1)
P(i-1,j) P(i,j) P(i+1,j)
P(i-1,j+1) P(i,j+1) P(i+1,j+1)
Table 2.2 – Voisinnage à 8
— Niveau de gris : C’est la valeur d’intensité lumineuse d’un pixel. Cette valeur peut aller du noir (0) jusqu’au
blanc (255) en passant par les nuances qui sont contenues dans l’intervalle [0, 255]. Elle correspond en fait à
la quantité de la lumière réfléchie.
Pour 8 bits, on dispose de 256 niveaux de gris dont 40 sont reconnus à l’oeil nue. Plus le nombre de bit est
grand plus les niveaux sont nombreux et plus la représentation est fidèle.
— Contraste : C’est l’opposition marquée entre deux régions d’une image. Une image contrastée présente une
bonne dynamique de la distribution des valeurs de gris sur tout l’intervalle des valeurs possibles, avec des blancs
bien clairs et des noirs profonds. Au contraire une image peu contrastée a une faible dynamique, la plupart des
pixels ayant des valeurs de gris très proches. Si L1 et L2 sont les degrés de luminosité respectivement de deux
zones voisines A1 et A2 d’une image, le contraste est défini par le rapport :
C = L1−L2
L1+L2
— Luminance : C’est le degré de luminosité des points de l’image. Elle est définie aussi comme étant le quotient
de l’intensité lumineuse d’une surface par l’aire apparente de cette surface, pour un observateur lointain, le mot
luminance est substitué au mot brillance, qui correspond à l’éclat d’un objet.
Une bonne luminance se caractérise par :
— Des images lumineuses (brillantes)
— Un bon contraste : il faut éviter les images où la gamme de contraste tend vers le blanc ou le noir ; ces
images entraı̂nent des pertes de détails dans les zones sombres ou lumineuses.
— L’absence de parasites.
— Bruit : Un bruit (parasite) dans une image est considéré comme un phénomène de brusque variation de
l’intensité d’un pixel par rapport à ses voisins, il provient de l’éclairage des dispositifs optiques et électroniques
du capteur. C’est un parasite qui représente certains défauts (poussière, petits nuages, baisse momentanée
de l’intensité électrique sur les capteurs, ...etc.). Il se traduit par des taches de faible dimension et dont la
distribution sur l’image est aléatoire.
— Contour : Les contours représentent la frontière entre les objets de l’image, ou la limite entre deux pixels dont
les niveaux de gris représentant une différence significative. Dans une image numérique, les contours se situent
entre les pixels appartenant à des régions ayant des intensités moyennes différentes ; il s’agit de contours de type
” saut d’amplitude ”. Un contour peut également correspondre à une variation locale d’intensité présentant un
maximum ou un minimum ; il s’agit alors de contour ”en toit ”.
2.6 Classification des images et l’apprentissage machine
Les méthodes manuelles se sont avérées très difficiles à appliquer pour des tâches en apparence très simples comme
la classification des images, la reconnaissance d’objets dans les images ou la reconnaissance vocale. Les données venant
du monde réel les échantillons d’un son ou les pixels d’une image sont complexes, variables et entachées de bruit.
Pour une machine, une image est un tableau de nombres indiquant la luminosité (ou la couleur) de chaque pixel, et
un signal sonore une suite de nombres indiquant la pression de l’air à chaque instant.Comment une machine peut-
elle transcrire la suite de nombres d’un signal sonore en série de mots tout en ignorant le bruit ambiant,
l’accent du locuteur et les particularités de sa voix ? Comment une machine peut-elle identifier un chien ou
une chaise dans le tableau de nombres d’une image quand l’apparence d’un chien ou d’une chaise et des
objets qui les entourent peut varier infiniment ?
HAYTAM EL YOUSSFI, PFE: Deep Learning 16
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
Il est virtuellement impossible d’écrire un programme qui fonctionnera de manière robuste dans toutes les situations.
C’est là qu’intervient l’apprentissage machine (que l’on appelle aussi apprentissage automatique). C’est l’apprentissage
qui anime les systèmes de toutes les grandes entreprises d’Internet.
Elles l’utilisent depuis longtemps pour filtrer les contenus indésirables, ordonner des réponses à une recherche, faire
des recommandations, ou sélectionner les informations intéressantes pour chaque utilisateur.
Un système entraı̂nable peut être vu comme une boite noire avec une entrée, par exemple une image, un son, ou
un texte, et une sortie qui peut représenter la catégorie de l’objet dans l’image, le mot prononcé, ou le sujet dont parle
le texte. On parle alors de systèmes de classification ou de reconnaissance des formes.
Dans sa forme la plus utilisée, l’apprentissage machine est supervisé : on montre en entrée de la machine une photo
d’un objet, par exemple une voiture, et on lui donne la sortie désirée pour une voiture. Puis on lui montre la photo d’un
chien avec la sortie désirée pour un chien. Après chaque exemple, la machine ajuste ses paramètres internes de manière
à rapprocher sa sortie de la sortie désirée. Après avoir montré à la machine des milliers ou des millions d’exemples
étiquetés avec leur catégorie, la machine devient capable de classifier correctement la plupart d’entre eux. Mais ce qui
est plus intéressant, c’est qu’elle peut aussi classifier correctement des images de voiture ou de chien qu’elle n’a jamais
vues durant la phase l’apprentissage. C’est ce qu’on appelle la capacité de généralisation.
Jusqu’à récemment, les systèmes de reconnaissance des images classiques étaient composés de deux blocs : un
extracteur de caractéristiques (feature extractor en anglais), suivi d’un classifieur entraı̂nable simple. L’extracteur de
caractéristiques est programmé à la main, et transforme le tableau de nombres représentant l’image en une série de
nombres, un vecteur de caractéristiques, dont chacun indique la présence ou l’absence d’un motif simple dans l’image.
Ce vecteur est envoyé au classifieur, dont un type commun est le classifieur linéaire. Ce dernier calcule une somme
pondérée des caractéristiques : chaque nombre est multiplié par un poids (positif ou négatif) avant d’être sommé. Si
la somme est supérieure à un seuil, la classe est reconnue. Les poids forment une sorte de ’prototype’ pour la classe à
laquelle le vecteur de caractéristiques est comparé. Les poids sont différents pour les classifieurs de chaque catégorie,
et ce sont eux qui sont modifiés lors de l’apprentissage. Les premières méthodes de classification linéaire entraı̂nable
datent de la fin des années cinquante et sont toujours largement utilisées aujourd’hui. Elles prennent les doux noms
de perceptron ou régression logistique .
2.7 Classification des images et les réseaux de neurones profonds
Le problème de l’approche classique de la reconnaissance des images est qu’un bon extracteur de caractéristiques
est très difficile à construire, et qu’il doit être repensé pour chaque nouvelle application.
C’est là qu’intervient l’apprentissage profond ou deep learning en anglais. C’est une classe de méthodes dont les
principes sont connus depuis la fin des années 1980, mais dont l’utilisation ne s’est vraiment généralisée que depuis
2012, environ.
L’idée est très simple : le système entraı̂nable est constitué d’une série de modules, chacun représentant une étape de
traitement. Chaque module est entraı̂nable, comportant des paramètres ajustables similaires aux poids des classifieurs
linéaires. Le système est entraı̂né de bout en bout : à chaque exemple, tous les paramètres de tous les modules sont
ajustés de manière à rapprocher la sortie produite par le système de la sortie désirée. Le qualificatif profond vient de
l’arrangement de ces modules en couches successives.
Pour pouvoir entraı̂ner le système de cette manière, il faut savoir dans quelle direction et de combien ajuster chaque
paramètre de chaque module. Pour cela il faut calculer un gradient, c’est-à-dire pour chaque paramètre ajustable, la
quantité par laquelle l’erreur en sortie augmentera ou diminuera lorsqu’on modifiera le paramètre d’une quantité
donnée. Le calcul de ce gradient se fait par la méthode de rétropropagation, pratiquée depuis le milieu des années
1980.
Dans sa réalisation la plus commune, une architecture profonde peut être vue comme un réseau multicouche
d’éléments simples, similaires aux classifieurs linéaires, interconnectés par des poids entraı̂nables. C’est ce qu’on appelle
un réseau neuronal multicouche .
Pourquoi neuronal ? Un modèle extrêmement simplifié des neurones du cerveau les voit comme calculant une
somme pondérée et activant leur sortie lorsque celle-ci dépasse un seuil. L’apprentissage modifie les efficacités des
synapses, les poids des connexions entre neurones. Un réseau neuronal n’est pas un modèle précis des circuits du
cerveau, mais est plutôt vu comme un modèle conceptuel ou fonctionnel. Le réseau neuronal est inspiré du cerveau un
peu comme l’avion est inspiré de l’oiseau.
Ce qui fait l’avantage des architectures profondes, c’est leur capacité d’apprendre à représenter le monde de manière
hiérarchique. Comme toutes les couches sont entraı̂nables, nul besoin de construire un extracteur de caractéristiques à
la main. L’entraı̂nement s’en chargera. De plus, les premières couches extrairont des caractéristiques simples (présence
de contours) que les couches suivantes combineront pour former des concepts de plus en plus complexes et abstraits :
assemblages de contours en motifs, de motifs en parties d’objets, de parties d’objets en objets, etc
2.8 Révolution d’apprentissage profond
HAYTAM EL YOUSSFI, PFE: Deep Learning 17
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
2.8.1 L’évolution des CPU et des GPU
2.8.1.1 L’unité centrale de traitement
L’unité centrale de traitement est le cerveau des ordinateurs et plusieurs dispositifs électroniques, c’est un composant
éléctrique (une collection de millions de transistors) qui exécute les instructions d’un programme d’ordinateur en
effectuant des opérations arithmétiques, logiques, de contrôle etles opérations d’entrée et de sortie spécifiées par les
instructions.
2.8.1.2 L’unité graphique de traitement
Un processeur graphique, ou GPU , est un circuit intégré présent la plupart du temps sur une carte graphique
(mais pouvant aussi être intégré sur une carte-mère ou dans un CPU) et assurant les fonctions de calcul de l’affichage.
Un processeur graphique a généralement une structure hautement parallèle (voir accélération matérielle) qui le rend
efficace pour une large palette de tâches graphiques comme le rendu 3D, en Direct3D ou en OpenGL, la gestion
de la mémoire vidéo, le traitement du signal vidéo, la décompression Mpeg, etc. Leur parallélisme massif les rend
aussi intéressants comme processeurs de calcul matriciel, ou pour des cassages de code en  force brute  d’archives
chiffrées.
2.8.1.3 L’unité graphique de traitement et l’apprentissage profond
La différence entre une unité centrale de traitementet une unité graphique de traitement est la manière de gestion
des capacités, l’unité centrale de traitement est un processeur à usage général, qui est bonne lorsqu’on l’utilise pour
traiter des sons, visuals, fichiers textuelles ... etc, mais pour le domaine de traitement des images, on a besoin d’un
processeur dédié à traiter une seule tâche, traiter et visualiser les images, un processeur qui a la capacité de traiter
une immense quantité de données, qui représentent des images à deux dimensions ou 3 dimensions, c’est-à-dire qu’il
peut appliquer les différentes operations de la géometrie et les transformations sur ces images comme :
— la translation
— la rotaion
— la réfléxion
— l’homothétie
. L’unité centrale de traitement n’est pas le meilleure choix, parce qu’il est composé de seulement quelques cœurs avec
beaucoup de mémoire cache pouvant gérer plusieurs threads logiciels à la fois, même que chaque coeur de ce processeur
est forte, chaque coeur du processeur est adapté à traister une seule instruction par cycle d’horloge, c’est-à-dire qu’il
traite l’ensemble des instructions d’une manière linéaire, une instruction aprés l’autre (processeur scalaire).
HAYTAM EL YOUSSFI, PFE: Deep Learning 18
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
En revanche, l’unité graphique de traitement est composé de centaines de cœurs pouvant gérer des milliers de
threads simultanément. La capacité d’un processeur graphique doté de plus de 100 cœurs à traiter des milliers de
threads peut accélérer certains logiciels 100 fois par rapport à une unité centrale de traitement uniquement. De plus,
le GPU réalise cette accélération tout en étant plus économique au niveau dénergie et aussi au niveau de coût qu’un
unité centrale de traitement.
En plus, les unités graphiques de traitement utilisent le modèle pipeline graphique sa principale fonction est de
générer ou de restituer une image en deux dimensions, à partir d’une caméra virtuelle, d’objets en trois dimensions,
de sources de lumière, etc. Le pipeline de rendu est donc l’outil sous-jacent du rendu en temps réel.Les emplacements
et les formes des objets dans l’image sont déterminés par leur géométrie, les caractéristiques de l’environnement et
l’emplacement de la caméra dans cet environnement. est affecté par les propriétés des matériaux, les sources de lumière,
les textures (images appliquées aux surfaces) et les équations d’ombrage.[2]
Principe de pipeline graphique
Un pipeline graphique peut être divisé en trois parties principales : Application, Géométrie et Rastérisation.
Application : Le fichier contenant le graphique que l’on veut traiter est chargé du disque vers la RAM, l’unité
centrale de traitement envoie des informations et des commandes au l’unité graphique de traitement en passant par
le tampon de commandes, ces informations seront stockées dans la VRAM, pour que le traitement soit vite, puisque
de l’unité graphique de traitement avec la VRAM et plus vite que avec la RAM.
Géométrie Dans cette partie, les graphiques sont représentés par des vertices (sommets), qui sont des structures des
données qui décrivent certains attributs, comme la position d’un point dans un espace 2D ou 3D, ou plusieurs points
sur une surface.
L’unité graphique de traitement les traite en deux étapes :
— L’étape de filtrage de vertices : les vertices sont transformés en ”espace de vue” tel que chaque vertex est
transformé indépendament.
HAYTAM EL YOUSSFI, PFE: Deep Learning 19
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
— L’étape de traitement primitif : les vertives organisés en primitives (triangulaires) :
Rastérisation
— Premièrement, les primitives sont pixellisées en fragments de pixels tel que chaque primitive est pixellisée
indépendament.
— Deuxièmement, on calcule chaque le couleur de chaque pixel.
HAYTAM EL YOUSSFI, PFE: Deep Learning 20
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
— Troisièmement, Les fragments sont mélangés dans le framebuffer à leur emplacement de pixel (le z-buffer
détermine la visibilité).[2]
Les entitées du pipeline :
En conclusion, la bonne qualité de la performance de l’unité graphique de traitement aide les scientifiques de réaliser
des évolutions dans le domaine de traitement des images, ce qui aide a appliquer les algorithmes de l’apprentissage
profond pour la recaonnaissance des images d’une manière developpé et efficace.
2.8.2 Les nouvelles architectures de réseaux des neurones utilisés par l’apprentissage
profond
2.8.2.1 Les réseaux de neurones convolutifs
HAYTAM EL YOUSSFI, PFE: Deep Learning 21
CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION
Les réseaux de neurones convolutifs (CNN) ont émergé de l’étude du cortex visuel du cerveau et sont utilisés dans la
reconnaissance d’image depuis les années 1980. Au cours des dernières années, grâce à l’augmentation de la
puissance de calcul, à la quantité de données d’apprentissage disponibles, les CNN ont réussi à atteindre des
performances surhumaines dans certaines tâches visuelles complexes. Ils alimentent les services de recherche
d’images, les voitures autonomes, les systèmes de classification automatique des vidéos, etc. De plus, les CNN ne se
limitent pas à la perception visuelle : ils réussissent également à d’autres tâches, telles que la reconnaissance vocale
ou le traitement du langage naturel.[8]
2.8.2.2 Les réseaux de neurones récurrents
Les réseaux de neurones récurrents (RNN) constituent une classe de réseaux pouvant prédire l’avenir (jusqu’à un
certain point, bien sûr). Ils peuvent analyser des données de séries chronologiques telles que les cours des actions et
vous indiquer quand acheter ou vendre. Dans les systèmes de conduite autonome, ils peuvent anticiper les
trajectoires des voitures et éviter les accidents. Plus généralement, ils peuvent travailler sur des séquences de
longueurs arbitraires, plutôt que sur des entrées de taille fixe comme tous les réseaux décrits précédemment. Par
exemple, ils peuvent prendre des phrases, des documents ou des échantillons audio en entrée, ce qui les rend
extrêmement utiles pour les systèmes de traitement du langage naturel (PNL) tels que la traduction automatique, la
synthèse vocale ou l’analyse des sentiments (par exemple, la lecture de critiques de films et l’extraction du sentiment
de l’évaluateur à propos du film).
De plus, la capacité d’anticipation des RNN les rend également capables d’une créativité surprenante. Vous pouvez
leur demander de prédire quelles sont les prochaines notes les plus probables d’une mélodie, puis choisissez-en une au
hasard et jouez-la. Ensuite, demandez au réseau les notes les plus probables, jouez-le et répétez le processus encore
et encore. Avant que vous ne le sachiez, votre réseau composera une mélodie telle que celle produite par le projet
Google de Magenta. De même, les RNN peuvent générer des phrases, des légendes d’images et bien plus encore.[8]
2.9 Conclusion
Nous avons consacré ce chapitre à la présentation l’apprentissage automatique et en particulier l’apprentissage
profond en des notions de la classification ainsi que leurs intérêts dans le domaine d’imagerie et on a parlé aussi de
l’utilisation des réseaux de neurones dans ce domaine. Dans le deuxième chapitre nous allons détailler les réseaux de
neurones et plus précisément l’utilisation des réseaux de neurones convolutionnels dans la classification des images.
HAYTAM EL YOUSSFI, PFE: Deep Learning 22
Chapitre 3
Modélisation des neurones
3.1 Introduction
Les réseaux des neurones artificiels sont des structures la plupart du temps simulées par des algorithmes exécutés
sur les ordinateurs d’usage général, parfois sur des machines ou même des circuits spécialisés, qui prennent leurs ins-
pirations à partir du fonctionnement élémentaire des systèmes nerveux. Ils sont utilisés essentiellement pour résoudre
des problèmes de classification, de reconnaissance de formes, d’association, d’extraction de caractéristique, et d’iden-
tification .
Dans ce chapitre nous allons parler sur un neurone artificiel et la signification un réseau de neurone mul-
ticouches (perceptron multicouche) et des différents hyperparamétres qui influencent sur notre modèle
neuronal ?
3.2 Les neurones biologiques
Un neurone, ou cellule nerveuse, est une cellule excitable constituant l’unité fonctionnelle de base du système
nerveux. Les neurones assurent la transmission d’un signal bioélectrique appelé influx nerveux. Ils ont deux propriétés
physiologiques : l’excitabilité :la capacité de répondre aux stimulations et de convertir celles-ci en impulsions nerveuses,
et la conductivité, c’est-à-dire la capacité de transmettre les impulsions.
Structure :On pense que le système nerveux compte plus de 1000 milliards de neurones interconnectés. Bien que les
neurones ne soient pas tous identiques, leur forme et certaines caractéristiques permettent de les répartir en quelques
grandes classes. En effet, il est aussi important de savoir, que les neurones n’ont pas tous un comportement similaire
en fonction de leur position dans le cerveau. Avant de rentrer plus en avant dans les détails, examinons un neurone.
Figure 3.1 – Schèma d’un neurone biologie
les principales parties d’un nourone :
— Les synapses sont la jonction de connexion entre axone et dendrites. La majorité des synapses envoient des
signaux de l’axone d’un neurone à la dendrite d’un autre neurone. Les exceptions pour ce cas sont lorsqu’un
neurone peut manquer de dendrites, ou d’un neurone, d’un axone, ou d’une synapse, qui connecte un axone à
un autre axone.
23
CHAPITRE 3. MODÉLISATION DES NEURONES
— Les dendrites ont des fibres qui sortent du corps cellulaire dans un réseau broussailleux autour de la cellule
nerveuse. Les dendrites permettent à la cellule de recevoir des signaux de neurones voisins connectés et chaque
dendrite peut effectuer une multiplication par la valeur de poids de ce dendrite. Par multiplication, on entend
une augmentation ou une diminution du rapport neurotransmetteur synaptique aux signaux chimiques introduits
dans la dendrite.
— Les axones sont les fibres simples et longues qui s’étendent du corps cellulaire principal. Ils s’étendent sur des
distances plus longues que les dendrites et mesurent généralement 1 centimètre de long (100 fois le diamètre
du soma). Finalement, l’axone se ramifiera et se connectera à d’autres dendrites. Les neurones sont capables
d’envoyer des impulsions électrochimiques par le biais de changements de tension transmembranaires générant
un potentiel d’action. Ce signal se déplace le long de l’axone de la cellule et active les connexions synaptiques
avec d’autres neurones.
Il existe deux propriétés principales des réseaux de neurones artificiels qui suivent l’idée générale du fonctionnement du
cerveau. Premièrement, l’unité la plus fondamentale du réseau neuronal est le neurone artificiel. Les neurones artificiels
sont modelés sur les neurones biologiques du cerveau et, comme les neurones biologiques, ils sont stimulés par des
entrées. Ces neurones artificiels transmettent certaines informations qu’ils reçoivent à d’autres neurones artificiels,
souvent avec des transformations.
Deuxièmement, comme les neurones du cerveau peuvent être entraı̂nés à ne transmettre que les signaux utiles pour
atteindre les objectifs plus vastes du cerveau, nous pouvons former les neurones d’un réseau neuronal pour qu’ils ne
transmettent que des signaux utiles.
3.3 Modélisation d’un neurone artificiel
Un neurone artificiel est une fonction mathématique conçue comme un modèle de neurones biologiques. Le neurone
artificiel reçoit une ou plusieurs entrées et les additionne pour produire une sortie (ou une activation représentant le
potentiel d’action d’un neurone qui est transmis le long de son axone). Généralement, chaque entrée est pondérée
séparément : Pn
i=1 pixi
cette la somme est transmise à une fonction non linéaire appelée fonction d’activation ou fonction de transfert afin
que les résultats soient précis. Les fonctions de transfert ont généralement une forme sigmoı̈de, mais elles peuvent
également prendre la forme d’autres fonctions non linéaires, de fonctions linéaires par morceaux ou de fonctions de
pas. Ils sont aussi souvent en augmentation monotone, continue, différenciable et bornée.
Dans de nombreux contextes, il existe une partie invariante de la prédiction, appelée biais, ajoutée au somme du com-
binaison linéaire du poids et entrées. Par exemple, considérons un paramètre dans lequel les variables de caractéristique
sont centrées sur la moyenne, mais la moyenne de la prédiction de classe binaire à partir de

−1, +1
	
n’est pas égale
à 0. Cela aura tendance à se produire dans les cas où la distribution de classe binaire est fortement déséquilibré.[10]
Nous devons incorporer une variable de biais supplémentaire b qui capture cette partie invariante de la prédiction :
Pn
i=1 pixi + θ
3.4 Le perceptron simple
Figure 3.2 – Représentation d’un perceptron mono-couche
HAYTAM EL YOUSSFI, PFE: Deep Learning 24
CHAPITRE 3. MODÉLISATION DES NEURONES
Le premier neuro-ordinateur a été créé en 1957, par Frank Rosenblatt au laboratoire aérospatial de l’Université
Cornell. C’est un modèle inspiré des théories cognitives de Friedrich Hayek et de Donald Hebb. Il s’agit d’un neurone
formel muni d’une règle d’apprentissage qui permet de déterminer automatiquement les poids synaptiques de manière
à séparer un problème d’apprentissage supervisé. Si le problème est linéairement séparable, un théorème assure que la
règle du perceptron permet de trouver une séparatrice entre les deux classes.
Le perceptron peut être vu comme le type de réseau de neurones le plus simple. c’est un classifieur linéaire. Ce type
de réseau neuronal ne contient aucun cycle (il s’agit d’un réseau de neurones à propagation avant). Dans sa version
simplifiée, le perceptron est mono-couche et n’a qu’une seule sortie à laquelle toutes les entrées sont connectées et les
entrées et la sortie sont booléennes. Plus généralement, les entrées peuvent être des nombres réels.[12]
On peut décrire l’apprentissage du perceptron en trois étapes :
Première étape : La combinaison linéaire des entrées : chaque valeur de la liste en entrée est associée à sa valeur
de poids. De plus, la somme prend souvent une valeur d’entrée supplémentaire θ avec une valeur de poids de 1 pour
représenter le biais d’un neurone.
Deuxième étape : Pour produire une sortie du neurone, nous allons ensuite appliquer la fonction d’activation (la
fonction de Heaviside) sur le somme
Pn
i=1 pixi + θ , comme le montre l’équation suivante :
Avec :
Troisième étape : La mise à jour des poids synaptiques (Correction) : utilisé pour trouve les meilleurs valeurs des
poids synaptiques qui peuvent assurer la bonne prédiction des résultats du neurone.
Il existe deux règles populaires de mise à jour du poids :
3.4.1 Régles d’apprentissages de HEB et Frank Rosenblatt
La règle de Hebb, établie par Donald Hebb, est une règle d’apprentissage des réseaux de neurones artificiels dans
le contexte de l’étude d’assemblées de neurones.
• Cette règle suggère que lorsque deux neurones sont excités conjointement, il se crée ou renforce un lien les unissant.
p0
i = pi + α(Y.Xi)
où p0
i représente le poids i corrigé et α représente le pas d’apprentissage(Taux d’apprentissage).
Le perceptron de Frank Rosenblatt est très proche de la règle de Hebb, la grande différence étant qu’il tient compte
de l’erreur observée en sortie.
Cette fonction est recommandée lorsque la tangente hyperbolique (tanh) est utilisée comme fonction d’activation.
En conclusion, on peut donner la règle d’apprentissage de perceptron comme suit :
HAYTAM EL YOUSSFI, PFE: Deep Learning 25
CHAPITRE 3. MODÉLISATION DES NEURONES
Result : Minimum local d’erreur
1 Initialiser les poids au hasard;
2 TantQue divergence Faire
3 Pour chaque paire / motif d’entraı̂nement (x,ycible) Faire
4 Applique la fonction Heaviside :y = f(
Pn
i=1 pixi);
5 Calculer l’erreure E : E = ycible − y;
6 Mettre à jour les poids : pi = pi + η × E × x;
7 avec η est le pas d’apprentissage;
8 FinPour
9 FinTantQue
Algorithme 1 : La règle d’apprentissage de perceptron
3.4.2 La descente du gradient
L’entraı̂nement d’un perceptron est donc un processus itératif. Après chaque observation, nous allons ajuster les
poids de connexion de sorte à réduire l’erreur de prédiction faite par le perceptron dans son état actuel. Pour cela,
nous allons utiliser l’algorithme du gradient : le gradient nous donnant la direction de plus grande variation d’une
fonction (dans notre cas, la fonction d’erreur), pour trouver le minimum local de cette fonction il faut se déplacer dans
la direction opposée au gradient.Lorsque la fonction est minimisée localement, son gradient est égal à 0.
Figure 3.3 – Un déplacement dans le sens opposé au gradient (fléche Rose ) raproche Wj de la valeur minimisant
l’erreur (point orange)
C’est-à-dire , on doit minimiser l’erreur suivante, avec c : sortie cible et r :sortie réelle : E = 1
2
P
(c − r)2
Mathématiquement, cela signifie que nous examinons la dérivée de l’erreur par rapport au poids, qui représente le
changement de l’erreur dépendant du changement du poids.
Pour un nouvel exemple d’entraı̂nement X = (x1, x2,. . . , xn),on met à jour chaque poid en utilisant la règle
suivante :
pj = pj + ∆pj
avec : ∆pj = −η ∂E
∂pj
Premièrement, on doit calculer la dirivée de l’erreure :
HAYTAM EL YOUSSFI, PFE: Deep Learning 26
CHAPITRE 3. MODÉLISATION DES NEURONES
∂E
∂pj
=
∂( 1
2
P
(c−r)2
)
∂pj
∂E
∂pj
= 1
2
P
2(cs − rs)∂(−r)
∂pj
∂E
∂pj
=
P
(c − r)∂(−r)
∂pj
Ensuite, on calcule ∂(−r)
∂pj
:
∂(−r)
∂pj
= ∂(−f(somme))
∂pj
avec :f : fonction d’activation et somme =
Pn
i=1 pixi
∂(−f(somme))
∂pj
= ∂(−f(somme))
∂somme × ∂somme
∂pj
On a :
∂somme
∂pj
=
∂
Pn
i=1 pixi
∂pj
= ∂(p1x1+p2x2+.....+pnxn)
∂pj
= ∂(p1x1)
∂pj
+ .... +
∂(pj xj )
∂pj
+ ..... + ∂(pnxn)
∂pj
= xj
à cette étape, il nous reste que calculer ∂(−f(somme))
∂somme ; ça depend de la fonction d’activation choisi.
pj = pj − η ∂(−f(somme))
∂somme
P
(c − r)xj
[1]
3.4.3 Comment représenter les données en Machine Learning ?
En machine Learning, les données sont le nerf de la guerre. Et vu leur importance alors dans notre article on va
traiter comment représenter les données en machine learning et les types de données les plus souvent rencontrés.
Les types de données majeurs :
1. Données quantitatives : Les données quantitatives représentent une mesure de quelque chose. Elles peuvent
être de deux types :
 Continue :Les valeurs que peut prendre une donnée numérique continue sont infinies. elles représentent une
mesure d’une quantité. Par exemple le poids en Kg d’une personne, la distance entre deux ville en Km. . .
 Discrète : Il s’agit généralement d’un comptage d’un événement. Par exemple : Le nombre d’enfants dans
un foyer. Il ne peut pas avoir 2,5 enfants dans un foyer.
2. Données qualitatives : Les données qualitatives sont aussi nommées des modalités.Une donnée qualitative
n’a pas une sémantique mathématique. Elles apporte une information sur une caractéristique d’un individu
observé.
Exemple de modalité :
— Sexe d’une personne (Homme / Femme)
— Pays de naissance d’une personne
— Race d’un chien
3. Données ordinales : Les données ordinales sont un “mix” entre les données quantitatives et qualitatives. Ils
s’agit de catégories/modalités ordonnées et qui ont une signification mathématique.
Prenons l’exemple des notes données par un client pour un produit sur un site e-commerce. Une étoile signifie
qualité médiocre, et 5 étoiles signifie un produit excellent. Le nombre d’étoiles représentent une modalité (5
modalités si le nombre d’étoiles qu’on peut assigner à un produit est égale à 5). On peut, par exemple, ordonner
les produits par qualité en fonction du nombre d’étoiles.
Représentation des données : Cross Validation : La validation croisée va nous permettre d’utiliser
l’intégralité de notre jeu de données pour l’entraı̂nement et pour la validation .Voilà comment ça marche :
On découpe le jeu de données en k parties (folds en anglais) à peu près égales. Tour à tour, chacune des k parties
est utilisée comme jeu de test. Le reste (autrement dit, l’union des k-1 autres parties) est utilisé pour l’entraı̂nement.
HAYTAM EL YOUSSFI, PFE: Deep Learning 27
CHAPITRE 3. MODÉLISATION DES NEURONES
Figure 3.4 – Une cross-validation à 5 folds : Chaque point appartient à 1 des 5 jeux de test (en blanc) et aux 4
autres jeux d’entraı̂nements (en orange)
À la fin, chaque point (ou observation) a servi 1 fois dans un jeu de test, (k-1) fois dans un jeu d’entraı̂nement. J’ai
donc 1 prédiction par point de mon jeu initial, et aucune de ces prédictions n’a été faite avec un jeu d’entraı̂nement
qui contienne ce point. Je n’ai pas violé le principe de ne pas valider sur le jeu d’entraı̂nement !
Je peux finalement rapporter la performance de mon modèle :
— Soit en évaluant les prédictions faites sur l’ensemble des données (puisque j’ai fait une prédiction par point du
jeu de données complet)
— Soit en moyennant les performances obtenues sur les k folds, auquel cas je peux aussi rapporter l’erreur type,
pour quantifier la variation de ces performances sur les k folds.
Figure 3.5 – Représentation visuelle de la validation de train / test et de la validation croisée.
1  importer numpy en tant que np
2  depuis s k l e a r n . c r o s s v a l i d a t i o n importer t r a i n t e s t s p l i t
3  a , b = np . arange ( 10 ) . remodeler (( 5 , 2 ) ) , plage ( 5 )
4  un
5 t a b l e a u ( [ [ 0 , 1 ] , [ 2 , 3 ] , [ 4 , 5 ] , [ 6 , 7 ] , [ 8 , 9 ] ] )
6  l i s t e ( b )
7 [ 0 , 1 , 2 , 3 , 4]
8
9  a t r a i n , a t e s t , b t r a i n , b t e s t = t r a i n t e s t s p l i t (
10 . . . a , b , t e s t s i z e = 0.33 , random state = 42 )
11 . . .
12  a t r a i n
13 a r r a y ( [ [ 4 , 5 ] , [ 0 , 1 ] , [ 6 , 7 ] ] )
14  b t r a i n
15 [ 2 , 0 , 3]
16  un t a b l e a u
17 a t e s t ( [ [ 2 , 3 ] , [ 8 , 9 ] ] )
18  b t e s t
19 [ 1 , 4]
Algorithme de la méthode K-fold cross-validation :
HAYTAM EL YOUSSFI, PFE: Deep Learning 28
CHAPITRE 3. MODÉLISATION DES NEURONES
1. Divisez le jeu de données en K partitions égales (ou”K-fold”)
— Donc si K=5 et que le dataset compte 150 observations
— Chacun des 5 fold aurait 30 observations
2. Utilisez le fold 1 comme donnée de test et l’union des autres fold comme jeu d’entrainement
— Ensemble de tests =30 observation
— Ensemble d’entrainement =120 observation (fold 2 à 5)
3. Calculer la précision des tests
4. Répétez les étapes 2 à 3 K fois , en utilisant un fold différent comme set de test et à chaque fois
— Nous allons répéter le processus 5 ( K=5) fois
— 2éme itération
— Le deuxiéme fold serait le jeu de test
— L’union des plis 1,3 et 5 constituerait l’entrainement
— 3éme itération
— Le Fold 3 serait le set de test
— L’union des plis 1,2,4 et 5 constituerait l’entrainement
5. La précision moyenne des tests est l’estimation de la précision sur des données non vues
Train / Test Split : Comme je l’ai dit précédemment, les données que nous utilisons sont généralement divisées en
données d’apprentissage et en données de test. L’ensemble d’apprentissage contient une sortie connue et le modèle
apprend sur ces données pour être généralisé ultérieurement à d’autres données. Nous avons le jeu de données de test
(ou sous-ensemble) afin de tester la prédiction de notre modèle sur ce sous-ensemble.
Figure 3.6 – Train / Test Split
1  import numpy as np
2  from s k l e a r n . m o d e l s e l e c t i o n import t r a i n t e s t s p l i t
3  X, y = np . arange (10) . reshape ((5 , 2) ) , range (5)
4  X
5 a r r a y ( [ [ 0 , 1 ] , [ 2 , 3 ] , [ 4 , 5 ] , [ 6 , 7 ] , [ 8 , 9 ] ] )
6  l i s t ( y )
7 [ 0 , 1 , 2 , 3 , 4]
8  X train , X test , y t r a i n , y t e s t = t r a i n t e s t s p l i t (
9 . . . X, y , t e s t s i z e =0.33 , random state =42)
10 . . .
11  X t r a i n
12 a r r a y ( [ [ 4 , 5 ] , [ 0 , 1 ] , [ 6 , 7 ] ] )
13  y t r a i n
14 [ 2 , 0 , 3]
15  X t e s t
16 a r r a y ( [ [ 2 , 3 ] ,
17 [ 8 , 9 ] ] )
18  y t e s t
19 [ 1 , 4]
20  t r a i n t e s t s p l i t ( y , s h u f f l e=F a l s e )
21 [ [ 0 , 1 , 2 ] , [ 3 , 4 ] ]
Comparer de la méthode Cross-validation et la méthode de Train/Test split :
Avantages de la méthode de Cross-validation :
— Estimation plus précise de la précision des données non vues
— Utilisation plus ”efficace” des données ( de taille petite) :C’est parce que chaque observation est utilisée à la
fois pour l’entrainement et pour le test.
Avantages de la méthode train / test split :
— Exécute K fois plus rapidement que la validation croisée des K-fold :Cela est dû au fait que la validation croisée
du K-fold répète K fois la méthode train / test split.
HAYTAM EL YOUSSFI, PFE: Deep Learning 29
CHAPITRE 3. MODÉLISATION DES NEURONES
— Plus simple pour suivre et examiner les résultats détaillés du processus de test .
3.4.4 Exemple d’application du percetron
Nous savons que la fonction et logique est représentée comme suit :
Entrée x1 Entrée x2 Sortie
0 0 0
0 1 0
1 0 0
1 1 1
On a que la sortie cible = 1 si les entrées sont tous égales à 1, et 0 sinon, prenant par exemple, deux entrées x1
et x2 on a quatre cas :
— cas 1 : x1=1 et x2=1 ⇒ y=1
— cas 2 : x1=0 et x2=1 ⇒ y=0
— cas 3 : x1=1 et x2=0 ⇒ y=0
— cas 4 : x1=0 et x2=0 ⇒ y=0
Sachant que la somme généré par le perceptron est : somme = p1x1 + p2x2 + p0 ;
A partir de la fonction d’activation, la somme obtenu doit être plus ou égale à 0 pour la première cas, et moins
que 0 pour les autres cas ; On prend p1 et p2 égales à 1, il nous reste de déterminer p0 :
— cas 1 : 1 * 1 + 1 * 1 + p0=2+p0
— cas 2 : 1 * 0 + 1 * 1 + p0=1+p0
— cas 3 : 1 * 1 + 1 * 0 + p0=1+p0
— cas 4 : 1 * 0 + 1 * 0 + p0=p0
On obtient les conditions suivants :
— 2+p0 ≥ 0
— 1+p0  0
— p0  0
ce qui donne :
— p0 ≥ -2
— p0  -1
— p0  0
Il suffit de prendre une valeur qui vérifie : -2 ≤ p0  -1 ; on prend p0 = −1.5
On obtient : somme = 1 ∗ x1 + 1 ∗ x2 − 1.5
Et en appliquant la fonction d’activation nous donnera les résultats souhaités ;
— Pour x1 = 1 et x2 = 1, f(1*1+1*1-1.5)=0.5 ≥ 0
— Pour x1 = 1 et x2 = 0, f(1*1+1*0-1.5)=-0.5  0
— Pour x1 = 0 et x2 = 1, f(1*0+1*1-1.5)=-0.5  0
— Pour x1 = 0 et x2 = 0, f(1*0+1*0-1.5)=-1.5  0
avec :
La figure ci-dessous montre les résultats obtenus par le perceptron. le perceptron est capable de tracer une ligne
séparant les deux catégories, on peut remarquer que le point (1,1) qui a une sortie égale à 1 est en haut, tandis que
les autres sont en bas de la ligne (la sortie est 0 dans ce cas), on peut dire que le perceptron a réussi à trouver les
poids précisés pour prédire les sorties.
HAYTAM EL YOUSSFI, PFE: Deep Learning 30
CHAPITRE 3. MODÉLISATION DES NEURONES
Figure 3.7 – Graphe de la fonction ET logique
3.4.5 Les mesures de la performance d’un neurone artificiel :
Évaluation du modèle Notre principale objectif lorsqu’on construit un neurone artificiel est de produire des résultats
précis, c’est pourquoi on doit mesurer la performance et la qualité de notre modèle de prédiction utilisé par le neurone,
il y’a des mesures qui peut nous aider à atteindre nous but :
— Taux de réussite
— La précision
— La sensitivité (rappel)
— F-mesure
Ces mesures dépendent sur quatre valeurs : vrais positifs, faux positifs, vrais négatifs et faux négatifs, qui sont
représentés dans la matrice de confusion comme suit :
Véritable condition
Condition positive Condition négative
Condition prévue positive Vrai positif Faux positif
Condition
prévue Condition prévue négative Faux négatif Vrai négatif
Table 3.1 – La matrice de confusion
La matrice de confusion est connue sous le nom de matrice d’erreurs, est un tableau spécifique qui permet de
visualiser les performances d’un algorithme, généralement un algorithme d’apprentissage supervisé. Chaque ligne de la
matrice représente les instances dans une classe prédite, tandis que chaque colonne représente les instances dans une
classe réelle. Le nom découle du fait qu’il est facile de voir si le système confond deux classes.
Le taux de réussite : compte le nombre de points de données dans l’ensemble de test qui ont été prédits correctement
et renvoie ce nombre sous forme de fraction de la taille de l’ensemble de test. S’en tenant à l’exemple de la classification
d’images en tant que chats ou chiens, l’exactitude indique la fraction d’images correctement classées comme contenant
soit un chat, soit un chien. C’est la mesure la plus élémentaire pour les classificateurs. [3]
Le taux de réussite = le nombre de points de données dans l’ensemble de test qui ont été prédits correctement
la taille de l’ensemble de test
L’utilisation de cette mesure est limitée au cas où il n’y a pas une grande différence entre les tailles des deux ensembles
de classes de test ; Prenons par exemple une ensemble de test de 500 points de données représentent deux classes,
classe1 et classe2, 480 points de données représentent une classe1, et 20 points de données représentent l’autre classe,
si tous les points de données de classe1 sont prédit correctement, pendent que les points de données de classe2 ne
sont pas prédit correctement, la résultat du taux de réussite donne :
Le taux de réussite = 480
500 =0.96, cela signifie que la qualité de notre modèle utilisé est trés bonne, tant qu’il prédit
tous les points de données de classe2 incorrectement.
Ce qui veut dire que la mesure taux de réussite n’a aucun validité lorsqu’on a une taille d’une ensemble de points de
données d’une classe plus grande que la taille de l’ensemble de points de données de l’autre classe.
HAYTAM EL YOUSSFI, PFE: Deep Learning 31
CHAPITRE 3. MODÉLISATION DES NEURONES
Figure 3.8 – Précision et rappel (recall)
La précision : La précision décrit la capacité d’un classificateur à ne pas étiqueter comme chat une image contenant
un chien. En d’autres termes, sur toutes les images de l’ensemble de tests que le classificateur pense contenir un chat,
la précision est la fraction des images qui contiennent en réalité un chat.[3]
Le précision = le nombre de points de données bien classifiés
la taille de l’ensemble de points bien classifiés plus l’ensemble de points mal classifiés
La sensitivité (rappel) : décrit la capacité d’un classificateur à récupérer toutes les images contenant un chat. En
d’autres termes, sur toutes les images de chats de l’ensemble de tests, le rappel est la fraction d’images qui ont été
correctement identifiées en tant qu’images de chats.[3]
Le précision = le nombre de points de données correctement attribuées à une classei
la taille de l’ensemble de points attribuées à la classei
F-mesure : Une mesure populaire qui combine la précision et le rappel est leur moyenne harmonique, nommée
F-mesure (soit F-measure en anglais) ou F-score :
F-mesure = 2 × précision × rappel
précision + rappel
F1-mesure atteignant sa meilleure valeur à 1 (précision parfaite et rappel) et le pire à 0.
HAYTAM EL YOUSSFI, PFE: Deep Learning 32
CHAPITRE 3. MODÉLISATION DES NEURONES
3.4.6 Courbe ROC
Dans le cas d’un classifieur binaire, il est possible de visualiser les performances du classifieur sur ce que l’on appelle
une courbe ROC . La courbe ROC est une représentation du taux de vrais positifs en fonction du taux de faux positifs.
Son intérêt est de s’affranchir de la taille des données de test dans le cas où les données sont déséquilibrées.
Cette représentation met en avant un nouvel indicateur qui est l’aire sous la courbe. Plus elle se rapproche de 1,
plus le classifieur est performant.
Figure 3.9 – Courbe ROC
AUC : aire sous la courbe ROC AUC signifie ”aire sous la courbe ROC” : Cette valeur mesure l’intégralité
de l’aire à deux dimensions située sous l’ensemble de la courbe ROC (par calculs d’intégrales) de (0,0) à (1,1).
Figure 3.10 – AUC (aire sous la courbe ROC).
Les valeurs d’AUC sont comprises dans une plage de 0 à 1. Un modèle dont 100 des prédictions sont erronées a un
AUC de (0,0). Si toutes ses prédictions sont correctes, son AUC est de (1,0). L’AUC présente les avantages suivants :
— L’AUC est invariante d’échelle . Elle mesure la qualité du classement des prédictions, plutôt que leurs valeurs
absolues.
— L’AUC est indépendante des seuils de classification . Elle mesure la qualité des précisions du modèle quel
que soit le seuil de classification sélectionné.
3.4.7 Les limitations du perceptron :
Essayons d’entrainer un perceptron pour faire le même rôle de la fonction OU exclusif : Prenons deux entrées x1,
x2, la somme généré par le perceptron est : somme = p1x1 + p2x2 + p0 ; Nous savons que la fonction ou exclusif est
représentée comme suit :
HAYTAM EL YOUSSFI, PFE: Deep Learning 33
CHAPITRE 3. MODÉLISATION DES NEURONES
Entrée x1 Entrée x2 Sortie
0 0 0
0 1 1
1 0 1
1 1 0
Table 3.2 – la fonction OU exclusif
à partir du tableau ci-dessus, on doit obtenir des valeurs des poids qui vérifier ces quatre conditions :
— cas 1 : p1 * 1 + p2 * 1 + p0  0
— cas 2 : p1 * 0 + p2 * 1 + p0 ≥ 0
— cas 3 : p1 * 1 + p2 * 0 + p0 ≥ 0
— cas 4 : p1 * 0 + p2 * 0 + p0  0
c-à-d :
— p1 + p2 + p0  0
— p2 + p0 ≥ 0
— p1 + p0 ≥ 0
— p0  0
c-à-d :
— p1 + p2  b
— p2 ≥ b
— p1 ≥ b
— b  0
Avec b=- p0 ; on trouve que :
— p1 + p2  b
— p1 + p2 ≥ 2b
— b  0
ce qui est absurde car b  0 ;
C’est là que apparaissent les limites du perceptron, car l’entraı̂nement du perceptron converge toujours si les données
d’apprentissage des deux classes sont des ensembles séparables linéairement.ce qui apparaı̂t clairement sur cette figure
qui représente les résultats d’une fonction ou exclusif :
Figure 3.11 – Graphe de la fonction Ou exclusif
la solution de cette limitation n’apparaı̂t qu’au milieu des années 1980, par l’utilisation des réseaux de neurones,
même que les recherches sur ces réseaux existent depuis les années 1940.
HAYTAM EL YOUSSFI, PFE: Deep Learning 34
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos
Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos

Contenu connexe

Tendances

Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEOussama Djerba
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
Yahyaoui Mohamed Yosri
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
Nassim Bahri
 
rapport-finale-ZoubairWassim.pdf
rapport-finale-ZoubairWassim.pdfrapport-finale-ZoubairWassim.pdf
rapport-finale-ZoubairWassim.pdf
SyrinaGaddour
 
Rappport PFE 2012 Ghodhbane Hani - OpenSNC
Rappport PFE 2012 Ghodhbane Hani - OpenSNCRappport PFE 2012 Ghodhbane Hani - OpenSNC
Rappport PFE 2012 Ghodhbane Hani - OpenSNC
Ghodbane Heni
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
Lina Meddeb
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Yasmine Lachheb
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
Eric Maxime
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
Donia Hammami
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
Yosra ADDALI
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Mohamed Amine Mahmoudi
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-location
ALALSYSE
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
Semah Mhamdi
 
Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...
BADDOU mohamed
 
Conception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIR
Skander Driss
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Raoua Bennasr
 
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
tayebbousfiha1
 

Tendances (20)

Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
rapport-finale-ZoubairWassim.pdf
rapport-finale-ZoubairWassim.pdfrapport-finale-ZoubairWassim.pdf
rapport-finale-ZoubairWassim.pdf
 
Rappport PFE 2012 Ghodhbane Hani - OpenSNC
Rappport PFE 2012 Ghodhbane Hani - OpenSNCRappport PFE 2012 Ghodhbane Hani - OpenSNC
Rappport PFE 2012 Ghodhbane Hani - OpenSNC
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
 
Pfe 2015
Pfe 2015Pfe 2015
Pfe 2015
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-location
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...
 
Conception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIR
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
 

Similaire à Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos

notes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdfnotes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdf
CoulibalyYoussoufngo
 
Mémoire.pdf
Mémoire.pdfMémoire.pdf
Mémoire.pdf
MOHAMEDAITBLAL
 
Base-de-données.pdf
Base-de-données.pdfBase-de-données.pdf
Base-de-données.pdf
djallel2
 
Object detection and recognition in digital images
Object detection and recognition in digital imagesObject detection and recognition in digital images
Object detection and recognition in digital images
Sakher BELOUADAH
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEM
Grégoire Dupont
 
2009 these servant (1)
2009 these servant (1)2009 these servant (1)
2009 these servant (1)bessem ellili
 
pfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfpfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdf
nesrine haloui
 
courspython3.pdf
courspython3.pdfcourspython3.pdf
courspython3.pdf
Dendouga1
 
Tp sgbd gsi
Tp sgbd gsiTp sgbd gsi
Tp sgbd gsi
saqrjareh
 
cours_python.pdf
cours_python.pdfcours_python.pdf
cours_python.pdf
Wafaa Ibrihich
 
Analyses factorielles.pdf
Analyses factorielles.pdfAnalyses factorielles.pdf
Analyses factorielles.pdf
ahmed92358
 
The Ring programming language version 1.4 book - Part 1 of 30
The Ring programming language version 1.4 book - Part 1 of 30The Ring programming language version 1.4 book - Part 1 of 30
The Ring programming language version 1.4 book - Part 1 of 30
Mahmoud Samir Fayed
 
Essaim de Particules Quantique
Essaim de Particules QuantiqueEssaim de Particules Quantique
Essaim de Particules Quantique
Benkhaled sihem
 
Theorie du signal
Theorie du signalTheorie du signal
Theorie du signal
sarah Benmerzouk
 
Cours matlab
Cours matlabCours matlab
Cours matlab
mohamednacim
 
Architectures logicielles et materielles
Architectures logicielles et materiellesArchitectures logicielles et materielles
Architectures logicielles et materiellesAdnane Farid
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
ahmed oumezzine
 

Similaire à Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos (20)

Algo
AlgoAlgo
Algo
 
notes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdfnotes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdf
 
Mémoire.pdf
Mémoire.pdfMémoire.pdf
Mémoire.pdf
 
Base-de-données.pdf
Base-de-données.pdfBase-de-données.pdf
Base-de-données.pdf
 
Object detection and recognition in digital images
Object detection and recognition in digital imagesObject detection and recognition in digital images
Object detection and recognition in digital images
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEM
 
Cbdsys 2
Cbdsys 2Cbdsys 2
Cbdsys 2
 
2009 these servant (1)
2009 these servant (1)2009 these servant (1)
2009 these servant (1)
 
pfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfpfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdf
 
courspython3.pdf
courspython3.pdfcourspython3.pdf
courspython3.pdf
 
Tp sgbd gsi
Tp sgbd gsiTp sgbd gsi
Tp sgbd gsi
 
cours_python.pdf
cours_python.pdfcours_python.pdf
cours_python.pdf
 
Analyses factorielles.pdf
Analyses factorielles.pdfAnalyses factorielles.pdf
Analyses factorielles.pdf
 
LIPADE_Report
LIPADE_ReportLIPADE_Report
LIPADE_Report
 
The Ring programming language version 1.4 book - Part 1 of 30
The Ring programming language version 1.4 book - Part 1 of 30The Ring programming language version 1.4 book - Part 1 of 30
The Ring programming language version 1.4 book - Part 1 of 30
 
Essaim de Particules Quantique
Essaim de Particules QuantiqueEssaim de Particules Quantique
Essaim de Particules Quantique
 
Theorie du signal
Theorie du signalTheorie du signal
Theorie du signal
 
Cours matlab
Cours matlabCours matlab
Cours matlab
 
Architectures logicielles et materielles
Architectures logicielles et materiellesArchitectures logicielles et materielles
Architectures logicielles et materielles
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 

Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos

  • 1. UNIVERSITE IBN ZOHR FACULTE DES SCIENCES Département Informatique Filière Sciences Mathématiques et Informatique PFE Présenté par: EL YOUSSFI Haytam Email : elyoussfihaytam@gmail.com Pour l’obtention de la Licence en Sciences Mathématiques et Informatique Deep Learning : Application à la reconnaissance d’objets de classes multiples sur les images et les vidéos Soutenu le 23/05/2019 Année universitaire 2018-2019
  • 2. Table des matières 1 Introduction générale 8 2 L’apprentissage automatique et la classification 10 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 L’apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1 Les types d’apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2 La différence entre l’apprentissage supervisé et l’apprentissage non supervisé . . . . . . . . . . 12 2.2.3 L’apprentissage supervisé et les réseaux de neurones profonds . . . . . . . . . . . . . . . . . . 12 2.2.4 L’apprentissage automatique et la vision par ordinateur . . . . . . . . . . . . . . . . . . . . . 13 2.3 L’apprentissage profond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4 Les motivations de la classification des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Notions de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5.1 Définition d’une image numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5.2 Caractéristiques de l’image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.6 Classification des images et l’apprentissage machine . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.7 Classification des images et les réseaux de neurones profonds . . . . . . . . . . . . . . . . . . . . . . 17 2.8 Révolution d’apprentissage profond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.8.1 L’évolution des CPU et des GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.8.2 Les nouvelles architectures de réseaux des neurones utilisés par l’apprentissage profond . . . . 21 2.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3 Modélisation des neurones 23 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Les neurones biologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 Modélisation d’un neurone artificiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Le perceptron simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4.1 Régles d’apprentissages de HEB et Frank Rosenblatt . . . . . . . . . . . . . . . . . . . . . . 25 3.4.2 La descente du gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.3 Comment représenter les données en Machine Learning ? . . . . . . . . . . . . . . . . . . . . 27 3.4.4 Exemple d’application du percetron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.4.5 Les mesures de la performance d’un neurone artificiel : . . . . . . . . . . . . . . . . . . . . . 31 3.4.6 Courbe ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4.7 Les limitations du perceptron : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.5 Les réseaux de neurones multicouches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.5.1 Propagation de l’information, le calcul de la sortie du réseau . . . . . . . . . . . . . . . . . . 35 3.5.2 Le Rétro-propagation de l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.3 classification binaire d’un ensemble de données par réseau de neurones . . . . . . . . . . . . . 39 3.5.4 Le taux d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.5.5 Préparation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4 Les Réseaux de neurones convolutifs 53 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2 Les réseaux de neurones convolutifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.3 Architecture de réseaux de neurones convolutifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.3.1 Couche de convolution(CONV) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.3.2 Couche de pooling (POOL) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.3.3 Couches de correction (RELU) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.3.4 Couche entièrement connectée (FC) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.3.5 Couche de perte (LOSS) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2
  • 3. TABLE DES MATIÈRES 4.4 Exemples des modèles de CNN : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.5 Choix des paramètres : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.5.1 Nombre de filters : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.5.2 Forme du filtre : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.5.3 Forme du Max Pooling : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.6 Méthodes de régularisation : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.6.1 Empirique : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.6.2 Explicite : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5 La détection des classes d’objets dans sur les vidéos 60 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2 La phase de détection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.3 La relation entre la détection et la classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3.1 Les problèmes des fenêtres glissantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.4 R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.5 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6 Implémentation et évaluation 65 6.1 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.2 Logiciels et librairies Utilisés dans l’implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.2 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.3 Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.4 Scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3 Configuration utilisé dans l’implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.4 Atelier 1 : Exemple d’un classificateur du sexe d’une personne à partir de sa taille et son poids . . . . 66 6.5 Atelier 2 : Exemple d’une classification binaire et multiple par un réseau de neurone multicouches (MLP) 70 6.5.1 Le réseau de neurone multi-couche dans le cas de classification binaire . . . . . . . . . . . . . 70 6.5.2 Le réseau de neurone multi-couche dans le cas d’une classification multiple . . . . . . . . . . 75 6.6 Atelier 3 : Classification multiple avec réseau de neurones convolutifs . . . . . . . . . . . . . . . . . . 77 6.6.1 Architecture de notre réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.6.2 Résultats obtenus et discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.6.3 Comment développer un modèle amélioré ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7 Conclusion et prespectives 89 HAYTAM EL YOUSSFI, PFE: Deep Learning 3
  • 4. Liste des tableaux 2.1 Voisinnage à 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2 Voisinnage à 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.1 La matrice de confusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 la fonction OU exclusif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4
  • 5. Table des figures 2.1 Diagramme de l’apprentissage supervisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Diagramme de l’apprentissage non supervisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Diagramme de l’apprentissage par renforcement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 L’apprentissage profond - l’apprentissage automatique - l’intelligence artificielle . . . . . . . . . . . . 14 3.1 Schèma d’un neurone biologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Représentation d’un perceptron mono-couche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Un déplacement dans le sens opposé au gradient (fléche Rose ) raproche Wj de la valeur minimisant l’erreur (point orange) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4 Une cross-validation à 5 folds : Chaque point appartient à 1 des 5 jeux de test (en blanc) et aux 4 autres jeux d’entraı̂nements (en orange) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5 Représentation visuelle de la validation de train / test et de la validation croisée. . . . . . . . . . . . 28 3.6 Train / Test Split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.7 Graphe de la fonction ET logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.8 Précision et rappel (recall) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.9 Courbe ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.10 AUC (aire sous la courbe ROC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.11 Graphe de la fonction Ou exclusif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.12 Un réseau de neurones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.13 Graphe de la fonction d’identité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.14 Graphe de la fonction Heaviside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.15 Graphe de la fonction sigmoide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.16 Graphe de la fonction Tangente Hyperbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.17 Schéma de rétro-propagation du gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.18 Diagramme de la règle de la chaine dérivée partielle avec un seul chemin . . . . . . . . . . . . . . . . 37 3.19 Diagramme de la règle de la chaine dérivée partielle avec deux chemins . . . . . . . . . . . . . . . . 38 3.20 La distribution des deux ensembles de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.21 Structure du réseau de neurones utilisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.22 Les poids qui relient la couche d’entrée avec la couche cachée . . . . . . . . . . . . . . . . . . . . . 42 3.23 Les poids qui relient la couche cachée avec la couche de sortie . . . . . . . . . . . . . . . . . . . . . 43 3.24 Le sortie de chaque neurone du réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.25 Le descente du gradient du neurone de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.26 Le descente du gradient de chaque neurone de la couche cachée . . . . . . . . . . . . . . . . . . . . 46 3.27 Mise à jour des poids relient la couche entrée avec la couche cachée . . . . . . . . . . . . . . . . . . 46 3.28 Mise à jour des poids relient la couche cachée avec la couche sortie . . . . . . . . . . . . . . . . . . 47 3.29 Les résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.30 Taux d’apprentissage trop bas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.31 Taux d’apprentissage trop élevé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.32 Taux d’apprentissage adéquat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.33 Modéle 1 :Illustration inspirée du cours d’Andrew NG . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.34 Modéle 2 :Illustration inspirée du cours d’Andrew NG . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.35 Exemple de données répondant à une loi normal X ∼ N(3.8, 4.3) . . . . . . . . . . . . . . . . . . . 52 4.1 Architecture standard d’un réseau de neurone convolutif . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2 : Une couche du CNN en 3 dimensions. (Vert = volume d’entrée, bleu = volume du champ récepteur, gris = couche de CNN, cercles = neurones artificiels indépendants) . . . . . . . . . . . . . . . . . . 55 4.3 Pooling avec un filtre 2x2 et un pas de 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.4 Graphe de la fonction ReLU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.5 Exemples de modèles de CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5
  • 6. TABLE DES FIGURES 5.1 Détection des objets en utilisant des cadres de sélection . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2 Le cadre de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.3 IoU Score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.4 les sorties possibles de la détection d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.5 La détection d’un object dans deux différents ”frames” d’un vidéo . . . . . . . . . . . . . . . . . . . 62 5.6 Les problèmes des annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.7 Score Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.8 R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.9 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.1 L’architecture de notre réseaux de neurone Multicouches(MLP) . . . . . . . . . . . . . . . . . . . . . 70 6.2 La distribution des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.3 Visualisation des images des nombres manuscrits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.4 Flux de travail de Tensorflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.5 La configuration de modéle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.6 Entrainement du modéle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.7 Evaluation du modéle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.8 La prédiction sur l’ensemble de donnée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.9 La courbe d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.10 La courbe de précision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.11 L’affichage des poids synaptiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.12 La couche sortie d’un réseau de neurone dans le cas de classification Multiple . . . . . . . . . . . . . 76 6.13 Visualisation des images des nombres manuscrits allant de 0 à 9 . . . . . . . . . . . . . . . . . . . . 76 6.14 La structure de notre réseau de neurone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.15 Base des images :CIFAR-10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.16 La base des images :CIFAR-100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.17 Configuration du modèle 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.18 Configuration du modèle 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.19 Configuration du modèle 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.20 Précision et Erreur pour le Modèle 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.21 Matrice de Confusion pour le Modèle 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.22 Nombre total des images mal et bien classé de modéle 1 . . . . . . . . . . . . . . . . . . . . . . . . 81 6.23 Taux d’erreur et la précision de modéle 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.24 Précision et Erreur pour le Modèle 02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.25 Matrice de Confusion pour le Modèle 02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.26 Nombre total des images mal et bien classé de Modéle 2 . . . . . . . . . . . . . . . . . . . . . . . . 83 6.27 Taux d’erreur et la précision de Modéle 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.28 Précision et Erreur pour le modèle 03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.29 Matrice de Confusion pour le modèle 03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.30 Nombre total des images mal et bien classé du Modéle 3 . . . . . . . . . . . . . . . . . . . . . . . . 85 6.31 Taux d’erreur et la précision du Modéle 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.32 La courbe de précision du modéle 3 prés l’amélioration . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.33 La courbe d’erreur du modéle 3 prés l’amélioration . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 HAYTAM EL YOUSSFI, PFE: Deep Learning 6
  • 7. TABLE DES FIGURES Liste des abréviations DL : L’apprentissage profond ( Deep Learning ) ML :L’apprentissage automatique (Machine learning ) GPU : Un processeur graphique (Graphics Processing Unit) CPU : unité centrale de traitement (central processing unit) ROC : La fonction d’efficacité du récepteur (receiver operating characteristic,) CONV : Couche de convolution POOL : Couche de pooling FC : Couche entiérement connectée CNN : Les réseaux de neurones convolutifs(Convolutional Neural Network ) MLP : Les perceptrons multicouches (Multi Layer Perceptron) PNL :Système de traitement du langage naturel RNN : Les réseaux de neurones récurrents GAFAM : (Google, Apple, Facebook, Amazon, Microsoft). RVB : (Rouge, Vert, Bleu) HAYTAM EL YOUSSFI, PFE: Deep Learning 7
  • 8. Chapitre 1 Introduction générale Nous vivons dans un monde numérique, où les informations sont stockées, traitées, indexées et recherchées par des systèmes informatiques, ce qui rend leur récupération une tâche rapide et pas cher. Au cours des dernières années, des progrès considérables ont été réalisés dans le domaine de classification d’images. Ce progrès est dû aux nombreux travaux dans ce domaine et à la disponibilité des bases d’images internationales qui ont permis aux chercheurs de signaler de manière crédible l’exécution de leurs approches dans ce domaine, avec la possibilité de les comparer à d’autres approches qu’ils utilisent les mêmes bases. Dans la fin des années 80 Yan le Cun 1 a développé un type de réseau particulier qui s’appelle le réseau de neurone convolutionnel, ces réseaux sont une forme particulière de réseau neuronal multicouche dont l’architecture des connexions est inspirée de celle du cortex visuel des mammifères. Par exemple, chaque élément n’est connecté qu’à un petit nombre d’éléments voisins dans la couche précédente. En 1995, Yan le cun et deux autres ingénieurs ont développé un système automatique de lecture de chèques qui a été déployé largement dans le monde. À la fin des années 90, ce système lisait entre 10 et 20 % de tous les chèques émis aux États-Unis. Mais ces méthodes étaient plutôt difficiles à mettre en oeuvre avec les ordinateurs de l’époque, et malgré ce succès, les réseaux convolutionnels et les réseaux neuronaux plus généralement ont été délaissés par la communauté de la recherche entre 1998 et 2013. En 2014 et 2015 trois événements ont soudainement changé la situation. Tout d’abord, les GPU (Graphical Pro- cessing Unit) capables de plus de mille milliards d’opérations par seconde sont devenus disponibles pour un prix moins cher. Ces puissants processeurs spécialisés, initialement conçus pour le rendu graphique des jeux vidéo, se sont avérés être très performants pour les calculs des réseaux neuronaux. Deuxièmement, des expériences menées simultanément à Microsoft, Google et IBM avec l’aide du laboratoire de Geoff Hinton ont montré que les réseaux profonds pou- vaient diminuer de moitié les taux d’erreurs des systèmes de reconnaissance vocale. Troisièmement plusieurs records en reconnaissance d’image ont été battus par des réseaux de neurones convolutionnels. L’événement le plus marquant a été la victoire éclatante de l’équipe de Toronto dans la compétition de reconnaissance d’objets ”ImageNet” 2 . La diminution des taux d’erreurs était telle qu’une véritable révolution. Du jour au lendemain, la majorité des équipes de recherche en parole et en vision ont abandonné leurs méthodes préférées et sont passées aux réseaux de neurones convolutionnels et autres réseaux neuronaux. L’industrie d’Internet a immédiatement saisi l’opportunité et a commencé à investir massivement dans des équipes de recherche et développements en apprentissage profond. Dans notre projet on va utiliser les réseaux de neurones convolutionnels pour classifier les images, on va créer différents modèles avec différents architectures et par la suite on va appliquer ces modèles sur les bases d’images (Les IRISIRIS est un jeu de données multivariées présenté par Ronald Fisher dans son papier The use of multiple measurements in taxonomic problems comme un exemple d’application de l’analyse discriminante linéaire , MNIST ,CIFAR10 . . . .. ) . Pour ce faire, nous avons structuré notre Projet en quatre chapitres : Dans le premièr chapitre on va parlé de Machine learnigng (l’apprentissage automatique) et les différent types et nous spécialisons sur Deep Learning (L’apprentisage profond ) et les domaines d’application , on particulier classification des images et les vidéos donc nous présenterons les notions de base de la classification des images, les différents types des images et leur caractéristiques, ainsi que l’utilisation des réseaux de neurones artificiel dans la classification des images et les vidéos . Dans le deuxième chapitre, nous présenterons la notion de modélisation d’un réseau de neurone, l’utilisation dans la classification des images et les vidéos et les diffèrents paramétres qui composent de réseau de neurones . Dans le troisième chapitre est consacré à la description des réseaux de neurones convolutionnels ainsi que leurs l’intérêt dans le domaine de la classification des images et les vidéos . 1. Yan le Cun :est un chercheur en intelligence artificielle et vision artificielle (robotique). Il est considéré comme l’un des inventeurs de l’apprentissage profond 2. ImageNet est une base de données d’images annotées produit par l’organisation du même nom, à destination des travaux de recherche en vision par ordinateur. 8
  • 9. CHAPITRE 1. INTRODUCTION GÉNÉRALE Dans le quatrième chapitre, nous montrerons la partie expérimentale de notre travail, nous discuterons des différents résultats obtenus et nous nous terminerons par une conclusion générale. Dans le cinquième chapitre, nous discuterons des méthodes de détection des classes d’objets dans les vidéos en ignorant leurs fonctionnalités temporelles. HAYTAM EL YOUSSFI, PFE: Deep Learning 9
  • 10. Chapitre 2 L’apprentissage automatique et la classification 2.1 Introduction Les statistiques montrent qu’il y a plus de 3,8 milliards d’utilisateurs de courrier électronique et que 205 milliard de courriers sont envoyés par jour. Imaginez combien de courrier vous recevez sur votre adresse de courriel. Lorsque vous êtes trop actif sur Internet, vous risquez de recevoir du nombreux courriels qui ne vous intéressent pas, vous aurez du mal à trouver les Emails intéressants. Si les fournisseurs du service de messagerie ne vous protègent pas de ce problème, alors comment peuvent-ils déterminer si un Email est un spam ou non ? Les fournisseurs de services du messagerie tels que Gmail utilisent L’apprentissage automatique pour distinguer les mais des spams. L’apprentissage automatique collecte les données de vos courriels et l’objectif de votre courrier électronique afin de prédire les courriels susceptibles d’être du spam. [6] Alors, qu’est-ce que l’apprentissage automatique et comment ça marche ? 2.2 L’apprentissage automatique Les machines peuvent-elles penser ? ”Can machines think ?”... The new form of the problem can be described in terms of a game which we call the ’imitation game’. ”Les machines peuvent-elles penser ?” ... La nouvelle forme du problème peut être décrite en termes de jeu appelé ”jeu d’imitation”. Alan Mathison Turing Le jeu d’imitation est joué par trois personnes, un homme et une femme et un interrogateur ou une interrogatrice. Ce jeu consiste à demander à l’interrogateur de distinguer qui est l’homme et qui est la femme en posant simplement des questions aux ces deux personnes. S’il y a deux personnes A et B, l’interrogateur doit déterminer si A est un homme et B est une femme, ou A est une femme et B est un homme. Pour répondre à la question posé, au lieu d’utiliser un homme et une femme, on utilise une personne et une machine, si l’interrogateur ne peut pas distinguer qui est la personne, et qui est la machine, si l’interrogateur ne peut pas distinguer qui est la personne, et qui est la machine,donc on peut dire que les machines pensent, c’est-à-dire que la machine est devenue intelligente, et c’est la définition de l’intelligence artificielle donnée par Alan Mathison Turing en 1950.[6] On peut définir les machines intelligentes comme des des machines auto-programmés, creatives, ont la possiblité de reconnaitre des modèles d’une manière sophistiqué, simuler le cerveau, et de traiter les données rapidement, qui sont maintenant utilisée pour automatiser le travail de routine, reconaissance de la parole ou des images, établir un diagnostic en médecine et soutenir la recherche scientifique fondamentale, et maintenant, chercheurs, ingénieurs et entrepreneurs s’intéressent aux nouvelles technologies telles que :les systèmes de répondeur téléphonique intelligent et les algorithmes de recherche, les assistants personnels en forme de robots, ainsi que les méthodes de réparation du cerveau humain blessé ou défectueux.[14] L’intelligence artificielle a commencée par des essaies d’inventir des jeux d’ordinateurs qui peuvent gangner contre les humains, c’était le premier domaine sur lequel les scientifiques ont essayé d’appliquer l’intelligence artificielle. 10
  • 11. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION — En 1952, OXO (ou Morpion, Tic Tac Toe), mis au point par l’informaticien britannique Alexander S. Douglas pour l’ordinateur EDSAC de l’Université de Cambridge, devint l’un des premiers jeux connus. l’ordinateur pourrait jouer des jeux parfaits de tic-tac-toe contre un adversaire humain. — En 1952, Arthur Samuel a inventé un programme appelée ”Samuel Checkers” (jeu de dames) a été l’un des pre- miers programmes réussis au monde et, une démonstration très précoce du concept fondamental d’intelligence artificielle (IA), ce programme s’améliorait en jouant, et il parvint à battre le 4e meilleur joueur des États-Unis. — En 1956, Alex Bernstein un mathématicien américain, joueur d’échecs et employé d’IBM. Avec ses collègues Michael de V. Roberts, Timothy Arbuckle et Martin Belsky, Alex Bernstein était l’auteur principal du programme d’échecs Bernstein pour l’IBM 704. Ces évolutions ont conduit à la naissance d’un nouveau domaine de l’intelligence , qui est l’apprentissage automatique. L’apprentissage automatique, est l’étude scientifique d’algorithmes et de modèles statistiques que les systèmes informatiques utilisent pour effectuer efficacement une tâche spécifique sans utiliser d’instructions explicites, en s’ap- puyant plutôt sur des modèles et sur des inférences. — Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed. — L’apprentissage automatique est le domaine d’étude qui donne aux ordinateurs la possibilité d’apprendre sans être explicitement programmé. Arthur Samuel, 1959 Les algorithmes d’apprentissage automatique construisent un modèle mathématique d’échantillons de données, appelé ”données d’apprentissage”, afin de faire des prédictions ou de prendre des décisions sans être explicitement programmé pour effectuer la tâche. Les algorithmes d’apprentissage automatique sont utilisés dans une grande variété d’applications, telles que le filtrage de courrier électronique et la vision par ordinateur, où il est impossible de développer un algorithme d’instructions spécifiques pour effectuer la tâche. L’apprentissage automatique est étroitement lié aux statistiques informatiques, qui se concentrent sur la réalisation de prédictions à l’aide d’ordinateurs. L’étude de l’optimisation mathématique permet d’appliquer des méthodes, de la théorie et des domaines d’application au domaine de l’apprentissage automatique.[15] 2.2.1 Les types d’apprentissage automatique Il existe trois types d’apprentissages dans l’apprentissage automatique ”Machine Learning” : — L’apprentissage supervisé :L’objectif principal de ce type est de faire apprendre à un modèle en utilisant des données d’apprentissage étiquetées, ce qui nous permet de faire des prédictions sur des données non vues ou futures. Terme supervisé ici fait référence à un ensemble d’échantillons où les données de sortie souhaités libellées sont déjà connues.[3] Figure 2.1 – Diagramme de l’apprentissage supervisé — L’apprentissage non supervisé s’agit de trouver des structures sous-jacentes à partir de données non étiquetées. Puisque les données ne sont pas étiquetées, il n’est pas possible d’affecter au résultat de l’algorithme utilisé un score d’adéquation. Cette absence d’étiquetage est ce qui distingue les tâches d’apprentissage non-supervisé des tâches d’apprentissage supervisé.[3] HAYTAM EL YOUSSFI, PFE: Deep Learning 11
  • 12. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION Figure 2.2 – Diagramme de l’apprentissage non supervisé — L’apprentissage par renforcement consiste, pour un agent autonome (robot, etc.), à apprendre les actions à prendre, à partir d’expériences, de façon à optimiser une récompense quantitative au cours du temps. L’agent est plongé au sein d’un environnement, et prend ses décisions en fonction de son état courant. En retour, l’environnement procure à l’agent une récompense, qui peut être positive ou négative. L’agent cherche, au travers d’expériences itérées, un comportement décisionnel (appelé stratégie ou politique, et qui est une fonction associant à l’état courant l’action à exécuter) optimal, en ce sens qu’il maximise la somme des récompenses au cours du temps.[3] Figure 2.3 – Diagramme de l’apprentissage par renforcement 2.2.2 La différence entre l’apprentissage supervisé et l’apprentissage non supervisé La principale différence entre les deux types réside dans le fait que l’apprentissage supervisé se fait sur la base d’une vérité fondamentale. En d’autres termes, nous avons une connaissance préalable de ce que devraient être les valeurs de sortie de nos échantillons. Par conséquent, l’objectif de l’apprentissage supervisé est d’apprendre une fonction qui, à partir d’un échantillon de données et des résultats souhaités, se rapproche le mieux de la relation entre entrée et sortie observable dans les données. En revanche, l’apprentissage non supervisé consiste à apprendre sans superviseur. Il s’agit d’extraire des classes ou groupes d’individus présentant des caractéristiques communes. La qualité d’une méthode de classification est mesurée par sa capacité à découvrir certains ou tous les motifs cachés. 2.2.3 L’apprentissage supervisé et les réseaux de neurones profonds Plus nous connaissons bien un domaine, plus il nous est facile de résoudre des problèmes dans ce domaine. L’expérience facilite la raisonnement dans un domaine, car nous pouvons utiliser des exemples que nous avons rencontrés pour trouver des solutions intuitives. En physique, par exemple, nous apprenons un domaine comme l’électricité et le magnétisme en résolvant de nombreux problèmes et non en mémorisant des formules. Si l’intelligence humaine était basée uniquement sur la logique, elle devrait être du domaine général, ce qui n’est pas le cas.[13] Donc, pour créer une intelligence artificielle, nous devons créer un système simulant le cerveau humain. Quatre indices ont aidé l’IA à devenir un domaine basé sur l’apprentissage par l’expérience, non purement sur la logique : — Le premier indice était que notre cerveau est un système puissant de reconnaissance des modèles (motifs). Nos systèmes visuels peuvent reconnaı̂tre un objet dans une scène encombrée en un dixième de seconde, même si nous n’avons peut-être jamais vu cet objet particulier auparavant et même lorsque l’objet se trouve dans n’importe quel endroit, quelle que soit sa taille et son orientation. . En bref, notre système visuel se comporte comme un ordinateur dont l’objet reconnaı̂t un objet est une instruction unique. — Le deuxième indice était que nos cerveaux peuvent apprendre à effectuer de nombreuses tâches difficiles par la pratique. — Le troisième indice était que nos cerveaux ne sont pas remplis de logique ou de règles. Oui, nous pouvons apprendre à penser de manière logique ou à suivre des règles, mais seulement après beaucoup d’entraı̂nement. — Le quatrième indice était que nos cerveaux sont remplis de milliards de neurones qui communiquent constam- ment les uns avec les autres.[13] HAYTAM EL YOUSSFI, PFE: Deep Learning 12
  • 13. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION Ceci suggère que, pour résoudre des problèmes difficiles de l’intelligence artificielle, nous devrions nous intéresser à des ordinateurs dotés d’architectures parallèles au cerveau humain, ce qui conduit à la création de réseaux de neurones artificiels. Un réseau de neurones artificiels, ou réseau neuronal artificiel, est un système dont la conception est à l’origine schématiquement inspirée du fonctionnement des neurones biologiques, et qui par la suite s’est rapproché des méthodes statistiques. Définition : Les réseaux de neurones sont une métaphore des structures cérébrales : des assemblages de constituants élémentaires, qui réalisent chacun un traitement simple voire simpliste, mais dont l’ensemble fait émerger des propriétés globales dignes d’intérêt. Chaque constituant fonctionne indépendamment des autres, de telle sorte que l’ensemble est un système parallèle, fortement interconnecté. L’information détenue par le réseau de neurones est distribuée à travers l’ensemble des constituants, et non localisée dans une partie de mémoire sous la forme d’un symbole. Enfin, un réseau de neurones ne se programme pas pour réaliser telle ou telle tâche. Il est entraı̂né sur des données acquises, grâce à un mécanisme d’apprentissage qui agit sur les constituants du réseau afin de réaliser au mieux la tâche souhaitée.[7] Historique des réseaux de neurones artificiels — En 1943, le neurophysiologiste Warren McCulloch et le mathématicien Walter Pitts publient un article décrivant le fonctionnement de neurones en les représentant à l’aide de circuits électriques. Cette représentation sera la base théorique des réseaux neuronaux. — En 1957, Frank Rosenblatt invente le perceptron alors qu’il travaillait au laboratoire aéronautique Cornell. L’invention du perceptron a suscité beaucoup d’enthousiasmes. — En 1970, Seppo Linnainmaa publie la méthode générale de différenciation automatique (AD) de réseaux connectés discrets de fonctions différentiables imbriquées. Ceci correspond à la version moderne de back- propagation, mais n’est pas encore nommé comme tel. — En 1980, Kunihiko Fukushima publie pour la première fois ses travaux sur le néocognitron, un type de réseau de neurones artificiels (ANN). La néocognition inspire plus tard les réseaux de neurones convolutionnels (CNN). (la néocognition a été utilisé pour la reconnaissance de caractères manuscrite et d’autres tâches de reconnaissance de formes) L’apprentissage automatique a utilisé des approches algorithmiques pendant plusieurs années, notamment l’ap- prentissage par arbre de décision, la programmation de la logique inductive, l’apprentissage par renforcement et les réseaux bayésiens 1 . Mais, aucun n’a atteint l’objectif ultime de l’intelligence artificielle générale. 2.2.4 L’apprentissage automatique et la vision par ordinateur La vision par ordinateur était l’un des meilleurs domaines d’application pour l’apprentissage automatique depuis de nombreuses années, bien qu’il requiert encore beaucoup de codage manuel pour faire le travail. Les informaticiens écrivaient des classificateurs codés à la main tels que des filtres de détection des contours afin que le programme puisse identifier où un objet commençait et s’arrêtait ; détection de forme pour déterminer si elle avait huit côtés ; un classificateur pour reconnaı̂tre les lettres S-T-O-P. À partir de tous ces classificateurs codés à la main, ils développeraient des algorithmes pour donner un sens à l’image et apprendraient pour déterminer s’il s’agissait d’un signe d’arrêt. Il ya une raison pour laquelle la vision par ordinateur et la détection d’image n’ont rivalisé avec l’être humain que très récemment : c’était trop fragile et trop sujet aux erreurs. Le temps et les bons algorithmes d’apprentissage ont fait toute la différence. 2.3 L’apprentissage profond 1. Un réseau bayésien est en informatique et en statistique un modèle graphique probabiliste représentant des variables aléatoires sous la forme d’un graphe orienté acyclique. HAYTAM EL YOUSSFI, PFE: Deep Learning 13
  • 14. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION Figure 2.4 – L’apprentissage profond - l’apprentissage automatique - l’intelligence artificielle L’apprentissage profond est un ensemble de méthodes d’apprentissage automatique tentant de modéliser avec un haut niveau d’abstraction des données grâce à des architectures articulées de différentes transformations non linéaires. Ces techniques ont permis des progrès importants et rapides dans les domaines de l’analyse du signal sonore ou visuel et notamment de la reconnaissance faciale, de la reconnaissance vocale, de la vision par ordinateur, du traitement automatisé du langage. Dans les années 2000, ces progrès ont suscité des investissements privés, universitaires et publics importants, notamment de la part des GAFAM (Google, Apple, Facebook, Amazon, Microsoft). Les techniques d’apprentissage profond constituent une classe d’algorithmes d’apprentissage automatique qui : — utilisent différentes couches d’unité de traitement non linéaire pour l’extraction et la transformation des ca- ractéristiques ; chaque couche prend en entrée la sortie de la précédente ; les algorithmes peuvent être supervisés ou non supervisés, et leurs applications comprennent la reconnaissance de modèles et la classification statistique ; — fonctionnent avec un apprentissage à plusieurs niveaux de détail ou de représentation des données ; à travers les différentes couches, on passe de paramètres de bas niveau à des paramètres de plus haut niveau, où les différents niveaux correspondent à différents niveaux d’abstraction des données. Les advantages de l’apprentissage profond : — Plus de neurones que les réseaux utilisées par l’apprentissage automatique. — Moyens plus complexes de connecter des couches / neurones dans les réseaux des neurones. — Plus grand capacité de calcul disponible pour entrainer un réseau. — Extraction automatique des caractéristiques. [11] 2.4 Les motivations de la classification des images La classification des images consiste à répartir systématiquement des images selon des classes établies au préalable, classer une image lui fait correspondre une classe, marquant ainsi sa parenté avec d’autres images. En général reconnaı̂tre une image est une taché aisée pour un humain au fil de son existence, il a acquis des connaissances qui lui permettent de s’adapter aux variations qui résultent de conditions différents d’acquisition.il lui est par exemple relativement simple de reconnaı̂tre un objet dans plusieurs orientations partiellement caché par un autre de près ou de loin et selon diverses illuminations. Toutefois les progrès technologiques en terme d’acquisition d’images (microscopes, caméras, capteurs) et de sto- ckage engendrent des bases de données riche en information et multiplient les domaines d’applications, il devient alors difficile pour l’humain d’analyser le nombre important d’images, le temps requis le caractère répétitif de la tâche et la concentration nécessaire sont problématiques. Toutefois celle-ci n’est pas forcément aisée pour un programme informatique pour lequel une image est un ensemble de valeur numérique . L’objectif de la classification d’images est d’élaborer un système capable d’affecter une classe automatiquement à une image. Ainsi, ce système permet d’effectuer une tâche d’expertise qui peut s’avérer coûteuse à acquérir pour un être humain en raison notamment de contraintes physiques comme la concentration, la fatigue ou le temps nécessité par un volume important de données images . Les applications de la classification automatique d’images sont nombreuses et vont de l’analyse de documents à la médecine en passant par le domaine militaire. Ainsi on retrouve des applications dans le domaine médical comme la reconnaissance de cellules et de tumeurs, la reconnaissance d’écriture manuscrite pour les chèques les codes postaux. Dans le domaine urbain comme la reconnaissance de panneaux de signalisation la reconnaissance de piétons la détection HAYTAM EL YOUSSFI, PFE: Deep Learning 14
  • 15. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION de véhicules la reconnaissance de bâtiments pour aider à la localisation. Dans le domaine de la biométrie comme la reconnaissance de visage, d’empreintes, d’iris. Le point commun à toutes ces applications est qu’elles nécessitent la mise en place d’une chaı̂ne de traitement à partir des images disponibles composée de plusieurs étapes afin de fournir en sortie une décision. Chaque étape de la mise en place d’un tel système de classification nécessite la recherche de méthodes appropriées pour une performance globale optimale à savoir la phase d’extraction de caractéristiques et la phase d’apprentissage. Typiquement, nous disposons de données images desquelles il nous faut extraire des informations pertinentes traduites sous formes de vecteurs numériques. Cette phase d’extraction nous permet de travailler dans un espace numérique. Il s’agit ensuite d’élaborer dans la phase d’apprentissage, à partir de ces données initiales, une fonction de décision pour décider de l’appartenance d’une donnée nouvelle à l’une des classes en présence. 2.5 Notions de base 2.5.1 Définition d’une image numérique Une image est une représentation planaire d’une scène ou d’un objet situé en général dans un espace tridimensionnel, elle est issue du contact des rayons lumineux provenant des objets formants la scène avec un capteur (caméra, scanner, rayons X, ...). Il ne s’agit en réalité que d’une représentation spatiale de la lumière. L’image est considérée comme un ensemble de points auquel est affectée une grandeur physique (luminance, cou- leur). Ces grandeurs peuvent être continues (image analogique) ou bien discrètes (images digitales). Mathématiquement, l’image représente une fonction continue IF, appelée fonction image , de deux variables spatiales représentée par IF(x, y) mesurant la nuance du niveau de gris de l’image aux coordonnées (x, y). La fonction Image peut se représenter sous la forme suivante : F : R2 → R avec R l’ensemble de réels. (x, y) → F(x, y) avec x,y : deux variables réelles. — Image couleur RVB :L’oeil humain analyse la couleur à l’aide de trois types de cellules photo ”les cônes” . Ces cellules sont sensibles aux basses, moyennes, ou hautes fréquences (rouge,vert,bleu). Pour représenter la couleur d’un pixel, il faut donc donner trois nombres, qui correspondent au dosage de trois couleurs de base : Rouge, Vert, Bleu. On peut ainsi représenter une image couleur par trois matrices chacune correspondant à une couleur de base. — Image d’intensité :C’est une matrice dans laquelle chaque élément est un réel compris entre 0 (noir) et 1 (blanc). On parle aussi d’image en niveaux de gris, car les valeurs comprises entre 0 et 1 représentent les différents niveaux de gris. — Image binaire :Une image binaire est une matrice rectangulaire dans l’élément valent 0 ou 1. Lorsque l’on visualise une telle image, les 0 sont représentés par du noir et les 1 par du blanc. 2.5.2 Caractéristiques de l’image L’image est un ensemble structuré d’information caractérisé par les paramètres suivants : — Pixel : Le pixel est l’abréviation du mot Picture élément est une unité de surface permettant de définir la base d’une image numérique. Il matérialise un point donné (x, y) du plan de l’image. L’information présentée par le pixel est le niveau de gris (ou la couleur) prélevée à l’emplacement correspondant dans l’image réelle. La différence entre image monochrome et image couleur réside dans la quantité d’informations contenue dans chaque pixel, par exemple dans une image couleur (RVB : Rouge, Vert, Bleu) la valeur d’un pixel est représentée sur trois octets pour chaque couleur. — Dimension et Résolution :La dimension est la taille de l’image. Elle se présente sous forme d’une matrice dont les éléments sont des valeurs numériques représentatives des intensités lumineuses (pixels). Le nombre de lignes de cette matrice multiplié par le nombre de colonnes nous donne le nombre total de pixels dans une image. Par contre, la résolution est la clarté ou la finesse de détails atteinte par un moniteur ou une imprimante dans la production d’images. Sur les moniteurs d’ordinateur, la résolution est exprimée en nombre de pixels par unité de mesure (pouce ou centimètre). On utilise aussi le mot résolution pour désigner le nombre total de pixels horizontaux et verticaux sur un moniteur. Plus ce nombre est grand, plus la résolution est meilleure. — Voisinage : Le plan de l’image est divisé en termes de formes rectangulaires ou hexagonales permettant ainsi l’exploitation de la notion de voisinage (voir figure). Le voisinage d’un pixel est formé par l’ensemble des pixels qui se situent autour de ce même pixel. On définit aussi l’assiette comme étant l’ensemble de pixels définissant le voisinage pris en compte autour d’un pixel. On distingue deux types de voisinage : HAYTAM EL YOUSSFI, PFE: Deep Learning 15
  • 16. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION — Voisinage à 4 : On ne prend en considération que les pixels qui ont un coté commun avec le pixel considéré. P(i,j-1) P(i-1,j) P(i,j) P(i+1,j) P(i,j+1) Table 2.1 – Voisinnage à 4 — Voisinage à 8 : On prend en compte tous les pixels qui ont au moins un point en liaison avec le pixel considéré. P(i-1,j-1) P(i,j-1) P(i+1,j-1) P(i-1,j) P(i,j) P(i+1,j) P(i-1,j+1) P(i,j+1) P(i+1,j+1) Table 2.2 – Voisinnage à 8 — Niveau de gris : C’est la valeur d’intensité lumineuse d’un pixel. Cette valeur peut aller du noir (0) jusqu’au blanc (255) en passant par les nuances qui sont contenues dans l’intervalle [0, 255]. Elle correspond en fait à la quantité de la lumière réfléchie. Pour 8 bits, on dispose de 256 niveaux de gris dont 40 sont reconnus à l’oeil nue. Plus le nombre de bit est grand plus les niveaux sont nombreux et plus la représentation est fidèle. — Contraste : C’est l’opposition marquée entre deux régions d’une image. Une image contrastée présente une bonne dynamique de la distribution des valeurs de gris sur tout l’intervalle des valeurs possibles, avec des blancs bien clairs et des noirs profonds. Au contraire une image peu contrastée a une faible dynamique, la plupart des pixels ayant des valeurs de gris très proches. Si L1 et L2 sont les degrés de luminosité respectivement de deux zones voisines A1 et A2 d’une image, le contraste est défini par le rapport : C = L1−L2 L1+L2 — Luminance : C’est le degré de luminosité des points de l’image. Elle est définie aussi comme étant le quotient de l’intensité lumineuse d’une surface par l’aire apparente de cette surface, pour un observateur lointain, le mot luminance est substitué au mot brillance, qui correspond à l’éclat d’un objet. Une bonne luminance se caractérise par : — Des images lumineuses (brillantes) — Un bon contraste : il faut éviter les images où la gamme de contraste tend vers le blanc ou le noir ; ces images entraı̂nent des pertes de détails dans les zones sombres ou lumineuses. — L’absence de parasites. — Bruit : Un bruit (parasite) dans une image est considéré comme un phénomène de brusque variation de l’intensité d’un pixel par rapport à ses voisins, il provient de l’éclairage des dispositifs optiques et électroniques du capteur. C’est un parasite qui représente certains défauts (poussière, petits nuages, baisse momentanée de l’intensité électrique sur les capteurs, ...etc.). Il se traduit par des taches de faible dimension et dont la distribution sur l’image est aléatoire. — Contour : Les contours représentent la frontière entre les objets de l’image, ou la limite entre deux pixels dont les niveaux de gris représentant une différence significative. Dans une image numérique, les contours se situent entre les pixels appartenant à des régions ayant des intensités moyennes différentes ; il s’agit de contours de type ” saut d’amplitude ”. Un contour peut également correspondre à une variation locale d’intensité présentant un maximum ou un minimum ; il s’agit alors de contour ”en toit ”. 2.6 Classification des images et l’apprentissage machine Les méthodes manuelles se sont avérées très difficiles à appliquer pour des tâches en apparence très simples comme la classification des images, la reconnaissance d’objets dans les images ou la reconnaissance vocale. Les données venant du monde réel les échantillons d’un son ou les pixels d’une image sont complexes, variables et entachées de bruit. Pour une machine, une image est un tableau de nombres indiquant la luminosité (ou la couleur) de chaque pixel, et un signal sonore une suite de nombres indiquant la pression de l’air à chaque instant.Comment une machine peut- elle transcrire la suite de nombres d’un signal sonore en série de mots tout en ignorant le bruit ambiant, l’accent du locuteur et les particularités de sa voix ? Comment une machine peut-elle identifier un chien ou une chaise dans le tableau de nombres d’une image quand l’apparence d’un chien ou d’une chaise et des objets qui les entourent peut varier infiniment ? HAYTAM EL YOUSSFI, PFE: Deep Learning 16
  • 17. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION Il est virtuellement impossible d’écrire un programme qui fonctionnera de manière robuste dans toutes les situations. C’est là qu’intervient l’apprentissage machine (que l’on appelle aussi apprentissage automatique). C’est l’apprentissage qui anime les systèmes de toutes les grandes entreprises d’Internet. Elles l’utilisent depuis longtemps pour filtrer les contenus indésirables, ordonner des réponses à une recherche, faire des recommandations, ou sélectionner les informations intéressantes pour chaque utilisateur. Un système entraı̂nable peut être vu comme une boite noire avec une entrée, par exemple une image, un son, ou un texte, et une sortie qui peut représenter la catégorie de l’objet dans l’image, le mot prononcé, ou le sujet dont parle le texte. On parle alors de systèmes de classification ou de reconnaissance des formes. Dans sa forme la plus utilisée, l’apprentissage machine est supervisé : on montre en entrée de la machine une photo d’un objet, par exemple une voiture, et on lui donne la sortie désirée pour une voiture. Puis on lui montre la photo d’un chien avec la sortie désirée pour un chien. Après chaque exemple, la machine ajuste ses paramètres internes de manière à rapprocher sa sortie de la sortie désirée. Après avoir montré à la machine des milliers ou des millions d’exemples étiquetés avec leur catégorie, la machine devient capable de classifier correctement la plupart d’entre eux. Mais ce qui est plus intéressant, c’est qu’elle peut aussi classifier correctement des images de voiture ou de chien qu’elle n’a jamais vues durant la phase l’apprentissage. C’est ce qu’on appelle la capacité de généralisation. Jusqu’à récemment, les systèmes de reconnaissance des images classiques étaient composés de deux blocs : un extracteur de caractéristiques (feature extractor en anglais), suivi d’un classifieur entraı̂nable simple. L’extracteur de caractéristiques est programmé à la main, et transforme le tableau de nombres représentant l’image en une série de nombres, un vecteur de caractéristiques, dont chacun indique la présence ou l’absence d’un motif simple dans l’image. Ce vecteur est envoyé au classifieur, dont un type commun est le classifieur linéaire. Ce dernier calcule une somme pondérée des caractéristiques : chaque nombre est multiplié par un poids (positif ou négatif) avant d’être sommé. Si la somme est supérieure à un seuil, la classe est reconnue. Les poids forment une sorte de ’prototype’ pour la classe à laquelle le vecteur de caractéristiques est comparé. Les poids sont différents pour les classifieurs de chaque catégorie, et ce sont eux qui sont modifiés lors de l’apprentissage. Les premières méthodes de classification linéaire entraı̂nable datent de la fin des années cinquante et sont toujours largement utilisées aujourd’hui. Elles prennent les doux noms de perceptron ou régression logistique . 2.7 Classification des images et les réseaux de neurones profonds Le problème de l’approche classique de la reconnaissance des images est qu’un bon extracteur de caractéristiques est très difficile à construire, et qu’il doit être repensé pour chaque nouvelle application. C’est là qu’intervient l’apprentissage profond ou deep learning en anglais. C’est une classe de méthodes dont les principes sont connus depuis la fin des années 1980, mais dont l’utilisation ne s’est vraiment généralisée que depuis 2012, environ. L’idée est très simple : le système entraı̂nable est constitué d’une série de modules, chacun représentant une étape de traitement. Chaque module est entraı̂nable, comportant des paramètres ajustables similaires aux poids des classifieurs linéaires. Le système est entraı̂né de bout en bout : à chaque exemple, tous les paramètres de tous les modules sont ajustés de manière à rapprocher la sortie produite par le système de la sortie désirée. Le qualificatif profond vient de l’arrangement de ces modules en couches successives. Pour pouvoir entraı̂ner le système de cette manière, il faut savoir dans quelle direction et de combien ajuster chaque paramètre de chaque module. Pour cela il faut calculer un gradient, c’est-à-dire pour chaque paramètre ajustable, la quantité par laquelle l’erreur en sortie augmentera ou diminuera lorsqu’on modifiera le paramètre d’une quantité donnée. Le calcul de ce gradient se fait par la méthode de rétropropagation, pratiquée depuis le milieu des années 1980. Dans sa réalisation la plus commune, une architecture profonde peut être vue comme un réseau multicouche d’éléments simples, similaires aux classifieurs linéaires, interconnectés par des poids entraı̂nables. C’est ce qu’on appelle un réseau neuronal multicouche . Pourquoi neuronal ? Un modèle extrêmement simplifié des neurones du cerveau les voit comme calculant une somme pondérée et activant leur sortie lorsque celle-ci dépasse un seuil. L’apprentissage modifie les efficacités des synapses, les poids des connexions entre neurones. Un réseau neuronal n’est pas un modèle précis des circuits du cerveau, mais est plutôt vu comme un modèle conceptuel ou fonctionnel. Le réseau neuronal est inspiré du cerveau un peu comme l’avion est inspiré de l’oiseau. Ce qui fait l’avantage des architectures profondes, c’est leur capacité d’apprendre à représenter le monde de manière hiérarchique. Comme toutes les couches sont entraı̂nables, nul besoin de construire un extracteur de caractéristiques à la main. L’entraı̂nement s’en chargera. De plus, les premières couches extrairont des caractéristiques simples (présence de contours) que les couches suivantes combineront pour former des concepts de plus en plus complexes et abstraits : assemblages de contours en motifs, de motifs en parties d’objets, de parties d’objets en objets, etc 2.8 Révolution d’apprentissage profond HAYTAM EL YOUSSFI, PFE: Deep Learning 17
  • 18. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION 2.8.1 L’évolution des CPU et des GPU 2.8.1.1 L’unité centrale de traitement L’unité centrale de traitement est le cerveau des ordinateurs et plusieurs dispositifs électroniques, c’est un composant éléctrique (une collection de millions de transistors) qui exécute les instructions d’un programme d’ordinateur en effectuant des opérations arithmétiques, logiques, de contrôle etles opérations d’entrée et de sortie spécifiées par les instructions. 2.8.1.2 L’unité graphique de traitement Un processeur graphique, ou GPU , est un circuit intégré présent la plupart du temps sur une carte graphique (mais pouvant aussi être intégré sur une carte-mère ou dans un CPU) et assurant les fonctions de calcul de l’affichage. Un processeur graphique a généralement une structure hautement parallèle (voir accélération matérielle) qui le rend efficace pour une large palette de tâches graphiques comme le rendu 3D, en Direct3D ou en OpenGL, la gestion de la mémoire vidéo, le traitement du signal vidéo, la décompression Mpeg, etc. Leur parallélisme massif les rend aussi intéressants comme processeurs de calcul matriciel, ou pour des cassages de code en force brute d’archives chiffrées. 2.8.1.3 L’unité graphique de traitement et l’apprentissage profond La différence entre une unité centrale de traitementet une unité graphique de traitement est la manière de gestion des capacités, l’unité centrale de traitement est un processeur à usage général, qui est bonne lorsqu’on l’utilise pour traiter des sons, visuals, fichiers textuelles ... etc, mais pour le domaine de traitement des images, on a besoin d’un processeur dédié à traiter une seule tâche, traiter et visualiser les images, un processeur qui a la capacité de traiter une immense quantité de données, qui représentent des images à deux dimensions ou 3 dimensions, c’est-à-dire qu’il peut appliquer les différentes operations de la géometrie et les transformations sur ces images comme : — la translation — la rotaion — la réfléxion — l’homothétie . L’unité centrale de traitement n’est pas le meilleure choix, parce qu’il est composé de seulement quelques cœurs avec beaucoup de mémoire cache pouvant gérer plusieurs threads logiciels à la fois, même que chaque coeur de ce processeur est forte, chaque coeur du processeur est adapté à traister une seule instruction par cycle d’horloge, c’est-à-dire qu’il traite l’ensemble des instructions d’une manière linéaire, une instruction aprés l’autre (processeur scalaire). HAYTAM EL YOUSSFI, PFE: Deep Learning 18
  • 19. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION En revanche, l’unité graphique de traitement est composé de centaines de cœurs pouvant gérer des milliers de threads simultanément. La capacité d’un processeur graphique doté de plus de 100 cœurs à traiter des milliers de threads peut accélérer certains logiciels 100 fois par rapport à une unité centrale de traitement uniquement. De plus, le GPU réalise cette accélération tout en étant plus économique au niveau dénergie et aussi au niveau de coût qu’un unité centrale de traitement. En plus, les unités graphiques de traitement utilisent le modèle pipeline graphique sa principale fonction est de générer ou de restituer une image en deux dimensions, à partir d’une caméra virtuelle, d’objets en trois dimensions, de sources de lumière, etc. Le pipeline de rendu est donc l’outil sous-jacent du rendu en temps réel.Les emplacements et les formes des objets dans l’image sont déterminés par leur géométrie, les caractéristiques de l’environnement et l’emplacement de la caméra dans cet environnement. est affecté par les propriétés des matériaux, les sources de lumière, les textures (images appliquées aux surfaces) et les équations d’ombrage.[2] Principe de pipeline graphique Un pipeline graphique peut être divisé en trois parties principales : Application, Géométrie et Rastérisation. Application : Le fichier contenant le graphique que l’on veut traiter est chargé du disque vers la RAM, l’unité centrale de traitement envoie des informations et des commandes au l’unité graphique de traitement en passant par le tampon de commandes, ces informations seront stockées dans la VRAM, pour que le traitement soit vite, puisque de l’unité graphique de traitement avec la VRAM et plus vite que avec la RAM. Géométrie Dans cette partie, les graphiques sont représentés par des vertices (sommets), qui sont des structures des données qui décrivent certains attributs, comme la position d’un point dans un espace 2D ou 3D, ou plusieurs points sur une surface. L’unité graphique de traitement les traite en deux étapes : — L’étape de filtrage de vertices : les vertices sont transformés en ”espace de vue” tel que chaque vertex est transformé indépendament. HAYTAM EL YOUSSFI, PFE: Deep Learning 19
  • 20. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION — L’étape de traitement primitif : les vertives organisés en primitives (triangulaires) : Rastérisation — Premièrement, les primitives sont pixellisées en fragments de pixels tel que chaque primitive est pixellisée indépendament. — Deuxièmement, on calcule chaque le couleur de chaque pixel. HAYTAM EL YOUSSFI, PFE: Deep Learning 20
  • 21. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION — Troisièmement, Les fragments sont mélangés dans le framebuffer à leur emplacement de pixel (le z-buffer détermine la visibilité).[2] Les entitées du pipeline : En conclusion, la bonne qualité de la performance de l’unité graphique de traitement aide les scientifiques de réaliser des évolutions dans le domaine de traitement des images, ce qui aide a appliquer les algorithmes de l’apprentissage profond pour la recaonnaissance des images d’une manière developpé et efficace. 2.8.2 Les nouvelles architectures de réseaux des neurones utilisés par l’apprentissage profond 2.8.2.1 Les réseaux de neurones convolutifs HAYTAM EL YOUSSFI, PFE: Deep Learning 21
  • 22. CHAPITRE 2. L’APPRENTISSAGE AUTOMATIQUE ET LA CLASSIFICATION Les réseaux de neurones convolutifs (CNN) ont émergé de l’étude du cortex visuel du cerveau et sont utilisés dans la reconnaissance d’image depuis les années 1980. Au cours des dernières années, grâce à l’augmentation de la puissance de calcul, à la quantité de données d’apprentissage disponibles, les CNN ont réussi à atteindre des performances surhumaines dans certaines tâches visuelles complexes. Ils alimentent les services de recherche d’images, les voitures autonomes, les systèmes de classification automatique des vidéos, etc. De plus, les CNN ne se limitent pas à la perception visuelle : ils réussissent également à d’autres tâches, telles que la reconnaissance vocale ou le traitement du langage naturel.[8] 2.8.2.2 Les réseaux de neurones récurrents Les réseaux de neurones récurrents (RNN) constituent une classe de réseaux pouvant prédire l’avenir (jusqu’à un certain point, bien sûr). Ils peuvent analyser des données de séries chronologiques telles que les cours des actions et vous indiquer quand acheter ou vendre. Dans les systèmes de conduite autonome, ils peuvent anticiper les trajectoires des voitures et éviter les accidents. Plus généralement, ils peuvent travailler sur des séquences de longueurs arbitraires, plutôt que sur des entrées de taille fixe comme tous les réseaux décrits précédemment. Par exemple, ils peuvent prendre des phrases, des documents ou des échantillons audio en entrée, ce qui les rend extrêmement utiles pour les systèmes de traitement du langage naturel (PNL) tels que la traduction automatique, la synthèse vocale ou l’analyse des sentiments (par exemple, la lecture de critiques de films et l’extraction du sentiment de l’évaluateur à propos du film). De plus, la capacité d’anticipation des RNN les rend également capables d’une créativité surprenante. Vous pouvez leur demander de prédire quelles sont les prochaines notes les plus probables d’une mélodie, puis choisissez-en une au hasard et jouez-la. Ensuite, demandez au réseau les notes les plus probables, jouez-le et répétez le processus encore et encore. Avant que vous ne le sachiez, votre réseau composera une mélodie telle que celle produite par le projet Google de Magenta. De même, les RNN peuvent générer des phrases, des légendes d’images et bien plus encore.[8] 2.9 Conclusion Nous avons consacré ce chapitre à la présentation l’apprentissage automatique et en particulier l’apprentissage profond en des notions de la classification ainsi que leurs intérêts dans le domaine d’imagerie et on a parlé aussi de l’utilisation des réseaux de neurones dans ce domaine. Dans le deuxième chapitre nous allons détailler les réseaux de neurones et plus précisément l’utilisation des réseaux de neurones convolutionnels dans la classification des images. HAYTAM EL YOUSSFI, PFE: Deep Learning 22
  • 23. Chapitre 3 Modélisation des neurones 3.1 Introduction Les réseaux des neurones artificiels sont des structures la plupart du temps simulées par des algorithmes exécutés sur les ordinateurs d’usage général, parfois sur des machines ou même des circuits spécialisés, qui prennent leurs ins- pirations à partir du fonctionnement élémentaire des systèmes nerveux. Ils sont utilisés essentiellement pour résoudre des problèmes de classification, de reconnaissance de formes, d’association, d’extraction de caractéristique, et d’iden- tification . Dans ce chapitre nous allons parler sur un neurone artificiel et la signification un réseau de neurone mul- ticouches (perceptron multicouche) et des différents hyperparamétres qui influencent sur notre modèle neuronal ? 3.2 Les neurones biologiques Un neurone, ou cellule nerveuse, est une cellule excitable constituant l’unité fonctionnelle de base du système nerveux. Les neurones assurent la transmission d’un signal bioélectrique appelé influx nerveux. Ils ont deux propriétés physiologiques : l’excitabilité :la capacité de répondre aux stimulations et de convertir celles-ci en impulsions nerveuses, et la conductivité, c’est-à-dire la capacité de transmettre les impulsions. Structure :On pense que le système nerveux compte plus de 1000 milliards de neurones interconnectés. Bien que les neurones ne soient pas tous identiques, leur forme et certaines caractéristiques permettent de les répartir en quelques grandes classes. En effet, il est aussi important de savoir, que les neurones n’ont pas tous un comportement similaire en fonction de leur position dans le cerveau. Avant de rentrer plus en avant dans les détails, examinons un neurone. Figure 3.1 – Schèma d’un neurone biologie les principales parties d’un nourone : — Les synapses sont la jonction de connexion entre axone et dendrites. La majorité des synapses envoient des signaux de l’axone d’un neurone à la dendrite d’un autre neurone. Les exceptions pour ce cas sont lorsqu’un neurone peut manquer de dendrites, ou d’un neurone, d’un axone, ou d’une synapse, qui connecte un axone à un autre axone. 23
  • 24. CHAPITRE 3. MODÉLISATION DES NEURONES — Les dendrites ont des fibres qui sortent du corps cellulaire dans un réseau broussailleux autour de la cellule nerveuse. Les dendrites permettent à la cellule de recevoir des signaux de neurones voisins connectés et chaque dendrite peut effectuer une multiplication par la valeur de poids de ce dendrite. Par multiplication, on entend une augmentation ou une diminution du rapport neurotransmetteur synaptique aux signaux chimiques introduits dans la dendrite. — Les axones sont les fibres simples et longues qui s’étendent du corps cellulaire principal. Ils s’étendent sur des distances plus longues que les dendrites et mesurent généralement 1 centimètre de long (100 fois le diamètre du soma). Finalement, l’axone se ramifiera et se connectera à d’autres dendrites. Les neurones sont capables d’envoyer des impulsions électrochimiques par le biais de changements de tension transmembranaires générant un potentiel d’action. Ce signal se déplace le long de l’axone de la cellule et active les connexions synaptiques avec d’autres neurones. Il existe deux propriétés principales des réseaux de neurones artificiels qui suivent l’idée générale du fonctionnement du cerveau. Premièrement, l’unité la plus fondamentale du réseau neuronal est le neurone artificiel. Les neurones artificiels sont modelés sur les neurones biologiques du cerveau et, comme les neurones biologiques, ils sont stimulés par des entrées. Ces neurones artificiels transmettent certaines informations qu’ils reçoivent à d’autres neurones artificiels, souvent avec des transformations. Deuxièmement, comme les neurones du cerveau peuvent être entraı̂nés à ne transmettre que les signaux utiles pour atteindre les objectifs plus vastes du cerveau, nous pouvons former les neurones d’un réseau neuronal pour qu’ils ne transmettent que des signaux utiles. 3.3 Modélisation d’un neurone artificiel Un neurone artificiel est une fonction mathématique conçue comme un modèle de neurones biologiques. Le neurone artificiel reçoit une ou plusieurs entrées et les additionne pour produire une sortie (ou une activation représentant le potentiel d’action d’un neurone qui est transmis le long de son axone). Généralement, chaque entrée est pondérée séparément : Pn i=1 pixi cette la somme est transmise à une fonction non linéaire appelée fonction d’activation ou fonction de transfert afin que les résultats soient précis. Les fonctions de transfert ont généralement une forme sigmoı̈de, mais elles peuvent également prendre la forme d’autres fonctions non linéaires, de fonctions linéaires par morceaux ou de fonctions de pas. Ils sont aussi souvent en augmentation monotone, continue, différenciable et bornée. Dans de nombreux contextes, il existe une partie invariante de la prédiction, appelée biais, ajoutée au somme du com- binaison linéaire du poids et entrées. Par exemple, considérons un paramètre dans lequel les variables de caractéristique sont centrées sur la moyenne, mais la moyenne de la prédiction de classe binaire à partir de −1, +1 n’est pas égale à 0. Cela aura tendance à se produire dans les cas où la distribution de classe binaire est fortement déséquilibré.[10] Nous devons incorporer une variable de biais supplémentaire b qui capture cette partie invariante de la prédiction : Pn i=1 pixi + θ 3.4 Le perceptron simple Figure 3.2 – Représentation d’un perceptron mono-couche HAYTAM EL YOUSSFI, PFE: Deep Learning 24
  • 25. CHAPITRE 3. MODÉLISATION DES NEURONES Le premier neuro-ordinateur a été créé en 1957, par Frank Rosenblatt au laboratoire aérospatial de l’Université Cornell. C’est un modèle inspiré des théories cognitives de Friedrich Hayek et de Donald Hebb. Il s’agit d’un neurone formel muni d’une règle d’apprentissage qui permet de déterminer automatiquement les poids synaptiques de manière à séparer un problème d’apprentissage supervisé. Si le problème est linéairement séparable, un théorème assure que la règle du perceptron permet de trouver une séparatrice entre les deux classes. Le perceptron peut être vu comme le type de réseau de neurones le plus simple. c’est un classifieur linéaire. Ce type de réseau neuronal ne contient aucun cycle (il s’agit d’un réseau de neurones à propagation avant). Dans sa version simplifiée, le perceptron est mono-couche et n’a qu’une seule sortie à laquelle toutes les entrées sont connectées et les entrées et la sortie sont booléennes. Plus généralement, les entrées peuvent être des nombres réels.[12] On peut décrire l’apprentissage du perceptron en trois étapes : Première étape : La combinaison linéaire des entrées : chaque valeur de la liste en entrée est associée à sa valeur de poids. De plus, la somme prend souvent une valeur d’entrée supplémentaire θ avec une valeur de poids de 1 pour représenter le biais d’un neurone. Deuxième étape : Pour produire une sortie du neurone, nous allons ensuite appliquer la fonction d’activation (la fonction de Heaviside) sur le somme Pn i=1 pixi + θ , comme le montre l’équation suivante : Avec : Troisième étape : La mise à jour des poids synaptiques (Correction) : utilisé pour trouve les meilleurs valeurs des poids synaptiques qui peuvent assurer la bonne prédiction des résultats du neurone. Il existe deux règles populaires de mise à jour du poids : 3.4.1 Régles d’apprentissages de HEB et Frank Rosenblatt La règle de Hebb, établie par Donald Hebb, est une règle d’apprentissage des réseaux de neurones artificiels dans le contexte de l’étude d’assemblées de neurones. • Cette règle suggère que lorsque deux neurones sont excités conjointement, il se crée ou renforce un lien les unissant. p0 i = pi + α(Y.Xi) où p0 i représente le poids i corrigé et α représente le pas d’apprentissage(Taux d’apprentissage). Le perceptron de Frank Rosenblatt est très proche de la règle de Hebb, la grande différence étant qu’il tient compte de l’erreur observée en sortie. Cette fonction est recommandée lorsque la tangente hyperbolique (tanh) est utilisée comme fonction d’activation. En conclusion, on peut donner la règle d’apprentissage de perceptron comme suit : HAYTAM EL YOUSSFI, PFE: Deep Learning 25
  • 26. CHAPITRE 3. MODÉLISATION DES NEURONES Result : Minimum local d’erreur 1 Initialiser les poids au hasard; 2 TantQue divergence Faire 3 Pour chaque paire / motif d’entraı̂nement (x,ycible) Faire 4 Applique la fonction Heaviside :y = f( Pn i=1 pixi); 5 Calculer l’erreure E : E = ycible − y; 6 Mettre à jour les poids : pi = pi + η × E × x; 7 avec η est le pas d’apprentissage; 8 FinPour 9 FinTantQue Algorithme 1 : La règle d’apprentissage de perceptron 3.4.2 La descente du gradient L’entraı̂nement d’un perceptron est donc un processus itératif. Après chaque observation, nous allons ajuster les poids de connexion de sorte à réduire l’erreur de prédiction faite par le perceptron dans son état actuel. Pour cela, nous allons utiliser l’algorithme du gradient : le gradient nous donnant la direction de plus grande variation d’une fonction (dans notre cas, la fonction d’erreur), pour trouver le minimum local de cette fonction il faut se déplacer dans la direction opposée au gradient.Lorsque la fonction est minimisée localement, son gradient est égal à 0. Figure 3.3 – Un déplacement dans le sens opposé au gradient (fléche Rose ) raproche Wj de la valeur minimisant l’erreur (point orange) C’est-à-dire , on doit minimiser l’erreur suivante, avec c : sortie cible et r :sortie réelle : E = 1 2 P (c − r)2 Mathématiquement, cela signifie que nous examinons la dérivée de l’erreur par rapport au poids, qui représente le changement de l’erreur dépendant du changement du poids. Pour un nouvel exemple d’entraı̂nement X = (x1, x2,. . . , xn),on met à jour chaque poid en utilisant la règle suivante : pj = pj + ∆pj avec : ∆pj = −η ∂E ∂pj Premièrement, on doit calculer la dirivée de l’erreure : HAYTAM EL YOUSSFI, PFE: Deep Learning 26
  • 27. CHAPITRE 3. MODÉLISATION DES NEURONES ∂E ∂pj = ∂( 1 2 P (c−r)2 ) ∂pj ∂E ∂pj = 1 2 P 2(cs − rs)∂(−r) ∂pj ∂E ∂pj = P (c − r)∂(−r) ∂pj Ensuite, on calcule ∂(−r) ∂pj : ∂(−r) ∂pj = ∂(−f(somme)) ∂pj avec :f : fonction d’activation et somme = Pn i=1 pixi ∂(−f(somme)) ∂pj = ∂(−f(somme)) ∂somme × ∂somme ∂pj On a : ∂somme ∂pj = ∂ Pn i=1 pixi ∂pj = ∂(p1x1+p2x2+.....+pnxn) ∂pj = ∂(p1x1) ∂pj + .... + ∂(pj xj ) ∂pj + ..... + ∂(pnxn) ∂pj = xj à cette étape, il nous reste que calculer ∂(−f(somme)) ∂somme ; ça depend de la fonction d’activation choisi. pj = pj − η ∂(−f(somme)) ∂somme P (c − r)xj [1] 3.4.3 Comment représenter les données en Machine Learning ? En machine Learning, les données sont le nerf de la guerre. Et vu leur importance alors dans notre article on va traiter comment représenter les données en machine learning et les types de données les plus souvent rencontrés. Les types de données majeurs : 1. Données quantitatives : Les données quantitatives représentent une mesure de quelque chose. Elles peuvent être de deux types : Continue :Les valeurs que peut prendre une donnée numérique continue sont infinies. elles représentent une mesure d’une quantité. Par exemple le poids en Kg d’une personne, la distance entre deux ville en Km. . . Discrète : Il s’agit généralement d’un comptage d’un événement. Par exemple : Le nombre d’enfants dans un foyer. Il ne peut pas avoir 2,5 enfants dans un foyer. 2. Données qualitatives : Les données qualitatives sont aussi nommées des modalités.Une donnée qualitative n’a pas une sémantique mathématique. Elles apporte une information sur une caractéristique d’un individu observé. Exemple de modalité : — Sexe d’une personne (Homme / Femme) — Pays de naissance d’une personne — Race d’un chien 3. Données ordinales : Les données ordinales sont un “mix” entre les données quantitatives et qualitatives. Ils s’agit de catégories/modalités ordonnées et qui ont une signification mathématique. Prenons l’exemple des notes données par un client pour un produit sur un site e-commerce. Une étoile signifie qualité médiocre, et 5 étoiles signifie un produit excellent. Le nombre d’étoiles représentent une modalité (5 modalités si le nombre d’étoiles qu’on peut assigner à un produit est égale à 5). On peut, par exemple, ordonner les produits par qualité en fonction du nombre d’étoiles. Représentation des données : Cross Validation : La validation croisée va nous permettre d’utiliser l’intégralité de notre jeu de données pour l’entraı̂nement et pour la validation .Voilà comment ça marche : On découpe le jeu de données en k parties (folds en anglais) à peu près égales. Tour à tour, chacune des k parties est utilisée comme jeu de test. Le reste (autrement dit, l’union des k-1 autres parties) est utilisé pour l’entraı̂nement. HAYTAM EL YOUSSFI, PFE: Deep Learning 27
  • 28. CHAPITRE 3. MODÉLISATION DES NEURONES Figure 3.4 – Une cross-validation à 5 folds : Chaque point appartient à 1 des 5 jeux de test (en blanc) et aux 4 autres jeux d’entraı̂nements (en orange) À la fin, chaque point (ou observation) a servi 1 fois dans un jeu de test, (k-1) fois dans un jeu d’entraı̂nement. J’ai donc 1 prédiction par point de mon jeu initial, et aucune de ces prédictions n’a été faite avec un jeu d’entraı̂nement qui contienne ce point. Je n’ai pas violé le principe de ne pas valider sur le jeu d’entraı̂nement ! Je peux finalement rapporter la performance de mon modèle : — Soit en évaluant les prédictions faites sur l’ensemble des données (puisque j’ai fait une prédiction par point du jeu de données complet) — Soit en moyennant les performances obtenues sur les k folds, auquel cas je peux aussi rapporter l’erreur type, pour quantifier la variation de ces performances sur les k folds. Figure 3.5 – Représentation visuelle de la validation de train / test et de la validation croisée. 1 importer numpy en tant que np 2 depuis s k l e a r n . c r o s s v a l i d a t i o n importer t r a i n t e s t s p l i t 3 a , b = np . arange ( 10 ) . remodeler (( 5 , 2 ) ) , plage ( 5 ) 4 un 5 t a b l e a u ( [ [ 0 , 1 ] , [ 2 , 3 ] , [ 4 , 5 ] , [ 6 , 7 ] , [ 8 , 9 ] ] ) 6 l i s t e ( b ) 7 [ 0 , 1 , 2 , 3 , 4] 8 9 a t r a i n , a t e s t , b t r a i n , b t e s t = t r a i n t e s t s p l i t ( 10 . . . a , b , t e s t s i z e = 0.33 , random state = 42 ) 11 . . . 12 a t r a i n 13 a r r a y ( [ [ 4 , 5 ] , [ 0 , 1 ] , [ 6 , 7 ] ] ) 14 b t r a i n 15 [ 2 , 0 , 3] 16 un t a b l e a u 17 a t e s t ( [ [ 2 , 3 ] , [ 8 , 9 ] ] ) 18 b t e s t 19 [ 1 , 4] Algorithme de la méthode K-fold cross-validation : HAYTAM EL YOUSSFI, PFE: Deep Learning 28
  • 29. CHAPITRE 3. MODÉLISATION DES NEURONES 1. Divisez le jeu de données en K partitions égales (ou”K-fold”) — Donc si K=5 et que le dataset compte 150 observations — Chacun des 5 fold aurait 30 observations 2. Utilisez le fold 1 comme donnée de test et l’union des autres fold comme jeu d’entrainement — Ensemble de tests =30 observation — Ensemble d’entrainement =120 observation (fold 2 à 5) 3. Calculer la précision des tests 4. Répétez les étapes 2 à 3 K fois , en utilisant un fold différent comme set de test et à chaque fois — Nous allons répéter le processus 5 ( K=5) fois — 2éme itération — Le deuxiéme fold serait le jeu de test — L’union des plis 1,3 et 5 constituerait l’entrainement — 3éme itération — Le Fold 3 serait le set de test — L’union des plis 1,2,4 et 5 constituerait l’entrainement 5. La précision moyenne des tests est l’estimation de la précision sur des données non vues Train / Test Split : Comme je l’ai dit précédemment, les données que nous utilisons sont généralement divisées en données d’apprentissage et en données de test. L’ensemble d’apprentissage contient une sortie connue et le modèle apprend sur ces données pour être généralisé ultérieurement à d’autres données. Nous avons le jeu de données de test (ou sous-ensemble) afin de tester la prédiction de notre modèle sur ce sous-ensemble. Figure 3.6 – Train / Test Split 1 import numpy as np 2 from s k l e a r n . m o d e l s e l e c t i o n import t r a i n t e s t s p l i t 3 X, y = np . arange (10) . reshape ((5 , 2) ) , range (5) 4 X 5 a r r a y ( [ [ 0 , 1 ] , [ 2 , 3 ] , [ 4 , 5 ] , [ 6 , 7 ] , [ 8 , 9 ] ] ) 6 l i s t ( y ) 7 [ 0 , 1 , 2 , 3 , 4] 8 X train , X test , y t r a i n , y t e s t = t r a i n t e s t s p l i t ( 9 . . . X, y , t e s t s i z e =0.33 , random state =42) 10 . . . 11 X t r a i n 12 a r r a y ( [ [ 4 , 5 ] , [ 0 , 1 ] , [ 6 , 7 ] ] ) 13 y t r a i n 14 [ 2 , 0 , 3] 15 X t e s t 16 a r r a y ( [ [ 2 , 3 ] , 17 [ 8 , 9 ] ] ) 18 y t e s t 19 [ 1 , 4] 20 t r a i n t e s t s p l i t ( y , s h u f f l e=F a l s e ) 21 [ [ 0 , 1 , 2 ] , [ 3 , 4 ] ] Comparer de la méthode Cross-validation et la méthode de Train/Test split : Avantages de la méthode de Cross-validation : — Estimation plus précise de la précision des données non vues — Utilisation plus ”efficace” des données ( de taille petite) :C’est parce que chaque observation est utilisée à la fois pour l’entrainement et pour le test. Avantages de la méthode train / test split : — Exécute K fois plus rapidement que la validation croisée des K-fold :Cela est dû au fait que la validation croisée du K-fold répète K fois la méthode train / test split. HAYTAM EL YOUSSFI, PFE: Deep Learning 29
  • 30. CHAPITRE 3. MODÉLISATION DES NEURONES — Plus simple pour suivre et examiner les résultats détaillés du processus de test . 3.4.4 Exemple d’application du percetron Nous savons que la fonction et logique est représentée comme suit : Entrée x1 Entrée x2 Sortie 0 0 0 0 1 0 1 0 0 1 1 1 On a que la sortie cible = 1 si les entrées sont tous égales à 1, et 0 sinon, prenant par exemple, deux entrées x1 et x2 on a quatre cas : — cas 1 : x1=1 et x2=1 ⇒ y=1 — cas 2 : x1=0 et x2=1 ⇒ y=0 — cas 3 : x1=1 et x2=0 ⇒ y=0 — cas 4 : x1=0 et x2=0 ⇒ y=0 Sachant que la somme généré par le perceptron est : somme = p1x1 + p2x2 + p0 ; A partir de la fonction d’activation, la somme obtenu doit être plus ou égale à 0 pour la première cas, et moins que 0 pour les autres cas ; On prend p1 et p2 égales à 1, il nous reste de déterminer p0 : — cas 1 : 1 * 1 + 1 * 1 + p0=2+p0 — cas 2 : 1 * 0 + 1 * 1 + p0=1+p0 — cas 3 : 1 * 1 + 1 * 0 + p0=1+p0 — cas 4 : 1 * 0 + 1 * 0 + p0=p0 On obtient les conditions suivants : — 2+p0 ≥ 0 — 1+p0 0 — p0 0 ce qui donne : — p0 ≥ -2 — p0 -1 — p0 0 Il suffit de prendre une valeur qui vérifie : -2 ≤ p0 -1 ; on prend p0 = −1.5 On obtient : somme = 1 ∗ x1 + 1 ∗ x2 − 1.5 Et en appliquant la fonction d’activation nous donnera les résultats souhaités ; — Pour x1 = 1 et x2 = 1, f(1*1+1*1-1.5)=0.5 ≥ 0 — Pour x1 = 1 et x2 = 0, f(1*1+1*0-1.5)=-0.5 0 — Pour x1 = 0 et x2 = 1, f(1*0+1*1-1.5)=-0.5 0 — Pour x1 = 0 et x2 = 0, f(1*0+1*0-1.5)=-1.5 0 avec : La figure ci-dessous montre les résultats obtenus par le perceptron. le perceptron est capable de tracer une ligne séparant les deux catégories, on peut remarquer que le point (1,1) qui a une sortie égale à 1 est en haut, tandis que les autres sont en bas de la ligne (la sortie est 0 dans ce cas), on peut dire que le perceptron a réussi à trouver les poids précisés pour prédire les sorties. HAYTAM EL YOUSSFI, PFE: Deep Learning 30
  • 31. CHAPITRE 3. MODÉLISATION DES NEURONES Figure 3.7 – Graphe de la fonction ET logique 3.4.5 Les mesures de la performance d’un neurone artificiel : Évaluation du modèle Notre principale objectif lorsqu’on construit un neurone artificiel est de produire des résultats précis, c’est pourquoi on doit mesurer la performance et la qualité de notre modèle de prédiction utilisé par le neurone, il y’a des mesures qui peut nous aider à atteindre nous but : — Taux de réussite — La précision — La sensitivité (rappel) — F-mesure Ces mesures dépendent sur quatre valeurs : vrais positifs, faux positifs, vrais négatifs et faux négatifs, qui sont représentés dans la matrice de confusion comme suit : Véritable condition Condition positive Condition négative Condition prévue positive Vrai positif Faux positif Condition prévue Condition prévue négative Faux négatif Vrai négatif Table 3.1 – La matrice de confusion La matrice de confusion est connue sous le nom de matrice d’erreurs, est un tableau spécifique qui permet de visualiser les performances d’un algorithme, généralement un algorithme d’apprentissage supervisé. Chaque ligne de la matrice représente les instances dans une classe prédite, tandis que chaque colonne représente les instances dans une classe réelle. Le nom découle du fait qu’il est facile de voir si le système confond deux classes. Le taux de réussite : compte le nombre de points de données dans l’ensemble de test qui ont été prédits correctement et renvoie ce nombre sous forme de fraction de la taille de l’ensemble de test. S’en tenant à l’exemple de la classification d’images en tant que chats ou chiens, l’exactitude indique la fraction d’images correctement classées comme contenant soit un chat, soit un chien. C’est la mesure la plus élémentaire pour les classificateurs. [3] Le taux de réussite = le nombre de points de données dans l’ensemble de test qui ont été prédits correctement la taille de l’ensemble de test L’utilisation de cette mesure est limitée au cas où il n’y a pas une grande différence entre les tailles des deux ensembles de classes de test ; Prenons par exemple une ensemble de test de 500 points de données représentent deux classes, classe1 et classe2, 480 points de données représentent une classe1, et 20 points de données représentent l’autre classe, si tous les points de données de classe1 sont prédit correctement, pendent que les points de données de classe2 ne sont pas prédit correctement, la résultat du taux de réussite donne : Le taux de réussite = 480 500 =0.96, cela signifie que la qualité de notre modèle utilisé est trés bonne, tant qu’il prédit tous les points de données de classe2 incorrectement. Ce qui veut dire que la mesure taux de réussite n’a aucun validité lorsqu’on a une taille d’une ensemble de points de données d’une classe plus grande que la taille de l’ensemble de points de données de l’autre classe. HAYTAM EL YOUSSFI, PFE: Deep Learning 31
  • 32. CHAPITRE 3. MODÉLISATION DES NEURONES Figure 3.8 – Précision et rappel (recall) La précision : La précision décrit la capacité d’un classificateur à ne pas étiqueter comme chat une image contenant un chien. En d’autres termes, sur toutes les images de l’ensemble de tests que le classificateur pense contenir un chat, la précision est la fraction des images qui contiennent en réalité un chat.[3] Le précision = le nombre de points de données bien classifiés la taille de l’ensemble de points bien classifiés plus l’ensemble de points mal classifiés La sensitivité (rappel) : décrit la capacité d’un classificateur à récupérer toutes les images contenant un chat. En d’autres termes, sur toutes les images de chats de l’ensemble de tests, le rappel est la fraction d’images qui ont été correctement identifiées en tant qu’images de chats.[3] Le précision = le nombre de points de données correctement attribuées à une classei la taille de l’ensemble de points attribuées à la classei F-mesure : Une mesure populaire qui combine la précision et le rappel est leur moyenne harmonique, nommée F-mesure (soit F-measure en anglais) ou F-score : F-mesure = 2 × précision × rappel précision + rappel F1-mesure atteignant sa meilleure valeur à 1 (précision parfaite et rappel) et le pire à 0. HAYTAM EL YOUSSFI, PFE: Deep Learning 32
  • 33. CHAPITRE 3. MODÉLISATION DES NEURONES 3.4.6 Courbe ROC Dans le cas d’un classifieur binaire, il est possible de visualiser les performances du classifieur sur ce que l’on appelle une courbe ROC . La courbe ROC est une représentation du taux de vrais positifs en fonction du taux de faux positifs. Son intérêt est de s’affranchir de la taille des données de test dans le cas où les données sont déséquilibrées. Cette représentation met en avant un nouvel indicateur qui est l’aire sous la courbe. Plus elle se rapproche de 1, plus le classifieur est performant. Figure 3.9 – Courbe ROC AUC : aire sous la courbe ROC AUC signifie ”aire sous la courbe ROC” : Cette valeur mesure l’intégralité de l’aire à deux dimensions située sous l’ensemble de la courbe ROC (par calculs d’intégrales) de (0,0) à (1,1). Figure 3.10 – AUC (aire sous la courbe ROC). Les valeurs d’AUC sont comprises dans une plage de 0 à 1. Un modèle dont 100 des prédictions sont erronées a un AUC de (0,0). Si toutes ses prédictions sont correctes, son AUC est de (1,0). L’AUC présente les avantages suivants : — L’AUC est invariante d’échelle . Elle mesure la qualité du classement des prédictions, plutôt que leurs valeurs absolues. — L’AUC est indépendante des seuils de classification . Elle mesure la qualité des précisions du modèle quel que soit le seuil de classification sélectionné. 3.4.7 Les limitations du perceptron : Essayons d’entrainer un perceptron pour faire le même rôle de la fonction OU exclusif : Prenons deux entrées x1, x2, la somme généré par le perceptron est : somme = p1x1 + p2x2 + p0 ; Nous savons que la fonction ou exclusif est représentée comme suit : HAYTAM EL YOUSSFI, PFE: Deep Learning 33
  • 34. CHAPITRE 3. MODÉLISATION DES NEURONES Entrée x1 Entrée x2 Sortie 0 0 0 0 1 1 1 0 1 1 1 0 Table 3.2 – la fonction OU exclusif à partir du tableau ci-dessus, on doit obtenir des valeurs des poids qui vérifier ces quatre conditions : — cas 1 : p1 * 1 + p2 * 1 + p0 0 — cas 2 : p1 * 0 + p2 * 1 + p0 ≥ 0 — cas 3 : p1 * 1 + p2 * 0 + p0 ≥ 0 — cas 4 : p1 * 0 + p2 * 0 + p0 0 c-à-d : — p1 + p2 + p0 0 — p2 + p0 ≥ 0 — p1 + p0 ≥ 0 — p0 0 c-à-d : — p1 + p2 b — p2 ≥ b — p1 ≥ b — b 0 Avec b=- p0 ; on trouve que : — p1 + p2 b — p1 + p2 ≥ 2b — b 0 ce qui est absurde car b 0 ; C’est là que apparaissent les limites du perceptron, car l’entraı̂nement du perceptron converge toujours si les données d’apprentissage des deux classes sont des ensembles séparables linéairement.ce qui apparaı̂t clairement sur cette figure qui représente les résultats d’une fonction ou exclusif : Figure 3.11 – Graphe de la fonction Ou exclusif la solution de cette limitation n’apparaı̂t qu’au milieu des années 1980, par l’utilisation des réseaux de neurones, même que les recherches sur ces réseaux existent depuis les années 1940. HAYTAM EL YOUSSFI, PFE: Deep Learning 34