• Aucun résultat trouvé

3.5 Réseaux de neurones

3.5.1 Neurone artificiel

Un neurone artificiel est un modèle simplifié de neurone biologique. Schématiquement (Figure3.6a), un neurone biologique est une cellule contenant un noyau cellulaire et dotée de deux prolongements, l’axone et les dendrites. Le premier est un prolongement unique véhiculant l’influx nerveux et permettant de se connecter aux dent-rites d’un autre neurone. Les secondes ont une structure

46 Chapitre 3. Analyses multivariées ramifiée et chacune d’entre elles véhicule l’influx nerveux mais cette fois jusqu’au corps cellulaire. Si l’excitation nerveuse portée par les dendrites dépasse un certain seuil, alors une décision est prise et un influx nerveux est propagé le long de l’axone.

À partir de cette modélisation très simpliste, on peut dégager trois propriétés fondamentales d’un neurone. Tout d’abord, le poids synaptique1associé à chaque dendrite. Des dendrites différentes

auront un poids plus ou moins important afin d’influencer la décision relative à l’envoi d’un signal par le neurone. La seconde est la combinaison du signal et du poids de chaque dendrite. La troisième est la décision : un signal est envoyé ou non. La construction d’un neurone artificiel afin de créer une classification binaire permettant de séparer des données linéairement séparables est basée sur ces trois propriétés. L’objectif est de trouver les poids qui vont permettre de minimiser les mauvaises classifications lors d’une procédure itérative d’apprentissage décrite par la suite.

Considérons N évènements ayant un ensemble de n variables discriminantes xi

n et un label

yi = {0, 1}, où i ∈ [1, N]. Afin de construire une classification de ces évènements, on utilisera un neurone ayant n entrées et une valeur de sortie que l’on notera ζ (Figure3.6b). À chaque entrée sera associée une variable discriminante et un poids synaptique wn. On définit l’activation du neurone a

pour l’évènement i comme la combinaison linéaire : ai=Pn

k=1wkxik. À cette quantité est associée

l’activité du neurone, notée f(a), qui peut prendre différentes formes comme par exemple, une fonction logistique f(a) = 1/(1 + e−a), une fonction tangente hyperbolique, ou une fonction porte.

Celles-ci ont la particularité d’être comprises entre 0 et 1 afin de pouvoir correspondre aux labels des évènements. La plupart du temps, on utilisera une entrée supplémentaire, que l’on appellera biais, à laquelle on attribuera une valeur x0 = 1et un poids w0, et qui permet simplement d’effectuer une

translation de la fonction d’activation du neurone.

On introduit une fonction mesurant le taux de mauvaises classifications commises par le neurone : E = 1/2Pn

i(ζi − yi)2 où ζi est la sortie du neurone pour l’évènement i, qui dépend des poids

(w0· · · wn) par l’intermédiaire de l’activité f du neurone. L’objectif est de trouver le minimum

de la fonction E à l’aide d’une phase d’apprentissage. Dans le cas d’une utilisation séquentiel des évènements, lorsque l’un d’eux passe dans le neurone, les poids sont modifiés de manière à se rapprocher du minimum de la fonction d’erreur de mauvaises classifications. Le processus est itératif, les poids modifiés sont réinjectés en entrée du neurone et le processus se répète jusqu’à ce qu’un critère de convergence soit validé. En utilisant par exemple un algorithme de type rétropropagation du gradient (voir plus bas à la section3.5.2.2), le passage d’un évènement induit une variation des poids telle que :

∆w = −η∇wE (3.4)

où w représente l’ensemble des poids w0et wn, et où η permet de régler la vitesse de l’apprentissage.

3.5.1.2 Exemple

Afin d’illustrer le fonctionnement d’un neurone dans une classification binaire avec deux variables discriminantes x1 et x2, intéressons-nous à un exemple tiré de [MacKay, 2003]. L’espace vectoriel

des poids (w1, w2) est représenté sur la Figure3.7 où on peut y trouver la fonction d’activation du

neurone, pour quelques couples (w1, w2) en fonction de x1 et x2, représentée ici par une fonction

logistique :

f (x, w) = 1

1 + exp(−w1x1− w2x2) (3.5)

On remarquera que plus l’intensité du vecteur w = (w1, w2) est importante et plus la pente de

l’activité du neurone est abrupte. L’objectif est d’obtenir le couple (w1, w2)permettant d’obtenir le

taux de mauvaises classifications le plus bas.

On peut trouver sur la Figure3.8différentes étapes de la phase d’apprentissage d’un tel neurone. Le neurone est doté de deux poids w1et w2 et d’un biais w0, afin de séparer linéairement des évène-

ments « signal » (carrés) des évènements de « fond » (croix) qui sont représentés sur la sous-figure

3.5. Réseaux de neurones 47

Figure 3.7: Espace des phases des poids (w1, w2)pour lequel est représenté la sortie d’une neurone

48 Chapitre 3. Analyses multivariées

Figure 3.8: Illustration de la phase d’apprentissage d’un neurone (Crédits : MacKay [2003]). (a) Données utilisées lors de la phase d’apprentissage. (b) Évolution des poids w0, w1 et w2 selon le

nombre d’itérations. (c) Évolution des poids w0 et w1 et w2 dans leur espace. (d) Évolution de

la fonction d’erreurs de mauvaises classifications selon le nombre d’itérations. (e) Évolution de la norme du vecteur poids en fonction du nombre d’itérations. (f-k) La fonction permettant de séparer les données en fonction de 30, 80, 500, 3000, 10 000 et 40 000 itérations (trait plein). Y sont aussi représentés un vecteur proportionnel à (w1, w2) et des contours correspondant à une variation de la

3.5. Réseaux de neurones 49

(a) (b)

Figure 3.9: (a) Représentation d’un réseau de neuronesMLP constitué d’une couche de neurones d’entrée, d’une couche de neurones cachée et d’un neurone de sortie. (b) Un neurone appartenant à la couche l, avec n entrées, portant toutes un poids wl−1

ij , et une sortie (Crédits : [Hoecker et al., 2007])

(a). Dans cette exemple, l’évolution des poids en fonction du nombre d’itérations est représentée sur la sous-figure (b). On peut trouver l’évolution des poids w1 et w2 dans leur espace sur la sous-figure

(c). Le taux de mauvaises classifications est représenté en fonction du nombre d’itérations sur la sous-figure (d), et on peut trouver l’évolution de la norme du vecteur (w1, w2) sur la sous-figure (e).

Sur les sous-figures (f-k), on peut trouver la séparation linéaire entre les deux classes d’évènements pour les nombres d’itérations suivants : 30, 80, 500, 3000, 10 000 et 40 000, auxquels correspondent les poids représentés sur la sous-figure (b). On constate que les données sont de mieux en mieux séparées en fonction du nombre d’itérations.

Néanmoins, on constate que les poids divergent à partir de quelques milliers d’itérations ce qui correspond à un cas de surentraînement : le neurone « colle » aux données. Différentes méthodes existent afin de lutter contre le surentraînement, comme la régularisation, qui consiste à introduire un terme supplémentaire dans la fonction d’erreur E → E + R, qui est généralement une fonction de la norme du vecteur w, afin d’empêcher la divergence des poids. Dans cette thèse, nous utiliserons une méthode qui permet de contrôler la convergence avec les échantillons d’entraînement et de test (section3.5.2.3).

3.5.2 Du simple neurone au réseau MLP