• Aucun résultat trouvé

Un exemple de modèle régressant : Les réseaux de neurones arti- arti-ficiels

d’apprentissage statistique pour la construction de modèles de

Algorithme 3.3 Sélection de modèle par bootstrap Input : DOE =n

3.2 Construction de modèles de substitution de codes sta- sta-tionnaires

3.2.2 Un exemple de modèle régressant : Les réseaux de neurones arti- arti-ficiels

Les réseaux de neurones proposent une formulation analytique non-linéaire afin d’ex-primer une fonction à Ny > 1 sorties ˆf = fˆ1,· · · , ˆfN

y



. Leur conception est forte-ment inspirée du fonctionneforte-ment des neurones biologiques. En effet, un neurone artifi-ciel peut être vu comme une fonction de transfert permettant de transformer ses entrées e= (e1,· · · , eNe) ∈ RNe en une sortie z ∈ R selon des règles précises, dépendant de l’utili-sation du neurone. Leur domaine d’application étant très vaste, cette partie ne se focalise que sur l’utilisation des réseaux de neurones à des fins d’approximation de fonctions. Dans ce cadre, un neurone s’écrit :

z(e) = φ w0+XNe

i=1

wiei !

(3.11)

w= (w0,· · · , wNe) sont les poids permettant de faire une combinaison linéaire des entrées.

Figure 3.8 – Schéma d’un neurone artificiel

— Fonction de Heaviside :

φ(x) =

(

0 si x < 0 1 si x > 0

Étant donné sa forme non continue, elle n’est pas particulièrement adaptée à la régression et est plus classiquement utilisée en classification.

— Sigmoïde :

φ(x) = 1 1 + exp (−kx)

avec k > 0 un paramètre de forme permettant de modifier la pente en x = 0 de cette fonction, et donc de s’éloigner ou de se rapprocher de la fonction de Heaviside précédente. C’est cette fonction qui est la plus utilisée en régression.

— Linéaire, c’est-à-dire φ(x) = x. Cette fonction d’activation permet de se ramener à un modèle linéaire, les réseaux de neurones étant une généralisation de la régression linéaire. −3 −2 −1 0 1 2 3 x 0.0 0.2 0.4 0.6 0.8 1.0 φ( x) sigmoide Heaviside

Figure 3.9 – Illustration des formes courantes pour la fonction d’activation φ. La sigmoïde est illustrée dans le cas où k = 1.

L’organisation du réseau en couches (cf figure 3.10) assure que toute fonction peut être prédite avec la précision souhaitée [Cybenko, 1989] [Barron, 1993]. C’est ce que l’on appelle un perceptron multicouches [Dreyfus et al., 2002]. La forme à une couche d’entrée, une couche cachée et une couche de sortie, la plus classiquement utilisée pour le moindre nombre de paramètres à gérer, suffit d’ailleurs pour garder la propriété d’approximateur universel [Hornik, 1991]. Sa formule analytique est la suivante :

ˆ fj(x; w) = XC n=1 w00n,jzn(x) + w00 0,j zn(x) = φ XNx i=1 w0i,nxi+ w0 0,n ! (3.12)

Dans le cas d’un réseau de neurones, w = {w0, w00} ∈ RNw0 × RNw00 et la complexité

C à estimer lors de l’apprentissage correspond au nombre de neurones. La formule C (cf équation (3.1)) permettant de calculer le nombre de poids à partir de cette complexité est la suivante : Nw = C (C, Nx, Ny) = C (Nx+ 1) | {z } Nw0 + (C + 1) Ny | {z } Nw00 (3.13)

Figure 3.10 – Schéma d’un perceptron multicouches avec une couche d’entrée, une couche cachée et une couche de sortie - les biais w0,• ne sont pas représentés

En revanche, les perceptrons multicouches rendent difficile toute signification physique. En d’autres termes, ce n’est qu’une base qui permet d’approcher n’importe quelle fonction mais en perdant toute information sur le lien entre les entrées et les sorties.

3.2.2.1 Apprentissage d’un perceptron multicouches

Comme détaillé précédemment, l’apprentissage d’un perceptron multicouches se fait en minimisant l’erreur quadratique moyenne commise par le modèle ˆf sur les points du DOE (cf équation (3.3)), avec éventuellement un terme de régularisation (cf section 3.1.2.2). En revanche, la résolution de ce problème d’optimisation n’est pas facile : la fonction coût Efˆ(•; w) , DOE

est caractérisée par la présence de multiples minima locaux [Bishop, 2006] et plus la dimension Nw de ce problème d’optimisation est grande et plus le nombre de minima locaux peut être important. Le calcul des poids d’un réseau de neurones peut donc être coûteux en temps de calcul.

Les algorithmes d’optimisation les plus utilisés afin de trouver les poids optimaux sont basés sur des algorithmes par descente de gradient du premier voire du se-cond ordre utilisant une approximation de la Hessienne tels que les algorithmes BFGS [Battiti et Masulli, 1990] ou Levenberg-Marquardt [Moré, 1978] [Hagan et Menhaj, 1994]. Levenberg-Marquardt est un algorithme particulièrement intéressant puisqu’il inclut dans sa résolution un terme de régularisation µit tendant vers 0 avec les itérations, le rendant particulièrement stable. Pour illustrer cela, voici le terme de descente à chaque itération de l’algorithme de Levenberg-Marquardt : wit+1= wit+ αdit dit = ∇wE( ˆf•; wit, DOE)  ∇wE( ˆf•; wit, DOE)T + µitINw −1 ∇wE( ˆf•; wit, DOE) (3.14)

En revanche, l’un des inconvénients de l’utilisation des réseaux de neurones est la présence de multiples minima locaux à la fonction E( ˆf(•; w) , DOE) et sa forte non-linéarité, rendant la recherche du minimum global difficile. Sachant que les algorithmes basés sur le gradient sont des algorithmes locaux, c’est-à-dire trouvant le minimum local le plus proche du point de départ de l’optimisation, il est indispensable de réaliser cette

optimisation de nombreuses fois en partant de points d’initialisation différents. C’est ce que l’on appelle le multistart. Une manière très répandue d’initialiser les poids est proposée par l’étude de Nguyen et Widrow [Nguyen et Widrow, 1990].

Par ailleurs, du fait de la présence de nombreux minima locaux, d’autres études uti-lisent des algorithmes globaux stochastiques du type recuit simulé [Da et Xiurun, 2005], colonies de fourmis [Salama et Abdelbar, 2015], essaims particulaires [Wu et Chen, 2009], plus généralement évolutionnaires [Igel et al., 2005] ou encore d’autres techniques sans gra-dient tels que Nelder-Mead [Liao et al., 2015]. Toutefois, ces méthodes présentent quelques inconvénients : d’abord le nombre d’appels et de paramètres importants à gérer de ces méthodes rendent leur mise en place compliquée. De plus, il n’est pas important en ap-prentissage statistique de trouver le minimum global de l’erreur d’apap-prentissage : ceci peut mener au sur-apprentissage et donc à une erreur de prédiction importante.

3.2.2.2 Estimation du gradient par rétropropagation

La plupart des algorithmes d’apprentissage présentés précédemment nécessitent la connaissance du gradient de la fonction coût par rapport aux poids ∇wE( ˆf •; wit

, DOE). Sachant que les réseaux de neurones fournissent une formulation analytique basée sur des sigmoïdes, qui sont infiniment différentiables, le gradient de la fonction coût par rapport aux poids est calculable analytiquement et de manière itérative par l’algorithme de rétro-propagation du gradient [Rumelhart et al., 1986]. Son principe repose essentiellement sur l’application répétée de la règle des dérivées composées. Il permet de calculer le gradient de la fonction coût suivante :

E( ˆf(•; w) , DOE) =NXDOE k=1 fˆ(xk; w) − yk 2 2=NXDOE k=1 Ek

Cette erreur est décomposée en somme d’erreurs commises en chacun des échantillons (xk, yk) du DOE. Pour chacune de ces composantes, le gradient est calculé de la manière suivante : Ek ∂wij = Ek ∂vi ! k ∂vi ∂wij ! k = δk iekj (3.15)

en omettant les0 et00 sur les poids wij et en considérant un neurone dont les entrées sont nommées ei et avec vi =PNe

j=1wijej la somme des entrées pondérées du neurone i. Cette formule est composée de :



∂Ek

∂zi



k la valeur du gradient du coût partiel par rapport aux entrées pondérées lorsque les entrées du réseau sont celles qui correspondent à l’échantillon k. — 

∂vi

∂wij



kla valeur de la dérivée partielle de cette combinaison des entrées par rapport au paramètre wij lorsque les entrées du réseau sont celles qui correspondent à l’échantillon k, ce qui explique que cela est égal à la valeur de l’entrée j du neurone

i, ek

j, lorsque les entrées du réseau sont celles qui correspondent à l’échantillon k. Il ne reste donc à évaluer que les quantités δk

i traduisant le gradient du coût partiel par rapport aux entrées pondérées. Le nom de rétropropagation vient du calcul de ces composants. En effet, ils peuvent être avantageusement calculés de manière récursive en partant des sorties du réseau vers ses entrées :

— Pour un neurone de sortie i : δk i = Ek ∂zi ! k = −2 ˆf(ek; w)

car la fonction d’activation des neurones de sortie est la fonction linéaire donc

φ0

s(e) = 1.

— Pour un neurone de la couche cachée i : la fonction de coût ne dépend des poids d’entrée de ce neurone caché que par l’intermédiaire des entrées des neurones de sortie m qui reçoivent la valeur de la sortie du neurone caché i. On a donc :

δki =X m Ek ∂vm ! k ∂vm ∂vi  k =X m δkm ∂vm ∂vi  k Or vm =P iw00miek i =P iwmi00 φ(vk

i) ce qui nous donne pour ∂vm

∂vi



k= w00

miφ0(vk i) On obtient donc finalement pour δk

i : δk i =X m δk mwmi00 φ0(vk i) = φ0(vk i)X m δk mw00mi

Il apparaît donc ici la récursivité du calcul de ces δ puisqu’en parcourant le graphe des connexions depuis les sorties vers les entrées, le gradient des coûts partiels se développe efficacement. Ceci permet, en les sommant, d’obtenir le gradient de la fonction coût total.

Résumé de l’algorithme de rétropropagation : cet algorithme se décompose en deux phases pour chaque échantillon k ∈J1, NDOEK :

1. La première phase de « propagation » où les entrées correspondant à l’échantillon

k, xk, sont utilisées afin de calculer les sorties ˆyk prédites par le réseau de neurones et donc les erreurs commises.

2. La deuxième phase de « rétropropagation » au cours de laquelle sont calculées les

δk i.

Une fois ces quantités évaluées, le gradient des fonctions de coût partiel peut être estimé par l’équation (3.15), puis le gradient du coût total ∂E( ˆf (•; w),DOE)

∂wij =PNDOE

k=1 ∂Ek

∂wij 3.2.2.3 Sélection de modèle appliquée aux perceptron multicouches

Les réseaux de neurones étant des modèles régressants dont la construction se fait par minimisation de l’erreur moindres carrées de l’équation (3.3), les techniques de sélection de modèle détaillées en section 3.1.2 sont tout à fait applicables aux réseaux de neurones. Il existe cependant quelques modifications ou adaptations qui peuvent être faites. Notam-ment sur la ridge regression, une technique très répandue est de pénaliser différemNotam-ment les poids de la couche d’entrée w0 et ceux de la couche de sortie w00puisque leur rôle n’est pas le même. Comme il a été dit en section 3.1.2.2, ce genre de pénalisation favorise les solutions où la valeur des poids w n’est pas trop grande. Dans le cas des poids de la couche d’entrée des réseaux de neurones, ceci a pour effet de garder les combinaisons linéaires en entrée des fonctions d’activation sigmoïde au voisinage de leurs zones linéaires. Ce genre de régularisation permet donc d’obtenir des courbes prédites qui gagnent en régularité.

Par ailleurs, il existe une méthode permettant d’éviter le sur-apprentissage dans le cas des réseaux de neurones qui n’a pas été introduite précédemment car particulière à cette famille analytique. Il s’agit de l’early stopping ou arrêt prématuré. L’idée est d’arrêter l’algorithme d’optimisation des poids prématurément, c’est-à-dire avant convergence, afin que le modèle ne s’ajuste pas trop finement aux données d’apprentissage et ainsi éviter le sur-apprentissage. Cependant, il est important de ne pas arrêter trop précocement la minimisation de l’erreur sur le DOE puisque ceci peut introduire un biais d’estimation important. Une manière d’obtenir un critère d’arrêt satisfaisant est d’utiliser l’erreur sur une base de validation et d’arrêter les itérations lorsque cette dernière commence à croître. Ceci peut par ailleurs être aisément mis en place dans le cas de l’utilisation de méthodes de type hold-out ou validation croisée (cf section 3.1.2).