top of page

Voir aussi :   - Codes Sources en C++

                       - Logique formelle

                       - Logique Floue

                       -  Exercices en RNA

                       - Perceptron Simple

RNA type Perceptron Multicouches (PMC) Avec un code source en MATLAB et en C ++

 Les RNA

servent à modéliser le phénomène d’apprentissage par l’exemple, c-à-d à:

       • essayer de décrire mathématiquement ce que se passe dans nous cerveaux quand nous essayons d’apprendre la réalisation d’une nouvelle tâche à partir d’exemples (avec ou sans l’aide d’un speriser)

       • Ceci nécessite d’abord de répondre à trois questions fondamentales 4Questions préliminaires :

               • Comment les informations sur le monde physique sont:

                            1.Perçues? (Vecteurs objets)

                            2. Stockées ou mémorisées? (liaisons synaptiques pondérées)

                            3.Rappelées o tilisées? (fonctions04. BackPro

                            4. Rappelées ou utilisées? (fonctionsdiscriminantes)

 

Perceptron simple (1958)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Autre question fondamentale

        • En quoi consiste l’apprentissage?

        • C’est l’ajustement des poids des connexions C'est l'ajustement des poids des connexions synaptiques.

        • Nécessite une règle d’ajustement (ou d’adaptation ou d’apprentissage).

 

Limite du perceptron simple (1969)

     

                                           

 

 

 

                                         est l’équation d’une droite séparant le plan(l’espace des données) en deux zones (deux classes)

 

 

 

 

 

 

 

 

⇒Pb si les classes ne sont pas linéairement séparables

 

Cas particulier de données binaires planes

 

• Résoudre le problème du XOR c’est trouver w1, w2 et θtels que:

– w1x1+w2x2> θ  pour la classe 1

– w1x1+w2x2< θ  pour la classe 2 

• Pour la classe 1 ceci conduit aux deux équations:

       –0> θ               (1)

       –w1+w2> θ         (2)

• Pour la classe2 les équations sont:

       –w1< θ, (3)

       –w2< θ (4)

• (3)+(4) ⇒w1+w2<2 θ, ce qui contredit (2).

 

 

 

  Dépassement de la limite (1987)

 

 

 

 

Solution: Perceptron à trois couches

 

 

 

 

 

 

 

 

Généralisation: PMC

 

 

 

 

 

 

 

 

 

 

 

Entrainement des PMC

• Entrainer un RNA c’est ajuster les poids synaptiques de ses différentes connexions.

• Pour les RNA de type PMC l’entrainement se fait par l’algorithme de rétro-propagation des gradients des erreurs.

• C’est un algorithme d’optimisation qui vise à minimiser l’erreur globale observée à la sortie du réseau.

• Le mode d’apprentissage utilisé est l’apprentissage supervisé, qui nécessite que les données soient étiquetées

• La technique d’optimisation utilisée est la descende du gradient.

Principe de l’algorithme

         Partant de poids initiaux quelconques, on présente successivement les exemples à l’entrée du réseau, et pour chaque exemple:

             – on évalue l’erreur observée à la sortie de chaque neurone de chaque couche,

             – on exploite cette erreur pour ajuster les connexions synaptiques des entrées de ce neurone de                                                      façon à minimiser l’erreur globale , On utilise pour cela la méthode de descente du gradient.

 

Rappel: Gradient d’un champ scalaire

 

Le vecteur gradient au point M indique la direction selon laquelle f

subit la plus grande variation possible quand on passe de M à M’.

 

 

 

Formulation mathématique du problème

• Trouver la meilleure correction possible, ∆wji(n), à apporter à chaque poids synaptique wji de façon à minimiser l’erreur globale observée à la sortie du PMC :

avec:

  – dj(n) =sortie désirée,

  – yj(n) =sortie observée,

  – C = couche de sortie du réseau.

Notations

• Les indices i, j, et k désignent toujours des neurones appartenant à des couches successives.

• La présentation de la nième donnée d’apprentissage au réseau correspond à l’itération numéro n.

• xi(n): ième composante du vecteur objet x présenté au réseau à l’itération n.

• vj(n):niveau d’activation internedu neurone j à l’itération n.

• yj(n)=ϕj(vj(n)):sortie observée du neurone jà l’itération n.

• dj(n):sortie désirée du neurone j à l’itération n.

• ej(n)=dj(n)-yj(n):erreur du neurone j à l’itération n.

•ϕj(.):fonction d’activation du neurone j, qui traduit la relation entre les entrées du neurone et sa sortie.

•θj: seuil appliqué au neurone j; son effet est mieux représenté à l’aide d’une synapse supplémentaire de poids wj0= -θjconnectée à une entrée fixe égale à 1.

•∆wji(n):correction à apporter à wji(n)à l’itération n.

•η: taux d’apprentissage.

• Critère à minimiser:

 

Règle d’apprentissage

• Pour minimiser l’erreur globale, E(n), observée à la sortie du réseau après présentation de chaque observation x(n) à son entrée, on apporte à chaque poids de connexion wji la correction:

 

 

 

• La difficulté de l’application de cette règle réside dans le calcul de la dérivée partielle ∂E(n)/∂wji qui n’est évident que pour les neurones de la couche de sortie.

3 cas à distinguer

   1. Le neurone j appartient à la couchede sortie. C’est le cas le plus simple car la sortie désirée est connue.

   2. Le neurone j appartient à une couche cachée. Ce cas est relativement difficile car la sortie désirée du neurone n’est pas connue. Pour pallier cette difficulté on commence par les neurones de la dernière couche cachée pour lesquels on exploite le traitement déjà fait pour la couche de sortie; puis on réitèrerécursivement le processus pour les autres couches cachées.

  3. Le neurone j appartient à la couche d’entrée. Les entrées du neurone sont alors les signaux d’entrée etnon pas les sorties d’autres neurones.

1.Cas d’un neurone de la couche de sortie                                      Calcul de ∆wji(n)

 

 

 

 

 

 

 

 

 

 

 

Actualisation des poids de connexion

Pour chaque neurone j de lacouche de sortie, les poids de connexion avec la dernière couche cachéesont actualisés (adaptés) selon la règle:

                                                                                                                                                       C’est la « règle du delta ».

 

 

2.Cas des couches cachées

Problème: Comment calculer les ∆Wji(n)pour les neurones des couches cachées sachant qu’on ne dispose pas des sorties désirées pour ces neurones?

 

Sous-cas de la dernière couche cachée

• L’erreur quadratique globale E(n) dépend des sorties yj(n) des neurones de cette couche

•Les sorties yj(n) dépendent des poids synaptiques wji(n) à travers leurs fonctions d’activation:

• On peut donc écrire pour ces neurones:

 

 

 

                                                                                                                          Règle du delta généralisée

 

 

 

 

 

 

 

 

 

 

 

 

 

Généralisation aux autres couches cachées

• Partant des signaux d’erreurs de la dernière couche cachée (les δj(n)) il est possible de calculer récursivementces signaux pour toutes les couches précédentes, y compris la couche d’entrée.

• La couche de sortie correspond au cas de base.

• La couche d’entrée correspond à la condition d’arrêt des appels récursifs.

• Les poids synaptiques de chaque neurone j sont alors ajustés en fonction des erreurs de tous les neurones de la couche suivante auxquels j est connecté.

=>  Tout se passe comme si les gradients des erreurs observées au niveau des différents neurones de la couche de sortie constituent des signaux qui se propagent dans le sens opposé de celui des données. D’où le nom del’algorithme BackPro.

 

Les 2 étapes de calcul

• L’application de la règle d’apprentissage du PMC nécessite deux étapes de calcul pour chaque donnée:

   – La première concerne la propagation des signaux d’entrée de la première couche vers la dernière,

   – La seconde concerne la propagation des signaux d’erreurs de la dernière couche vers la première(rétro-propagation).

 

 

 

 

 

 

 

Etape de propagation                                                                                        Etape de rétro-propagation                                                                                                                             

• Calcul des signaux de sortie de chaque neurone j:                                               •  Calcul récursif des gradients locaux:                                         

 

 

 

 

 

 

 

 

 

 

 

• Durant cette étape les poidssynaptiques restent inchangés.

 

Résumé 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pseudo-code       (Pour telecharger le code source de PMC en MATLAB ou en C++ voir en bas de cette page )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Influence des paramètres algorithmiques

• Taux d’apprentissage

    – Momentum

    – Règle du delta généralisée

• Type d’entraînement :

    – Séquentiel (en ligne)

    – Par lot (epoch), batch processing

• Fonction d’activation

• Initialisation

• Critère d’arrêt,

etc...

Dans les problèmes du monde réel ce sont toujours les données qui ont le dernier mot!

 

Exemples Applications des PMC

1. Traitement d’images:

     – reconnaissance de lettres ou de chiffres manuscrits,

     – segmentation d’images couleur,

     – reconnaissance de visages,

     – reconnaissance d’empreintes digitales.

2. Traitement du signal: Classification et analyse designaux médicaux

    – EEG,

    – ECG,

 

 

pour Telecharger le code source de PMC en MATLAB ou en C++ clic ici et vous pouvez commenter et aider à developper ce code ou bien de posez des questions 

 

 

 

 

 

Méréc@company 2014

bottom of page