Principes des réseaux de neurones artificiels

Principes des réseaux de neurones artificiels 

Un réseau de neurones artificiels est un système dont la conception s’inspire du fonctionnement du cerveau et du système nerveux humain. Il existe plusieurs types de réseaux de neurones dont le plus populaire est le perceptron multicouche. Le perceptron multicouche est introduit en 1957 par Frank Rosenblatt [33]. Nous vous présenterons par la suite son architecture et son fonctionnement.

Architecture et fonctionnement des réseaux à couches 

Un réseau de neurones artificiels ou un perceptron multicouche est un réseau composé d’une succession de couches; généralement de trois couches. Ces couches sont les suivantes  :
• La couche d’entrée : qui est la couche à laquelle nos données brutes sont présentées. Nos données sont généralement présentées sous forme de vecteurs. Elle reçoit les informations censées expliquer le phénomène à analyser [34];
• La/ les couchees) cachée(s) : est la couche qui se trouve entre la couche d’entrée et celle de sortie. Il s’ agit du cœur du perceptron servant à effectuer des calculs intermédiaires [34]. Un réseau peut avoir une ou plusieurs couches cachées;
• La couche de sortie: est la dernière couche d’un réseau de neurones; celle qui donne le résultat du calcul interne .

Les réseaux de neurones font partie de la grande famille des techniques d’apprentissage automatique et supportent les deux types d’apprentissage que sont l’apprentissage supervisé et l’apprentissage non-supervisé:

• Supervisé : Lors de l’entraînement, des paires de données d’entrée et de sortie (des données étiquetées) sont présentées au réseau. Ce dernier apprend et se paramètre à partir de ces paires de données dans le but d’obtenir les étiquettes souhaitées [35]. L’apprentissage supervisé peut donc être utilisé lorsque nous disposons de données étiquetées. Lorsque les données à prédire en sortie sont des catégories ou des classes, il s’agit d’un problème de classification. Dans le cas où ces données sont des valeurs quantitatives (par exemple des salaires) on parle de problème de régression.
• Non-supervisé: Dans ce type d’apprentissage, les réseaux reçoivent en entrée des données non étiquetées c’est-à-dire des données dont les sorties ne sont pas connues au préalable par le réseau. Ce dernier va par lui-même découvrir des similarités ou récurrences ou les structures cachées dans les données et converger vers n’importe quel état final.

Notre problématique sera abordée par l’apprentissage supervisé ce qui va nécessiter un entraînement sur des données étiquetées.

Fonction d’activation 

Les neurones de chaque couche sont interconnectés aux neurones des autres couches par des liaisons appelées poids synaptiques notés Wi, j .

Ces poids sont initialisés de manière aléatoire et déterminent la quantité d’influence de la sortie d’un neurone sur un autre neurone. Celle-ci est calculée en faisant la somme des potentiels de sortie de ses prédécesseurs pondérée par les poids synaptiques  . Le résultat de ce calcul est transformé par une fonction   appelée fonction d’activation qui le ramène à l’intérieur d’une borne définie. Cette fonction est appliquée uniquement à la sortie des neurones de la ou des couches cachées .

Il existe plusieurs types de fonction d’ activation, mais la plus populaire est la fonction Relu (Rectification Linéaire), qui est la plus souvent utilisée au niveau des couches cachées, et la fonction sigmoïde appliquée à la couche de sortie pour un problème de classification binaire.

Algorithme d’apprentissage et fonction de perte 

Dans le cas d’un apprentissage supervisé, des paires de données formées d’observations et d’étiquettes sont fournies au réseau. Dans chaque paire, l’ étiquette représente le résultat (classe) désiré pour l’observation associée en entrée. L’algorithme d’ apprentissage a pour tâche d’ évaluer et d’ajuster les poids du réseau en fonction des données présentées en entrée de sorte à obtenir les résultats souhaités en sortie car la modification des poids d’un neurone correspondant influe sur tous les neurones de la couche suivante et sur les résultats du neurone de la dernière couche .

Lors du passage des données de la couche d’entrée à la couche de sortie; le neurone de la dernière couche (la couche de sortie) donne un résultat qui correspond à la prédiction de notre réseau. Une erreur est ensuite estimée à l’aide d’une fonction (appelée fonction de perte ou de coût) qui détermine l’écart qu’il y’a entre la sortie prédite et la sortie réelle. L’objectif est de minimiser l’erreur . Il existe plusieurs types de fonction de coût, mais celle qui nous intéresse est la fonction de perte entropie couramment utilisée pour des problèmes de classification (lorsque la sortie est une catégorie).

La rétropropagation et les algorithmes d’optimisation

L’erreur estimée au moyen de la fonction coût est rétro-propagée de la couche de sortie vers la couche d’entrée et les poids synaptiques sont modifiés ce qui permet d’initier un nouveau calcul. Ce processus est appelé rétropropagation. Il se poursuit ainsi jusqu’à ce que l’ utilisateur intervienne pour y mettre fin oujusqu’à ce qu’une valeur de la fonction coût ou un seuil fixé a priori est atteint .

La fonction coût est minimisée par l’algorithme de descente du gradient qui est un algorithme d’optimisation itératif qui procède à l’amélioration successive de l’erreur en prenant en compte les modifications antérieures des poids synaptiques qui ont contribué de manière significative à celle-ci [34, 38]. L’objectif est de diriger la fonction de perte à petit pas vers un minimum global .

Le calcul du gradient peut se faire de différentes manières. On peut faire passer l’ensemble de nos données d’apprentissage dans notre réseau, puis calculer l’erreur global c’est-à-dire l’erreur sur l’ensemble de ces données: on parle de batch.

L’erreur locale, c’est-à-dire l’erreur pour chaque échantillon de notre ensemble d’apprentissage, est minimisée contrairement à la première approche (batch) où l’erreur globale est minimisée [40, 41]. On rencontre peu de problèmes dus aux minima locaux en raison du fait que l’erreur est minimisée localement. Plusieurs parcours de l’ensemble de nos exemples peuvent être nécessaires avant la convergence de cette méthode .

La méthode de descente de gradient stochastique avec moment est une approche qUi s’est aussi montrée efficace. Sa particularité est qu’elle conserve en mémoire à chaque itération les changements précédents des poids, ce qui lui permet d’éviter les oscillations et d’échapper au minimum local mais aussi d’accélérer l’optimisation du réseau .

Une autre approche ne consiste ni à calculer l’erreur pour chaque exemple ni à calculer l’erreur de l’ensemble des exemples d’apprentissage, mais l’erreur d’un groupe ou d’un ensemble d’exemples dans notre ensemble d’apprentissage. Cette approche est appelée « mini-lots ». Elle peut se montrer efficace, car elle réduit la variance de nos poids lorsqu’ils sont réévalués et permet un traitement parallèle des observations, mais elle permet aussi une convergence plus lisse et plus stable .

Il convient à l’utilisateur de déterminer l’architecture optimale du réseau, afin d’obtenir une bonne prédiction .

Table des matières

CHAPITRE 1. INTRODUCTION
1.1 – Objectifs et problématiques
1.2 – Organisation
CHAPITRE 2. ÉTAT DE L’ART
2.1 – Annotation Manuscrite et Segmentation Sémantique
2.2 – Classification de documents
2.3 – Conclusion
CHAPITRE 3. RÉSEAU DE NEURONES CONVOLUTIFS
3.1 – Introduction
3.2 – Principes des réseaux de neurones artificiels
3.2.1 – Architecture et fonctionnement des réseaux à couches
3.2.2 – Fonction d’activation
3.2.3 _ Algorithme d’apprentissage et fonction de perte
3.2.4 – La rétropropagation et les algorithmes d’ optim isation
3.2.5 – Données d’entraînement, de validation et de test
3.2.6 – Quelques notions
3.3 – Réseau de neurones convolutifs
3.3 .1 – Images RVB
3.3.2 – La couche de convolution
3.3.3 – La couche de Pooling
3.3.4 – L’opération Flattening et la couche entièrement connectée
3.3.5 – L’avantage des réseaux de neurones convolutifs
3.4- VGGI6
3.5 – Amélioration de la précision
3.5.1 – Pré-entraînement ImageNet
3.5.2 – Taux d’ apprentissage
3.5.3 – Taille de lot
3.5.4 -Dropout
3.5.5 -Augmentation  des données
CHAPITRE 4. MÉTHODOLOGIE DE LA RECHERCHE
4.1 – Introduction
4.2 – Framework et Environnement de développement
4.2.1 – EDI (Environnement de Développement Intégré)
4.2.2 – Angular et Angular Material
4.2.3 – Node.js, Express et Mongoose
4.2.4- Pdf-image
4.2.5 – Tesseract.js
4.3 – Base de données
4.3.1 – MongoDB Atlas Cloud
4.3.2 – MongoDB Compass
4.3.3 – Collections
4.4 _ Données
4.4.1 – Collecte des données
4.4.2 – Organisations des données
4.4.3 – Données pour le test de l’application
4.5 – Modèle de c1assificateurs
4.5.1 – Outils
4.5.2 – Bibliothèques
4.5.3 – Prétraitement de données
4.5.4 – Configurations et architectures des modèles
4.5.5 – Mesures d’ évaluation
4.5.6 – Flask API
4.6 – Intégration
CHAPITRE 5. RÉSULTATS ET INTERPRÉTATIONS
5.1 – Présentation des résultats et interprétations
5.2 – Outils d’aide à la numérisation
5.2.1 – Interface finale de l’ application
5.2.2 – Résultats du test de l’application
5.2.3 – Résultats de la transcription textuelle
CHAPITRE 6. DISCUSSIONS ET CONCLUSION

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 *