Apprendre à un réseau de neurones formel à jouer au Démineur
Transcription
Apprendre à un réseau de neurones formel à jouer au Démineur
Apprendre à un réseau de neurones formel à jouer au Démineur I / Présentation II / Premier essai : le réseau à simple couche III / Second essai : le réseau à couche cachée Apprendre à un réseau de neurones formel à jouer au Démineur I / Présentation I.A / Le principe du Démineur Grille non dévoilée Grille après un premier coup 2 Apprendre à un réseau de neurones formel à jouer au Démineur 3 I.B / Introduction au concept de réseau de neurones formel wij i j s j f ( wij si ) i wi ' j i' Entrées f = fonction d’activation Un neurone formel x 1 Entrées de l’utilisateur y Sorties w13 1 3 2 Sortie = 1 si x+y > 0 0 si x+y ≤ 0 w 23 1 Un exemple de réseau => Nécessité d’un algorithme d’apprentissage Apprendre à un réseau de neurones formel à jouer au Démineur 4 I.C / Le programme de jeu - Utilisation de deux réseaux - L’utilisateur joue normalement => fournit des exemples aux réseaux, qui apprennent. Apprendre à un réseau de neurones formel à jouer au Démineur II / Premier essai : le réseau à simple couche II.A / Le réseau 1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 x1 1 w1 x2 2 w2 Sortie w25 x25 25 5 Apprendre à un réseau de neurones formel à jouer au Démineur 6 II.B / L’algorithme d’apprentissage Principe de la descente du gradient : Pour aller vers le minimum : x n 1 x n f ' ( x ) xn On présente un exemple x : L’erreur quadratique du réseau est : 1 E (c wi xi ) 2 2 i D’où c = sortie attendue xi = entrée i wi = poids i E (c wi xi )( xi ) wi i Et la modification du poids wi : wi wi (c wi xi ) xi i 7 Apprendre à un réseau de neurones formel à jouer au Démineur II.C / Résultats Réseau oui, poids 1 1E+22 ε = 0.01 1E+20 1E+18 1E+16 1E+14 1E+12 Divergence très rapide 1E+10 1E+08 1E+06 10000 100 27 25 23 21 19 17 15 13 11 9 7 5 3 1 1 0,01 Réseau oui, poids 1 0,06 0,05 0,04 0,03 0,02 0,01 -0,02 -0,03 ε = 0.001 Réussite oui 50%, non 58% Réussite ensemble 27% Echec ensemble 19% 991 961 931 901 871 841 811 781 751 721 691 661 631 601 571 541 511 481 451 421 391 361 331 301 271 241 211 181 151 91 61 121 -0,01 31 1 0 8 Apprendre à un réseau de neurones formel à jouer au Démineur Réseau oui, poids 1 0,04 0,035 0,03 0,025 0,02 0,015 0,01 0,005 1141 1103 1065 989 1027 951 913 875 837 799 761 723 685 647 609 571 533 495 457 419 381 343 305 267 229 191 153 -0,005 115 77 1 39 0 -0,01 ε = 0.0005 Réussite oui 46%, non 62%, ensemble 16% Echec ensemble 7% Réseau oui, poids 1 0,012 0,01 0,008 0,006 0,004 0,002 931 900 869 838 807 776 745 714 683 652 621 590 559 528 497 466 435 404 373 342 311 280 249 218 187 156 94 63 125 -0,002 32 1 0 ε = 0.0001 Réussite oui 41%, non 64%, ensemble 9% Echec ensemble 4% Apprendre à un réseau de neurones formel à jouer au Démineur 9 III / Second essai : le réseau à couche cachée III.A / Intérêt de la couche cachée Exemple : un réseau à simple couche ne peut calculer la fonction XOR. Un réseau à couche cachée peut le faire : 1 -0.5 -1.5 -2 1 x1 1 1 1 x2 x1 XOR x2 Apprendre à un réseau de neurones formel à jouer au Démineur III.B / Structure du réseau 1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 On relie 8 blocs de 8 cases chacun à un neurone caché : 24 neurones d’entrée 8 neurones cachés 64 connections vers les neurones cachés 8 connections vers la sortie 10 Apprendre à un réseau de neurones formel à jouer au Démineur III.C / L’algorithme d’apprentissage Nécessité d’avoir des fonctions dérivables => fonction d’activation sigmoïde ( x) 1 1 ex ' ( x ) ( x)(1 ( x)) Fonction d’erreur : 1 E ( w1 , w2 ,..., wn ) (c s ) 2 2 (c = sortie attendue, s = sortie calculée) E wij si j wij si (1 si )(c si ) i si (1 si ) pour une sortie w j ij jSuccesseurs ( i ) sinon 11 Apprendre à un réseau de neurones formel à jouer au Démineur 12 III.D / Résultats et conclusion Bons résultats avec ε = 0.0002 : - 70 à 75% de réussite pour chaque réseau - 50% de réussite combinée - 10% d’échec combiné => Amélioration par rapport au simple couche Conclusion : - Résultats un peu décevants mais qui pourraient encore être améliorés - Applications dans des domaines variés