5.3.3.2. Choix et conception des modèles
Le développent d'un réseau de neurones se heurte
à l'absence d'une méthodologie précise et rigoureuse
(Awadallah, 1999). La démarche que suit tous les modélisateurs
est la méthode "essais-erreur" qui est un processus par
tâtonnement. Cette difficulté est rendue possible à cause
de la flexibilité inhérente aux réseaux de neurones,
à son caractère intrinsèquement non linéaire et
à la difficulté de déterminer la signification statistique
des paramètres estimés (poids).
Une fois l'objectif défini et les variables pertinentes
sélectionnées, il faut choisir le type d'approche qui soit le
plus en adéquation avec cet objectif.
Ce choix a été dicté par le contexte du
travail, le type, la quantité et la qualité des observations de
terrain dont on dispose et enfin la qualité des résultats que
l'on peut en attendre.
5.3.3.2.1. Choix de la structure et de la topologie des
modèles
Dans la mise au point des réseaux de neurones, la
partie qui semble la plus difficile est la détermination de
l'architecture. En effet, la détermination de la topologie d'un
réseau revient à faire un choix très judicieux du vecteur
d'entrée et de la taille du réseau. Rumelhart et al.,
(1986) reconnaissent le niveau de difficulté dans le choix de la
topologie d'un réseau de neurones adaptée à la
résolution d'un problème donné tel que la simulation ou la
prévision des débits d'une rivière dans un contexte
perturbé.
La topologie d'un réseau de neurones est
déterminée par le nombre de couches cachées, l'existence
de connexions entre les neurones et le nombre de neurones sur les couches
cachées. La complexité du modèle neuronal dépend
aussi bien de la valeur des poids et des biais que de leur nombre (Vapnik,
1992). Que ce soit en simulation ou en prévision, une seule couche
cachée est suffisante. En effet, le Perceptron multicouche (PMC)
à une couche cachée est un approximateur universel capable de
modéliser n'importe quelle fonction continue (Hornik et al.,
1989). Cependant cela ne garantit pas qu'un modèle de ce type arrive
à modéliser une fonction quelconque avec un nombre raisonnable de
neurones, ni qu'il sera possible de déterminer ce nombre (Fortin et
al., 1997). Plusieurs travaux ont tenté de résoudre la
détermination de la topologie des modèles perceptrons
multicouches, mais la question est loin d'être résolue. Comment
arriver à déterminer le nombre minimal et adéquat de
neurones cachés ? Cette question demeure jusqu'à présent
sans réponse véritable, malgré de nombreuses approches
empiriques. Un réseau incapable de modéliser la complexité
d'un système, que cela soit faute de neurones cachés ou de temps
suffisant d'apprentissage, est qualifié de réseau
sous-entraîné (underfitting). Par contre, un réseau qui
donne de bonnes performances sur son ensemble d'apprentissage, mais qui donne
de moins bonnes performances en validation, que cela soit dû à
trop de neurones cachés ou à un apprentissage excessif, est
qualifié de réseau sur-entraîné (overfitting). Un
modèle Perceptron sur-entraîné fait une mauvaise
évaluation de la variance de la perturbation aléatoire
associée au phénomène étudié, et par
conséquent, produit des sorties avec une variance excessive (Geman
et al., 1992). Le choix de la structure des modèles neuronaux
est donc un compromis entre le sous-apprentissage et le sur apprentissage
(Awadallah, 1999). Plusieurs règles heuristiques existent pour
suggérer à priori un nombre de neurones cachés en fonction
du nombre d'observations en apprentissage et du nombre d'entrée du
modèle. Cependant, ces règles empiriques dépendent de la
nature des données utilisées et du bruit qui entache ces
données. Elles ne sont donc pas à généraliser
(Sarle, 1999). Il faut pour ce faire procéder avec une démarche
du type "essais-erreurs".
5.3.3.2.2. Détermination de l'architecture des
modèles 5.3.3.2.2.1. Nombre de retard
Le retard ou délais est la fénêtre
temporelle qu'on donne au réseau de neurones afin de lui permettre de
prendre en compte les évenements passés (pluies,
températures, évapotranspirations potentielles, mois,
débits, etc.). Ce retard est déterminé par plusieurs
méthodes dont les méthodes empiriques. Dans cette étude,
la méthode utilisée consiste à faire varier le nombre de
retards de 1 à n ( n ? R) et de fixer le
nombre de neurones cachés. Ici, n est égal à 13
et le nombre de neurones cachés est fixé à 5. Une fois le
nombre de retards optimaux obtenus pour le nombre de neurones fixé
à 5, on fixe ce nombre de retards et on fait varier le nombre de
neurones cachés de 1 à 12.
5.3.3.2.2.2. Nombre de neurones cachés
Dans la littérature il existe plusieurs méthodes
de détermination du nombre de neurones dans la couche cachée
(Roussillon, 2004) : l'approche par sélection (a), l'approche
incrémentale (b) et l'approche par expérience (c).
Approche par sélection
L'approche par sélection ou approche destructive
consiste à commencer par la construction d'un réseau complexe qui
contient un grand nombre de neurones, puis d'essayer de réduire le
nombre de neurones inutiles et supprimer les connexions redondantes pendant ou
à la fin de l'apprentissage. Cette méthode présente deux
variantes : l'optimal Cell Damage (OCD) et l'utilisation de la
dérivée de la sortie.
i) Optimal Cell Damage (OCD)
Cette méthode qui est directement inspirée de
l'Optimal Brain Damage (OBD) proposé par Le Cun (1990) consiste à
supprimer des cellules durant l'apprentissage.
Une cellule est supprimée si sa "sensibilité" est
faible. La sensibilité d'une cellule est définie
n
par : ( j )
SC i = S i W
|
(18)
|
j = 1
Où Ci représente la cellule i
du réseau de neurones, représente la connexion sortante j de la
cellule Ci et S i (W
j ) représente la sensibilité de la connexion
Wj .
1 ? 2 MSE
Cette sensibilité est définie par : ( )
S W = × × W 2 j
(19)
i j W 2
2 ? j
Avec MSE est la moyenne des carrées des erreurs.
Cibas (1996) propose de faire d'abord converger le
Réseau de neurones, puis de calculer la sensibilité pour chaque
entrée du réseau, de classer les entrées par ordre
croissant de sensibilité et enfin de supprimer les entrées pour
lesquelles la sensibilité est inférieure à un seuil
donné. Le processus sera répété jusqu'à
aboutir à une architecture optimale.
ii) Utilisation de la dérivée de la
sortie
Cette technique de sélection de variables est
basée sur l'influence de l'entrée Xi sur la
sortie
du réseau de neurones.
Le principe consiste à calculer la
dérivée
?F de la sortie du réseau par rapport à
l'entrée Xi
?Xi
pour toutes les observations. Si la valeur de cette
dérivée est faible pour toutes les observations, on conclut que
la sortie ne dépend pas de l'entrée Xi .
Approche incrémentale
Dans l'approche incrémentale (ou approche
constructive), à l'inverse de l'approche précédente, on
commence par un réseau le plus simple possible, puis on y ajoute des
neurones ou des couches, jusqu'à obtenir une architecture optimale.
On peut citer la méthode de Fahlman (1989) qui commence
par un réseau initialisé à un seul neurone. Une fois que
le neurone est bien entraîné, une nouvelle unité sera
ajoutée dans le réseau et ainsi de suite. L'inconvénient
de l'approche de Fahlman est qu'elle peut générer un
réseau dont le nombre de neurones et/ou de couches est très
élevé.
Approche relevant des expériences
antérieures
Pour l'optimisation d'un réseau de la forme (V
, N , S ) où V est le nombre de
variables d'entrée, N le nombre de neurones dans la couche
cachée et S le nombre de variables de sortie, les
différentes méthodes sont ici codées de Me1 à
Me4.
i. Me1 fixe N égale à V ;
ii. Me2 utilise la relation suivante : N = 0,75 ×
V ;
iii. Me3 est la méthode dite de racine carrée
où N est obtenu par la formule :
N = V × S ;
( ) 2
1
iv. Me4 attribue à N la moyenne de V et S
.
L'approche par sélection paraît peu pertinente
pour la problématique de ce travail de recherche, qui a pour objectif
de développer un modèle opérationnel et donc
économe en temps de calcul. Ce sont donc les approches
incrémentales (Fahlman, 1989) et empiriques qui
seront utilisées, ce qui permettra in fine de
vérifier dans quelle mesure la méthode empirique est efficace.
5.3.3.2.3. Choix de la fonction d'activation
Le choix du modèle neuronal comprend toujours celui de
la fonction d'activation ou fonction neurone. Celle-ci est essentielle pour
introduire la non linéarité dans les modèles. En effet,
sans la non-linéarité, les réseaux de neurones formels ne
seront pas plus puissants qu'un modèle linéaire
généralisé, parce que la combinaison de fonctions
linéaires reste toujours une fonction linéaire (Awadallah, 1999).
Les propriétés de la fonction d'activation influent en effet sur
celle du neurone formel et il est donc important de bien choisir celle-ci pour
obtenir un modèle bien construit. Quand les neurones sont
combinés en un réseau de neurones, il est important par exemple
que la fonction d'activation de certains d'entre eux ne soit pas un
polynôme sous réserve de limiter la puissance de calcul du
réseau obtenu. Une revue bibliographique a permis de savoir que les
trois fonctions les plus utilisées sont les fonctions "seuil" (limit),
linéaire et sigmoïde. Ces fonctions sont résumées
dans le tableau VII.
La fonction "seuil" applique un palier sur son entrée.
Plus précisément, si une entrée négative ne passe
pas le palier fixé, la fonction retourne alors la valeur 0, alors que
pour une entrée qui dépasse cette limite, la fonction retourne 1.
Cette fonction permet donc de prendre des décisions binaires. Les
débits à modéliser par les différents
modèles à développer et à optimiser dans ce travail
de recherche prennent tous des valeurs discrètes et continues. Pour
cette raison cette fonction d'activation a été
écartée dans le cadre de cette étude.
En ce qui concerne la fonction linéaire, elle est
très simple. Cette fonction affecte directement son entrée
à sa sortie. La relation pluie-débit étant une relation
non-linaire, utiliser la fonction linéaire supposerait que la pluie et
le débit évoluent linéairement, ce qui n'est pas le cas.
Cette fonction tout comme la précédente n'a pas été
utilisée ici.
Il reste alors les fonctions sigmoïdes qui
présentent deux variantes : la fonction sigmoïde de type logistique
et la fonction sigmoïde de type tangentiel. Ces fonctions ressemblent soit
à la fonction seuil, soit à la fonction linéaire, selon
que l'on est, respectivement loin ou proche du seuil. Les fonctions
sigmoïdes apparaissent donc comme un compromis intéressant entre
les deux autres fonctions. Des deux variantes, la fonction Sigmoïde de
type logistique bornée de 0 à 1 a été
utilisée dans ces travaux.
Tableau VII : Typologie des fonctions
d'activation les plus utilisées (Roussillon, 2004)
Catégorie
|
Type
|
Equation
|
Allure
|
Dérivée
|
|
Seuil
|
Binaire (fonction de Heaviside)
|
f(x) = 1 si x > 0 f(x) = 0 si x <= 0
|
|
|
-
|
Signe
|
f(x) = 1 si x > 0 f(x) = -1 si x <= 0
|
|
|
-
|
|
Linéaire
|
Identité
|
f(x) = x
|
|
f'(x) = 1
|
Saturé positif
|
f(x,k) = 0 si x < 0
f(x,k) = 1 si x >= 1/k f(x,k) = k.x sinon
|
|
|
f(x,k) = 0 si x < 0 f(x,k) = 0 si x >=
1/k
f(x,k) = k sinon
|
|
Saturé symétrique
|
f(x,k) = -1 si x < -1/k f(x,k) = 1 si x
>= 1/k f(x,k) = k.x sinon
|
|
f(x,k) = 0 si x < - 1/k
f(x,k) = 0 si x >= 1/k
f(x,k) = k sinon
|
|
Sigmoïde
|
Positive (type logistique)
|
|
|
|
|
|
|
|
Symétrique (type tanh)
|
|
|
|
|
|
|
|
|