Backgound

Les réseaux de neurones artificiels

January 13, 2022
6-9 min

La labellisation des données a fait l’objet du précédent article, c’est l’étape préliminaire nécessaire à l’élaboration d’un modèle de Machine Learning. Parmi les nombreux modèles envisageables, comme la régression linéaire dont nous avions parlé, on trouve les réseaux de neurones qui font partie des modèles de Machine Learning et de Deep Learning les plus connus. Ce sont les modèles majoritairement utilisés chez HD Rain.

Neurone artificiel et neurone biologique

Les neurones artificiels sont inspirés des neurones biologiques. Ces derniers reçoivent en entrée des signaux électriques et renvoient, ou non, un autre signal électrique. Ils ont un fonctionnement relativement basique. C’est l’interconnexion d’un grand nombre d’entre eux (100 milliards de neurones pour le cerveau humain) qui permet d’obtenir des résultats aussi complexes.

De la même manière les neurones artificiels reçoivent des nombres en entrée et retournent un autre nombre. On peut symboliser la présence d'un signal électrique par le nombre 1 et son absence par le nombre 0.

Figure 1

Sur la figure 1 en l’occurrence, le neurone représenté par le nombre 𝑏 reçoit trois signaux d’entrée issus des neurones représentés par les nombres 𝑎₁, 𝑎₂, 𝑎₃. Ces trois nombres sont respectivement pondérés par les paramètres 𝑝₁, 𝑝₂, 𝑝₃, qui restent à déterminer. Le neurone 𝑏 dépend de la quantité 𝑝₁ x 𝑎₁ + 𝑝₂ x 𝑎₂ + 𝑝₃ x 𝑎₃. Si cette quantité est positive on retourne la valeur 1 sinon on retourne la valeur 0.

La fonction qui retourne 1 si un résultat est positif et 0 s’il est négatif s’appelle la fonction de seuil. En la notant ⨍, on a par exemple ⨍(2) = 1 ou encore ⨍(-3) = 0. En reprenant les notations précédentes, on a finalement la relation suivante 𝑏 = ⨍(𝑝₁ x 𝑎₁ + 𝑝₂ x 𝑎₂ + 𝑝₃ x 𝑎₃).

Le choix de la fonction de seuil n’est pas obligatoire, on peut prendre la fonction que l’on souhaite. De manière générale cette fonction s’appelle la fonction d’activation, car elle permet d’activer ou non le neurone en sortie. De part la diversité des fonctions d’activations, dont les plus couramment utilisées sont représentées sur la figure 2, l’activation n’est pas nécessairement binaire (1 ou 0) mais peut être continue. Il en va de même pour les valeurs des neurones.

Figure 2

Réseau de neurones

Un neurone à lui seul ne permet pas d’obtenir un modèle très élaboré. En revanche un grand nombre de neurones regroupés en couche permet d’obtenir des modèles adaptés aux problèmes les plus complexes.

Encore mieux, si on empile les couches les unes aux autres, on commence à obtenir des réseaux dits profonds et à faire du Deep Learning.

Figure 3

On distingue la couche d’entrée et la couche de sortie qui correspondent respectivement aux inputs et aux outputs, et les couches cachées (hidden layers en anglais) qui permettent de trouver le lien entre les inputs (les données dont nous disposons) et les outputs (l’information utile, le résultat que l’on cherche à extraire des données).

Comme on peut le voir sur la figure 3, les sorties d’une couche de neurones deviennent les entrées de la couche suivante. Les calculs relatifs à la figure 1 explicités plus haut restent valables pour un réseau de neurones comme celui de la figure 3. Ainsi,

𝑏1 = ⨍ (𝑝₁,₁ x 𝑎 + 𝑝₂,₁ x 𝑎)

𝑏₂ = ⨍ (𝑝₁,₂ x 𝑎 + 𝑝₂,₂ x 𝑎)

𝑏₃ = ⨍ (𝑝₁,₃ x 𝑎 + 𝑝₂,₃ x 𝑎)

Les valeurs 𝑏₁, 𝑏₂ et 𝑏₃ sont à la fois les sorties de la première couche obtenues à partir des entrées 𝑎 et 𝑎₂ mais également les entrées de la troisième couche permettant d’obtenir les valeurs 𝑐₁ et 𝑐₂. Ces deux valeurs permettant à leur tour d’obtenir la valeur finale 𝑑₁ qui est la sortie que l’on cherche à extraire à partir des données d’entrée. Les valeurs 𝑝𝑖,𝑗 sont des paramètres du réseau de neurones, à ajuster pour déterminer le meilleur modèle possible. Bien entendu d’autres paramètres permettent de relier les valeurs 𝑏i aux valeurs 𝑐j et les valeurs 𝑐j aux valeurs 𝑑l (non représentés sur la figure 3 par soucis de lisibilité).

Les deux couches intermédiaires sont appelées les couches cachées car les valeurs qui leur sont associées sont transparentes. Elles ne sont que des intermédiaires permettant de relier la donnée à analyser (représentée par les valeurs 𝑎₁ et 𝑎₂ ) et le résultat à extraire (représenté par la valeur 𝑑₁). Un réseau de neurones est une boîte noire, elle contient ces fameuses couches cachées reliant les entrées aux sorties.

Figure 4

Entraînement du modèle

La première étape consiste à mettre en place l’architecture du réseau de neurones en choisissant, entre autres, le nombre de couches cachées et le nombre de neurones dans chacune de ces couches. À ce stade on ne dispose que du squelette du modèle, paramétré par un nombre relativement important de variables. Ces variables sont les poids reliant les neurones entre eux (ceux notés 𝑝𝑖,𝑗 au paragraphe précédent ou bien encore les lignes rouges de la figure 4). Chacun de ces poids est un paramètre du modèle à déterminer précisément lors de l’entraînement.

Pour cela, la méthode est générale aux problèmes d’apprentissage automatique. À l’aide d’une fonction de coût, on quantifie l’écart entre les sorties du modèle et les sorties attendues (les labellisations). Tout l'objectif de l'apprentissage est de déterminer les paramètres du modèle qui minimisent la fonction de coût. En ajustant ces paramètres, on modifie les sorties du modèle dans le but de se rapprocher des labellisations.

En résumé

Les réseaux de neurones sont des modèles de Machine Learning et de Deep Learning. Certainement les plus connus du grand public, ils sont également au cœur de beaucoup de projets à l’instar de ceux de HD Rain.

Inspirés des neurones biologiques, les neurones artificiels reçoivent en entrée un ou plusieurs nombres et en retourne un nouveau. Le nombre en sortie dépend de la fonction d’activation choisi et des paramètres associés aux neurones d’entrée. Ces paramètres sont à déterminer pendant l’entraînement du modèle.

Un seul neurone ne permet pas d’obtenir un modèle complexe, et par conséquent un modèle intéressant. En revanche, la mise en réseau d’un grand nombre d’entre eux, regroupés en couches juxtaposées les unes aux autres, offre une infinité de possibilités.

L’entraînement du réseau de neurones est la partie la plus complexe mais également la plus importante. Au fil de l’entraînement on va comparer les sorties du modèle aux sorties attendues, c’est-à-dire aux labellisations, pour ajuster les paramètres de façon à correspondre au mieux aux labellisations.

Une fois l’entraînement terminé, on peut exploiter le modèle en utilisant les paramètres retenus.