• Aucun résultat trouvé

2.4.1.2 Le perceptron multicouche

Dans le document Présenté par : AKKA ALI. Intitulé (Page 48-0)

Chapitre II: Techniques de l'intelligence artificielle

II. 2.4.1.2 Le perceptron multicouche

Ils sont une amélioration du perceptron comprenant une ou plusieurs couches intermédiaires dites cachées. Ils utilisent, pour modifier leurs poids, un algorithme de rétro propagation du gradient, qui est une généralisation de la règle de Widrow Hoff. Il s’agit toujours de minimiser l’erreur quadratique, ce qui est assez simple quand on utilise une fonction f dérivable (la sigmoïde par exemple) et consiste à propager la modification des poids de la couche de sortie jusqu’à la couche d’entrée [47].

II.2.4.1.2.1 Structure des perceptrons multicouches

(PMC ou noté MLP pour Multi Layer Perceptron en anglais) est directement inspiré du perceptron monocouche, et cela afin de résoudre les problèmes de classification non linéaire du perceptron et dépasser les limites principales de celui-ci. Il est organisé en couches tel que :

a. La couche d’entrée: Elle recevra les données sources que l'on veut utiliser pour l'analyse. Sa taille est donc directement déterminée par le nombre de variables d'entrées.

b. Les couches cachées : Le MLP peut comporter une ou plusieurs couches cachées, en ce sens qu'elle n'a qu'une utilité intrinsèque pour le réseau de neurones et n'a pas de contact direct avec l'extérieur. Les fonctions d'activations sont en général non linéaires sur cette couche mais il n'y a pas de règle à respecter. Le choix de sa taille n'est pas implicite et doit être ajusté.

c. La couche de sortie : Elle donne le résultat obtenu après compilation par le réseau des données entrées dans la première couche. Sa taille est directement déterminée par le nombre de variables qu’on veut en sortie.

Couche d’entrée

Couche de sortie

Couches cachées

Figure (II.16): Exemple d’un réseau de type perceptron multicouche.

II.2.4.1.2.2 Architecture du réseau perceptron multicouches

La mise en cascade de perceptrons conduits à ce qu’on appelle le perceptron multicouches. Les perceptrons employés ici diffèrent cependant de celui de Rosenblatt, par le fait que la non-linéarité utilisée est à présent une fonction continue, d’allure sigmoïdale par exemple, et non plus la fonction de signe. Lorsque le vecteur de caractéristiques d’un objet est présenté à l’entrée du réseau, il est communiqué à tous les neurones de la première couche. Les sorties des neurones de cette couche sont alors communiquées aux neurones de la couche suivante, et ainsi de suite. La dernière couche du réseau est appelée couche de sortie, les autres étant désignées sous le terme de couches cachées car les valeurs de sortie de leurs neurones ne sont pas accessibles de l’extérieur.

II.2.4.1.3 Réseau de neurones de type RBF (Radial Basis Functions)

Les réseaux à fonctions radiales de base (RBF) sont des modèles connexionnistes simple à mettre en œuvre et assez intelligible. Ils sont très utilisés pour la régression et la discrimination Leur propriétés théoriques ont été étudiées en détail depuis la fin des années 80 ; il s’agit certainement, avec le perceptron multicouche, du modèle connexionniste le mieux connu [48].

II.2.4.1.3.1 Architecture de réseau RBF

Introduit par Powell et Broomhead [49], le réseau RBF (Radial Basis Functions) fait partie des réseaux de neurones supervisés. Il est constitué de trois couches (figure II.17):

une couche d'entrée qui retransmet les entrées sans distorsion, une seule couche cachée qui contient le neurones RBF qui sont généralement des gaussiennes [50] et une couche de sortie dont les neurones sont généralement constitués par une fonction d'activation linéaire.

Chaque couche est complètement connectée à la suivante et il n'y a pas de connexions à l'intérieur d'une mêmecouche.

Figure (II.17): Présentation schématique d'un réseau RBF.

Ce réseau est constitué de N neurones d'entrée, M neurones cachés et J neurones de sortie. La sortie du mième neurone de la couche cachée est donnée par la fonction gaussienne:

wmj sont les poids reliant la couche cachée à celle de la sortie.

II.2.4.2 Les réseaux dynamiques différentielles. Un exemple de réseaux dynamiques est donné par la figure (II.18).

1 3

4

2

Figure (II.18): Forme d’un réseau bouclé

II.2.5 Apprentissage des réseaux de neurones

Les réseaux de neurones sont considérés comme une boite noire renfermant l’information qu’elle doit apprendre et mémoriser. Au départ on choisit notre réseau, la boite noire est vide et ne contient aucune information, ni aucune connaissance sur son sujet, d’où un apprentissage est nécessaire. Le réseau de neurones subit un enseignement qui est un apprentissage, ceci est une phase du développement du réseau de neurones durant laquelle le comportement du réseau est modifié jusqu'à l'obtention du comportement désiré. L’apprentissage neuronal demande des exemples de comportement. L’apprentissage des réseaux de neurones consiste à adapter ses différents paramètres (poids) d’après un algorithme itératif d’ajustement ou d’adaptation lui permettant de prendre en considération toutes les données (exemples) qui lui sont fournies à son entrée et ainsi ajuster ses paramètres pour trouver le juste milieu permettant de prendre en charge n’importe quel exemple ou donnée apparaissant à son entrée provenant de son environnement.

Les algorithmes d’apprentissages donnent des meilleurs résultats lorsqu’on leur fournit des exemples multiples et variés ; ainsi le réseau peut assimiler toutes les connaissances. Il existe différente règles d’apprentissage parmi lesquelles on peut distinguer: La règle de Widrow-Hoff, la règle de Hebb, la règle du perceptron, la règle de Grossberg, etc... [51][52][53].

II.2.5.1 Apprentissage supervisé

Avec la découverte par Rumelhart de l’algorithme de rétro-propagation de l’erreur (RP) on a débuté à établir l’apprentissage des réseaux de neurones multicouches à partir d’exemples.

Cette méthode de détermination des poids est appelée apprentissage supervisé.

L'apprentissage supervisé, est basée sur des exemples qui sont des couples (entrée, sortie désirée). On présume l’existence d’un expert qui prend en charge la sortie de notre réseau en lui fournissant une sortie désirée et les associes aux sorties réelles fournies par le réseau d’après les données à l’entrée. Le réseau adapte ses paramètres en fonction de

la différence qui existe entre la sortie réelle et la sortie désirée en prenant compte de tous les exemples de l’environnement.

Superviseur

Réseaux de neurones

Erreur

En tré es

Figure (II.19): Illustration de l’apprentissage supervisé

II.2.5.2 Apprentissage non supervisé

L’apprentissage non supervisé est un apprentissage autodidacte, à l’inverse de l’apprentissage supervisé, il n’a pas besoin d’expert pour le guider à adapter ses paramètres, il ne dispose que des valeurs entrées. Les modèles d’apprentissage non supervisé nécessitent avant la phase d'utilisation une étape de labellisation effectuée par l’opérateur.

Réseaux de

neurones Sortie

En tré es

Figure (II.20): Illustration de l’apprentissage non supervisé

II.2.6 Algorithmes d'apprentissage des RNAs

Il existe plusieurs types d’algorithmes d'apprentissage, parmi lesquels nous pouvons citer : la rétro-propagation, fast-retropropagation, recurrent-retropropagation, random optimisation method),....etc. Dans la suite en va détailler l'algorithme de rétro-propagation.

II.2.6.1 Méthode de Rétropropagation

La Rétropropagation est actuellement l’outil le plus utilisé dans le domaine des réseaux de neurones. C’est une technique de calcul des dérivées qui peut être appliquée à n’importe quelle structure des fonctions dérivables.

L’année 1986 a vu l’apparition de l’algorithme de Rétropropagation de l’erreur publié par Rumelhart, Hinton et Williams qui permet d’optimiser les paramètres d’un réseau de neurones à plusieurs couches.

Le développement d’algorithmes d’apprentissage supervisé pour les réseaux multicouches se heurte au problème de calcul des erreurs de sortie pour les neurones cachés. En effet, les neurones cachés n’ont pas un rôle prédéfini, c’est l’apprentissage qui les utilise à sa convenance pour former des représentations internes, à cause de l’absence d’une règle d’apprentissage convenable, les perceptrons étaient limités à une seule couche pendant plusieurs années, mais ce type de perceptron ne peut résoudre que les problèmes dont les données sont linéairement séparables. Les limitations du perceptron ont été levées par la découverte de l’algorithme de Rétropropagation qui a permis de résoudre le problème de calcul des erreurs associées aux neurones cachés. Les applications de cet algorithme ont connu un succès spectaculaire et ses performances étaient quelques fois surprenantes. Malgré sa complexité apparente, la méthode de Rétropropagation n’est qu’une technique simple mais efficace de calcul des dérivées d’une entité par rapport à l’ensemble de ses entrées. Elle peut être appliquée à n’importe quel système composé de plusieurs sous-systèmes élémentaires qui peuvent être représentés par des fonctions connues, continues et dérivables.

II.2.6.2 Equations du réseau

Avant de définir la règle d’apprentissage, on doit définir la relation entre les sorties du réseau, d’une part, et les entrées et les poids d’autre part. On considère dans ce qui suit les

Avec pour la couche k : fk(.) est la fonction d’activation, nk est le nombre de neurones, Oki(t)est la sortie du neurone i, Wkij est le coefficient synaptique de la connexion entre le neurone ide la couche k et le neurone j de la couche précédente (k-1). ki0

w est le seuil adaptable du neurone i . yi(t) et xi(t) sont les iemes composantes du vecteur d’entrée x (t)et du vecteur de sortie y(t) respectivement.

La fonction d’activation généralement choisie est la fonction sigmoïde:

1 1

II.2.6.3 Principe du rétro- propagation

L’objectif de la méthode de Rétropropagation est d’adapter les paramètres wijk de façon à minimiser la valeur moyenne de l’erreur sur l’ensemble d’entraînement. La fonction coût la plus utilisée est donnée par : de l’ensemble d’apprentissage. Cependant, dans quelques situations d’autres critères d’erreur peuvent être plus appropriés. L’approche la plus utilisée pour la minimisation de la fonction E est basée sur les méthodes du gradient.

On commence l’entraînement par un choix aléatoire des valeurs initiales des poids. On présente le premier vecteur d’entrée. Une fois que la sortie du réseau, l’erreur correspondante et le gradient de l’erreur par rapport à tous les poids sont calculés, les paramètres sont ajustés dans la direction opposée à celle du gradient de l’erreur. On refait la même procédure pour tous les exemples d’apprentissage. Ce processus est répété jusqu’à ce que les sorties du réseau soient suffisamment proches des sorties désirées.

II.2.6.4 Adaptation des poids

Pour un ensemble de poids donné, il est facile de calculer la sortie y(t) et l’erreur E(t) correspondant à une entrée x(t), en utilisant les équations (II.7)-(II.13). Les paramètres du réseau sont alors ajustés par la méthode de gradient en utilisant les formules itératives:

( ) ( 1) ( )

k k k

ij ij ij

w n =w n− + ∆w n

(II.14)

( )

l’itération. La vitesse de convergence dépend de la constant µ. Si µ est trop petit la convergence est lente mais la direction de descente est optimale. Si µ est trop grand la convergence

des couches de sortie :

1( ) 1 1( ) d( ) ( )

i t f s ti yi t y ti

δ =      −  (II.18)

Pour les neurones des couches cachées :

1 1 1 Pour minimiser l’erreur totale E sur l’ensemble d’entraînement, les poids du réseau doivent

être ajustés après la représentation de tous les exemples. Cependant on peut ajuster les poids après la représentation de chaque exemple, les corrections sont assez faibles et la minimisation de E (t) est une bonne approximation de la minimisation de E, l’équation (II.15) est remplacée par :

II.2.6.5 Algorithme de la rétropropagation

L'algorithme de rétropropagation est réalisé selon les étapes suivantes:

Etape 1: Initialiser les poids wij et les biais des neurones à des petites valeurs aléatoires.

Etape 2: Présenter le vecteur d'entrée et de sortie désirés correspondants.

Etape 3: Calculer :

1- La somme des entrées des neurones d'une couche cachée : Eq.(II.7).

2- Les sorties des neurones de la couche cachée : Eq.(II.11).

3- La somme des entrées de la couche de sortie : Eq.(II.7).

4- Les sorties du réseau : Eq.(II.11).

Etape 4: calculer :

1- Les termes de l’erreur pour les neurones de la couche de sortie: Eq.( II.18) 2- Les termes de l’erreur pour les neurones de la couche cachée: Eq.(II.19) Etape 5 : Ajuster :

1- Les poids de la couche de sortie et la couche cachée: Eq.(II.21)

Etape 6 : Si la condition sur l'erreur ou sur le nombre d'itération est atteinte, aller à l'étape 7, si non revenir à l'étape 3 jusqu'à la stabilisation du système.

Etape 7 : Fin.

II.3 Systèmes neuro-flous

L’association des réseaux de neurones et de la logique floue a donné naissance aux systèmes neuro-flous. Chacun de ces deux concepts présente des intérêts propres dont on peut tirer profit. Le premier concept, qui est la logique floue, permet une distinction des taches à exécuter à partir de la compréhension symbolique disponible. Le second concept, qui est le réseau de neurone, permet le réglage par apprentissage le comportement du système. Donc les systèmes neuro-flous admettent l’exploitation des capacités d’apprentissage des réseaux de neurones d’une part et les capacités de raisonnement de la logique floue d’autre part [54].

II.3.1 Définition des systèmes neuro-flous

Une définition des systèmes neuro-flous est donnée dans [55]: ‘’Les systèmes Neuro-flous sont des systèmes Neuro-flous formés par un algorithme d'apprentissage inspiré de la théorie des réseaux de neurones. La technique d'apprentissage opère en fonction de l'information locale et produit uniquement des changements locaux dans le système flou d'origine’’. La figure (II.21) représente le système neuro-flou.

Les combinaisons des systèmes neuro-flous permettent d’obtenir un champ d’utilisation plus vaste et de tirer des avantages de chaque méthode : les capacités d’apprentissage des réseaux de neurones, l’interprétation et la lisibilité de la logique floue.

Données linguistiques

Données numeriques

Expressions linguistiques

Systèmes neuro-flous La logique floue

Rèseaux de

Neurones artificiels Opérations parallèles

Figure (II.21): Système neuro-flou [56]

II.3.2 Types des systèmes neuro-flous

Les techniques basées sur la fusion des réseaux de neurones et de la logique floue sont nommées systèmes neuro-flous. Les différentes combinaisons de ces techniques peuvent être groupées en trois grandes catégories.

II.3.2.1 Le système neuro-flou coopératif

Dans le modèle coopératif, les réseaux de neurones sont utilisés dans une phase initiale dans lequel le mécanisme d'apprentissage de ce réseau détermine les fonctions d'appartenance des systèmes flous ou des règles floues à partir des données de formation. Une fois les paramètres du système flou sont déterminés, le réseau de neurone occupe l’arrière-plan. La règle de base est généralement déterminée par une approche de clustering ou des algorithmes de classification floue. La figure (II.22) représente le principe du système neuro-flou coopératif [57].

Réseau de neurone Système flou

Règles floues

les fonctions d'appartenance

Figure (II.22): Principe du système neuro-flou coopératif

II.3.2.2 Système neuro-flou concurrent

Dans ce deuxième système d’association, les deux partenaires agissent à l’application des réseaux de neurones et des systèmes flous. Le but de cette combinaison n’est pas d’optimiser le système flou mais l’aider à améliorer la performance du système dans sa globalité, le réseau de neurone assiste le système flou en continu pour déterminer le besoin en particulier si les paramètres variables d'entrée du régulateur ne peuvent pas être mesurés directement. Dans certains cas, les sorties du système flou ne peuvent pas être directement applicable au processus.

Dans ce cas, le réseau de neurone peut agir comme un post-processeur de sorties du système flou. La figure (II.22) représente le principe du système neuro-flou concurrent [58].

Réseau de neurone Système flou

Figure (II.23): Principe du système neuro-flou concurrent

II.3.2.3 Système neuro-flou hybride

Dans ce type d’association, les opérations concernant le raisonnement flou sont réalisées à partir des architectures neuronales adoptées. Un système neuro-flou hybride est un réseau de neurones topologiquement équivalent à un système flou. Ce modèle de fusion est dirigé vers le contrôle et les applications de reconnaissance de formes. Les chercheurs utilisent le terme neuro-flou aux systèmes neuro-neuro-flous hybrides. La figure (II.24) représente le système neuro-neuro-flou hybride [59].

X1

X2

F A11

F A1n

F A21

F A2n

ET

ET

Agrégation W W1

Wn

Figure (II.24): Système neuro-flou hybride

II.3.3 Architectures neuro-floues

Plusieurs combinaisons des méthodes et architectures neuro-floues ont été développées depuis 1988.On a recensé plusieurs architectures des systèmes neuro-flous, telles que NEFCLASS (Neuro-Fuzzy Classification), ANFIS (Adaptive Neuro Fuzzy Inference System), GARIC (Generalized Approximate Reasoning-based Intelligent Control),…. etc. Compte tenu de nos objectifs, notre étude s’est axée sur le modèle ANFIS. Par la suite, une présentation de cette architecture neuro-floue sera donnée.

II.3.3.1 Architecture ANFIS

ANFIS c’est un système d'inférence adaptatif neuro-flou proposé en 1993 dans [60] cela consiste à utiliser un réseau neurone à cinq couches pour lequel chaque couche correspond à la réalisation d’une étape d’un système d’inférence floue de type Takagi Sugeno. Par simplicité, nous supposons que le système d'inférence flou à deux entrées x et y, et z comme une sortie. Supposons que la base de règle contient deux règles floues de type Takagi-Sugeno.

Règle1 :

1 1 1 1 1 1

si x est A et y est B alors z = p x q y r+ + Règle 2 :

2 2 2 2 2 2

si x est A et y est B alors z = p x q y r+ +

L’ANFIS à une architecture composée par cinq couches comme représenté sur la figure (II.25).

Figure (II.25): L’Architecture de l’ANFIS.

z

1. La première couche (Fuzzification)

Cette couche permet la "fuzzification "des entrées x et y. Chaque neurone dans cette couche correspond à une variable linguistique. Les entrées x et y sont passées par la fuzzification en utilisant des fonctions d’appartenances des variables linguistiques Ai et Bj, (généralement sont des formes triangulaires, trapézoïdales ou Gaussiennes). Par exemple, les fonctions d’appartenances Gaussiennes sont définies par:

x est le centre et σ la largeur de la fonction d’appartenance.

Les sorties de la première couche sont :

1, 2. La deuxième couche (règles)

Chaque nœud correspond à une T-Norme floue (l'opérateur T-Norme permet de réaliser l'équivalent d'un "ET" booléen). Il reçoit la sortie des nœuds de fuzzification et calcule sa valeur de sortie grâce à l'opérateur produit (Cet opérateur est généralement utilisé mais il en existe d’autres : max, min, ...).

La fonction d’activation des neurones i de la première couche est:

{ }

3. La troisième couche (Normalisation)

Cette couche normalise les résultats fournis par la couche précédente. Les résultats obtenus représentent le degré d'implication de la valeur dans le résultat final. L’ensemble des sorties de cette couche sont appelées: les poids normalisés donnée par:

2 1 i i

i i

w w

= w

=

(II.25)

4. La quatrième couche (conséquents)

Chaque nœud de cette couche est relié aux entrées initiales. On calcule le résultat en fonction de son entrée et d'une combinaison linéaire du premier ordre des entrées initiales (Approche de TAKAGI - SUGENO), selon l'équation suivante:

fi4=yi =wi(p xi 1+q xi 2+ri) (II.26)

wi est la sortie de la troisième couche, et i, , sont l'ensemble des paramètres désignés

sous le nom : conséquents.

5. La couche de sortie (sommation)

Elle est constituée d'un seul neurone qui calcule la somme des signaux de la couche précédente, alors:

2

1 i i

y y

=

=

(II.27)

II.3.3.1.1 Phase d’apprentissage

L’ajustement des paramètres de l’ANFIS est réalisé lors de la phase d’apprentissage. Pour cela un ensemble de données associant les séquences d’entrées et de sorties est nécessaire. Pour la réalisation de cette phase, l’algorithme d’apprentissage hybride est utilisé.

L’algorithme d’apprentissage hybride est une association de deux méthodes celle de descente de gradient et la méthode d’estimation des moindres carrés. La première permet d’ajuster les prémisses en fixant les paramètres conséquents tandis que la seconde LSM (Least square Method) ajuste les paramètres conséquents en fixant les prémisses.

II.4 Conclusion

Nous avons présenté dans ce chapitre les systèmes de contrôle intelligents fondés sur les techniques de l'intelligence artificielle les plus utilisés qui sont les systèmes flous, les réseaux de neurones et les systèmes neuro-flous.

Les systèmes flous œuvrent sur la base des connaissances des experts et offrent une excellente exploitation de l’intelligence humaine afin de résoudre des tâches complexes. Les réseaux de neurones eux, sont considérés comme des approximateurs universels capables de modéliser des systèmes complexes avec une précision définie à partir d’un couple de données entrées /sorties et un processus d’optimisation. La capacité d’apprentissage simplifie la synthèse d’un contrôleur par un simple réglage de paramètres sans faire appel au modèle mathématique du système à commander. La capacité d’adaptation des réseaux de neurones à des situations inconnues par le fait de l’apprentissage, et la capacité de modélisation de connaissances imprécises de la logique floue et la gestion de l’incertitude, ont été associés dans un système appelé réseau neuro-flou.

Chapitre III

Méthodes d’optimisation métaheuristiques

III.1 Introduction

Aujourd’hui une importance marquante est accordée aux problèmes d’optimisation. Un problème d'optimisation est déterminé par un ensemble de variables et une fonction objective (une fonction de coût). Les problèmes d’optimisation sont diversifiés, ils peuvent être d’ordre combinatoires (discrets) ou à variables continues, avec un ou plusieurs objectifs (optimisation multi objective), statiques ou dynamiques. Lorsqu’on a des problèmes d’optimisations

Aujourd’hui une importance marquante est accordée aux problèmes d’optimisation. Un problème d'optimisation est déterminé par un ensemble de variables et une fonction objective (une fonction de coût). Les problèmes d’optimisation sont diversifiés, ils peuvent être d’ordre combinatoires (discrets) ou à variables continues, avec un ou plusieurs objectifs (optimisation multi objective), statiques ou dynamiques. Lorsqu’on a des problèmes d’optimisations

Dans le document Présenté par : AKKA ALI. Intitulé (Page 48-0)