Le réseau de neurones artificiel Pr A. MAJDA - FST - FES
Introduction Une approche inspirée du traitement de l'information effectué par le cerveau Cas imprévus Domaine de la reconnaissance de formes (images ou signaux), contrôle moteur, traduction automatique,… Questions : Comment un être vivant simple peut classifier un objet à partir des images Cibler un objet en mouvement …
Le réseau de neurones : Méthode issue du modèle biologique Chaque neurone dispose en moyenne de 10.000 points de contacts (synapses) avec les neurones qui l'entourent, jusqu’à 50.000 ! Nous disposons de quelques dizaines de milliards de ces neurones à l'intérieur de notre cerveau De synapse en synapse, l'information transite dans la totalité de notre corps, à travers environ 500 000 milliards de synapses
Neurone biologique
Neurone artificiel Chaque neurone artificiel est un processeur élémentaire Il reçoit un nombre d'entrées des neurones amonts A chacune de ces entrées est associée un poids : la force de la connexion Chaque neurone a une sortie unique, qui se ramifie pour alimenter un nombre de neurones avals. Biais
Définition Les RNA sont des réseaux fortement connectés de processeurs élémentaires fonctionnant en parallèle. Chaque processeur élémentaire calcule une sortie unique sur la base des informations qu'il reçoit.
Définition En équivalence avec le système biologique, Ce processeur est appelé neurone fortement inspirés par le système nerveux biologique.
Domaine de recherches utilisant les RNA Dans la littérature Neuromimétique Vérifier les théories biologiques du fonctionnement du système nerveux central Connexionnisme Améliorer les capacités de l’informatique par des modèles aux composants fortement connectés
Historique Fin de 1943, les neurologues McCulloch et Pitts ont présenté un modèle simplifié de neurone biologique : neurone formel En 1958, Franck Rosenblatt a développé le modèle du Perceptron et Windrow a présenté le modèle de l'ADALINE (ADAptive LINear Element) : le modèle de base des réseaux multicouches. En 1969, Marvin Lee Minsky et Seymour Papert ont publié un ouvrage mettant en exergue les limitations du Perceptron,
Historique 1972 : Kohonen présente ses travaux sur les mémoires associatives 1982 : Hopfield démontre l’intérêt d’utiliser les réseaux récurrents pour la compréhension et la modélisation des fonctions de mémorisation. 1986 : Rumelhart popularise l’algorithme de du gradient qui permet la rétropropagation et l’entrainement par couches cachées des réseaux multicouches. Les réseaux neuronaux ont depuis été beaucoup étudiés, et ont trouvé énormément d’applications.
Applications Aérospatial : pilotage automatique, simulation du vol… Défense : guidage de missiles et suivi de cible, reconnaissance du visage, radar, suppression du bruit… Electronique : prédiction de la séquence d’un code, vision machine, synthétiseur vocal,… Finance : Prévision du coût de la vie Secteur médical : Analyse EEG et ECG Télécommunications : Compression de données … …
Structure d’un neurone artificiel Pour le neurone d'indice j : les entrées sur celui-ci sont de poids wji les connexions avals sont de poids wkj
Comportement On distingue deux phases : Calcul de la somme pondérée des entrées : Une fonction de transfert calcule la valeur de l'état du neurone (sortie) yj =g(aj) C’est cette valeur qui sera transmise aux neurones avals
La fonction de transfert Il existe de nombreuses formes possibles : 1 : fonction à seuil (t : la valeur du seuil) 2 : linéaire par morceaux 3 : sigmoïde y =g(a) a 1 2 3
Topologies Les connexions entre les neurones décrivent la topologie du modèle de RNA utilisé On distingue : Réseau multicouche Propagation avant (feedforward)
Topologies Réseau à connexions locales propagation avant (feedforward) Connexion avec un nombre réduit de neurones
Topologies Réseau à connexions récurrentes (feedback network) Ces connexions ramènent l'information en arrière par rapport au sens de propagation
Topologies Réseau à connexion complète modèle récurrent (feedback network) la structure d'interconnexion la plus générale
Le perceptron Le perceptron de Rosenblatt (1958) est le premier RNA opérationnel. C’est un réseau à propagation avant avec seulement deux couches (entrée et sortie) entièrement interconnectées. Il est composé de neurones à seuil. L ’apprentissage est supervisé et les poids sont modifiés selon la règle delta.
Le perceptron
Le perceptron Un réseau de neurones monocouche est caractérisé par : p informations en entrée q neurones chacun des q neurones est connecté aux p informations d'entrée A noter : X = (xi ) 1 <= i <= p : les p informations d'entrée wji , 1 <= i <= p et 1 <= j <= q : les poids de connexion yj : la sortie du j-ème neurone aj : la donnée d'entrée (somme pondérée) du j-ème neurone. seuil : seuil d’activation du neurone On parle aussi du coefficient de biais wj0, pour ajuster la sensibilité du neurone Wj0=seuil ils jouent le même rôle, le seuil est fixe le biais se reactualise avec les poids de connexion
Le biais : On a donc l'équation suivante : Généralement, le neurone est activé si l’activation on atteint le seuil de la fonction d'activation lorsque la somme pondérée des informations d'entrée vaut le coefficient de biais
Sous forme matricielle W = (w ji ) (i,j) / 0 <= i <= p et 1 <= j <= q X = (x i ) 1 <= i <= p x0=-1 Evaluation de X Exemple d’utilisation : Classification des données Chaque neurone de la couche représente une classe Pour un exemple X donné, on obtient la classe de cet exemple en prenant la plus grande des q sorties.
Fonctionnement Le Perceptron (un seul neurone) en phase d'utilisation L'apprentissage ayant été réalisé Les poids sont fixes Le neurone réalise une simple somme pondérée de ses entrées, compare une valeur de seuil t, et fourni une réponse binaire en sortie y Exemple : On peut interpréter sa décision comme classe 1 si la valeur de y est +1 et classe 2 si la valeur de y est 0. 1 t a y=g(a) x1 y x2
Fonctionnement Exercice: Sachant que les poids du Perceptron à deux entrées sont les suivants : w1 = 0.8 ,w2 = 0.7 et que la valeur de seuil est t =0.5, Déterminez son comportement, sachant que les comportements du ET logique, OU logique et OU exclusif sont respectivement : x1 x2 y 1 x1 x2 y 1 x1 x2 y 1 Réponse = OU
Apprentissage L ’apprentissage est une phase du développement d’un réseau de neurones durant laquelle le comportement du réseau est modifié jusqu’à l’obtention du comportement désiré. On distingue deux grandes classes d’algorithmes d’apprentissage : L’apprentissage supervisé L’apprentissage non supervisé
Apprentissage non supervisé Technique d'apprentissage automatique de classification d’un groupe de données hétérogènes en sous groupes homogènes sans avoir une sortie désirée réseau sortie obtenue ENTREES
Apprentissage supervisé Technique d'apprentissage automatique se basant sur une base de données d’exemples (entrée, sortie désirée) superviseur réseau sortie désirée sortie obtenue erreur ENTREES
Règles d’apprentissage L’apprentissage consiste à modifier le poids des connexions entre les neurones. Il existe plusieurs règles de modification : Loi de Hebb : wji=αxiyj Règle de delta: wji= α(dj - yj)xi Règle de Grossberg : wji= α(xi - wji)yj i j Wji xi yj
Règles d’apprentissage Loi de Hebb : Si deux unités connectées sont actives simultanément, le poids de leur connexion est augmenté ou diminué. α est une constante positive qui représente la force d'apprentissage (learning rate) wji=αxiyj i j Wji xi yj yj = -1 yj = 1 xi =-1 Wji = α Wji = - α xi = 1
Règles d’apprentissage Règle de delta : aj activation produite par le réseau dj réponse désirée par l'expert humain Par exemple si la sortie est inférieure à la réponse désirée, il va falloir augmenter le poids de la connexion à condition bien sûr que l'unité j soit excitatrice (égale à 1). On est dans l'hypothèse d'unités booléennes {0,1}. i j Wji xi yj dj = 0 dj = 1 xi =0 wji = 0 xi = 1 wji = -α yj wji = α(1 - yj) wji= α(dj - yj)xi
Règles d’apprentissage Loi de Grossberg : On augmente les poids qui entrent sur l'unité gagnante yj s'ils sont trop faibles, pour les rapprocher du vecteur d'entrée xi . C’est la règle d’apprentissage utilisée dans les cartes auto-organisatrices de Kohonen i j Wji xi yj wji= α(xi - wji)yj
Apprentissage supervisé Deux algorithmes pour "faire apprendre" à un réseau de neurones monocouche. Apprentissage par descente de gradient Apprentissage par l'algorithme de Windrow-Hoff Ils consistent à comparer le résultat qui était attendu par les exemples puis à minimiser l'erreur commise sur les exemples.
Apprentissage par descente de gradient Définition de l’Erreur quadratique moyenne On considère N exemples X n pour 1 <= n <= N Exemple : si la fct à apprendre au réseau est le ET Logique N=4 X(n) = (x i(n)) 1 <= i <= p p : informations d’entrées Soit (X(n) ,d (n) ) le couple ( Entrée, sortie désirée) Soit y(n) la sortie obtenue pour le n -ème exemple avec les poids actuels EQM : L’idéal E = 0 RNA est expert Notre Objectif Minimiser cette erreur en fonction des poids
Apprentissage par descente de gradient Cette minimisation se fait selon une règle delta , pour 1 <=i<=p ou b = biais En simplifiant α : taux d’apprentissage
Apprentissage par descente de gradient Récapitulons : pour 1 <=i<=p On a démontré que d w i =- α e(n) (- xi(n)) e (n)=(d (n) -y (n) ) pour 1 <=n<=N Nombre d’exemples Remarque : On peut aussi réactualiser le biais si le neurone en a un. d w i =α (d (n) -y (n) ) (xi(n) )
Apprentissage par descente de gradient α un nombre réel = taux d'apprentissage Pour un seul neurone : w i le poids reliant la i -ème information au neurone Créer n variables dwi , pour 1 <= i <= p, égales à 0 Prendre un exemple (X(n) ,d (n) ) , pour 1 <= n <= N Calculer la sortie obtenue avec les poids actuels, yn (1) Rajouter à dw i le nombre α(d(n) – y(n)) x i (2) Réitérer (1) et (2) sur chacun des exemples Pour 1 <= i <= p, remplacer wi par wi + dwi
Apprentissage par descente de gradient Entrée:p poids w_i N exemples (X_n, y_n) où X_n est un vecteur à p x_i Sortie : les p poids modifiés POUR 1 <= i <= p dw_i = 0 FIN POUR POUR TOUT exemple (X_n, d_n) Calculer la sortie y_n du neurone dw_i = dw_i + alpha*(d_n – y_n)*x_i w_i = w_i + dw_i Le problème avec cette méthode est que l'on corrige sur la globalité des exemples
Apprentissage par l'algorithme de Windrow-Hoff Une amélioration de l'algorithme précédent : "la règle delta" Entrée:n poids w_i N exemples (X_n, d_n) où X_n est un vecteur à p x_i Sortie : les p poids modifiés POUR 1 <= i <= p dw_i = 0 FIN POUR POUR TOUT exemple (X_n, d_n) Calculer la sortie y_n du neurone w_i = w_i + alpha*(d_n – y_n)*x_i
Limitation du perceptron En général, les perceptrons ne permettent de représenter que des fonctions linéairement séparables [Minsky 69] Exemple : Fonctions logiques Pour les fonctions non linéairement séparables , il faut établir un réseau de neurones multicouche. ET XOR OU
Limitation du perceptron Théorème Un perceptron linéaire à seuil à n entrées divise l’espace des entrées en deux sous-espaces délimités par un hyperplan. Réciproquement : tout ensemble linéairement séparable peut être discriminé par perceptron linéaire à seuil.
Le Perceptron multicouche C’est un réseau à couches cachées Le flux se fait "en avant" En pratique une ou deux couches cachées suffisent
Dimensionnement Pb du PMC : déterminer l’architecture du réseau le nombre de couche cachée ? le nombre de neurones de chaque couche cachée ? Généralement : Pas de règles pour le nombre des neurones des couches cachée Hornik (1989) a démontré que la plupart des fonctions numériques peuvent être approximées par des réseaux à une seule couche cachée --> Pb de complexité
PMC pour le XOR 1/3 Le XOR peut être calculé par un perceptron multi-couches les liens avec poids nul ne sont pas représentés x0 =1 x1 x2 1 -0.5 0.5 -2 x1 XOR x2
PMC pour le XOR 2/3 x1 x2 -2 1 x1 XOR x2 biais=0.5 biais=-0.5
PMC pour le XOR 3/3 x1 x2 -2 1 x1 XOR x2 biais=0.5 biais=-0.5
Apprentissage Algorithme de rétropropagation Utilise la règle de modification des poids ("delta rule") Remonte couche par couche, des neurones de sortie vers les neurones d’entrées Modifie les poids synaptique en amont de chaque couche, de manière à diminuer l’erreur commise en sortie La fonction d'activation doit être indéfiniment dérivable La fonction sigmoïde -x
Algorithme de rétropropagation Données du réseau n ème exemple d’entrainement Où Vecteur d’entrée Sortie désirée Sortie Obtenue L’algorithme est basé sur : Propagation vers l’avant des entrées x(n) Retropropagation de l’erreur entre d(n)et y(n) vers l’arrière pour l’adaptation des poids
Modèle du neurone j Fonction d’activation L’erreur pour le neurone j :
Démonstration des étapes de l’algorithme La somme des erreurs quadratiques Pour diminuer les erreurs on modifie les poids wji(n) Descente du gradient de l’erreur La variation de poids 0≤η ≤ 1 taux d’apprentissage ou gain de l’algorithme
Cas de la couche de sortie La règle de chaînage des dérivées partielles 1er terme du gradient
2ème terme du gradient
3ème terme du gradient
4ème terme du gradient Finalement
Adaptation des poids de la couche de sortie la règle du “delta” pour la couche de sortie s’exprime par : Où le “gradient local”
Cas des couches cachées Le problème est qu’on ne dispose plus de l’erreur observée ? Cas de la dernière couche cachée On utilise la règle de chaînage des dérivées partielles Inchangés i neurone de la couche précédente j neurone de la couche courante k neurone de la couche suivante
Tous les ek(n) dépendent de yj(n)
On obtient Où D’où
Adaptation des poids des couches cachées Ainsi, la variation des poids est donnée par Où N.B. Ces équations sont valides pour toutes les couches cachées Dans le cas de la 1ère couche cachée il faut substituer la variable yi(n) par l’entrée xi(n)
Sommaire de l’algorithme 1/2 Initialiser tous les poids à des valeurs aléatoires dans l’intervalle [−0.5, 0.5] ; Normaliser les données d’entraînement ; Permuter aléatoirement les données d’entraînement ; Pour chaque donnée d’entraînement n : Calculer les sorties observées en propageant les entrées vers l’avant ; Ajuster les poids en rétropropageant l’erreur observée :
Sommaire de l’algorithme 2/2 Où le “gradient local” est défini par : Répéter les étapes 3 et 4 jusqu’à un nombre maximum d’itérations ou jusqu’à ce que la racine de l’erreur quadratique moyenne (EQM) soit inférieure à un certain seuil.
Règle du “delta généralisé” La variation des poids devient : On ajoute un terme d'inertie : Momentum Eviter les problèmes liés à une stabilisation dans un minimum local Où 0≤α≤1 est un paramètre d’inertie
Applications : PMC Classification : Reconnaissance de formes : les lettres de l ’alphabet les chiffres de 0 à 9
Les réseaux de Kohonen Principale différence : Apprentissage non supervisé La sortie exacte ne peut pas être défini a priori Pas de superviseur Pas d’erreur Le réseau fait le classement des données d’entrées en se basant uniquement sur le principe d’auto - organisation On cite Les cartes auto-organisatrice de kohonen Le neural gas
Carte auto organisatrice de kohonen Les neurones de la carte sont organisés selon une topologie bien précise dans une seule couche (grille 2d) Chaque neurone désignera une classe probable Ici la carte de 5*5 neurones Carte Vecteur des poids pour le neurone i wi1 wi2 … win Vecteur d’entrée P wi1 wi2 win p1 p2 … pn p1 p2 … pn
Carte auto-organisée de Kohonen Un apprentissage compétitif Une couche d ’entrée et une couche compétitive. Carte m La couche compétitive possède une structure topologique, ce qui permet de définir un voisinage pour le neurone gagnant n wi1 wi2 win Le neurone peut être référencé par un seul indice i=n*5+m ou deux indice m et n p1 p2 … pn
Carte auto-organisée de Kohonen L’apprentissage se fait en 2 étapes La compétition entre les neurones L’adaptation des neurones w1 wi2 win p1 p2 … pn
Carte auto organisatrice de kohonen Neurone j gagnant ( wj est le plus proche de P ) Le vecteur d’entrée P est connecté à chaque tout neurone i par le vecteur wi des poids Carte wi1 wi2 … win wj1 wj2 wjn wi1 wi2 win p1 p2 … pn Vecteur d’entrée P
Regroupement : clustering Réseaux de Neurones à Compétition : un seul neurone de sortie est activé pour une entrée donnée
Le neurone gagnant Lorsqu’on présente un vecteur d’entrée P on cherche le neurone qui présente le vecteur poids W le plus proche de P Avec S le nombre total des neurones sur la couche de compétition
Applications Applications : Robotique : pilotage de robots Compression des données Classification des données Statistiques
Le concept du voisinage Origine biologique : une zone du cortex correspond à une zone des organes sensoriels et moteurs
Apprentissage compétitif Faire compétitionner les neurones d’un réseau pour déterminer lequel sera actif à un instant donné Produit un «vainqueur» ainsi que, parfois, un ensemble de neurones «voisins du vainqueur » apprentissage est local Contrairement aux autre types d’apprentissage, Seuls les poids synaptiques de ce neurone( et de ceux de son voisinages s’il existe)seront réadaptés
Adaptation des poids Le neurone vainqueur modifiera ses poids synaptiques en les rapprochant (géométriquement) d’un stimulus d’entrée p On un voisinage autour modifie aussi les poids des neurones voisins du neurone gagnant : Taux d’apprentissage
Fonctionnement Construire une carte à 1 ou 2 dimensions permettant de structurer l’espace d’entrée
Fonctionnement p est un vecteur d’entrée (prototype) de dimension (R*1) W est la matrice des poids de taille (R*S) n de dimension (S*1) est le vecteur des distances ni entre un vecteur d’entrée p et la ième colonne de la matrice des poids relatifs au ième neurone pour 1 ≤ i≤ S a : Vecteur des activations de dimension (S*1) ai= compet(ni) = 1 si ni est la distance minimale = 0 sinon où S correspond au nombre de neurones du réseau.
mise à jour des poids La variation des poids ∆iw(t) du neurone i au temps t s’exprime de la façon suivante : Où p(t) désigne le stimulus d’apprentissage au temps t Λg(t) représente le voisinage au temps t du neurone gagnant g.
Topologie de voisinage d’un neurone Pour une carte à deux dimensions : (a) Λ18 = 2 ; (b) Λ18 = 1 ; (c) Λ18 = 0.
Modification du taux d’apprentissage avec le temps Le taux d’apprentissage η dépend du temps En pratique On débute avec η grand qui décroit avec le temps Où η 0 est le taux d’apprentissage initial ητ est le taux d’apprentissage final τ délimite la frontière entre deux phases d’apprentissage
Modification du voisinage d’un neurone avec le temps Même remarque pour le voisinage, en utilisant une décroissance linéaire Où Λ0 est le voisinage initial etendu
Algorithme de Kohonen
La fonction de voisinage gaussienne redéfinir l’algorithme d’apprentissage dans le cas ou la fonction de voisinage est une gaussienne