Un réseau neuronal profond (RNP) est une technique d'apprentissage automatique qui permet à un ordinateur, en l'entraînant, d'effectuer des tâches qui seraient très difficiles à réaliser à l'aide de techniques de programmation conventionnelles. Les algorithmes des réseaux neuronaux ont été inspirés par le cerveau humain et ses fonctions : comme notre esprit humain, ils sont conçus pour fonctionner non seulement en suivant une liste préétablie de règles, mais aussi en prédisant des solutions et en tirant des conclusions basées sur les itérations et les expériences précédentes.
Qu'est-ce que l'architecture d'un réseau neuronal ?
Un réseau neuronal est composé de plusieurs couches de nœuds qui reçoivent des entrées d'autres couches et produisent une sortie jusqu'à ce qu'un résultat final soit atteint. Les réseaux neuronaux peuvent avoir un nombre quelconque de couches cachées : plus le réseau comporte de couches de nœuds, plus il est complexe. Voici différentes architectures de réseaux neuronaux :
- Réseaux neuronaux traditionnels, généralement composés de 2 ou 3 couches cachées ;
- Réseau d'apprentissage en profondeur, qui peut comporter jusqu'à 150 couches cachées ;
Quelle est la différence entre les réseaux neuronaux et les réseaux neuronaux profonds ?
Un réseau neuronal profond est un système beaucoup plus complexe qu'un système neuronal "simple". Un réseau neuronal est comparable à un jeu d'échecs et se comporte selon des algorithmes : différentes tactiques seront proposées en fonction des mouvements et des actions de l'adversaire. Ce réseau neuronal sera limité aux données fournies par le programmeur :
- Comment les pièces d'échecs se déplacent-elles ?
- La taille de l'échiquier ;
- Différentes stratégies pour différentes situations ;
Un réseau neuronal qui va au-delà des données d'entrée et peut apprendre des expériences précédentes devient un réseau neuronal profond.
Sur le même ordinateur, vous pourriez, par exemple, former un réseau neuronal, puis jouer avec lui contre d'autres personnes et le laisser apprendre au fur et à mesure qu'il joue. À partir de là, si un réseau neuronal peut apprendre de différents joueurs, il pourrait devenir difficile, voire littéralement impossible, de vaincre un réseau neuronal profond, même pour les maîtres des échecs.
Les réseaux neuronaux profonds peuvent reconnaître des commandes vocales, identifier des voix, reconnaître des sons et des graphiques et faire bien plus qu'un réseau neuronal. Les réseaux d'apprentissage profond utilisent les "Big Data" ainsi que des algorithmes pour résoudre un problème, et ces réseaux neuronaux profonds peuvent résoudre des problèmes avec une contribution humaine limitée ou inexistante.
Comment visualiser le travail d'un réseau neuronal profond ?
Un exemple permet de mieux comprendre le processus d'un réseau neuronal profond. Imaginez que vous disposiez de centaines de milliers d'images, dont certaines contiennent des chiens, et que vous décidiez d'écrire un programme informatique pour reconnaître les chiens sur les photos.
Deux possibilités s'offrent à vous. Vous pouvez écrire un programme qui identifie explicitement les chiens, ou vous pouvez écrire un programme qui "apprend" à identifier les chiens.
Vous décidez imprudemment d'essayer de faire le premier.
L'utilisation de techniques de programmation conventionnelles est longue et difficile, et les résultats ne sont pas toujours exacts
Pour identifier des images de chiens, vous créez un logiciel utilisant des instructions "si" et "alors", où la probabilité que vous regardiez un chien est programmée pour augmenter chaque fois que vous identifiez un attribut canin tel que la fourrure, les oreilles tombantes et la queue. Cependant, ce type de système neuronal est difficile à plusieurs niveaux :
Par exemple, si un groupe de pixels ressemble à une queue, la probabilité que vous regardiez un chien augmente. Votre réseau neuronal profond doit identifier les groupes de pixels correspondant aux attributs canins. Même si vous y parvenez, votre algorithme se heurte à des difficultés :
- De nombreux objets photographiés partagent certains attributs du chien, en particulier les photographies d'animaux similaires. Vous devrez ajouter des règles ;
- Parfois, les attributs sont présents mais masqués. Vos algorithmes ne les détecteront pas ;
- Parfois, les attributs ne sont importants que lorsque d'autres attributs sont présents. D'autres règles de décision seront nécessaires ;
Votre classification échoue. Vous vous rendez compte que vous ne pouvez pas identifier manuellement l'ensemble des attributs, et encore moins concevoir toutes les règles nécessaires pour traiter tous ces cas particuliers.
Vous renoncez sagement et décidez d'essayer la dernière approche. Utiliser un réseau neuronal ou, mieux encore, un réseau neuronal profond.
Un modèle d'apprentissage profond peut vous faire gagner du temps de codage et offrir de meilleurs résultats
Le réseau neuronal est ainsi nommé parce qu'il existe une similitude entre cette approche de programmation et le fonctionnement du cerveau.
Tout comme le cerveau, les algorithmes de réseaux neuronaux utilisent un réseau de neurones ou de nœuds. Et comme le cerveau, ces neurones sont des fonctions discrètes (ou des petites machines si vous préférez) qui reçoivent des entrées et génèrent des sorties. Ces nœuds sont disposés en couches, les sorties des neurones d'une couche devenant les entrées des neurones de la couche suivante, jusqu'à ce que les neurones de la couche externe du réseau génèrent le résultat final.
Il y a donc des couches de neurones, chaque neurone individuel recevant des entrées très limitées et générant des sorties très limitées, comme dans le cerveau. La première couche de neurones (ou couche d'entrée) reçoit les entrées et la dernière couche de neurones (ou couche de sortie) du réseau produit le résultat.
Est-il exact d'appeler ce type d'algorithme un "réseau neuronal" ?
Le cerveau humain est bien plus complexe et puissant qu'un réseau neuronal. Le fait de nommer l'algorithme "réseau neuronal profond" était un coup de pub, mais cela peut créer des attentes irréalistes quant à ce qu'il est possible de faire avec ces techniques. Cela dit, certaines personnes tentent de remodeler le cerveau en utilisant un réseau neuronal très complexe, dans l'espoir de pouvoir reproduire une intelligence générale semblable à celle de l'homme dans le développement des robots. Comment un réseau neuronal et des techniques d'apprentissage automatique peuvent-ils nous aider à résoudre notre problème de reconnaissance des chiens ?
Au lieu de définir manuellement les attributs d'un chien, un algorithme de réseau neuronal profond peut identifier les attributs importants et traiter tous les cas particuliers sans programmation.
Comment fonctionne un réseau neuronal profond ?
Il procède de la manière suivante :
Chaque neurone de la couche d'entrée reçoit un élément d'information de l'image en tant qu'entrée, puis pondère de manière aléatoire (entre zéro et un) si cette information suggère un chien ou non. Un poids faible (inférieur à 0,5) signifie qu'il est peu probable que l'information soit associée à un chien et un poids élevé signifie qu'il est plus probable que l'information soit associée à un chien. Cette approche de réseau neuronal multicouche est appelée apprentissage profond. Les réseaux neuronaux et l'apprentissage profond sont des techniques très puissantes pour parvenir à la compréhension informatique.
Les réseaux neuronaux profonds sont composés de plusieurs couches de nœuds se comportant comme les neurones de notre cerveau.
Pour continuer sur les réseaux neuronaux profonds, les poids de ces neurones sont ensuite transmis comme entrées aux autres couches de neurones qui attribuent également des poids de manière aléatoire et les transmettent comme entrées à d'autres neurones du réseau. Cette opération se poursuit jusqu'à ce que la couche de neurones de sortie donne un verdict binaire. Si la moyenne des poids qui leur ont été transmis est supérieure à 0,5, il s'agit d'un chien, sinon ce n'est pas le cas. Ce sont ces connexions et l'activation des neurones à travers plusieurs couches de nœuds qui confèrent leur puissance aux applications des réseaux neuronaux profonds.
Comment un réseau neuronal profond sait-il s'il produit la bonne réponse ?
Les questions pertinentes à ce stade sont les suivantes : le réseau neuronal profond a-t-il deviné correctement ou non et que se passe-t-il s'il a deviné correctement ou non ? Et comment un réseau neuronal sait-il s'il a deviné correctement ou non ?
Il le saurait si vous entrepreniez une tâche de classification extrêmement longue consistant à étiqueter toutes les photographies "chien" ou "pas chien", selon qu'il y a ou non un chien sur la photo. Le réseau neuronal se contentera de regarder l'étiquette pour voir s'il a correctement identifié le chien ou non.
Bien entendu, nous ne cherchons pas à savoir s'il a répondu correctement à la question "Chien ou pas" pour une seule photo de chien. Ce qui nous intéresse, c'est de savoir s'il a répondu correctement à la question pour chaque photo, ou au moins de connaître le pourcentage de fois où il a évalué avec précision s'il y avait un chien ou non sur la photo.
Comment les réseaux neuronaux profonds utilisent-ils la formation pour apprendre ?
Un réseau neuronal apprend à chaque itération des données afin d'améliorer sa précision.
Pour un ensemble donné de poids sur tous les neurones du réseau, le réseau neuronal fait des suppositions pour toutes les photos et détermine ensuite son degré d'exactitude. Quel est le pourcentage de fois où il a obtenu le bon résultat, c'est-à-dire que le chien était sur la photo alors qu'il y était, et combien de fois il a obtenu le mauvais résultat, c'est-à-dire que le chien était sur la photo alors qu'il n'y était pas ou que le chien n'était pas sur la photo alors qu'il y était. Cette indication sur le degré de précision de l'algorithme d'IA est un retour d'information essentiel pour le modèle de réseau neuronal.
Une fois qu'il a parcouru toutes les photos une fois, il peut ajuster au hasard (ou autrement) certains des poids, puis recommencer l'exercice de deviner ce qui se trouve sur la photo. Si le résultat de la deuxième tentative est meilleur, il le conservera au lieu de revenir à l'ensemble de poids précédent. Si le résultat de la deuxième tentative est moins bon, il se peut que l'on revienne à l'ensemble de poids précédent et que l'on essaie ensuite différentes modifications de ces poids.
Ce processus se poursuivra de cette manière jusqu'à ce que le réseau neuronal devienne capable d'identifier des chiens sur des photos (si tout va bien).
Lorsque l'algorithme peut identifier les chiens avec précision, on dit qu'il a convergé. Il a été "formé" avec succès à l'identification des chiens.
Quels sont les différents types de réseaux neuronaux ?
Réseaux neuronaux convolutifs
Les réseaux neuronaux convolutifs (CNN) sont un type d'intelligence artificielle conçu pour traiter ou apprendre à partir de grands ensembles de données. Le réseau neuronal convolutif est un terme récemment inventé pour décrire spécifiquement ce type de réseau, ou la technologie de l'intelligence artificielle en général.
Les CNN sont de puissants outils d'IA de reconnaissance d'images qui utilisent l'apprentissage profond pour effectuer non seulement des tâches génératives, mais aussi des tâches descriptives. Parmi les exemples de tâches génératives figurent le recadrage automatique, la rédaction de légendes, la vidéographie, la ronéotypie et les superpositions d'images. Un réseau neuronal convolutif contient ce que l'on appelle des couches convolutives. Chaque neurone de ces couches ne traite que les informations provenant d'une petite partie du champ visuel. Les entrées de chaque neurone sont alignées à la manière d'une somme de contrôle pour générer une carte de caractéristiques.
Réseaux neuronaux artificiels
Un réseau neuronal artificiel (RNA) est un réseau composé de nombreux perceptrons à différentes profondeurs ou couches, qui peut être considéré comme une régression logistique. Le RNA est souvent appelé réseau neuronal à avance directe (Feed Forward Neural Network) car les entrées ne sont traitées que dans le sens direct : une couche reçoit une entrée et envoie une sortie de manière linéaire.
Les réseaux de neurones artificiels sont également connus sous le nom d'approximateurs de fonctions universelles. Les algorithmes de réseaux neuronaux purs tels que les RNA et les fonctions de mappage qui peuvent être mises en œuvre en tant qu'apprentissage profond permettent aux ordinateurs d'apprendre n'importe quelle fonction. L'une des raisons pour lesquelles l'approximation universelle est importante est la fonction d'activation. Les fonctions d'activation introduisent des propriétés non linéaires dans le réseau lors de l'apprentissage de toute relation complexe entre l'entrée et la sortie. Elle permet aux différents types de réseaux d'apprendre les uns des autres.
Comment un réseau neuronal profond s'améliore-t-il au fil du temps ?
Une façon d'imaginer ce que fait l'algorithme est de considérer chaque neurone comme une sorte de test de certitude. Au lieu de coder toutes ces affirmations "si" pour identifier les chiens, chaque neurone est calibré pour ajouter ou retrancher au jugement final que l'objet sur la photo est un chien. C'est comme si le jugement (chien ou non) était divisé en un grand nombre de jugements connectés qui contribuent globalement à un jugement final.
Bien entendu, l'objectif premier est de parvenir à la convergence si cela est possible. Il est également important d'y parvenir dans un délai raisonnable, de préférence court.
Les algorithmes d'apprentissage profond ont un processus d'apprentissage qui les rend difficiles à comprendre pour les humains.
Ce qui est intéressant, c'est que la logique qui permet aux réseaux neuronaux d'identifier les chiens sur la photo n'est pas compréhensible par l'homme. Les modèles d'apprentissage en profondeur ont une logique cachée, essentiellement une boîte noire de couches cachées de nœuds créant son propre réseau en profondeur. Cela dit, certaines tentatives ont été faites pour essayer de représenter visuellement la logique qui sous-tend les réseaux neuronaux pour les tâches de reconnaissance d'images. Dans d'autres cas, il n'est pas possible de voir ce que l'algorithme fait en coulisses et les méthodes d'apprentissage profond restent cachées.
Les réseaux neuronaux et l'apprentissage automatique sont aujourd'hui très populaires, mais nombre de ces algorithmes étaient déjà connus il y a une cinquantaine d'années.
Pourquoi les réseaux neuronaux profonds sont-ils de plus en plus populaires dans divers secteurs ?
L'une des principales raisons pour lesquelles les réseaux neuronaux sont beaucoup plus populaires aujourd'hui que lorsqu'ils ont été inventés est que la puissance de traitement est plus rapide et moins chère qu'elle ne l'était. La puissance de calcul a fait toute la différence dans l'obtention d'une convergence rapide. L'autre raison est que les données sont désormais omniprésentes, ce qui accroît la valeur des algorithmes capables d'utiliser les données, comme chatbots pour les entreprises.
Les réseaux neuronaux avancés nécessitent une puissance de traitement élevée et une grande quantité de données.
Les réseaux neuronaux d'apprentissage profond sont des techniques gourmandes en données et en processeurs qui permettent d'obtenir des résultats impossibles à atteindre pour des programmeurs utilisant des techniques de programmation. Ils sont parfaitement adaptés à certains problèmes pour lesquels les données sont omniprésentes et pour lesquels il est facile de catégoriser ou de classer les résultats préférables.
Sans disposer de centaines de milliers, voire de millions de photos de chiens, il serait impossible d'entraîner l'algorithme. Ces techniques ne fonctionnent que lorsque l'on dispose d'un grand nombre de données. C'est assez évident, car il est peu probable que tous les cas particuliers soient représentés dans un ensemble de seulement 1 000 photos.
Les réseaux neuronaux peuvent être confrontés à des données structurées ou non structurées.
L'un des problèmes de l'exemple ci-dessus est que l'étiquetage de toutes les photos nécessite beaucoup de travail manuel. Il est plus facile pour les algorithmes d'utiliser des données étiquetées de manière structurée. L'apprentissage automatique par réseau neuronal qui utilise des données structurées est appelé apprentissage supervisé.
Cela nous amène à une question centrale : est-il possible d'éviter tout ce travail d'étiquetage ? Ce serait une bonne chose, car non seulement vous pourriez éviter une grande partie du travail manuel, mais la plupart des données disponibles sur l'internet ne sont pas structurées, c'est-à-dire qu'elles ne sont pas soigneusement étiquetées ou structurées.
Les réseaux neuronaux peuvent-ils fonctionner avec des données non structurées ?
Les réseaux neuronaux artificiels et l'apprentissage automatique qui fonctionnent avec des données non structurées sont appelés apprentissage non supervisé. Bien entendu, il s'agit du Saint-Graal de l'apprentissage automatique et il est plus proche de la manière dont les humains apprennent. Cependant, même l'apprentissage non supervisé par les machines nécessite beaucoup plus de données pour "apprendre" que les humains, et les machines ne peuvent pas facilement extrapoler à des exemples qui ne sont pas ceux sur lesquels elles ont été formées.
De nombreux modèles d'apprentissage profond tentent de reproduire les processus du cerveau humain
Certains pensent que ces types d'algorithmes peuvent être développés, peut-être en réorganisant le cerveau, au point que les algorithmes commencent à s'approcher d'une "compréhension" de niveau humain. Ils pensent qu'il sera possible d'utiliser une technologie sophistiquée de balayage du cerveau pour nous donner un aperçu de la manière dont les réseaux neuronaux du cerveau fonctionnent réellement. En copiant ces conceptions et ces modèles, nous pourrons reproduire une intelligence de niveau humain.
Bien que ces techniques soient sans aucun doute ingénieuses et très utiles, en particulier lorsqu'un grand ensemble de données est disponible, il est difficile d'imaginer que des algorithmes aussi simples puissent constituer la base d'une intelligence humaine hautement créative.
Table des matières
Restez au courant des dernières nouveautés en matière d'agents d'IA
Partager ce message sur :