• Aucun résultat trouvé

Sortie obtenue

Équation 2.13. Erreur par couche dans un perceptron multicouche

II.3.5 Problèmes d’apprentissage

L'apprentissage d'un réseau de neurones multicouches est un problème d'optimisation puisque cela consiste à minimiser une fonction coût. On y retrouve donc toutes les difficultés liées à ces problèmes, minima locaux, choix d’architecture…. Nous allons introduire dans ce qui suit plusieurs techniques permettant de pallier ces difficultés.

II.3.5.1 -minima locaux

Dans le cas où la fonction à minimiser n'admet qu'un seul minimum, ce dernier sera atteint très rapidement quel que soit l'algorithme de minimisation utilisé. Ces situations sont malheureusement très rares, et correspondent souvent à des problèmes très simples pour lesquelles l'utilisation des techniques neuronales peut paraître exagérée. On rencontrera plus souvent dans la nature, des fonctions coût dont la forme est plus proche de celle présentée dans la Figure suivante et comportant de multiples minima locaux.

56 Figure2.19 : Forme générale d'une fonction coût possédant plusieurs minima

L'algorithme de descente du gradient détermine une direction suivant laquelle la fonction coût sera décroissante. Supposons que nous soyons au point 1 de la Figure 2 .9, l'algorithme va nous faire descendre vers le point b qui est un minimum local. Une fois au point b, il ne sera plus possible d'atteindre le minimum global (point a), puisque cela ferait augmenter la valeur de la fonction coût. Une manière de s'en sortir, consiste à partir d'un point initial compris entre les points 2 et 3. Dans ce cas, toute descente de la fonction coût convergera vers le minimum global a

Pour un réseau multicouche, on peut observer le même phénomène. Lorsqu'on initialise aléatoirement les paramètres à optimiser, ici les poids synaptiques, on démarre l'apprentissage en un point quelconque de la fonction coût et on ne peut jamais être sûr d'atteindre le minimum global. Aussi, une solution consiste à réaliser plusieurs apprentissages à partir de différentes initialisations des poids. En effet on augmente ainsi les chances de débuter un apprentissage dans une zone favorable. Il faut donc systématiquement réaliser plusieurs apprentissages à partir de configurations initiales différentes, et choisir celui qui converge vers l'erreur la plus faible. Ce procédé assure de trouver le minimum global sur un nombre infini de configurations. Dans la pratique on réalise une dizaine d'essais permettant d'obtenir un minimum local acceptable, à défaut d'avoir le meilleur

Plusieurs recherches travaillent sur cette problématique …. Il ya des travaux sur l’utilisation des algorithmes de minimisation plus complexes, permettant d'obtenir une

57

meilleure convergence vers le minimum global, comme le recuit simulé. algorithme constructif [Juan-Manuel TORRES-MORENO1997],[ D. Martinez & D. Estève.1992],[

M. Karouia, R. Lengellé, & Denoeux T.1995], [Y. Shang&B.W. Wha.1996] ,],algorithme de décalage [Y. LeCun, J. Denker1991], algorithme Rprop [C. Igel and M.

H• usken.2003], algorithme évolutionniste[d.meurier2007].

D’autres travaux ils ont utilisé des techniques de prétraitement des données EX. Réduction ave ACP [Hedilli2004], LPC [Belgacem2002], utilisation des ondelettes

[Y.OUSSAR 2002]

II.3.5.2 choix d’architecture

On se pose beaucoup de questions sur la manière d'organiser un réseau multicouches. Doit-on utiliser une ou deux couches cachées ? Combien faut-il de neurones en couche cachée ? Quel doit être la taille de la base d'apprentissage ?

A toutes ces questions, il n'existe pas de réponse absolue, ni de formules de calcul toutes prêtes. On dispose par contre de plusieurs règles pseudo-empiriques permettant d'orienter l'utilisateur sur ces choix.

Ces règles n'étant pas à toute épreuve, il convient d'essayer plusieurs configurations et de choisir celle qui donne les meilleurs résultats en généralisation.

On peut toutefois être tenté d'utiliser plusieurs couches cachées afin de réduire le nombre de neurones par couche, mais cela augmente fortement le nombre de minima locaux et le temps d’apprentissage. Aussi, il est préférable tant que cela est possible, d'utiliser une seule couche cachée.

Il reste encore à choisir le nombre de neurones de la couche cachée. Pour cela on utilise quelques règles pseudo-empiriques permettant d'avoir une bonne estimation. La première méthode, appelée la règle de la pyramide [Masters, 1993], repose sur la conjecture que le nombre de neurones de chaque couche suit une progression géométrique de la couche de sortie vers la couche d’entrée. Pour cela, supposons que l'on ait m neurones dans la couche de sortie n dans la couche d'entrée et k couches cachées, on définit la raison r par :

On numérote ensuite les couches du réseau, la sortie portant l'indice 0 et l'entrée l'indice (k+l). Le nombre Ni de neurones de la couche i est alors égal à :

58

Pour un réseau à une couche cachée, le nombre Ni de neurones sera :

Il y a plusieurs chercheurs qui travaillent sur la problématique de choix d’architecture, surtout sur le nombre de neurone dans la couche cachée et les liaison entre les différent couche .la plupart des recherches travail sur un apprentissage structurelle des réseaux de neurone on utilisant différent algorithme ex. Algorithme constructif [ N. Dunkin, J. Shawe-Taylor, and P. Koiran.1997], algorithme de construction en cascade [S. E. Fahlman and C. Lebiere.1990],

algorithme de construction incremental [N. Dunkin, J. Shawe-Taylor, and P. Koiran.1997].

II.3.5.3 Sur apprentissage :

Sur apprentissage (en anglais « overfitting ») est un problème pouvant survenir dans l’apprentissage des réseaux de neurones. Il est en général provoqué par un mauvais dimensionnement de la structure utilisée pour classifier. De part sa trop grande capacité à stocker des informations, une structure dans une situation de sur apprentissage aura de la peine à généraliser les caractéristiques des données. Elle se comporte alors comme une table contenant tous les échantillons utilisés lors de l'apprentissage et perd ses pouvoirs de prédiction sur de nouveaux échantillons.

Surapprentissage dans un apprentissage supervisé. En rouge, l'erreur sur l'ensemble de validation. En bleu,

l'erreur d'apprentissage. Si l'erreur de validation augmente alors que l'erreur d'apprentissage continue à

diminuer alors il y a un risque de surapprentissage.

59

 Éviter le sur apprentissage

Pour limiter ce genre de problèmes dans le cas des réseaux de neurones, on doit veiller à utiliser un nombre adéquat de neurones et de couches cachées. Cependant, ces paramètres sont difficiles à déterminer à l'avance. Pour détecter un surapprentissage, on sépare les données en deux sous-ensembles : l'ensemble d'apprentissage et l'ensemble de validation. L'ensemble d'apprentissage comme son nom l'indique permet de faire évoluer les poids du réseau de neurones avec par exemple une rétro propagation. L'ensemble de validation n'est pas utilisé pour l'apprentissage mais permet de vérifier la pertinence du réseau avec des échantillons qu'il ne connait pas.

On peut vraisemblablement parler de surapprentissage si l'erreur de prédiction du réseau sur l'ensemble d'apprentissage diminue alors que l'erreur sur la validation augmente de manière significative. Cela signifie que le réseau continue à améliorer ses performances sur les échantillons d'apprentissage mais perd son pouvoir de prédiction sur ceux provenant de la validation.

Pour avoir un réseau qui généralise bien, on arrête l'apprentissage dès que l'on observe cette divergence entre les deux courbes. On peut aussi diminuer la taille du réseau et recommencer l'apprentissage.