AlphaZero: apprentissage par renforcement et … R eseaux de Neurones L’algorithme AlphaZero R...

Preview:

Citation preview

AlphaZero:apprentissage par renforcement et reseaux de

neurones a convolutions pour les jeux de plateau

Remi Coulom

Juin 2018

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

AlphaZeroPlan de l’expose

Janvier 2016: Le choc AlphaGo

Des resultats spectaculaires

Domine les meilleursconcurrents (99.8% devictoires)

Premiere victoire contre unjoueur humain professionnel(Fan Hui, championd’Europe)

Remi Coulom AlphaZero 2 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

AlphaZeroPlan de l’expose

Mars 2016: Defaite d’un champion legendaire

Match contre Lee Sedol

Victoire 4-1 pour la machine

Choc immense dans lemonde du go

Un film documentaire,AlphaGo (disponible surNetflix)

Remi Coulom AlphaZero 3 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

AlphaZeroPlan de l’expose

Octobre 2017: AlphaGo Zero, Decembre 2017: AlphaZero

Apprendre a partir de zero

AlphaGo apprenait a imiterdes parties d’experts

AlphaGo Zero apprend desparties qu’il joue contrelui-meme

AlphaZero generalisel’approche aux echecs et aushogi

Regles → AlphaZero → IA forte

go

echecs

shogi

gomoku

Remi Coulom AlphaZero 4 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

AlphaZeroPlan de l’expose

Plan de l’expose

Reseaux de Neurones

L’algorithme AlphaZero

Application au morpion

Remi Coulom AlphaZero 5 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Regression lineaire

yi = w0 + w1 × xi

Erreur E =∑

i (yi − y∗i )2

Trouver w0 et w1 quiminimisent E

Remi Coulom AlphaZero 6 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Un neurone

Remi Coulom AlphaZero 7 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Rectified Linear Unit

Remi Coulom AlphaZero 8 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Reseau de neurones scalaire

Remi Coulom AlphaZero 9 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Descente de gradient stochastique

On initialize les poids aleatoirement

On mesure l’erreur E sur une entree xi aleatoire

w ← w − η ∂E∂w

η coefficient d’apprentissage (learning rate)

Remi Coulom AlphaZero 10 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Donnees sous forme de matrice: images, jeu

Remi Coulom AlphaZero 11 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Convolution

Remi Coulom AlphaZero 12 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Regression lineaireReseaux de neurones scalaireDescente de gradientReseaux de neurones a convolutions

Architecture du reseau: une couche

Remi Coulom AlphaZero 13 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

Apprentissage par renforcement

Maximiser la somme des recompenses au cours du temps

Probleme de controle optimal

Par opposition a apprentissage supervise (probleme deregression)

Remi Coulom AlphaZero 14 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

L’approche acteur-critque

Le systeme estime, pour chaque action a, et chaque etat s:

acteur: π(s, a), probabilite de choisir a dans s

critique: V (s), esperance de recompense cumulee depuisl’etat s

Remi Coulom AlphaZero 15 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

Architecture du reseau

Remi Coulom AlphaZero 16 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

MCTS (Monte Carlo Tree Search)

Remi Coulom AlphaZero 17 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

MCTS avec un reseau de neurones

Selection de l’action a

maxa

Q(s, a) + cπ(s, a)

√∑b N(s, b)

1 + N(s, a)

Q(s, a): moyenne des evaluations

c: coefficient d’exploration

π(s, a): probabilite de a

N(s, a): nombre de visites de a

Remi Coulom AlphaZero 18 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

AlphaZero: 1. Jouer contre soi-meme

Remi Coulom AlphaZero 19 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

AlphaZero: 2. Apprendre

Remi Coulom AlphaZero 20 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

Calculs de AlphaGo Zero

80 couches de 256 unites.

256× 256 convolutions 3x3 par couche

environ 50 millions de parametres

pres de 20 milliards de multiplications pour une evaluation

5000 TPUs pendant 30 jours

4,9 millions de parties jouees a 1,600 simulations par coup

Remi Coulom AlphaZero 21 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Apprentisage par renforcementMCTSAlphaZero

Resultat

Le programmable est imbattable par les humains

Un style original, imite par les pros

Remi Coulom AlphaZero 22 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Application au morpion (gomoku narabe)

Tres populaire en Asie etEurope de l’Est.

Les meilleures programmesne battent les meilleurshumains que depuis tresrecemment.

Une competition annuelleentre programmes: laGomocup.

Remi Coulom AlphaZero 23 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Apprentissage

12 couches

128 neurones

environ 1 millions de poids

(contrainte de taille de la gomocup)

Remi Coulom AlphaZero 24 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Detection de l’alignement de 5

Remi Coulom AlphaZero 25 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Iteration 2

Remi Coulom AlphaZero 26 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Iteration 11

Remi Coulom AlphaZero 27 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Iteration 31

Remi Coulom AlphaZero 28 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Position de depart V = −0.3611

Remi Coulom AlphaZero 29 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Iteration 9 V = −0.10

Remi Coulom AlphaZero 30 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Iteration 20 V = −0.70

Remi Coulom AlphaZero 31 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Iteration 25 V = +0.8741

Remi Coulom AlphaZero 32 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Iteration 31 V = +0.9974

Remi Coulom AlphaZero 33 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 34 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 35 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 36 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 37 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 38 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 39 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 40 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 41 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 42 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 43 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 44 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 45 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 46 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 47 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Partie

Remi Coulom AlphaZero 48 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

MorpionResultats experimentaux

Victoire contre Yixin

Le match

Yixin: Vainqueur de la Gomocup, 7 fois consecutivement

5 secondes par coup, GPU: GTX 960M, CPU: i7-6700HQ a2.60 GHz

41 ouvertures de piskvork, 1 partie de chaque couleur

Resultat: victoire 48-34 (8 fois 2-0, 1 fois 0-2, 32 fois 1-1).

Environ 800 evaluations par seconde (Yixin: 1000 fois plus?)

Remi Coulom AlphaZero 49 / 50

IntroductionReseaux de Neurones

L’algorithme AlphaZeroResultats experimentaux

Conclusion

Conclusion

Une methode generique pour les jeux de plateau

Pas necessaire de construire des heuristiques a la main

Fonctionne hyper bien

Remi Coulom AlphaZero 50 / 50

Recommended