Calcul en action : réseaux de neurones

Actualités de de l'Intelligence Artificielle - Machine Learning - Objets connectés

Calcul en action : réseaux de neurones


Un réseau de neurones artificiels est un modèle informatique qui se rapproche d’un mappage entre les entrées et les sorties.

Il s’inspire de la structure du cerveau humain, en ce sens qu’il est également composé d’un réseau de neurones interconnectés qui propagent des informations lors de la réception d’ensembles de stimuli provenant de neurones voisins.

La formation d’un réseau de neurones implique un processus qui utilise les algorithmes de rétropropagation et de descente de gradient en tandem. Comme nous le verrons, ces deux algorithmes font un usage intensif du calcul.

Dans ce tutoriel, vous découvrirez comment les aspects du calcul sont appliqués dans les réseaux de neurones.

Après avoir terminé ce tutoriel, vous saurez :

  • Un réseau de neurones artificiels est organisé en couches de neurones et de connexions, ces dernières se voyant attribuer une valeur de poids chacune.
  • Chaque neurone implémente une fonction non linéaire qui mappe un ensemble d’entrées à une activation de sortie.
  • Dans la formation d’un réseau de neurones, le calcul est largement utilisé par les algorithmes de rétropropagation et de descente de gradient.

Commençons.

Calcul en action : réseaux de neurones
Photo de Tomoe Steineck, certains droits réservés.

Présentation du didacticiel

Ce tutoriel est divisé en trois parties ; elles sont:

  • Une introduction au réseau de neurones
  • Les mathématiques d’un neurone
  • Former le réseau

Conditions préalables

Pour ce tutoriel, nous supposons que vous savez déjà ce que sont :

Vous pouvez revoir ces concepts en cliquant sur les liens ci-dessus.

Une introduction au réseau de neurones

Les réseaux de neurones artificiels peuvent être considérés comme des algorithmes d’approximation de fonction.

Dans un cadre d’apprentissage supervisé, lorsqu’il est présenté avec de nombreuses observations d’entrée représentant le problème d’intérêt, ainsi que leurs sorties cibles correspondantes, le réseau de neurones artificiels cherchera à approximer le mappage qui existe entre les deux.

Un réseau de neurones est un modèle informatique qui s’inspire de la structure du cerveau humain.

– Page 65, Apprentissage en profondeur, 2019.

Le cerveau humain est constitué d’un réseau massif de neurones interconnectés (environ cent milliards d’entre eux), chacun comprenant un corps cellulaire, un ensemble de fibres appelées dendrites et un axone :

Un neurone dans le cerveau humain

Les dendrites agissent comme les canaux d’entrée d’un neurone, tandis que l’axone agit comme le canal de sortie. Par conséquent, un neurone recevrait des signaux d’entrée via ses dendrites, qui à leur tour seraient connectées aux axones (de sortie) d’autres neurones voisins. De cette manière, une impulsion électrique suffisamment forte (également appelée potentiel d’action) peut être transmise le long de l’axone d’un neurone, à tous les autres neurones qui lui sont connectés. Cela permet aux signaux de se propager le long de la structure du cerveau humain.

Ainsi, un neurone agit comme un commutateur tout ou rien, qui prend en charge un ensemble d’entrées et produit soit un potentiel d’action, soit aucune sortie.

– Page 66, Apprentissage en profondeur, 2019.

Un réseau de neurones artificiels est analogue à la structure du cerveau humain, car (1) il est également composé d’un grand nombre de neurones interconnectés qui, (2) cherchent à propager des informations à travers le réseau en (3) recevant des ensembles de stimuli. des neurones voisins et les mapper sur des sorties, à alimenter à la prochaine couche de neurones.

La structure d’un réseau de neurones artificiels est généralement organisée en couches de neurones (rappelez-vous la représentation d’un diagramme en arbre). Par exemple, le schéma suivant illustre un réseau de neurones, où tous les neurones d’une couche sont connectés à tous les neurones de la couche suivante :

Un réseau de neurones feedforward entièrement connecté

Les entrées sont présentées sur le côté gauche du réseau, et les informations se propagent (ou flux) vers la droite vers les sorties à l’extrémité opposée. Étant donné que l’information se propage, par la présente, dans le effronté direction à travers le réseau, alors nous appellerions aussi un tel réseau comme un réseau de neurones d’anticipation.

Les couches de neurones entre les couches d’entrée et de sortie sont appelées caché couches, car elles ne sont pas directement accessibles.

Chaque connexion (représentée par une flèche dans le schéma) entre deux neurones se voit attribuer un poids, qui agit sur les données circulant dans le réseau, comme nous le verrons bientôt.

Les mathématiques d’un neurone

Plus précisément, disons qu’un neurone artificiel particulier (ou un perceptron, comme Frank Rosenblatt l’avait initialement nommé) reçoit m contributions, [x1, …, xn], où chaque connexion se voit attribuer un poids correspondant, [w1, …, wn].

La première opération effectuée multiplie les valeurs d’entrée par leur poids correspondant, et ajoute un terme de biais, b, à leur somme, produisant une sortie, z:

z = ((X1 × w1) + (X2 × w2) + … + (Xm × wm)) + b

Nous pouvons, alternativement, représenter cette opération sous une forme plus compacte comme suit :

Ce calcul de somme pondérée que nous avons effectué jusqu’à présent est une opération linéaire. Si chaque neurone devait implémenter ce calcul particulier seul, alors le réseau de neurones serait limité à l’apprentissage des mappages entrée-sortie linéaires.

Cependant, bon nombre des relations dans le monde que nous pourrions vouloir modéliser sont non linéaires, et si nous essayons de modéliser ces relations à l’aide d’un modèle linéaire, alors le modèle sera très imprécis.

– Page 77, Apprentissage en profondeur, 2019.

Par conséquent, une deuxième opération est effectuée par chaque neurone qui transforme la somme pondérée par l’application d’une fonction d’activation non linéaire, une(.):

Nous pouvons représenter les opérations effectuées par chaque neurone de manière encore plus compacte, si nous devions intégrer le terme de biais dans la somme comme un autre poids, w0 (notez que la somme commence maintenant à partir de 0) :

Les opérations effectuées par chaque neurone peuvent être illustrées comme suit :

Fonction non linéaire mise en œuvre par un neurone

Par conséquent, chaque neurone peut être considéré comme implémentant une fonction non linéaire qui mappe un ensemble d’entrées à une activation de sortie.

Former le réseau

L’entraînement d’un réseau de neurones artificiels implique le processus de recherche de l’ensemble de poids qui modélise le mieux les modèles dans les données. C’est un processus qui utilise les algorithmes de rétropropagation et de descente de gradient en tandem. Ces deux algorithmes font un usage intensif du calcul.

Chaque fois que le réseau est traversé dans le sens direct (ou vers la droite), l’erreur du réseau peut être calculée comme la différence entre la sortie produite par le réseau et la vérité terrain attendue, au moyen d’une fonction de perte (telle que la somme des erreurs au carré (SSE)). L’algorithme de rétropropagation calcule ensuite le gradient (ou le taux de changement) de cette erreur par rapport aux changements de poids. Pour ce faire, il nécessite l’utilisation de la règle de la chaîne et des dérivées partielles.

Pour simplifier, considérons un réseau composé de deux neurones connectés par un seul chemin d’activation. Si nous devions les ouvrir, nous constaterions que les neurones effectuent les opérations suivantes en cascade :

Opérations effectuées par deux neurones en cascade

La première application de la règle de la chaîne relie l’erreur globale du réseau à l’entrée, z2, de la fonction d’activation une2 du deuxième neurone, et par la suite au poids, w2, comme suit:

Vous remarquerez peut-être que l’application de la règle de la chaîne implique, entre autres termes, une multiplication par la dérivée partielle de la fonction d’activation du neurone par rapport à son entrée, z2. Vous avez le choix entre différentes fonctions d’activation, telles que le sigmoïde ou les fonctions logistiques. Si nous devions prendre la fonction logistique comme exemple, alors sa dérivée partielle serait calculée comme suit :

On peut donc calculer2 comme suit:

Ici, t2 est l’activation attendue, et en trouvant la différence entre t2 et une2 nous calculons donc l’erreur entre l’activation générée par le réseau et la vérité terrain attendue.

Puisque nous calculons la dérivée de la fonction d’activation, elle devrait donc être continue et dérivable sur tout l’espace des nombres réels. Dans le cas des réseaux de neurones profonds, le gradient d’erreur se propage vers l’arrière sur un grand nombre de couches cachées. Cela peut entraîner une diminution rapide du signal d’erreur jusqu’à zéro, en particulier si la valeur maximale de la fonction dérivée est déjà petite au départ (par exemple, l’inverse de la fonction logistique a une valeur maximale de 0,25). Ceci est connu comme le problème de gradient évanouissant. La fonction ReLU a été si couramment utilisée dans l’apprentissage en profondeur pour atténuer ce problème, car sa dérivée dans la partie positive de son domaine est égale à 1.

Le poids suivant vers l’arrière est plus profond dans le réseau et, par conséquent, l’application de la règle de la chaîne peut également être étendue pour relier l’erreur globale au poids, w1, comme suit:

Si nous reprenons la fonction logistique comme fonction d’activation de choix, alors nous calculerons 𝛿1 comme suit:

Une fois que nous avons calculé le gradient de l’erreur de réseau par rapport à chaque poids, l’algorithme de descente de gradient peut être appliqué pour mettre à jour chaque poids pour le prochain propagation vers l’avant au moment, t+1. Pour le poids, w1, la règle de mise à jour du poids utilisant la descente de pente serait spécifiée comme suit :

Même si nous avons ici considéré un réseau simple, le processus que nous avons suivi peut être étendu pour évaluer des réseaux plus complexes et plus profonds, tels que les réseaux de neurones convolutifs (CNN).

Si le réseau considéré est caractérisé par plusieurs branches provenant de plusieurs entrées (et s’écoulant éventuellement vers plusieurs sorties), alors son évaluation impliquerait la sommation de différentes chaînes dérivées pour chaque chemin, de la même manière que nous avons précédemment dérivé la règle de chaîne généralisée.

Lectures complémentaires

Cette section fournit plus de ressources sur le sujet si vous cherchez à approfondir.

Livres

Sommaire

Dans ce didacticiel, vous avez découvert comment les aspects du calcul sont appliqués dans les réseaux de neurones.

Concrètement, vous avez appris :

  • Un réseau de neurones artificiels est organisé en couches de neurones et de connexions, ces dernières se voyant attribuer chacune une valeur de poids.
  • Chaque neurone implémente une fonction non linéaire qui mappe un ensemble d’entrées à une activation de sortie.
  • Dans la formation d’un réseau de neurones, le calcul est largement utilisé par les algorithmes de rétropropagation et de descente de gradient.

Avez-vous des questions?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.