• Aucun résultat trouvé

La régression non linéaire par réseau de neurones

2.3 Outils statistiques utilisés

2.3.3 La régression non linéaire par réseau de neurones

Dans les années quarante, une vague de chercheurs s’était intéressée à modéliser

sim-plement le cerveau humain à partir de ses éléments essentiels, les neurones et les

sy-napses. Les modèles de neurones formels et de structure de réseaux qui étaient nés de

ces recherches étaient d’une simplicité extrême mais leur but n’était pas d’essayer de

représenter fidèlement le modèle biologique. Il consistait plutôt à prendre en compte les

caractéristiques principales les plus simplifiées du modèle biologique et à observer les

propriétés qui résultaient de leur association. De même que dans le cas du cerveau, ces

réseaux utilisaient le principe de la mémoire distribuée stockant les informations dans

Classement mécanique 68

l’ensemble des neurones formels et synapses.

La notion de neurone formel a été introduite par McCulloch et Pitts en 1943 [57]. La

définition de ce terme est la suivante "Un neurone formel fait une somme pondérée des

potentiels d’actions qui lui parviennent (chacun de ces potentiels est une valeur

numé-rique qui représente l’état du neurone qui l’a émis), puis s’active suivant la valeur de

cette sommation pondérée. Si cette somme dépasse un certain seuil, le neurone est activé

et transmet une réponse (sous forme d’un potentiel d’action) dont la valeur est celle de

son activation. Si le neurone n’est pas activé il ne transmet rien". Par cette définition, le

neurone biologique est transformé en une fonction (dite de transfert), les synapses reliant

les neurones sont représentés par des poids (réels pondérant les entrées de la fonction)

et les signaux électriques (ou potentiels d’action) deviennent des nombres.

La représentation d’un neurone forme est donnée sur la Fig.(Fig.2.15).

Figure 2.15: Représentation d’un neurone formel

Le neurone formel reçoit les variables d’entrées associées à un poids, w. Il calcule alors

une fonction, f, des sommes pondérées des variables d’entrées et réalise trois opérations

distinctes :

• La fonction poids : le vecteur d’entrée x composé de k éléments est multiplié par

la matrice des poids, W pour former le produit matriciel Wx.

• Le potentiel n : Un terme constant ou "biais", b, est ajouté au produit des

en-trées pondérées, Wx. Le biais est souvent considéré comme un poids sauf que la

variable auquel il est associé est une constante égale à 1. Ce potentiel,n, est le plus

fréquemment utilisé dans l’approximation de fonction.

• La fonction de transfert f : elle définit l’activation a du neurone en fonction du

potentiel,n.

Les principales fonctions de transferts utilisées par les neurones formels sont : Heaviside,

log-sigmoïde, tan-sigmoïde et linéaire, Fig.2.16.

Figure 2.16:Exemples de fonctions de transfert utilisées par les neurones formels [58]

La fonction d’activation sigmoïde reçoit les entrées qui varient de plus l’infini à moins

l’infini et avec une sortie qui varie entre 0 et 1. Le principe de la fonction d’activation

tangente hyperbolique est le même que celui de la fonction sigmoïde sauf que la sortie

tombe dans l’intervalle [-1 ; 1].

Un réseau de neurones artificiel (par opposition au neurone biologique) est donc

l’asso-ciation, en une architecture plus ou moins complexe, d’objets élémentaires : lesneurones

formels.

Depuis leur création, la connexion (comparable à des synapses) de ces neurones formels

pour former un réseau de neurones artificiel permet de résoudre différents problèmes

dans des secteurs variés [59] :

• traitement d’images : reconnaissance de caractères et de signatures, compression

d’images, reconnaissance de forme, cryptage ...

• traitement du signal : filtrage, classification, identification de source, traitement de

la parole ...

• contrôle : commande de processus, diagnostic, contrôle qualité, asservissement de

robots ...

• optimisation : planification, allocation de ressource, gestion et finances ...

• simulation : simulation de boîte noire, prévision météorologique, recopie de modèle

...

Les réseaux de neurones sont utilisés ici comme une méthode alternative à la fonction

polynomiale décrite précédemment. En effet, la propriété fondamentale des réseaux de

neurones estson approximation parcimonieuse. Cette expression traduit deux propriétés

distinctes : d’une part, les réseaux de neurones sont définis comme des approximateurs

universels, et, d’autre part, une approximation, à l’aide de réseau de neurones, nécessite,

en général, moins de paramètres ajustables que les approximateurs usuels (régression

polynomiale, par exemple). Le principe de l’approximation est décrit par la suite. La

Classement mécanique 70

parcimonie des réseaux permet de rechercher un modèle prédictif satisfaisant avec un

minimum de coefficients ajustables. En effet, le nombre de paramètres ajustables varie

essentiellement de manière linéaire en fonction du nombre de variables de la fonction que

l’on cherche à approcher (dans le cas des réseaux de neurones) alors qu’il varie beaucoup

plus rapidement (exponentiellement) avec les dimensions de l’espace des entrées dans le

cas des approximateurs usuels [60].

Il existe différentes architectures de réseaux de neurones, dont le réseau multicouche,

où un ou plusieurs neurones peuvent être combinés dans une couche et une ou plusieurs

couches peuvent composer un réseau. La couche qui produit la sortie du réseau est

ap-pelée « couche de sortie » et les autres sont apap-pelées « couches cachées » (Fig.2.17).

Dans cette étude, le réseau de neurones utilisé est le perceptron multicouches. Le

per-ceptron multicouches est un réseau orienté de neurones artificiels organisé en couches et

où l’information voyage dans un seul sens, de la couche d’entrée vers la couche de sortie.

Ainsi un neurone d’une couche cachée est connecté en entrée à chacun des neurones de

la couche précédente et en sortie à chaque neurone de la couche suivante [61].

Le réseau de neurones type utilisé pour l’approximation de fonction est souvent composé

d’une ou plusieurs couches cachées suivie d’une couche de sortie à un neurone (si on ne

veut prédire qu’une seule sortie). La fonction de transfert appliquée aux neurones des

couches cachées est la tangente hyperbolique celle employée dans la couche de sortie est

la fonction linéaire.

Figure 2.17:Architecture d’un réseau de neurones perceptron multicouches (2 couches

cachées représentées ici)

Avant de pouvoir définir l’architecture optimale du réseau de neurones utilisé ici, les

échantillons doivent être sélectionnés et préparés. Concernant le traitement des données

d’entrée, il est souvent préférable de les normaliser (variables centrées réduites). En effet,

si des variables d’entrée ont des plages de variation très différentes, celles qui auront de

faibles valeurs ne seront pas perçues comme influentes sur la réponse recherchée (comme

par exemple, le MOE qui affiche une plus grande variabilité et de plus fortes valeurs

que la circularité). Il est alors préférable de normaliser les données afin qu’elles soient

toutes comprises dans la même plage de données [62]. Le second intérêt de normaliser

les données, est que si les données d’entrée ont de fortes valeurs, les poids qui leur seront

associés seront très faibles. Ces faibles valeurs de poids peuvent vite saturer le réseau de

neurones et donc empêcher la résolution de l’équation prédictive. Un pré-traitement des

données permet alors de palier à ce problème [63].

Les variables d’entrée auront donc toutes une moyenne égale à 0 et un écart-type de 1.

Pour ce qui est de la variable de sortie, il n’est pas indispensable de la normaliser pour

des réseaux de neurones statiques (utilisés ici car la notion de temps n’est pas intégrée

par opposition aux réseaux de neurones dynamiques). Cependant par simplicité de

com-préhension de l’équation prédictive finale obtenue par réseau de neurones, cette variable

sera également normalisée.

Une fois le pré-traitement réalisé sur les échantillons, tout comme la régression

polyno-miale, la base de données a été divisée en deux sous-échantillons. Le premier représente

souvent les 2/3 de la base de données et est utilisé en apprentissage de la fonction

prédic-tive. Le second servira quant à lui pour la validation du modèle en vérifiant sa robustesse

et sa capacité à généraliser.

La prochaine étape consiste à définir l’architecture du réseau de neurones. Une structure

trop complexe avec de nombreuses couches de neurones cachées peut rapidement saturer

le réseau et rendre impossible la validation et la généralisation du modèle. Plus la

struc-ture du réseau de neurones sera simple, meilleure sera la robustesse du modèle prédictif

obtenu. Ainsi il sera fixé un réseau de neurones possédant une seule couche cachée, où

seul le nombre de neurones à l’intérieur de cette couche sera étudié. En effet, les réseaux

de neurones sont caractérisés par leur propriété d’approximation universelle :"toute

fonc-tion bornée suffisamment régulière peut être approchée avec une précision arbitraire, dans

un domaine fini de l’espace de ses variables, par un réseau de neurones comportant une

couche de neurones cachée en nombre fini, possédant tous la même fonction d’activation,

et un neurone de sortie linéaire" [64]. Pour ce qui concerne la définition du nombre de

neurones dans la couche cachée, il n’existe aucune formulation exacte pour le définir,

mais certains auteurs ont néanmoins proposé des règles empiriques de ce nombre (pour

une même configuration de réseau avec une seule couche cachée). Les règles sont les

suivantes :

• Il doit être compris entre le nombre de variables d’entrée et de sortie [65],

• Il ne doit pas être supérieur à deux fois le nombre de variables d’entrée [66],[67],

• Il est défini par l’équation suivante, eq.2.10, [68] :

h= N

Classement mécanique 72

où h est le nombre de neurones cachés, N le nombre d’exemples en apprentissage,

n le nombre de variables d’entrée du réseau, p le nombre de neurones de sortie et

k un facteur bruit tel que 4<k<10 (qui tient compte d’un éventuel bruit dans la

base de données et qui augmente avec ce bruit).

Les règles proposées ne permettent pas de définir avec précision le nombre de neurones

cachés. Cette quantité est surtout fonction de la performance du réseau en validation.

Si le nombre de neurones cachés est optimal, les coefficients de détermination obtenus

entre les valeurs du modèle et celles expérimentales en apprentissage et en validation

seront équivalents. Pour un nombre de neurones cachés trop important, la corrélation

obtenue en apprentissage sera certes très intéressante mais celle obtenue en validation

sera très médiocre avec un faible coefficient de détermination. On parle alors de

sur-apprentissage. Le modèle neuronal a trop appris les données qui lui étaient affectées en

apprentissage mais il est dans l’incapacité de généraliser. Le nombre de neurones cachés

est donc fonction des données d’entrée et de sortie, de leurs variabilités ainsi que du

nombre d’échantillons placés en apprentissage et validation. Il sera défini par la suite en

fonction de la base de données expérimentale. Nous retiendrons donc que le réseau de

neurones choisi par la suite est composé d’une couche cachée contenant N neurones. La

fonction de transfert (ou d’activation) utilisée pour cette couche est la fonction tangente

hyperbolique. Concernant la couche de sortie, elle ne contiendra qu’un seul neurone car

nous recherchons la solution d’une seule variable, la force ultime. La fonction de transfert

alors utilisée pour la couche de sortie est linéaire. La figure suivante,Fig.2.18 résume la

structure du réseau de neurones retenu.

Figure 2.18: Structure du réseau de neurones retenu

L’équation prédictive alors obtenue pour ce type de structure neuronale est de la forme,

eq.2.11

g(x, w) =

S1

X

j=1

"

wS2,j.th

k

X

l=1

wjl.x

l

+b1(j)

!#

+b2(1) (2.11)

Ainsi, une fois l’architecture du réseau définie à savoir les variables d’entrée, le nombre

de couches cachées, le nombre de neurones, l’apprentissage du modèle peut débuter.

Cependant, il est nécessaire de fixer les paramètres du réseau. Une initialisation des

poids et biais est donc réalisée. A présent le réseau de neurones de type perceptron

multicouches peut être appris. Le processus d’apprentissage consiste à affiner les valeurs

des poids et des biais afin d’optimiser la performance du réseau. Afin de définir ces

valeurs, l’objectif de la partie apprentissage est de minimiser la fonction coût au sens des

moindres carrés, donnée par eq.2.12:

J(w) =

N

X

i=1

(yi−g(xi, w))2 (2.12)

oùg(xi, w) correspond à la i-ème valeur estimée par réseau de neurones (soitybi) etyi la

valeur réelle.

Ainsi, plus faible est la quantitéJ(w), meilleure est l’approximation de fonction. Puisque

l’on cherche le vecteur des paramètres (poids et biais) qui rend cette fonction, eq.2.12,

minimale, il suffit d’écrire que le gradient de la fonction de coût est nul. L’évaluation du

gradient de la fonction de coût peut être effectuée de manière économique à l’aide d’un

algorithme appeléalgorithme de rétropropagation [69],[70],[62].

Concernant l’optimisation des poids et des biais pour obtenir la fonction de coût

mi-nimale, il existe différents algorithmes d’apprentissage (ou d’optimisation). Dans le cas

de l’utilisation des réseaux de neurones dans l’approximation de fonction, l’algorithme

le plus utilisé est celui de Levenberg-Marquardt. La procédure de cet algorithme est

itérative et permet une rapide convergence de la solution [71], [72], [73], [74].