• Aucun résultat trouvé

CHAPITRE 3 Introduction aux Réseaux Multicouches

N/A
N/A
Protected

Academic year: 2022

Partager "CHAPITRE 3 Introduction aux Réseaux Multicouches"

Copied!
8
0
0

Texte intégral

(1)

CHAPITRE 3

Introduction aux Réseaux Multicouches

(2)

1. Introduction

Dans un effort pour surmonter les limitations pratiques de la monocouche, le réseau de neurones a évolué vers une architecture multicouche. Cependant, il a fallu environ 30 ans pour ajouter la couche cachée au réseau de neurones à une couche. Il n’est pas facile de comprendre pourquoi cela a pris si longtemps, mais le problème tient à la règle d’apprentissage.

Le processus d’apprentissage étant la seule méthode permettant au réseau de neurones de stocker des informations, les réseaux de neurones ¨inexpérimentés¨ sont inutiles. L’élaboration d’une règle d’apprentissage appropriée pour le réseau de neurones multicouches a pris un certain temps.

La règle delta précédemment introduite est inefficace pour l’entraînement du réseau de neurones multicouches. En effet, l'erreur, élément essentiel de l'application de la règle de delta pour l'apprentissage, n'est pas définie dans les couches masquées (cachées). L'erreur du nœud de sortie est définie par la différence entre la sortie correcte et la sortie du réseau de neurones.

Toutefois, les données d'apprentissage ne fournissent pas des sorties correctes pour les nœuds des couches cachées et l'erreur ne peut donc pas être calculée en utilisant la même approche que celle utilisée pour les nœuds de sortie. Comment faire alors ? Le vrai problème, comment définir l’erreur aux nœuds cachés ? Pour cela, il va falloir l'algorithme dit de rétro- propagation, la règle d'apprentissage représentative du réseau neuronal multicouche.

En octobre 1986, David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams, dans leur publication, dans la revue Nature, intitulée : “Learning representations by back- propagating errors”, le problème a été résolu. L’introduction de l’algorithme de rétro- propagation a finalement résolu le problème de l’apprentissage du réseau de neurones multicouches. L’importance de l’algorithme de rétro-propagation était qu’il fournissait une méthode systématique pour déterminer l’erreur des nœuds cachés. Une fois les erreurs de couche cachée déterminées, la règle de delta est appliquée pour ajuster les poids. Voir la figure 3-1.

Figure 3-1. Illustration de la propagation en retour

(3)

Les données d'entrée du réseau de neurones traversent la couche d'entrée, la couche cachée et la couche de sortie. En revanche, dans l’algorithme de rétro-propagation, l’erreur de sortie commence à partir de la couche de sortie et recule jusqu’à atteindre la couche cachée immédiatement à droite de la couche d’entrée. Ce processus est appelé rétro-propagation, car il ressemble à une erreur de sortie se propageant en arrière. Même en rétro-propagation, le signal passe toujours par les lignes de connexion. La seule différence est que les signaux d'entrée et de sortie circulent dans des directions opposées.

2. Algorithme de rétro propagation

Cette section explique l’algorithme de rétro-propagation en utilisant un exemple de réseau neuronal multicouche simple. Prenons un réseau de neurones composé de deux nœuds pour l’entrée et la sortie et d’une couche cachée, qui comporte également deux nœuds. Nous allons omettre les biais (bases) pour plus de commodité. L'exemple de réseau de neurones est présenté à la figure 3-2, où l'indice représente l'indicateur de couche.

Figure 3-2. Réseau de neurones composé de deux nœuds pour les entrées et les sorties et d'une couche cachée comportant deux nœuds

Pour obtenir l’erreur de sortie, nous avons d’abord besoin de la sortie du réseau de neurones à partir des données d’entrée. Essayons. Comme l'exemple de réseau comporte une seule couche cachée, nous avons besoin de deux manipulations de données d'entrée avant que le calcul de sortie ne soit traité. Tout d'abord, la somme pondérée du nœud caché est calculée comme suit:

[ 𝑣

1(1)

𝑣

2(1)

] = [ 𝑤

11(1)

𝑤

12(1)

𝑤

21(1)

𝑤

22(1)

] [ 𝑥

1

𝑥

2

] Equation 3.1

≡ 𝑊1𝑋

Lorsque nous mettons cette somme pondérée, l'équation 3.1, dans la fonction d'activation, nous obtenons la sortie des nœuds cachés.

[ 𝑦

1(1)

𝑦

2(1)

] = [ 𝜑(𝑣

1(1)

)

𝜑(𝑣

2(1)

) ]

(4)

où 𝑦1(1) et 𝑦2(1) sont des sorties des nœuds cachés correspondants. De manière similaire, la somme pondérée des nœuds de sortie est calculée comme suit :

[ 𝑣

1(2)

𝑣

2(2)

] = [ 𝑤

11(2)

𝑤

12(2)

𝑤

21(2)

𝑤

22(2)

] [ 𝑦

1(1)

𝑦

2(1)

] Equation 3.2

≡ 𝑊1𝑌(1)

En mettant cette somme pondérée dans la fonction d’activation, le réseau de neurones génère la sortie

[ 𝑦

1

𝑦

2

] = [ 𝜑(𝑣

1(2)

) 𝜑(𝑣

2(2)

) ]

Nous allons maintenant entrainer le réseau de neurones en utilisant l'algorithme de rétro- propagation. La première chose à calculer est le delta, δ, de chaque nœud. Vous pouvez demander : «Ce delta est-il celui de la règle du delta? Afin d'éviter toute confusion, le diagramme de la figure 3-3 a été redessiné avec la suppression des connexions inutiles.

Figure 3-3. Entrainement du réseau de neurones en utilisant l'algorithme de rétro-propagation

Dans l'algorithme de rétro-propagation, le delta du nœud de sortie est défini de manière identique à la règle de delta de la section «Règles de delta généralisées» du chapitre 2, comme suit :

𝑒

1

= 𝑑

1

− 𝑦

1

𝛿

1

= 𝜑

(𝑣

1

)𝑒

1

Equation 3.3 𝑒

2

= 𝑑

2

− 𝑦

2

𝛿

2

= 𝜑

(𝑣

2

)𝑒

2

(5)

où 𝜑′(𝑥) est la dérivée de la fonction d'activation du nœud de sortie, 𝑦𝑖 est la sortie du nœud de sortie, 𝑑𝑖 est la sortie correcte(désirée) des données d'apprentissage et 𝑣𝑖 est la somme pondérée du noeud correspondant.

Comme nous avons le delta pour chaque nœud de sortie, allons à gauche vers les nœuds cachés et calculons le delta (Figure 3-4). Encore une fois, les connexions inutiles sont estompées pour plus de commodité.

Figure 3-4. Continuez à gauche vers les nœuds cachés et calculez le delta

Comme indiqué au début du chapitre, le problème du nœud caché est de savoir comment définir l'erreur. Dans l'algorithme de rétro-propagation, l'erreur du nœud est définie comme la somme pondérée des deltas rétro-propagés de la couche immédiatement à droite (dans ce cas, la couche de sortie). Une fois l'erreur obtenue, le calcul du delta à partir du nœud est le même que celui de l'équation 3.3. Ce processus peut être exprimé comme suit:

𝑒1(1) =

𝑤

11(2)

𝛿

1

+ 𝑤

21(2)

𝛿

2

𝛿

1(1)

= 𝜑′(𝑣

1(1)

)

𝑒1(1)

Equation 3.4

𝑒2(1) =

𝑤

12(2)

𝛿

1

+ 𝑤

22(2)

𝛿

2

𝛿

2(1)

= 𝜑′(𝑣

2(1)

)

𝑒2(1)

où 𝑣1(1) et 𝑣2(1) sont la somme des poids des signaux avant les nœuds respectifs. Il ressort de cette équation que les processus en aval et en amont sont appliqués de manière identique aux nœuds cachés ainsi qu'aux nœuds de sortie. Cela implique que les nœuds de sortie et masqués subissent le même processus en arrière. La seule différence est le calcul de l'erreur (Figure 3- 5).

(6)

Figure 3-5. Le calcul d'erreur est la seule différence

En résumé, l'erreur du nœud caché est calculée en tant que somme pondérée en arrière du delta, et le delta du nœud est le produit de l'erreur et la dérivée de la fonction d'activation.

Ce processus commence au niveau de la couche de sortie et se répète pour toutes les couches masqués. Cela explique assez bien l’algorithme de rétro-propagation.

Les deux formules de calcul d'erreur de l'équation 3.4 sont combinées dans une équation matricielle comme suit :

[ 𝑒

1(1)

𝑒

2(1)

] = [ 𝑤

11(2)

𝑤

21(2)

𝑤

12(2)

𝑤

22(2)

] [ 𝛿

1

𝛿

2

] Eqaution 3.5

[ 𝑒

1(1)

𝑒

2(1)

] = 𝑊

2𝑇

[ 𝛿

1

𝛿

2

] Equation 3.6

Cette équation indique que nous pouvons obtenir l'erreur en tant que produit de la matrice de pondération transposée et du vecteur delta. Cet attribut très utile permet une implémentation plus facile de l'algorithme.

Si nous avons des couches cachées supplémentaires, nous allons simplement répéter le même processus en arrière pour chaque couche cachée et calculer tous les deltas. Une fois que tous les deltas ont été calculés, nous serons prêts à former le réseau de neurones. Utilisez simplement l’équation suivante pour ajuster les poids des couches respectives.

𝑤

𝑖𝑗

= 𝑤

𝑖𝑗

+ 𝛼𝛿

𝑖

𝑥

𝑗

Equation 3.7

Où 𝑥𝑗 est le signal d'entrée pour le poids correspondant. Pour plus de commodité, nous omettons l'indicateur de couche de cette équation. Que vois-tu maintenant ? Cette équation n’est-elle pas la même que celle de la règle delta de la section précédente ? Oui, ils sont pareils.

(7)

La seule différence réside dans les deltas des nœuds cachés, obtenus à partir du calcul en arrière en utilisant l'erreur de sortie du réseau de neurones.

Nous allons procéder un peu plus loin et dériver l'équation pour ajuster le poids en utilisant l'équation 3.7. Considérons le poids 𝑤21(2) par exemple.

Figure 3-6 Dériver l'équation pour ajuster le poids

Le poids 𝑤21(2) de la figure 3-6 peut être ajusté à l'aide de l'équation 3.7 comme suit :

𝑤21(2) = 𝑤21(2)+ 𝛼𝛿2𝑦1(1)

où 𝑦1(1) est la sortie du premier nœud caché. Voici un autre exemple. Le poids 𝑤11 (1) de la figure 3-7 est ajusté à l'aide de l'équation 3.7 comme suit:

𝑤11(1) = 𝑤11(1)+ 𝛼𝛿1(1)𝑥1

où 𝑥1 est la sortie du premier nœud d'entrée, c'est-à-dire la première entrée du réseau de neurones.

Figure 3-7. Dérivez l'équation pour ajuster le poids, encore une fois

(8)

Organisons le processus de formation du réseau de neurones à l’aide de l’algorithme de rétro-propagation.

Algorithme de rétro-propagation (une seule couche cachée)

1. Initialisez les poids avec des valeurs adéquates.

2. Saisissez l’entrée à partir des données d’apprentissage {entrée, sortie correcte} et obtenez la sortie du réseau de neurones. Calculez l'erreur de la sortie sur la sortie correcte et le delta, δ, des nœuds de sortie.

𝑒 = 𝑑 − 𝑦 𝛿 = 𝜑(𝑣) ∙ 𝑒

3. Propagez le nœud de sortie delta, δ, en arrière et calculez les deltas des nœuds suivants (à gauche, pour les couches cachées)

𝑒𝑘 = 𝑊𝑘𝑇𝛿 𝛿(𝑘)= 𝜑(𝑣𝑘) ∙ 𝑒𝑘

4. Répétez l'étape 3 jusqu'à atteindre la couche cachée située immédiatement à droite du calque en entrée.

5. Ajustez les poids conformément à la règle d'apprentissage suivante.

∆𝑤𝑖𝑗 = 𝛼𝛿(𝑘)𝑥𝑗

6. Répétez les étapes 2 à 5 pour chaque point de données d’entraînement.

7. Répétez les étapes 2 à 6 jusqu'à ce que le réseau de neurones soit correctement formé.

À l'exception des étapes 3 et 4, dans lesquelles le delta de sortie se propage en arrière pour obtenir le delta de nœud caché, ce processus est fondamentalement le même que celui de la règle delta, qui a été discuté précédemment. Bien que cet exemple ne comporte qu'une couche cachée, l'algorithme de rétro-propagation est applicable à la formation de nombreuses couches cachées. Il suffit de répéter l’étape 3 de l’algorithme précédent pour chaque couche masquée.

Références

Documents relatifs

• Parmi les personnes handicapées nouvellement inscrites à l’ANPE, les jeunes de moins de 25 ans ne représentent que 9 % des demandes d’emploi enregistrées, proportion beaucoup

Quelle formule faut-il taper en C10 pour obtenir le premier terme de la matrice des coefficients techniques C associée à la répartition sectorielle proposée?. Compléter alors la

Au niveau de la couche liaison de données, la carte réseau assure le contrôle de lien logique, la désignation ; le verrouillage de trame, l’accès au média ainsi que la

[r]

Pour augmenter le rapport de réduction on peut associer dans un réducteur plusieurs engrenages en série. On parle alors de train d’engrenages. Lorsque toutes

• Si x représente le nombre de tablettes de chocolat de mon placard et si une tablette coûte 1,60 euros alors 1,60× x représente le prix qu'a coûté toutes les tablettes..

Parmi les expressions littérales ci-dessous, quelles sont celles qui donnent le périmètre du losange de côté c centimètres.. 4c ; cccc ; c×c ;

La transmission en bande de base qui consiste à transmettre directement les signaux sur le la transmission large bande qui consiste à translate le spectre du signal à