réseaux de neurone

Deep Learning-Réseau de neurones : Biologiques ou artificiels, même combat ?

3 min

Dans un précédent article, nous avons défini le concept de Deep Learning et ses principales applications. Au coeur de cette technique de Machine Learning , les réseaux de neurones artificiels.
Avant de s’attaquer au fonctionnement précis des réseaux de neurones, on s’est dit qu’il serait intéressant de faire un parallèle avec les neurones biologiques

(Pas de panique, un article dédié aux réseaux de neurones utilisés en Deep Learning suivra )

Neurone Biologique : Structure et rôle

Le système nerveux est composé de milliards de cellules : c’est un réseau de neurones biologiques. En effet, les neurones ne sont pas indépendants les uns des autres, ils établissent entre eux des liaisons et forment des réseaux plus ou moins complexes.

 Le neurone biologique est composé de trois parties principales :

  • Le corps cellulaire composé du centre de contrôle traitant les informations reçues par les dendrites.
  • Les dendrites sont les principaux fils conducteurs par lesquels transitent l’information venue de l’extérieur
  • L’axone est fil conducteur qui conduit le signal de sortie du corps cellulaire vers d’autres neurones.
neurone
Source : Research Gate

Quant aux synapses, elles font effet de liaison et de pondération entre neurones et permettent donc aux neurones de communiquer entre eux.

neurones biologique
Source : Studdy

En résumé :

Les neurones biologiques disposent d’un centre de contrôle (appelé cellule somatique) faisant la somme des informations recueillies par les dendrites. Ensuite, le centre de contrôle retourne un potentiel d’action en suivant les règles suivantes :

  • Si la somme en entrée ne dépasse pas le seuil d’excitation : pas de message nerveux via l’axone.
  • Si la somme en entrée dépasse le seuil d’excitation : un message nerveux est émis via l’axone (c’est l’idée, mais en réalité un peu plus compliqué).

Quelle est le lien entre les neurones biologiques et neurones artificiels?

Procédons à une comparaison simple des étapes principales de l’algorithme du perceptron avec les éléments constitutifs des neurones biologiques. Ce choix d’algorithme se justifie car il se rapproche au mieux du fonctionnement des neurones biologiques :

  • Les synapses/dendrites : pondération de chaque élément en entrée wixi
  • Corps cellulaires : application d’une fonction d’activation f à la somme des entrées pondérées
  • Axone : sortie de notre modèle
formule
neuron
Source : Datacamp

Le vocabulaire spécifique à cet algorithme est le suivant :

  • Le vecteur w porte le nom de vecteur de poids (qui s’ajuste lors de l’entraînement).
  • Le vecteur x  porte le nom de vecteur d’entrée.

f porte le nom de fonction d’activation.

Pour la plupart des fonctions d’activations, le perceptron consiste à trouver l’hyperplan séparateur (définie par w) entre nos deux classes :

algorithme de Perceptron
Source: Computer Science University of Toronto

L’algorithme de Perceptron simple n’est plus utilisé en pratique puisque d’autres algorithmes comme le Support Vector Machine sont bien plus performants. De même, les neurones biologiques ne sont pas utilisés individuellement, ils sont généralement reliés à d’autres neurones.

neurons
Source : Wikipédia

L’intérêt de l’algorithme du Perceptron vient d’une technique démontrée en 1989 par George Cybenko qui consiste à lier et empiler des couches de perceptron pour apporter une plus grande complexité. Un algorithme de ce type s’appelle Perceptron Multicouche (Multilayer Perceptron en anglais), souvent abrégé par l’acronyme MLP.

Perceptron Multicouche

Dans la figure précédente, le modèle consiste à classifier (en 10 classes) des images de chiffres manuscrits. Les carrés verts sont les entrées de notre modèle, les perceptrons sont représentés par des ronds gris et les liaisons sont représentées par les flèches.

En général, la dernière couche de notre modèle permet de mettre en forme le résultat souhaité. Ici, comme nous avons un problème de classification, nous recherchons alors à prédire la probabilité de chaque classe (chiffre 0, chiffre 1 …). C’est pour cet raison que la dernière couche possède 10 neurones puisqu’il y a 10 classes, et une fonction d’activation « softmax » permettant de retourner une probabilité.

C’est beaucoup plus libre pour les autres couches de notre modèle, il est surtout très important que les fonctions d’activations des perceptrons soient non-linéaires pour complexifier son modèle. En pratique, les fonctions d’activations tanh ou ReLU sont les plus utilisées.

Comme dans les LEGO, c’est au Data Scientist de choisir l’architecture de son modèle.
Perceptron lego
Source : Freelug
Il existe des architectures plus performante que d’autre, mais il n’y a pas vraiment de règle mathématique derrière. C’est l’expérience qui prime sur le choix des structures de modèle.

Pour résumer, les modèles de Perceptron Multicouche avec son nombre important de paramètres peuvent être vus comme des méthodes de brute force pour résoudre un problème de data science. 

Il existe d’autres couches dans le Deep learning comme les convolutions qui vont permettre d’appliquer des filtres à nos images pour extraire des caractéristiques plus pertinente que des pixels : forme géométrique, bord …

Sources :