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  ex
 ' ( 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
jSuccesseurs ( 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