Technologies de l’intelligence d’affaires Séance 13 Les réseaux de neurones
Références: « Neural Network Node » du « Help » de SAS EM Berry et Linoff, chapitre 13 Han et Kamber, chapitre 7, section 7.5 Hastie et al. (2001). The elements of statistical learning, chapitre 11, section 11.3 à 11.9 http://www.web-datamining.net/publications/dossiers/neural.asp http://www.shef.ac.uk/psychology/gurney/notes/contents.html http://www-2.cs.cmu.edu/~awm/tutorials/list.html
Introduction Les réseaux de neurones à flot direct (feedforward neural network) englobent une vaste classe de modèles et de méthodes d’apprentissage. Ils permettent de détecter des relations non linéaires complexes dans les données dans le but de faire des prédictions.
Les réseaux de neurones sont particulièrement utiles pour les problèmes où Aucune formulation mathématique connue relie la variable dépendante (output/sortie) aux variables indépendantes (input/entrée). La prédiction est beaucoup plus importante que la compréhension et l’explication de la variabilité de la variable dépendante. Il y a beaucoup de données pour l’apprentissage.
Le réseau de neurones le plus largement répandu dans la pratique est appelé réseau à rétro-propagation (backpropagation) ou perceptron. Il y a beaucoup de mystère et de « magie » entourant les réseaux de neurones. Cependant, on peut les voir simplement comme des modèles statistiques non linéaires.
Une neurone « j » - f å Combinaison linéaire Entrées vecteur xl (input) sortie (output) Fonction de transfert ou d’activation Poids å w1j w2j wpj xl1 xl2 xlp bj
Fonctions de transfert Il y a plusieurs possibilités pour les fonctions de transfert. Les plus utilisés sont: Identité: f(g)=g Logistique: f(g)=1/[1+exp(-g)] Tanh: f(g)=1 - 2/[1+exp(2g)] Note: pour la neurone « j »
Un réseau de neurones
Réseau de neurones Perceptron multi-couches (Multilayer Perceptron) Sortie: yk Couche de sortie (Output layer) f(gk) wjk Couche cachée (Hidden layer) f(gj) wij Couche d’entrée (Input layer) Entrée : xl
Objectif Trouver les poids (wij , wjk) et les biais (bj , bk) de façon à minimiser les erreurs de prédiction. Fonctions d’erreurs à minimiser: Somme des carrés des erreurs: Entropie:
Remarque Si le réseau a seulement une couche caché avec une seule neurone et fonction d’activation est Identité et fonction d’erreurs est la somme des carrés des erreurs => modèle de régression linéaire Logistique et entropie => modèle de régression logistique
Algorithme pour trouver les paramètres du réseau (poids et biais) La rétro-propagation du gradient est l'algorithme le plus répandu. Il consiste à suivre la "ligne de plus grande pente" de la "surface d'erreur", qui doit logiquement conduire à un minimum (local ou global, toute la difficulté est là). Le principe de l'algorithme est de remonter couche par couche, des neurones de sortie vers les neurones d'entrées et de modifier les poids synaptiques en amont de chaque couche, de manière à diminuer l'erreur commise en sortie.
Rétro-propagation du gradient Le processus est en général itératif (le problème étant généralement non linéaire) : à chaque itération, l'erreur globale diminue. Sa capacité de convergence peut varier selon les problèmes posés, l'architecture du réseau, les fonctions d'activation retenues, et bien entendu, selon la base d'apprentissage et les variables sélectionnées en entrée du réseau.
L'intérêt du Perceptron Multi-Couches est qu'il se prête idéalement à ce type d'algorithme de par sa structure et ses effets de propagation fortement structurés et maîtrisés. Il existe des variantes de la rétro-propagation du gradient, s'inspirant par exemple des travaux réalisés en recherche opérationnelle. Ainsi, dans SAS EM, 6 algorithmes sont implémentés dans le noeud "Neural Network" : Levenberg Marquardt, Quasi Newton, Cojuguate Gradient, Quickprop Rprop et Standard Backprop (rétropropagation du gradient).
(équations de rétro-propagation) Ex. algorithme de rétro-propagation fonction d’erreurs: somme des carrés fonction d’activation: logistique Couche de sortie (Output layer) Couche cachée (Hidden layer) (équations de rétro-propagation)
Les poids et les biais sont mis à jour à chaque itération de la façon suivante: Voir exemple 7.5 de Han et Kamber
Critères d’arrêt Les changements des paramètres d’une itération à l’autre sont plus petits qu’un seuil très petit et prédéterminé (convergence des paramètres). La valeur de la fonction d’erreurs est plus petite qu’un seuil très petit et prédéterminé. Le nombre d’itérations a atteint un nombre très grand prédéterminé.
Architecture (topologie) du réseau de neurones Si le fichier d’apprentissage contient suffisamment de données, qu’il y a suffisamment de neurones dans le réseau, et beaucoup de temps pour entraîner le réseau, un réseau perceptron multi-couches avec une seule couche cachée peut apprendre à « approximer » n’importe quelle fonction avec n’importe quel degré de précision. Pour cette raison, les réseaux de neurones sont également connus sous l’appellation « approximateurs universels ».