chapitre 2 introduction aux réseaux de neurones

16
Chapitre 2 Introduction aux réseaux de neurones

Upload: others

Post on 23-Jun-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapitre 2 Introduction aux réseaux de neurones

Chapitre 2

Introduction aux réseaux de neurones

Page 2: Chapitre 2 Introduction aux réseaux de neurones

I. Introduction

Ce chapitre présente les réseaux de neurones, largement utilisés comme

modèle pour l’apprentissage automatique. Le réseau de neurones a une longue

histoire de développement et de nombreuses réalisations issues de travaux de

recherche. Il existe de nombreux livres disponibles qui se concentrent

uniquement sur le réseau de neurones. Parallèlement au regain d'intérêt croissant

pour le Deep Learning, les réseaux de neurones ont également considérablement

gagné en importance. Nous passerons brièvement en revue les techniques

pertinentes et pratiques permettant de mieux comprendre l'apprentissage

profond. Pour ceux qui sont nouveaux dans le concept de réseau de neurones,

nous commençons par les fondamentaux.

Dans un premier temps, nous verrons comment le réseau de neurones est lié

à l’apprentissage automatique. Les modèles d'apprentissage automatique

peuvent être mis en œuvre sous différentes formes. Le réseau de neurones est

l'un d'entre eux. La figure 2-1 illustre la relation entre le Machine Learning et le

réseau de neurones. Notez que nous avons le réseau de neurones à la place du

modèle et la règle d'apprentissage à la place de Machine Learning. Dans le

contexte du réseau de neurones, le processus de détermination du modèle

(paramètres du réseau de neurones) est appelé règle d'apprentissage. Ce chapitre

explique les règles d’apprentissage pour un réseau de neurones à une couche.

Les règles d'apprentissage d'un réseau de neurones multicouches sont abordées

dans les chapitres prochains.

Figure 2-1. La relation entre le Machine Learning et les réseaux de neurones

Page 3: Chapitre 2 Introduction aux réseaux de neurones

II. Nœuds d'un réseau de neurones Chaque fois que nous apprenons quelque chose, notre cerveau stocke les

connaissances. L'ordinateur utilise la mémoire pour stocker des informations.

Bien qu'ils stockent tous les deux des informations, leurs mécanismes sont très

différents. L'ordinateur stocke des informations à des emplacements spécifiés de

la mémoire, tandis que le cerveau modifie l'association des neurones. Le neurone

lui-même n'a pas de capacité de stockage ; il ne fait que transmettre des signaux

d'un neurone à l'autre. Le cerveau est un réseau gigantesque de ces neurones et

l'association des neurones forme une information spécifique.

Un réseau de neurones imite le mécanisme du cerveau. Comme le cerveau

est composé de connexions de nombreux neurones, le réseau de neurones est

construit avec des connexions de nœuds, qui sont des éléments correspondant aux

neurones du cerveau. Le réseau de neurones imite l’association des neurones, qui

est le mécanisme le plus important du cerveau, en utilisant la valeur de poids.

Expliquer cela plus tard en utilisant du texte peut causer plus de confusion.

Examinons un exemple simple pour mieux comprendre le mécanisme du réseau

de neurones. Considérons un nœud (un neurone) qui reçoit trois entrées, comme

illustré à la figure 2-2.

Figure 2-2. Un nœud (neurone) qui reçoit trois entrées

Le cercle et la flèche de la figure désignent respectivement le nœud (un

neurone) et le flux de signal. x1, x2 et x3 sont les signaux d'entrée. w1, w2 et

w3 sont les poids pour les signaux correspondants. Enfin, b est le biais, qui est un

Page 4: Chapitre 2 Introduction aux réseaux de neurones

autre facteur associé au stockage d'informations. En d'autres termes, les

informations du réseau neuronal sont stockées sous forme de poids et de biais.

Le signal entrant de l'extérieur est multiplié par le poids avant qu'il n'atteigne

le nœud. Une fois que les signaux pondérés sont collectés au nœud, ces valeurs

sont ajoutées pour constituer la somme pondérée. La somme pondérée de cet

exemple est calculée comme suit :

𝑣 = (𝑤1 𝑥1 ) + (𝑤2 𝑥2 ) + (𝑤3 𝑥3 ) + 𝑏

Cette équation indique que le signal avec un poids supérieur a un effet plus

important. Par exemple, si le poids w1 est égal à 2 et que w2 est égal à 10, l'effet

du signal x2 est cinq fois plus important que celui de x1. Lorsque w1 est égal à

zéro, x1 n'est pas du tout transmis au nœud(NEURONE). Cela signifie que x1 est

déconnecté du nœud. Cet exemple montre que les poids du réseau de neurones

imitent la manière dont le cerveau modifie l'association des neurones. L'équation

de la somme pondérée peut être écrite avec des matrices comme :

𝑣 = 𝑤𝑥 + 𝑏

Où 𝑤 = [𝑤1 𝑤2 𝑤3] et 𝑥 = [𝑥1 𝑥2 𝑥3]

Enfin, le nœud entre la somme pondérée dans la fonction d’activation,

notée souvent 𝜑 , et renvoie sa sortie. La fonction d'activation détermine le

comportement (aussi la sortie) du nœud.

𝑦 = 𝜑(𝑣)

𝑣 = 𝑤𝑥 + 𝑏

Où 𝑤 = [𝑤1 𝑤2 𝑤3] et 𝑥 = [𝑥1 𝑥2 𝑥3]

𝜑 de cette équation est la fonction d'activation. De nombreux types de

fonctions d'activation sont possibles pour les réseaux de neurones. Passons

brièvement en revue le mécanisme du réseau neuronal. Le processus suivant est

effectué à l'intérieur du nœud du réseau neuronal de la figure2-2 :

1. La somme pondérée des signaux d'entrée est calculée.

𝑣 = (𝑤1 𝑥1 ) + (𝑤2 𝑥2 ) + (𝑤3 𝑥3 ) + 𝑏

2. La sortie de la fonction d’activation vers la pondérée la somme est

passée à l'extérieur.

𝑦 = 𝜑(𝑣) = 𝜑(𝑤𝑥 + 𝑏)

Page 5: Chapitre 2 Introduction aux réseaux de neurones

III. Couches de réseau de neurones

Le cerveau étant un gigantesque réseau de neurones, le réseau de neurones

artificiel est un réseau de nœuds. Une variété de réseaux de neurones peut être

créée en fonction de la façon dont les nœuds sont connectés. L'un des types de

réseaux neuronaux les plus couramment utilisés utilise une structure en couches

de nœuds, comme illustré à la figure 2-3.

Figure 2-3. Une structure en couches de nœuds

Le groupe de nœuds carrés de la figure 2-3 s'appelle la couche d'entrée

(input layer). Les nœuds de la couche d'entrée agissent simplement comme le

passage qui transmet les signaux d'entrée aux nœuds suivants. Par conséquent, ils

ne calculent pas la somme pondérée et la fonction d'activation. C'est la raison

pour laquelle ils sont indiqués par des carrés et distingués des autres nœuds

circulaires. En revanche, le groupe des nœuds les plus à droite est appelé la

couche de sortie. La sortie de ces nœuds devient le résultat final du réseau de

neurones. Les couches situées entre les couches d'entrée et de sortie sont appelées

couches cachées. Ce nom leur est attribué, car ils ne sont pas accessibles de

l’extérieur du réseau de neurones.

Les réseaux de neurones artificiels ont été développés à partir d’une

architecture simple, et maintenant on retrouve dans la littérature des structures de

plus en plus complexes. Initialement, les pionniers des réseaux de neurones

Page 6: Chapitre 2 Introduction aux réseaux de neurones

avaient une architecture très simple avec uniquement des couches d'entrée et de

sortie, appelées réseaux de neurones à une couche. Lorsque des couches

masquées sont ajoutées à un réseau de neurones à une couche, un réseau de

neurones à plusieurs couches est créé. Par conséquent, le réseau de neurones

multicouches comprend une couche d'entrée, une ou plusieurs couches cachées

et une couche de sortie. Le réseau de neurones qui possède une seule couche

cachée est appelé réseau de neurones peu profond. Un réseau neuronal

multicouche contenant deux ou plusieurs couches cachées est appelé réseau

neuronal profond. La plupart des réseaux de neurones contemporains utilisés

dans des applications pratiques sont des réseaux de neurones profonds.

La raison pour laquelle nous classifions le réseau de neurones multicouches

selon ces deux types est liée à son historique de développement. Le réseau de

neurones a commencé comme le réseau de neurones à une couche et a évolué pour

devenir le réseau de neurones peu profond, suivi du réseau de neurones profonds.

Le réseau de neurones profonds n'a pas été sérieusement mis en évidence avant le

milieu des années 2000-2010, soit donc après deux décennies écoulées depuis le

développement du réseau de neurones peu profonds. Par conséquent, pendant

longtemps, le réseau neuronal multicouche ne désignait que le réseau neuronal

à couche cachée unique. Lorsque le besoin de distinguer plusieurs couches

cachées est apparu, ils ont attribué un nom distinct au réseau de neurones

profonds. Voir la figure 2-4.

Figure2-4 Type de réseaux de neurones

Page 7: Chapitre 2 Introduction aux réseaux de neurones

Dans le réseau de neurones en couches, le signal entre dans la couche

d'entrée, passe à travers les couches cachées et quitte à travers la couche de sortie.

Au cours de ce processus, le signal avance couche par couche. En d'autres

termes, les nœuds d'une couche reçoivent le signal simultanément et envoient le

signal traité à la couche suivante en même temps.

Suivons un exemple simple pour voir comment les données d’entrée sont

traitées lorsqu’elles traversent les couches. Considérez le réseau de neurones avec

une seule couche masquée illustrée à la figure 2-5.

Figure2-5 Un réseau de neurones avec une seule couche cachée

Juste pour des raisons pratiques, la fonction d'activation de chaque nœud est

supposée ici, dans cet exemple, être une fonction linéaire illustrée à la figure 2-6.

Cette fonction permet aux nœuds d’envoyer la somme pondérée elle-même.

Figure 2-6 Fonction d’activation linéaire

Page 8: Chapitre 2 Introduction aux réseaux de neurones

Nous allons maintenant calculer le résultat de la couche cachée (Figure 2-

7). Comme indiqué précédemment, aucun calcul n'est nécessaire pour les nœuds

d'entrée, car ils ne font que transmettre le signal.

Figure2-7 Calculer la sortie de la couche cachée

Le premier nœud de la couche masquée calcule la sortie comme suit:

𝑣 = (3 × 1) + (1 × 2) + 1 = 6

Comme la fonction d’activation est supposée linéaire, y=v=6

Pour le deuxième nœud de la couche cachée :

𝑣 = (2 × 1) + (4 × 2) + 1 = 11

Comme la fonction d’activation est supposée linéaire, y=v=11

L’écriture matricielle donne :

𝑌 = [3 12 4

] [12

] + [11

] = [6

11]

Les poids du premier nœud de la couche masquée sont dans la première ligne

et les poids du deuxième nœud sont dans la deuxième ligne. Ce résultat peut être

généralisé comme l'équation suivante :

𝑦 = 𝑣 = 𝑊𝑥 + 𝑏

Même procédure peut être appliquée à la couche de sortie. Regardez la

figure2-8.

Page 9: Chapitre 2 Introduction aux réseaux de neurones

Figure2-8 : Déterminer les sorties de la couche de sortie

𝑌 = [3 25 1

] [6

11] + [

11

] = [4142

]

Le processus peut être un peu lourd, mais le calcul en soi n’est pas difficile.

Comme nous venons de le voir, le réseau de neurones n'est rien d'autre qu'un

réseau de nœuds en couches, qui effectue uniquement des calculs simples. Cela

n'implique aucune équation difficile ni une architecture compliquée. Bien que cela

semble simple, le réseau de neurones a battu tous les records de performance

pour les principaux domaines du Machine Learning, tels que la reconnaissance

d'images et la reconnaissance vocale. N'est-ce pas intéressant ? On dirait que la

citation «Toute la vérité est simple» est une description pertinente.

Je dois laisser un dernier commentaire avant de terminer la section. Nous

avons utilisé une équation linéaire pour l'activation des nœuds cachés, simplement

par commodité. Ce n'est pas pratiquement correct. L'utilisation d'une fonction

linéaire pour les nœuds annule l'effet de l'ajout d'une couche. Dans ce cas, le

modèle est mathématiquement identique à un réseau de neurones à une seule

couche, qui ne comporte pas de couches cachées. Voyons ce qui se passe

réellement. En substituant l'équation de la somme pondérée de la couche masquée

à l'équation de la somme pondérée de la couche en sortie, on obtient l'équation

suivante (un petit détail est donné dans la diapo du cours avec une explication en

cours) :

Page 10: Chapitre 2 Introduction aux réseaux de neurones

Cette équation matricielle indique que cet exemple de réseau de neurones est

équivalent à un réseau de neurones à une seule couche, comme illustré à la figure

2-9.

Figure 2-9. Cet exemple de réseau de neurones est équivalent à un réseau de

neurones à une seule couche

Gardez à l'esprit que la couche masquée devient inefficace lorsque les nœuds

masqués ont des fonctions d'activation linéaire. Cependant, les nœuds de sortie

peuvent, et doivent parfois, utiliser des fonctions d'activation linéaires.

IV. Apprentissage supervisé d'un réseau de neurones

Cette section présente les concepts et le processus d’apprentissage supervisé

du réseau de neurones. Parmi les nombreuses méthodes d’apprentissage utilisées,

ce cours ne traite que de l’apprentissage supervisé. Par conséquent, seul

l’apprentissage supervisé est également abordé pour le réseau de neurones. Dans

Page 11: Chapitre 2 Introduction aux réseaux de neurones

l’ensemble, l’apprentissage supervisé du réseau de neurones se déroule comme

suit:

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

2. Prenez «l'entrée» dans les données d'apprentissage, qui est organisée

comme {entrée, sortie correcte}, et entrez-la dans le réseau de

neurones. Obtenez la sortie du réseau de neurones et calculez l'erreur

à partir de la sortie correcte.

3. Ajustez les poids pour réduire l'erreur.

4. Répétez les étapes 2 et 3 pour toutes les données d'entrainement.

Ces étapes sont fondamentalement identiques au processus d’apprentissage

supervisé pour « l’apprentissage automatique». Cela a du sens, car l’apprentissage

supervisé est un processus qui modifie le modèle pour réduire la différence entre

la sortie correcte et la sortie du modèle. La seule différence est que la

modification du modèle devient les changements de poids du réseau de neurones.

La figure 2-10 illustre le concept d'apprentissage supervisé expliqué jusqu'à

présent. Cela vous aidera à comprendre clairement les étapes décrites

précédemment.

Figure 2-10 Le concept d'apprentissage supervisé en réseaux de neurones

V. Entrainement d'un réseau de neurones monocouche :

Comme indiqué précédemment, le réseau de neurones stocke les

informations sous forme de poids. Par conséquent, afin de former le réseau de

neurones avec de nouvelles informations, les poids doivent être modifiés en

conséquence. L’approche systématique pour modifier les poids en fonction de

Page 12: Chapitre 2 Introduction aux réseaux de neurones

l’information donnée est appelée règle d’apprentissage. Étant donné que

l’entrainement est le seul moyen pour le réseau de neurones de stocker

systématiquement les informations, la règle d'apprentissage est un élément

essentiel de la recherche sur les réseaux de neurones.

Dans cette section, nous traitons de la règle delta, la règle d’apprentissage

représentative du réseau de neurones à une couche. Bien qu'il ne soit pas capable

de former un réseau de neurones multicouches, il est très utile pour étudier les

concepts importants de la règle d'apprentissage du réseau de neurones.

Prenons un réseau de neurones à une seule couche, comme illustré à la

figure 2-11. Dans la figure, di est la sortie correcte du nœud de sortie i.

Figure 2-11. Un réseau de neurones monocouche

La règle delta qui permet à ce type de réseaux d’apprendre à partir des

données d’entrainement est :

𝑤𝑖𝑗 = 𝑤𝑖𝑗 + 𝛼 𝑒𝑖𝑥𝑗 Equation 2.1

𝑥𝑗 = la sortie du noeud d'entrée j, (j = 1, 2, 3)

𝑒𝑖 = l'erreur du noeud de sortie i

𝑤𝑖𝑗 = le poids entre le noeud de sortie i et l'entrée noeud j

α = taux d'apprentissage (0 < α < 1)

Page 13: Chapitre 2 Introduction aux réseaux de neurones

Le taux d'apprentissage, α, détermine le taux de la modification du poids à

chaque itération. Si cette valeur est trop élevée, la sortie risque de rater la

solution et ne convergera pas. En revanche, s'elle est trop basse, le calcul

convergera trop lentement. Pour prendre un exemple concret, considérons le

réseau de neurones monocouche, composé de trois nœuds d'entrée et d'un nœud

de sortie, comme illustré à la figure 2-12. Par souci de commodité, nous ne

supposons aucun biais pour le nœud de sortie pour le moment. Nous utilisons

une fonction d'activation linéaire ; c'est-à-dire que la somme pondérée est

directement transférée à la sortie.

Figure 2-12. Un réseau de neurones monocouche avec trois noeuds d'entrée et un noeud de

sortie

Notez que le premier numéro de l'indice (1) indique le numéro du nœud dans

lequel l'entrée est entrée. Par exemple, le poids entre le nœud d'entrée 2 et le nœud

de sortie 1 est noté w12. Cette notation permet des opérations plus simples avec

des matrices ; les poids associés au nœud i sont attribués au rang i-ème de la

matrice de poids. L'application de la règle delta de l'équation 2.1 à l'exemple de

réseau neuronal donne le renouvellement des pondérations sous la forme:

𝑤11 = 𝑤11 + 𝛼 𝑒1𝑥1

𝑤12 = 𝑤12 + 𝛼 𝑒1𝑥2

𝑤13 = 𝑤13 + 𝛼 𝑒1𝑥3

Résumons l’algorithme d’apprentissage en utilisant la règle delta pour le

réseau de neurones à une couche.

Page 14: Chapitre 2 Introduction aux réseaux de neurones

1. Initialisez les poids aux valeurs adéquates.

2. Prenez «l'entrée» dans les données d'apprentissage de {entrée, sortie

correcte} et entrez-la dans le réseau de neurones. Calculez l'erreur de la sortie,

yi, de la sortie correcte, di, à l'entrée.

𝑒𝑖 = 𝑑𝑖 − 𝑦𝑖

3. Calculez les mises à jour de poids en fonction de la règle de delta

suivante :

∆𝑤𝑖𝑗 = 𝛼 𝑒𝑖𝑥𝑗

4. Ajustez les poids comme suit :

𝑤𝑖𝑗 = 𝑤𝑖𝑗 + ∆𝑤𝑖𝑗

5. Effectuez les étapes 2 à 4 pour toutes les données d'entrainement.

6. Répétez les étapes 2 à 5 jusqu'à ce que l'erreur atteigne un niveau de

tolérance acceptable.

Figure 2-13. Le processus de formation

Page 15: Chapitre 2 Introduction aux réseaux de neurones

Ces étapes sont presque identiques à celles du processus d’apprentissage

supervisé de la section «Apprentissage supervisé d’un réseau de neurones». La

seule différence est l'ajout de l'étape 6. L'étape 6 indique simplement que

l'ensemble du processus de formation est répété. Une fois l’étape 5 terminée, le

modèle a été formé à chaque point de données. Alors, pourquoi le formons-nous

en utilisant toutes les mêmes données de formation ? C'est parce que la règle delta

recherche la solution à mesure qu'elle répète le processus, plutôt que de la

résoudre en une seule fois. L'ensemble du processus est répété, car la nouvelle

formation du modèle avec les mêmes données peut améliorer le modèle. À titre

de référence, le nombre d'itérations de formation, dans chacune desquelles toutes

les données de formation passent par les étapes 2 à 5 une fois, est appelé une

époque. Par exemple, epoch = 10 signifie que le réseau de neurones effectue 10

processus de formation répétés avec le même jeu de données.

V.2. Généralisation de la loi de Widrow-Hoff (règle dalta)

Cette section aborde certains aspects théoriques de la règle du delta. Nous

allons passer en revue les sujets les plus essentiels sans trop préciser sur les détails.

La règle delta de la section précédente est plutôt obsolète. Des études ultérieures

ont révélé qu'il existait une forme plus généralisée de la règle du delta. Pour une

fonction d'activation arbitraire, la règle delta est exprimée sous la forme de

l'équation suivante.

𝑤𝑖𝑗 = 𝑤𝑖𝑗 + 𝛼𝛿𝑖𝑥𝑗 Equation 2.2

C'est la même chose que la règle delta de la section précédente, sauf que

𝑒𝑖 est remplacé par 𝛿𝑖. Dans cette équation, 𝛿𝑖 est défini comme suit:

𝛿𝑖 = 𝜑′(𝑣𝑖)𝑒𝑖 Equation 2.3

Avec :

𝑒𝑖 = l'erreur du noeud de sortie i

𝑣𝑖 = la somme pondérée du noeud de sortie i

𝜑 ′ = La dérivée de la fonction d'activation du nœud de sortie i

V.3. Stochastic Gradient Descent, méthode du gradient stochastique

La descente de gradient stochastique (SGD) calcule l’erreur pour chaque

donnée d’entrainement et ajuste les poids immédiatement (en utilisant les

équations 2.2 et 2.3). Si nous avons 100 points de données d’entrainement, le SGD

ajuste les poids 100 fois.

Page 16: Chapitre 2 Introduction aux réseaux de neurones

V.3 La méthode BATCH, par lot

Dans la méthode par lots, chaque mise à jour de poids est calculée pour toutes

les erreurs des données d'apprentissage et la moyenne des mises à jour de poids

est utilisée pour ajuster les poids. Cette méthode utilise toutes les données

d'apprentissage et ne se met à jour qu'une seule fois.

V.4. La méthode Mini Batch, Mini Lot

La méthode des mini lots est un mélange des méthodes SGD et batch. Elle

sélectionne une partie des données d'apprentissage et l'utilise pour l'apprentissage

de la méthode par lots. Par conséquent, il calcule les mises à jour de poids des

données sélectionnées et entraine le réseau de neurones avec la mise à jour de

poids moyen. Par exemple, si 20 points de données arbitraires sont sélectionnés

sur 100 points de données d'apprentissage, la méthode par lots est appliquée aux

20 points de données. Dans ce cas, cinq ajustements de poids au total sont

effectués pour terminer le processus d’entrainement pour tous les points de

données (5 = 100/20).