Intégration des méthodes classiques dans les autoencodeurs profonds

Apprentissage profond

Depuis les années 2000, l’apprent issage profond (deep learning) est apparu comme une nouvelle zone de l’intelligence artificielle. C’est une classe de techniques d’apprentissage automatique, modélisant les données avec un haut niveau d’abstraction grâce à de multiples architectures. Les modèles d’apprentissage profond ont considérablement amélioré l’état de l’art en matière de reconnaissance vocale, reconnaissance visuelle d’objets, détection d’objets et de nombreux aut res domaines tels que la découverte de médicaments et la génomique [16]. Plus le nombre de couches cachées est élevé, plus le réseau est profond. Au sein du cerveau humain, chaque neurone en activité peut produire un effet excitant ou inhibiteur sur ceux auxquels il est connecté. Le principe est similaire dans le cadre d’un réseau de neurones artificiel où un certain poids est assigné à différents neurones. Un neurone qui reçoit plus de charge exercera plus d’effet sur les neurones adjacents. La couche finale du réseau émet une réponse à ces signaux. Prenons un exemple concret dans le cadre de la reconnaissance d’images en utilisant un réseau de neurones pour reconnaitre les images qui comportent au moins un chat . Pour pouvoir identifier les chat s, l’algorithme doit pouvoir distinguer les différents types de chats et reconnaitre un chat de manière précise quelque soit sa posit ion. Pour cela, le réseau de neurones doit être bien entrainé en compilant plusieurs images de chats différents, mélangées avec d’autres types d’objets. Toutes ces images seront ensuite converties en données et transférées sur le réseau. C’est enfin la dernière couche du réseau qui va déduire s’il s’agit ou non d’un chat . Ce processus est ensuite répété plusieurs fois (c’est le nombre d’époques) jusqu’à ce que le réseau soit en mesure de reconnaitre un chat sur n’importe quelle image. Il garde cette informat ion en mémoire et s’en sert plus tard. Il s’agit donc d’un apprent issage supervisé. Il existe plusieurs architectures selon le champ d’application :

Expérimentations et résultats

Dans cette partie, on teste quelques hyperparamètres afin de maximiser les indicateurs de performance du modèle. A t itre d’exemple, un hyperparamètre peut être le nombre de couches cachées, le nombre d’époques , le « batch size » etc. On effectue différentes simulations des hyperparamètres du réseau afin de déterminer la meilleure combinaison, celle qui maximise les indicateurs. Finalement, nous avons aj usté le coefficient d’apprentissage ainsi que le « batch size », tout en conservant le même nombre d’époques. Le coefficient d’apprentissage détermine la taille du pas à chaque itération tout en se déplaçant vers un minimum de la fonction de perte. Le « batch size » représente le nombre d’observations entrainé à chaque itération. (Voir le script en annexe C). Suivant l’architecture que nous avons développée tout au long du chapitre 3, nous utilisons celle présentée dans l’article [9] et nommée DCEC. Elle utilise un auto encodeur convolutionnel comme branche principale, constitué de 3 couches de convolutions et de 3 couches de « pooling » avec respectivement 32, 64 et 128 cartes de caractéristiques.

Les pas vertical et horizontal pour le déplacement des noyaux est égal à 2. La première couche entièrement connectée est constituée de 1152 neurones et la deuxième de 10 neurones de sortie pour la classification de à 9. L’encodage et le décodage ont les mêmes configurations. La classification se fait avec la méthode des K-means au niveau de la couche code. La distribution de Student est utilisée comme fonction de perte pour mesurer la similarité entre les observations et les centres de classes. En adoptant une procédure d’entrainement de 200 époques par lots de 300 (<< batch size ») et un coefficient d’apprentissage égal à 0,01 , nous sommes parvenus à améliorer leurs résultats. Le tableau 4.2 fournit les hyperparamères utilisés par les auteurs [9] et ceux que nous avons utilisés ainsi que les indicateurs de performance ACC et NMI Les classes sont d’autant plus homogènes (séparées en 10 blocs représentant les chiffres de 0 à 9) que les indicateurs de performance sont proches de 1. Avec nos résultats (JND voir https :j jgithub.comj Jean-Noel-Diouf843 j Deep-Cluster), nous avons représenté les dix classes obtenues par des nuages de points, tel qu’illustrés à la figure 4.1. Chaque classe correspond à un chiffre. On note que certains nuages sont plus denses que d’autres. Le modèle a été développé à l’aide de la bibliothèque tensorfiow de python et est disponible sur github à l’adresse https :j jgithub.comj Jean-Noel-Diouf843j DeepCluster. Le modèle a déjà été entrainé et il est donc possible de vérifier l’exactitude des résultats.

Conclusion et perspectives

La problématique de ce mémoire s’inscrit dans le cadre général des méthodes de classification qui consistent à donner le meilleur regroupement en classes de l’ensemble à étudier. Les méthodes de classification hiérarchiques et non hiérarchiques sont décrites dont notamment la classification ascendante hiérarchique (CAR) et la méthode des centres mobiles. Les méthodes d’apprentissage automatiques sont aussi décrites. Toutes ces méthodes peuvent être utilisées à des fins de classification ou de prédiction. Cependant, leurs algorithmes différent et elles n’ont pas les mêmes performances. Le perceptron multicouches, bien étant moins adapté pour la classification de données d’images, a fourni de meilleurs résultats que les réseaux de neurones à convolution. Toutefois , ces méthodes exploitent directement les données fournies en entrée et peuvent ainsi subir la haute dimensionnalité. L’autoencodeur, qui est une méthode neuronale permet de réduire la dimension des données et tente de les reconstruire le plus fidèlement possible. Les méthodes développées basées sur l’apprentissage profond (Deep learning) l’utilisent et effectuent une méthode de classification classique (généralement K-means et modèle de mélange gaussien) au niveau de sa couche latente. Les nombreux algorithmes de classification profonde fournissent ainsi des résultats plus performants en terme d’ACC, de NMI. Comme perspectives, il serait intéressant d’analyser le comportement des modèles de classification profonde si on intègre une autre méthode classique (analyse discriminante ou nuées dynamiques par exemple) à l’intérieur de la couche latente. De ce fait , quelque soit la nature et la dimension des données, ils pourraient être plus adaptés et plus utiles. Il serait également important d’élargir notre analyse en comparant les méthodes sur d’autres jeux de données et avec d’autres indicateurs de performance.

Table des matières

Table des matières
Résumé
Abstract
Avant-propos
Introduction
1 Méthodes de classification classiques
1.1 Méthodes de classification hiérarchique
1.2 Méthodes de classification non hiérarchique.
1.2.1 Méthode des centres mobiles.
1.2.2 Méthode des nuées dynamiques
1.3 Modèle de mélange
1.3.1 Définition.
1.3.2 Cas Gaussien
2 Méthodes neuronales
2.1 Processus d’apprentissage.
2.1.1 Apprentissage automatique
2.1.1.1 Types d’apprentissage
2.1.1.2 Règles d’apprentissage
2.1.2 Apprentissage profond
2.2 Perceptron Multicouches
2.2 .1 Fonctionnement.
2.2.2 Fonctions d’activation
2.2.3 Rétropropagation des erreurs
2.2.3.1 Définition
2.2.3.2 Algorithme de descente du gradient .
2.2.4 Application du perceptron multicouches sur MNIST
2.2.5 Accuracy (ACC)
2.3 Réseau de neurones à convolution
2.3.1 Architecture
2.3.1.1 La couche de convolution
2.3.1.2 La fonction d’activation RelU
2.3 .1.3 La couche « pooling »
2.3.1.4 La couche entièrement connectée
2.3.2 Application du réseau de neurones à convolution sur MNIST
3 Classification profonde
3.1 Autoencodeur
3.1.1 Définition et architecture d’un auto encodeur
3.1.2 Types d’autoencoders
3.2 Classification profonde
3.2.1 Alternating Directed Method of Multipliers (ADMM)
3.2.2 Formulation.
3.2.3 Architecture.
3.3 Intégration des méthodes classiques dans les autoencodeurs profonds.
3.3.1 Intégration de la méthode des K-means
3.3.2 Intégration du modèle de mélange gaussien .
4 Application sur la base MNIST
4.1 Définitions de quelques indicateurs de mesure de performances de modèle
4.1.1 Accuracy (ACC)
4. 1.2 Normalized Mutual Information ( MI)
4.2 Application de la classification profonde sur MNIST
4.2.1 Comparaison des différents modèles de classification profonde
4.2.2 Expérimentations et résultats
Conclusion et perspectives
Bibliographie
A Application du perceptron multicouches avec python
B Application du réseau de neurones à convolution avec python
C Application de la classification profonde avec python

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *