fr en es pt
astronomie
 
Contacter l'auteur rss astronoo
 
Home > France > Articles > Réseau de neurones artificiels


Mise à jour 07 novembre 2023

Réseau de neurones artificiels

Réseau de neurones artificiels

Description de l'image : Un réseau de neurones artificiels est composé d'une succession de couches de neurones interconnectés dont chacune prend ses entrées sur les sorties de la couche précédente. Dans un réseau de neurones artificiels, le nombre de neurones par couche peut s'élever à plusieurs dizaines de milliers et le nombre de couches peut atteindre plusieurs centaines. Crédit image : domaine public.

But de l'intelligence artificielle (IA)

Pour aborder le fonctionnement des réseaux de neurones artificiels, il est nécessaire de comprendre le sens de l'intelligence artificielle (IA). L'IA consiste à créer des systèmes informatiques capables d'automatiser des tâches sans l'intervention humaine, mais aussi d'apprendre, de s'adapter, de s'améliorer, de communiquer et surtout de prendre des décisions. Dans ce sens, l'IA cherche à reproduire des aspects de l'intelligence humaine.

Qu'est-ce que l'intelligence humaine ?

La définition de l'intelligence est très discutable, mais le sens qui va nous intéresser ici c'est celui de fonctions contrôlées par le cerveau. En effet, qu'elles soient mécaniques comme la marche ou cognitives comme la prise de décision, l'architecture des fonctions reste la même dans toutes les aires cérébrales de notre cerveau. De plus, toutes les fonctions sont d'égale importance, sans distinction entre celles considérées comme nobles ou moins nobles. Elles sont toutes réalisées avec la même complexité de calculs, à travers un énorme réseau de milliards de neurones interconnectés entre eux pour échanger de l'information. L'information est échangée par le biais de signaux électriques et chimiques.

Dans le cerveau humain, le processus de communication entre neurones est le suivant :
- Lorsque les signaux électriques, initiés au niveau de la membrane cellulaire du neurone, atteignent un seuil critique, ils déclenchent une brève impulsion électrique que l'on appelle "potentiel d'action". Les potentiels d'action voyagent le long de l'axone jusqu'à la synapse du neurone.
- Au niveau de la synapse (points de contact entre les neurones) les potentiels d'action déclenchent la libération de molécules chimiques, appelées "neurotransmetteurs".
- Les neurotransmetteurs se lient ensuite aux récepteurs situés sur la membrane du neurone postsynaptique (le neurone récepteur). Cette liaison chimique déclenche une réponse électrique dans le neurone postsynaptique.
- Le neurone postsynaptique intègre toutes les entrées qu'il reçoit des neurones émetteurs, et si le seuil critique est atteint, il génère à son tour un potentiel d'action qui se propage le long de son propre axone, poursuivant ainsi la transmission de l'information dans le réseau.

Selon les types de neurotransmetteurs libérés, l'activité présynaptique peut avoir un effet excitateur ou inhibiteur sur l'activité électrique du neurone postsynaptique. Cela rend le déclenchement d'un potentiel d'action plus ou moins probable.

Ce processus complexe est à la base du fonctionnement du cerveau et de la cognition humaine. C'est à partir de ce processus que les chercheurs vont élaborer un modèle d'intelligence artificielle, très simple au début puis de plus en plus sophistiqué au fur et à mesure de l'avancée technologique.

Qu'est-ce qu'un neurone artificiel ?

Le neurone artificiel est l'unité de base d'un réseau de neurones artificiels. Un réseau de neurones artificiels est composé d'une succession de couches de neurones interconnectés dont chacune prend ses entrées sur les sorties de la couche précédente.

Les neurones artificiels ne sont pas des bits informatiques (0 ou 1), mais plutôt des abstractions mathématiques (nombres, opérations, fonctions, équations, matrices, ensemble, probabilité, etc.). En d'autres termes, ce sont des unités de traitement qui effectuent des opérations mathématiques sur les données qui leur sont présentées. Elles ne stockent pas de données alors que les bits informatiques sont à la base du stockage de l'information numérique.

Dans un réseau de neurones artificiels, chaque neurone est caractérisé par un niveau d'activité capturé par une variable appelée le "potentiel d'activation". La synapse du neurone est caractérisée par une autre variable appelée le "poids synaptique".

- Le potentiel d'activation représente l'état électrique du neurone postsynaptique à un moment donné. Il est calculé en sommant les signaux d'entrée provenant des neurones présynaptiques, chaque signal étant modulé par le poids synaptique correspondant. Le potentiel d'activation peut varier de manière continue dans une plage allant de valeurs négatives à positives, en fonction de l'intensité des signaux entrants.

- Les poids synaptiques déterminent si une connexion synaptique est excitatrice, inhibitrice ou nulle. Les poids modulent l'impact des signaux d'entrée sur le potentiel d'activation. Les poids positifs augmentent l'activité, les poids négatifs la réduisent, et les poids nuls n'ont pas d'effet.

Le potentiel d'activation résulte de la combinaison des signaux d'entrée pondérés par les poids synaptiques. Ce potentiel est ensuite soumis à une fonction d'activation, qui introduit une non-linéarité et détermine si le neurone postsynaptique génère une réponse (potentiel d'action) ou non. En fin de compte, ces mécanismes permettent au neurone de traiter l'information et de répondre aux stimuli de manière adaptative. Le fonctionnement de ces variables est fondamental pour la modélisation du comportement des neurones, tant dans les réseaux de neurones biologiques que dans les réseaux de neurones artificiels.

Exemple concret du calcul neuronal

Imaginons un réseau de neurones artificiels utilisé pour la classification d'images. Ce réseau comporte un neurone postsynaptique qui reçoit des connexions en provenance de trois neurones présynaptiques. Chacun de ces trois neurones présynaptiques est associé à une caractéristique spécifique de l'image que le réseau analyse, par exemple, la présence de lignes verticales, de lignes horizontales et de courbes.

Le neurone postsynaptique a un potentiel d'activation initial de 0.
Lorsque les trois neurones présynaptiques envoient leurs signaux, chaque signal est multiplié par le poids synaptique associé à la connexion correspondante. Supposons que les poids synaptiques soient les suivants :
- Poids synaptique pour la caractéristique des lignes verticales : +0,5
- Poids synaptique pour la caractéristique des lignes horizontales : -0,3
- Poids synaptique pour la caractéristique des courbes : +0,2

Les signaux des trois neurones présynaptiques sont pondérés par les poids synaptiques respectifs et sommés.
Si nous avons les signaux suivants :
- Signal pour les lignes verticales : 1
- Signal pour les lignes horizontales : 0,5
- Signal pour les courbes : 0,8
Le potentiel d'activation serait calculé comme suit :
Potentiel d'activation = (1 * 0,5) + (0,5 * (-0,3)) + (0,8 * 0,2) = 0,5 - 0,15 + 0,16 = 0,51

Si le potentiel d'activation dépasse un seuil défini (par exemple 0), le neurone postsynaptique génèrera un potentiel d'action, indiquant que la caractéristique recherchée a été détectée dans l'image.

Dans cet exemple, les poids synaptiques jouent un rôle crucial en déterminant l'importance relative de chaque caractéristique de l'image. Les signaux d'entrée pondérés par les poids synaptiques sont utilisés pour calculer le potentiel d'activation, qui, s'il dépasse le seuil, déclenchera la réponse du neurone postsynaptique. Cela permet au réseau de neurones de prendre des décisions en fonction des caractéristiques détectées dans l'image.

Comment fonctionne un réseau de neurones artificiels ?

L'infrastructure hardware d'un réseau de neurones artificiels n'a rien de biologique, c'est la même que celle de l'informatique classique (microprocesseurs, cartes graphiques, etc.).

L'infrastructure software d'un réseau de neurones artificiels est différente. Les algorithmes d'apprentissage (machine learning) apprennent à partir de données et ajustent leur comportement en fonction des exemples fournis, alors que les algorithmes de programmation traditionnelle sont basés sur des instructions explicites statiques qui ne changent pas d'elles-mêmes. C'est en ce sens que l'IA est une révolution car pour écrire de façon statique les règles de ChatGPT 3.5 avec ses 175 milliards de paramètres, il aurait fallu des milliers d'années.

Un réseau de neurones est organisé en couches où chaque neurone artificiel (fonction mathématique) reçoit des entrées, effectue des calculs sur ces entrées et génère une sortie. La première couche est la couche d'entrée, qui reçoit les données brutes (texte, image numérique ou autres données collectées). Derrière, il y a une ou plusieurs couches cachées (non accessibles depuis l'extérieur), suivies de la couche de sortie qui produit les prédictions.

Pour effectuer une prédiction, les données sont propagées de la couche d'entrée à la couche de sortie. Chaque neurone somme ses entrées pondérées, applique une fonction d'activation, et passe le résultat à la couche suivante.

Les fonctions d'activation introduisent des non-linéarités dans le réseau. Cela signifie que la relation entre les quantités n'est pas une proportion constante mais une probabilité. C'est ce qui confère aux réseaux de neurones leur capacité à résoudre une variété de problèmes, de la reconnaissance d'images à la traduction automatique, en passant par la modélisation du langage naturel.

Après avoir effectué une prédiction, le réseau compare ses propres résultats aux étiquettes correctes afin de mesurer l'erreur ou la différence entre les deux. Les étiquettes correctes sont une composante essentielle de l'ensemble d'entrainement d'un modèle d'apprentissage supervisé. Elles sont fournies pour chaque exemple de l'ensemble d'entrainement afin de permettre au modèle d'apprendre à faire des prédictions précises.

Dans l'étape d'après, l'algorithme de rétro propagation ajuste les poids du réseau (paramètres internes qui déterminent comment les neurones réagissent aux entrées). Cela lui permet de trouver les valeurs qui minimisent l'erreur du modèle. Ce processus se répète jusqu'à ce que le réseau atteigne un niveau de performance satisfaisant.

Dans le réseau, il existe également des hyper paramètres à régler, tels que le taux d'apprentissage (nombre d'itération que le modèle fait lors de la mise à jour des poids pendant l'entrainement), la taille du lot utilisé (combien d'exemples de données sont utilisés à chaque mise à jour des poids), l'architecture du réseau (nombre de couches et nombre de neurones par couche), le choix de la fonction d'activation dans les couches, etc.
Après avoir évalué le modèle pour chaque combinaison, les chercheurs choisissent les hyper paramètres qui donnent les meilleures performances sur les données de validation.

En fin de compte, le modèle entrainé est évalué sur de nouvelles données jamais vues.

Processus d'apprentissage pour un réseau de neurones

Supposons que nous avons à disposition un data center capable de nous fournir 100 000 images différentes de 28x28 pixels en niveaux de gris représentant des chiffres manuscrits de 0 à 9.

Notre réseau de neurones aura une couche d'entrée configurée à la taille des images (28x28 neurones), une ou plusieurs couches cachées, et une couche de sortie avec 10 neurones (car il y a 10 chiffres possibles : 0 à 9). Chaque neurone dans la couche de sortie représente la probabilité que l'image corresponde à un chiffre particulier.
Les poids des connexions entre les neurones sont initialement définis à des valeurs aléatoires.

La donnée brute par exemple l'image numérique du 3 est introduite dans la couche d'entrée.
Pour analyser les régions locales de l'image, des filtres de convolution (par exemple 5x5 pixels) glissent sur l'image, pixel par pixel, pour en extraire une carte de caractéristiques visuelles hiérarchiques. En général, une couche de convolution utilisera plusieurs filtres différents. Chaque filtre apprend à détecter des caractéristiques spécifiques de l'image, telles que des bords, des textures, des motifs, etc. Les caractéristiques extraites par les premières couches de convolution sont simples (comme des bords), tandis que les couches supérieures apprennent à reconnaitre des caractéristiques plus complexes (comme des motifs ou des objets).

Les données se propagent à travers le réseau en suivant les connexions pondérées et en appliquant des fonctions d'activation. À chaque couche, des opérations mathématiques sont effectuées pour obtenir une sortie.

La couche de sortie produit des scores pour chaque chiffre (0-9). Une fonction va transformer ces scores en une série de probabilités pour chaque classe (0-9) possible. Le chiffre avec la probabilité la plus élevée sera la prédiction du réseau.

Ensuite le réseau va comparer sa prédiction avec l'étiquette réelle de l'image (par exemple, "c'est un 3").
Une fonction de coût mesure la divergence entre les prédictions du modèle et les étiquettes réelles. Elle attribue un coût plus élevé lorsque les prédictions du modèle sont éloignées des étiquettes attendues. Lors de l'entrainement d'un réseau de neurones, l'objectif est de minimiser la fonction de coût.

Pour cela, l'erreur est propagée en sens inverse à travers le réseau. Cette rétro propagation va des couches de sortie vers les couches d'entrée. À mesure que l'erreur se propage en sens inverse, le réseau ajuste ses paramètres (poids et biais) dans chaque couche pour minimiser l'erreur. Cela se fait en utilisant des algorithmes d'optimisation, tels que la descente de gradient, qui mettent à jour les paramètres du modèle. Les poids et biais sont ajustés en fonction du gradient. Les paramètres sont modifiés dans la direction qui minimise la fonction de coût.

Ce processus est répété sur un très grand nombre d'images d'entrainement. Le réseau va ajuster ses paramètres à chaque itération pour s'améliorer dans la classification des chiffres manuscrits.

Une fois le réseau entrainé, il est testé sur un ensemble de données distinct (images non encore vues) pour évaluer sa performance en termes de précision de classification.

Conclusion

Le concept de modification des poids est utilisé dans les réseaux de neurones artificiels car il est inspiré du fonctionnement du cerveau humain. Dans le cerveau humain, les neurones sont connectés entre eux par des synapses. La force de la connexion entre deux neurones est appelée "poids synaptique". Les poids synaptiques sont modifiés au cours du processus d'apprentissage humain. Ce processus, encore mal compris, est appelé plasticité synaptique. La plasticité synaptique est un processus fascinant qui nous permet de nous adapter et d'apprendre tout au long de la vie.
Par exemple :
• Si nous apprenons le mot "chien" en français, les neurones qui représentent le son "ch", le son "i", le son "e" et le mot "chien" sont activés ensemble. Plus nous utilisons le mot "chien", plus ces neurones sont activés ensemble.
• Plus les personnes traumatisées s'exposent à des expériences positives et sécurisantes, plus les synapses entre les neurones qui représentent l'évènement traumatisant sont susceptibles de s'affaiblir.


1997 © Astronoo.com − Astronomie, Astrophysique, Évolution et Écologie.
"Les données disponibles sur ce site peuvent être utilisées à condition que la source soit dûment mentionnée."