Réseau de neurones Fonctions d`activation g Apprentissage
Transcription
Réseau de neurones Fonctions d`activation g Apprentissage
Réseau de neurones : Réseau de neurones Fonctions d’activation g Plusieurs neurones interconnectés ensemble Chaque neurone a la forme suivante Fonctions continues entre 0 et 1 (a) (b) Fonction d’activation à seuil (step function) Fonction sigmoïde 26 27 Réseau de neurones : Réseau de neurones : Apprentissage Perceptron L’ajustement des poids Modifier les paramètres de la fonction représentée par le réseau. a1 a3 a5 Par exemple, la sortie du réseau a5 dépend de: La valeur des entrées a1 et a2. Des paramètres de la fonction qui sont les poids W. a2 a4 a5 = g (W3,5 a3 + W4,5 a4 ) Ij = g (W3,5 .g (W1,3 a1 + W2,3 a2 ) + W4,5 .g (W1, 4 a1 + W2, 4 a2 )) Neurones d'entré d'entrée Wji Oi Neurones de sortie Réseau de perceptrons 28 Ij Neurones d'entré d'entrée Wj O Neurone de sortie Un seul perceptron 29 1 Réseau de neurones - perceptron : Réseau de neurones - perceptron: Fonction linéaire Représentation de fonctions X0 = -1 w0 X1 X2 Les perceptrons peuvent représenter toutes les fonctions linéairement séparables. w1 .. . w2 X1 ai Somme - wn - Xn X1 + + + - + - - + X2 Exemple de fonction liné linéairement séparable X2 Une fonction non liné linéairement sé séparable (OU Exclusif) 30 31 Réseau de neurones – perceptron : Réseau de neurones - perceptron : Exemple de fonction booléenne Règle d'apprentissage du perceptron La fonction ET Les entrées prennent les valeurs 1 (vrai) ou 0 (faux) X0 = -1 ai 0.8 X1 X2 0.5 Commencer avec des poids de valeurs aléatoires. Traiter tous les exemples d'entraînement jusqu'à ce que le perceptron les classifie tous correctement. Pour chaque exemple, les poids sont révisés à l'aide de la règle suivante: wi ← wi + α × Err × g ' (in )× xi Somme 0.5 où Err = y − g (in ) Pour une fonction sigmoïde : Pour un OU, quelle valeur donner à w0 ? 32 y : sortie dé désiré sirée g : sortie obtenue α : constante d'apprentissage, généralement petite (ex. 0.1) g ' = g (1 − g ) 33 2 Réseau de neurones - perceptron : Réseau de neurones - perceptron : Règle d'apprentissage du perceptron Algorithme d’apprentissage ∆wi ← α .( y − g (in )).g ' (in ).xi Pourquoi une telle règle converge-t-elle? Sortie du perceptron Erreur y – g(in) Input xi Bonne valeur 0 --- Inchangé Trop faible + + - Augmente Diminue Trop élevée - + Diminue Augmente Poids Wi 34 35 Réseau de neurones - perceptron : Réseau de neurones : Exemple d’apprentissage Réseau multicouches ai aj ak Wjk Wij Neurone(s) de sortie Neurones caché cachés Neurones d'entré d'entrée 36 37 3 Réseau de neurones multicouches : Réseau de neurones multicouches : Expressivité Algorithme de rétropropagation Expressivité La couche cachée élargie l’espace d’hypothèses que le réseau peut représenter Utilise l'algorithme de descente du gradient. Tente de réduire la différence entre les sorties du réseau et les sorties désirées. L'erreur E du réseau est: E (w ) = 1 2 ∑ ∑ ( yi − gi (in )) 2 d∈D i∈sorties yi : sortie dé désiré sirée ai ou gi(in) : sortie obtenue D : ensemble des exemples d'entraî d'entraînement sorties : ensemble des sorties du ré réseau 38 39 Réseau de neurones multicouches : Réseau de neurones multicouches : Algorithme de rétropropagation Algorithme de rétropropagation - Initialiser les poids à de petites valeurs aléatoires - Habituellement entre -0.05 et 0.05 - Tant que la condition d'arrêt n'est pas atteinte - Pour chaque exemple d'entraînement Calculer les sorties du réseau. Pour toutes les unités de sortie i, calculer l'erreur: ∆ i ← g ' (ini )× ( yi − ai ) Pour toutes les unités cachées j, calculer l'erreur: Mettre à jour tous les poids Wji ∆ j ← g ' (in j )∑ W ji ∆ i i W ji ← W ji + α × a j × ∆ i 40 41 4 Réseau de neurones multicouches : Réseau de neurones multicouches : Exemple Exemple – Calcul de la sortie Entré Entrées -1 x0 2 x1 5 x2 Couche caché cachée W04 = -0.5 -1 W14 = -0.2 x3 x4 W24 = 0.1 Entré Entrées Sortie W35 = -0.4 x5 W45 = 0.3 2 -1 x0 2 x1 5 x2 α = 0.05 W04 = -0.5 Couche caché cachée -1 W14 = -0.2 x3 x4 in4 = a0 w04 + a1 w24 + a2 w24 2 in5 = a3 w35 + a4 w45 = (− 1× −0.4 ) + (0.6457 × 0.3) = 0.5937 = 0.6 Fonction sigmoïde g aux noeuds x4 et x5 x5 W45 = 0.3 W24 = 0.1 = (− 1× −0.5) + (2 × −0.2 ) + (5 × 0.1) Taux d’apprentissage α = 0.05 Sortie W35 = -0.4 1 = 0.6457 a4 = g (in4 ) = 1 − e −0.6 a5 = g (in5 ) = 1 = 0.6442 1 − e −0.5937 42 Réseau de neurones multicouches : Réseau de neurones multicouches : Exemple – Erreur ∆ de sortie Entré Entrées -1 2 5 x0 x1 x2 α = 0.05 W04 = -0.5 W14 = -0.2 Couche caché cachée -1 x3 x4 W24 = 0.1 Exemple – ∆ couche cachée Entré Entrées Sortie W35 = -0.4 a4 = 0.6457 W45 = 0.3 43 -1 a5 = 0.6442 x5 2 2 ∆ 5 = g ' (in5 )× ( y5 − a5 ) 5 = a5 × (1 − a5 ) × ( y5 − a5 ) x0 x1 x2 α = 0.05 W04 = -0.5 W14 = -0.2 Couche caché cachée -1 x3 W35 = -0.4 a4 = 0.6457 x4 W45 = 0.3 W24 = 0.1 Sortie a5 = 0.6442 ∆ 5 = 0.3108 x5 2 ∆ 4 = g ' (in4 )∑ W4i ∆ i i = 0.6442 × (1 − 0.6442 )× (2 − 0.6442) = 0.3108 44 = a4 × (1 − a4 )× W45 ∆ 5 = 0.6457 × (1 − 0.6457 )× (0.3 × 0.3108) = 0.0213 45 5 Réseau de neurones multicouches : Réseau de neurones multicouches : Exemple – ajustement de poids Exemple – ajustement de poids Entré Entrées -1 2 5 x0 x1 x2 α = 0.05 W04 = -0.5 Couche caché cachée -1 x3 a4 = 0.6457 W35 = -0.4 x4 W24 = 0.1 a5 = 0.6442 -1 ∆ 5 = 0.3108 ∆ 4 = 0.0213 W14 = -0.2 Entré Entrées Sortie W45 = 0.3 x5 2 2 w45 = w45 + α × a4 × ∆ 5 5 = 0.3 + 0.05 × 0.6457 × 0.3108 = 0.3100 w35 = w35 + α × a3 × ∆ 5 x0 x1 x2 Couche caché cachée α = 0.05 -1 W04 = -0.5 a4 = 0.6457 Sortie W35 = -0.4 x4 a5 = 0.6442 ∆ 5 = 0.3108 ∆ 4 = 0.0213 W14 = -0.2 W24 = 0.1 x3 W45 = 0.3 x5 2 w04 = w04 + α × a0 × ∆ 4 = −0.5 + 0.05 × −1× 0.0213 = −0.5011 w14 = w14 + α × a1 × ∆ 4 = −0.2 + 0.05 × 2 × 0.0213 = −0.1979 w24 = w24 + α × a2 × ∆ 4 = −0.4 + 0.05 × −1× 0.3108 = −0.4155 = 0.1 + 0.05 × 5 × 0.0213 = 0.1053 46 47 Réseau de neurones multicouches : Réseau de neurones multicouches : Condition d'arrêt Convergence Le nombre d'itérations est important car: Si trop faible, l'erreur n'est pas suffisamment réduite. Si trop grand, le réseau devient trop spécifique aux données d'entraînement. Il y a plusieurs conditions d'arrêt possible La surface qui représente l'erreur contient plusieurs minimums locaux. L'algorithme ne garantit pas l'atteinte du minimum global. Mais, tout de même bon en pratique Après un certain nombre fixe d'itérations. Lorsque les poids se stabilisent Lorsque l'erreur dans les sorties des exemples d'entraînement descend en dessous d'une certaine borne. Lorsque l'erreur avec les exemples de validation descend en dessous d'une certaine borne. 48 Poids initialiser à de petites valeurs. La sigmoïde est presque linéaire pour de petites valeurs, donc pas de minimums locaux. Les poids grandissent à une vitesse contrôlée par le coefficient d'apprentissage. Donc, les poids ont le temps de se rapprocher du minimum global avant que la fonction devienne plus complexe avec plusieurs minimums locaux. 49 6 Réseau de neurones multicouches : Réseau de neurones multicouches : Caractéristiques Exemple du restaurant Instances représentées par des pairs attribut-valeur. Les attributs peuvent être indépendants ou non. Les valeurs peuvent être réelles. Sorties Les exemples peuvent contenir des erreurs. Le temps d'apprentissage peut être long. L'évaluation de la fonction apprise est très rapide. La fonction visée est souvent très peu compréhensible par un humain. Peuvent être des valeurs discrètes, continues ou vectorielles. 50 51 Réseau de neurones multicouches : Réseau de neurones : Construction du réseau Applications Il n’existe aucune technique précise Il y a quelques algorithmes: Algorithmes génétiques « Optimal brain damage » La construction se fait souvent par essais et erreurs Demande beaucoup de temps de calcul On commence avec un réseau complètement connecté. On enlève les poids qui sont proches de zéro. On peut aussi enlever les neurones qui ne contribuent pas au résultat. On entraîne de nouveau et on répète jusqu’à ce qu’il n’y ait plus d’amélioration. Pavage (Tiling algorithm) On commence avec une seule unité. On ajoute successivement des neurones pour prendre en compte les exemples qu’on arrive pas à classifier correctement. On n’ajoute que le nombre nécessaire pour couvrir tous les exemples. 52 L'interprétation d'images. La reconnaissance vocale. La reconnaissance de mots écrits à la main. L'apprentissage de stratégies de contrôle pour les robots. Une des meilleurs méthodes connues pour l'interprétation de données provenant de capteurs dans le monde réel. 53 7 Réseau de neurones : Réseau de neurones : Applications Applications Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une autoroute. 54 L’architecture d’ALVINN est un réseau de neurones à rétropropagation avec une couche cachée. La sortie est une distribution de Gauss centrée autour de la direction appropriée. 55 Réseau de neurones : Reconnaissance de chiffres 3NN Taux d’erreur (%) RN 300 Hidden LeNet LeNet + Boosting SVM Virtual SVM Match Forme 0.63 2.4 1.6 0.9 0.7 1.1 0.56 1000 10 30 50 2000 200 Mémoire (Mbytes) 12 .49 .012 .21 11 Temps d’entraînement 0 7 14 30 10 8.1 3.2 1.8 0.5 1.8 Temps calcul (ms/pixel) % rejet pour 0.5 d’erreur 56 8