Les réseaux de neurones ont prouvé au fil des années leur efficacité dans de nombreuses tâches telles que la localisation, la classification, la détection et la segmentation d’objets. Dans ce chapitre, nous allons commencer par introduire le réseau de neurones convolutif et décrire les outils et les opérations de base utilisés pour construire une architecture d’un tel réseau. Ensuite, nous présenterons une revue de la littérature des réseaux de classification les plus populaires et expliquerons certains des composants les plus importants qui ont amélioré la précision de ces modèles au cours des dernières années. Nous terminerons par une revue littéraire des réseaux les plus connus utilisés pour les tâches de segmentation sémantique en mettant en évidence les clés de réussite de chaque modèle.
Réseaux de neurones convolutionnels
Ces dernières années, l’apprentissage machine a permis d’obtenir des résultats plus proches ou meilleurs que les humains dans de nombreux domaines tels que la reconnaissance vocale (Abdel-Hamid et al. (2014); Hannun et al. (2014); Graves & Jaitly (2014)), la reconnaissance faciale (Lawrence et al. (1997); Parkhi et al. (2015)), la classification d’images (Krizhevsky et al. (2012); He et al. (2015); Hu et al. (2017)), la détection d’objets (Girshick et al. (2014); Ren et al. (2015); Redmon et al. (2016)), etc.
L’apprentissage automatique consiste à utiliser un ordinateur pour apprendre à gérer et à résoudre des problèmes sans programmation. Le processus est de construire un modèle basé sur des entrées connus, puis utiliser ce modèle pour prédire sur des nouvelles données. L’idée est de permettre à la machine de créer un programme qui prend une entrée connue et de prédire une sortie intelligente similaire à une sortie connue d’une entrée différente.
Les réseaux de neurones artificiels sont des modèles d’apprentissage statistique, inspirés des réseaux neuronaux biologiques du système nerveux humain . Ils sont utilisés dans l’apprentissage automatique et la reconnaissance de formes. Un neurone biologique a un ensemble de dendrites d’entrée qui reçoivent des signaux électriques. Lorsque le signal passe un seuil, le neurone est activé et le signal est transmis à l’axone connecté à d’autres neurones par des dendrites. Le fonctionnement d’un seul perceptron est limité. Un simple perceptron ne peut classer que des données qui pourraient être séparées par un hyperplan. Le problème, dans la plupart des cas, est qu’il n’est pas possible de séparer linéairement les données d’entrée. Même un simple XOR ne peut pas être adressé par un perceptron.
Dans les années 1980, le problème a été résolu avec l’introduction du perceptron multicouches. Dans les réseaux de neurones artificiels, en tant que vrais neurones humains, les perceptrons sont reliés les uns aux autres et reproduisent un comportement similaire. Ces réseaux sont représentés comme des systèmes neuronaux interconnectés qui envoient des messages les uns aux autres. Les modèles qu’ils reconnaissent sont numériques, contenus dans des vecteurs et des matrices, dans lesquels toutes les données du monde réel, comme les images, les sons, les textes ou les vidéos, doivent être traduites en données caractéristiques. Les connexions au sein du réseau peuvent être systématiquement ajustées en fonction des entrées et des sorties, ce qui les rend idéales pour l’apprentissage supervisé. Les réseaux de neurones sont utilisés pour regrouper et classer les données non étiquetées en fonction de similarités entre les nouvelles données et les échantillons déjà étudiés.
La combinaison des perceptrons permet d’approcher n’importe quelle fonction non linéaire en utilisant plus ou moins de couches et de neurones par couche. Cela permet de travailler sur des données plus complexes qui doivent être séparées par des hypersurfaces. Dans un réseau de neurones, les perceptrons sont organisés en couches. Il existe trois types de couches : couche d’entrée, couches cachées et couche de sortie. Les réseaux de neurones peuvent être classés en fonction de leur nombre de couches cachées et de leur connexion. Les réseaux neuronaux comportant plus de deux couches cachées peuvent être considérés comme un réseau neuronal profond. L’avantage d’utiliser des réseaux neuronaux plus profonds est que des modèles plus complexes peuvent être reconnus. Ces réseaux nécessitent plus de données pour éviter les surajustements au cours d’apprentissage.
Les neurones lisent une entrée, la traitent et génèrent une sortie. Les neurones entre deux couches adjacentes sont entièrement connectés. Chaque connexion a un poids qui contrôle le signal entre les deux neurones. Chaque neurone artificiel calcule la somme des produits entre les poids et les entrées qui lui sont venues, puis ajoute un biais. Le résultat est ensuite passé à travers une fonction d’activation qui va ajouter de la non-linéarité .
Un réseau de neurones est un système adaptatif, il peut changer sa structure interne en fonction de l’information qui lui est transmise en ajustant ses poids. Un ensemble de données appelé ensemble d’apprentissage doit être utilisé. Ces données sont formellement définies comme un ensemble de paires : entrées et cibles. L’objectif de l’apprentissage est d’optimiser les poids afin que le réseau neuronal puisse apprendre à mapper correctement les entrées inconnues aux sorties. Si le réseau génère une bonne sortie, il n’est pas nécessaire d’ajuster les poids. Cependant, si le réseau génère une mauvaise sortie, le système ajuste et modifie les poids pour améliorer les résultats ultérieurs.
Pour l’ensemble d’apprentissage, le résultat théorique est connu et l’optimisation consiste à minimiser l’erreur de prédiction. Cette erreur est la somme des carrés des différences entre les sorties calculées et les sorties attendues. Il est donc nécessaire d’optimiser numériquement la fonction d’erreur pour trouver la fonction qui donne la meilleure approximation de l’entrée par rapport à la cible. La rétropropagation est un tel algorithme qui effectue une minimisation d’erreur en utilisant la descente de gradient.
L’utilisation de réseaux de couches entièrement connectés pour la segmentation d’image n’est pas une bonne idée. La raison en est qu’une telle architecture de réseau traite les pixels de l’image et ne prend pas en compte la structure spatiale des images. Pour surmonter ce problème, les couches de convolution ont été incluses dans les réseaux de neurones réguliers. Ces couches considèrent le contexte et les informations spatiales des pixels voisins, ce qui conduit à apprendre plus d’informations à partir de l’entrée. Les réseaux de neurones convolutionnels ont une architecture différente de celle des réseaux de neurones réguliers. Généralement, les réseaux de neurones convolutionnels sont composés de trois types principaux de couches; les couches convolutives, les couches de sous échantillonnage et les couches entièrement connectées. La configuration et le nombre de ces couches dans l’architecture du réseau dépendent du type et de la complexité du problème.
Les couches de convolution
Le but principal de la convolution est l’extraction d’informations à partir de l’image d’entrée. La convolution est effectuée en faisant glisser une matrice de poids, appelée filtre, sur l’image d’entrée et en multipliant à chaque position les valeurs de filtre avec les valeurs de l’entrée. Ce filtre est appliqué à chaque fois sur une zone spécifiée appelée champ réceptif. Les résultats de la multiplication sont ensuite additionnés en un seul nombre. La sortie de la convolution du filtre sur toute l’image est une matrice appelée la carte de caractéristiques .
De nombreux filtres seront utilisés dans chaque couche de convolution, et chaque filtre vise à identifier un motif de base spécifique qui constitue les objets dans l’image tels que les formes et les bords. Les cartes de caractéristiques sont ensuite disposées les unes sur les autres pour former un volume de sortie en tant que sortie finale. La profondeur de la sortie finale correspond au nombre de filtres utilisés dans la couche de convolution. La taille spatiale de ces résultats dépend de la taille des filtres et de certains paramètres supplémentaires tels que le pas et le remplissage à zéro.
INTRODUCTION |