|
AlphaZero par fastkoala le
[Aller à la fin] |
| Informatique | |
On n'a plus de nouvelles depuis sa victoire sur Stockfish 9.
D'autres match prévu contre un programme ou même humain ? Le nirvana est-il atteint ?
|
|
On parle de faire participer ALphaZero à la commission technique de la FFE pour qu'il (nous ?) apprenne à interpréter les règlements de la bonne façon
|
|
C'était Stockfish 8. Pas 9.
|
|
Bah... ça n'aurait pas été très différent avec SF9 et on peut imaginer ce que ça donnerait après quelques milliers de parties d'entrainement d'AlphaZero contre SF9. Il faut bien comprendre que ce serait de mieux en mieux pour AlphaZero qui continuerait à progresser en fonction du style de son adversaire.
Ce qui serait cool c'est qu'une autre boite que Google développe son propre logiciel sur le même principe et qu'un match soit organisé entre les deux. Mais je pense que cette fois nous ne pourrions pas comprendre. On comprend les sacrifices d'AlphaZero contre SF mais on ne saurait pas comprendre les coups qui seraient joués par une machine pour que justement l'adversaire ne puisse pas jouer ces sacrifices.
|
|
A0 ne progresse pas à l'aide de son adversaire, il s'entraîne seul. C'est ce qui fait sa force paradoxalement.
L'auteur de Stockfish a expliqué que son programme n'a pas été utilisé comme il fallait. Je réclame un match public avec chaque équipe derrière sa machine.
|
|
Pour une comparaison juste il faudrait en plus que SF9 tourne sur le même matériel qu'AlphaZero :) AZ gagnerait sans doute encore, mais l'écart serait nettement réduit je pense.
|
|
@elkine : AlphaZero pourrait parfaitement utiliser les parties qu'il joue contre d'autres pour progresser. Il ne l'a pas fait uniquement parce que c'est contraire au concept même d'un ordinateur qui apprendrait par lui-même.
@Benji3000 : il faut bien comprendre que c'est moins une question de machine qu'une question de conception différente du moteur.
|
|
Il y a tellement d'argument marketing limite mensongers dans la façon dont les choses ont été présentées que ça laisse un goût amer et ça décourage presque à en attendre vraiment quoique ce soit.
J'espère qu'il y aura une suite à cette histoire ceci dit
|
|
@JLuc74 : il faudrait aussi que tu comprennes bien que sur un PC classique, AlphaZero serait fort loin de son niveau actuel.
Je maintiens ma remarque ci-dessus :)
|
|
@Benji : tu semble voir le niveau comme de la puissance brute de calcul mais ce qu'apporte AlphaZero c'est avant tout une meilleure "compréhension" du jeu. Il ne faut pas oublier qu'il analyse 1000 fois moins de coups à la seconde que SF.
Je ne crois pas que le niveau d'un ordinateur d'échecs soit directement lié à sa puissance de calcul. A module égal celui qui est sur la machine la plus puissante est supérieur mais est-ce toujours le cas avec des modules aussi différents ?
|
|
@JLuc : il me semble qu'un détail élémentaire t'échappe. Bien sûr que la force n'est pas linéaire en la puissance de calcul - on est d'accord là-dessus. Mais SF - tout comme AZ ! - est très dépendant de la puissance de calcul. Et jouera forcément mieux si la puissance augmente. On est au moins d'accord là-dessus non ? Je n'ai pas dit "SF gagnera", mais "il perdra moins" :)
|
|
"Et jouera forcément mieux si la puissance augmente"
C'est ce que j'ai écrit
"A module égal celui qui est sur la machine la plus puissante est supérieur"
|
|
On va finir par converger, j'y crois :)
"À module égal celui qui est sur la machine la plus puissante est supérieur"
Oui ! Je n'ai jamais dit le contraire.
"À adversaire fixé (module + puissance), il vaut mieux tourner sur un supercalculateur que sur une machine de bureau"
^-- c'est ce que je dis depuis le début
Oui ? :-)
|
|
Je ne sais pas ce que tu veux dire par "À adversaire fixé (module + puissance)"
|
|
AlphaZero, sur les machines Google...
(Tu commences à être de mauvaise foi là ;-) )
|
|
pas sur que tout le monde est compris qu'AlphaZero tournait sur une architecture d'un principe de fonctionnement totalement différent qu'un pc domestique...
"À module égal" donc on ne compare ni SF ni AZ :) car AZ n'est pas un module...
Pis bon, Google fera comme IBM en son temps, il sortira le joujou à 5% de ses capacités pour battre le GMI du coin qui voudra ramasser quelques dollars pour se faire battre et ira sur un autre domaine. Et en attendant, il peut vendre son cloud tpu tranquillement le temps que les autres se mette au niveau de son architecture.
|
|
Je rejoins Hanam, les échecs ne sont qu'un outil de test et de développement pour DeepMind (Google) et pas une finalité en soi. L'objectif d'AlphaZéro qui est une IA (un réseau de neurones) et pas un module d'échecs c'est à terme de résoudre des problèmes bien plus complexes que les échecs, je pense qu'ils ont fait le tour de la question concernant les échecs, le Go ou le Shogi.
|
|
@MChoiz : il faut aussi comprendre que les joueurs d'échecs sont toujours demandeurs de modules plus puissants et qu'il serait bien étonnant que dans les prochaines années des modules basés sur l'IA ne soient pas disponibles pour le grand public. Ils ne s'appelleront pas AlphaZero mais ils existeront.
DeepBlue n'existe plus mais les modules actuels pour PC sont plus forts encore. Il en sera de même pour cette nouvelle conception des modules.
|
|
Dans 10 ans Alphazero rejoindra le club Deep Blue et fera partie des objets historiques; c'est rassurant de voir que l'intelligence a des ressources inépuisables et qu'il restera toujours une immensité à découvrir pour ceux qui ont la fibre explorateurs.
|
|
@Hanam : oui, mauvais choix de vocabulaire t'as raison :) le raisonnement reste le même ceci dit.
@MChoiz : en effet Google a mieux à faire que de jouer aux échecs :) mais ça lui a fait de la pub.
J'ai fini par parcourir l'article, indiquant que seuls 4 TPUs ont été utilisés, contre 48 pour AlphaGo v1. Je pensais que les deux en utilisaient beaucoup... [EDIT : ce ne sont pas les mêmes générations de TPUs]. Du coup on se rapproche largement d'un programme utilisable sur un ordinateur lambda ? ...qui embarquerait des TPUs en plus des CPUs ? J'ai cru comprendre que ça s'ajoutait et ne remplaçait pas. Du coup l'enjeu pour les joueurs pros n'est pas la future disponibilité d'un "AlphaZero privé", mais sa date de commercialisation ? - comme Hanam conluait.
Sinon globalement DeepMind avec AlphaZero n'a fait qu'appliquer des recettes connues depuis des décennies - à en croire l'article en tout cas. Il manquait "juste" le matériel pour faire tourner tout ça.
|
|
Le problème c'est pas tant la commercialisation, c'est "facile" de reproduire AZ, ce n'est qu'un réseau de neurones qui connaît les règles des échecs et apprend par renforcement.
C'est que le matériel est inaccessible pour le faire arriver au niveau qu'a atteint Google. Les 4 TPU dont on parle c'est une technologie de Google qui n'est pas à vendre et qu'ils ne comptent pas commercialiser et qui va 30 fois plus vite que les GPU de Nvidia commercialisés eux-même entre 5000 et 10 000 euros.
Et même pour faire tourner disons un AZ "pré-entraîné" on parle surement de plusieurs dizaines de milliers d'euros de matériel.
Ça arrivera, mais à une échelle d'une dizaine d'années.
|
|
On est d'accord ; quand je parle de "date de commercialisation" ça veut bien dire "date de disponibilité auprès du grand public". Une dizaine d'années semble raisonnable. Et, pas à vendre actuellement mais ça viendra... :) c'est déjà à louer en version cloud.
EDIT : je me demande si ça a encore un sens d'attendre une "version desktop" ; tout un tas d'applications vivent en ligne. On peut imaginer un AlphaZero (go, échecs ou autres) à la demande dans un cloud (Google ou autre), se substituant à un éventuel logiciel qui peut-être sera dispo dans 10 ans. Car en plus du matériel il faudra le code - simple à décrire mais l'implémentation c'est en général autre chose.
Peut-être ChessBase ou autre cherchera-t-elle à recoder AZ puis à louer les services de Google pour faire payer le résultat ?
|
|
Je ne me fais pas trop de souci pour le code, des bonnes âmes développeront une version libre, mais pour dépasser le niveau MI il faut un matériel monstrueux.
|
|
Et voilà. Je viens d'essayer, elle joue pas mal mais a loupé un clouage à un moment.
elkine – Leela zero
1. e4 e6 2. Nf3 d5 3. d3 dxe4 4. dxe4 Qxd1+ 5. Kxd1 Bc5 6. Ke1 Nf6 7. Nc3 Ng4 8. Nd1 Nd7 9. h3 Ngf6 10. Nc3 a6 11. Bf4 c6 12. Bd3 O-O 13. Ke2 Re8 14. g4 e5 15. Be3 h6 16. Rag1 Bf8 17. h4 g6 18. g5 Nh5 19. gxh6 Ndf6 20. Bc4 b5 21. Rxg6+ Kh7 22. Bxf7 Re7 23. Ng5+ Kh8 24. Rg1 Bd7 25. Ke1 Be8 26. Bxe8 Rexe8 27. Nf7+ Kh7 28. R6g5 b4 29. Ne2 Re7 30. Nxe5 Bxh6 31. Rf5 Rae8 32. Bxh6 Rxe5 33. Be3 Rxe4 34. Ng3 Rg4 35. Ke2 Nxg3+ 36. Rxg3 Rxg3 37. fxg3 Nd5 38. Rf3 Kg6 39. Kd3 Kh5 40. Rf5+ Kg4 41. Rg5+ Kf3 42. Bd4 Re1 43. h5 Rd1+ 44. Kc4 Rd2 45. h6 Rxc2+ 46. Kd3 Rh2 47. Bg7 Ne3 48. Rg6 Ng4 49. Rxc6 a5 50. Kc4 Kxg3 51. Kb5 Rh5+ 52. Rc5 Rh3 53. Kxa5 Nxh6 54. Bxh6 Rxh6 55. Kxb4 Rh2 56. Kc3 Kf4 57. a4 Ke4 58. a5 Rh1 59. Kc4 Rc1+ 60. Kb5 Rb1 61. b4 Kd4 62. a6 Ra1 63. Kb6 Rb1 64. Rb5 Kc4 65. a7 Ra1 66. Ra5 Kxb4 67. Rxa1 Kb3 68. a8=Q Kb4 69. Qf3 Kc4 70. Ra4#
avant 20...b5
|
|
Merci ! Plus qu'à contribuer à Leela :)
|
|
https://lichess.org/blog/WtNG7CcAAFMTTHPj/gm-andrew-tang-vs-leela-chess-zero
Dimanche prochain :) j'ai hâte de voir ça.
|
|
elle a progressé on dirait
|
|
Victoire très claire de Leela, ne perdant aucune partie (mais se retrouvant parfois dans des positions hasardeuses, quelques finales perdantes mal gérées par Andrew Tang). De plus Leela tourne sur une machine tout à fait normale. Il faudra encore quelques années sans doute pour arriver aux perfs d'AZ et les dépasser, mais si tout le monde contribue ça peut aller plus vite :)
|
|
J'ai fait joué Leela contre différents modules, elle se fait écraser mais essentiellement à cause d'une faiblesse de calcul et de prises de risque trop importantes.
Elle a faillit gagner une finale de T+2P contre T mais se fait piéger par une Tour folle. C'est significatif je crois du manque de profondeur de calcul en finale. AlphaZero fonctionnant sur une machine autrement plus puissante que mon PC il n'avait sans doute pas ce problème.
Sur une bonne vingtaine de parties elle n'en gagne qu'une, contre une ancienne version de Rybka et on retrouve dans son style ce qu'on avait vu avec AlphaZero, c'est à dire un enfermement complet de l'adversaire.
L'idéal serait une machine qui combinerait les deux principes. L'intelligence artificielle pourrait faire appel, quand elle le souhaite, à un module de calcul classique pour vérifier ses coups. Là on aurait quelque chose d'extrêmement puissant.
[Date "2018.04.28"]
[White "Lczero"]
[Black "Rybka 2.3.2a 64 bit"]
[Result "1-0"]
[BlackElo "2400"]
[ECO "B12"]
[Opening "Caro-Kann"]
[Variation "Gurgenidze-Modern: 3.Nd2 g6"]
[WhiteElo "2400"]
[TimeControl "600+10"]
[PlyCount "120"]
1. e4 c6 2. d4 d5 3. Nd2 g6 4. c3 Nf6 5. e5 Nfd7 6. h4 c5 7. h5 Bg7 8. Bd3 Nc6 9. Ne2 Nb6 10. a4 Bg4 11. h6 Bf8 12. a5 Nd7 13. a6 bxa6 14. Qa4 Qc7 15. Bxa6 Nb6 16. Qb3 cxd4 17. Bb5 d3 18. Nd4 Bd7 19. Bxc6 Bxc6 20. Nxc6 Qxc6 21. Nf3 Nd7 22. Nd4 Qc4 23. Qxc4 dxc4 24. e6 Nc5 25. Ra5 Nb7 26. Ra6 Nd6 27. Kd1 f6 28. Bf4 Ne4 29. Nb5 Kd8 30. Rh4 f5 31. f3 Rg8 32. fxe4 g5 33. Bc7+ Kc8 34. Rh1 Kb7 35. Ra4 a6 36. Nd4 Kxc7 37. Rxc4+ Kb7 38. exf5 Rd8 39. Kd2 g4 40. Kxd3 Rd6 41. Ke4 g3 42. Rh4 Rb6 43. b4 Rd6 44. Kf3 Rd5 45. Rg4 Rxg4 46. Kxg4 Rd8 47. Kg5 Re8 48. Nb3 Kb6 49. Nd4 Kb7 50. Nb3 Kb6 51. Rc5 Ka7 52. Na5 Kb8 53. Rd5 Rc8 54. c4 Re8 55. Rd7 Rc8 56. b5 axb5 57. cxb5 Rc2 58. b6 Rc5 59. Rd8+ Rc8 60. Rxc8+ Kxc8 1-0
Position après 28.Ff4
|
|
" L'intelligence artificielle pourrait faire appel, quand elle le souhaite, à un module de calcul classique pour vérifier ses coups."
C'est bien tout le problème aux échecs, comment déterminer si l'on est prêt à prendre une décision (= la condition d'arrêt est remplie) ou si l'on a besoin d 'approfondir (= on calcule encore).
|
|
@Meikueili : Ce n'est pas tout à fait ce que je voulais dire. AlphaZero et LeelaZero apprennent tout seul, ça c'est une expérience sur l'intelligence artificielle mais on n'est pas obligé de s'en contenter si on veut un programme vraiment fort. Cette IA pourrait apprendre d'elle-même quand elle doit faire appel à l'aide d'un module plus fort en calcul comme SF9. Elle pourrait faire vérifier ses coups et prendre en compte l'analyse d'un autre module. Un peu comme un GMI qui prépare ses ouvertures d'abord avec ses connaissances et ses intuitions et ensuite vérifie sa prépa avec un ordi.
|
|
Savoir si on a besoin d'approfondir (en faisant éventuellement appel à un programme extérieur) ou pas est un problème difficile. La complémentarité n'est pas si évidente à trouver. Il est à peu près certain qu'il y aura des faux positifs, des cas où l'on fait appel à l'aide extérieure alors que celle-ci apportera une mauvaise information (= on aurait fait mieux sans elle).
|
|
"Savoir si on a besoin d'approfondir (en faisant éventuellement appel à un programme extérieur) ou pas est un problème difficile."
Jouer correctement aux échecs aussi, pourtant ces programmes y sont parvenu plutôt bien. Ils ont compris qu'il fallait se développer, être actif, gagner du matériel, roquer, paralyser l'adversaire... Il me semble qu'il peuvent comprendre quand et dans quelles limites ils peuvent faire confiance à un module de calcul.
|
|
Ces programmes sont capables d'exécuter des séquences de coup maximisant une probabilité de gain. C'est dans ce but là qu'ils sont conçus.
Ils n'ont pas par contre la capacité de les rattacher à des concepts aussi abstraits que "développement" ou "activité". J'avais écrit sur un autre fil que je serai vraiment impressionné le jour où un programme sera capable d'identifier/de découvrir le concept d'opposition par exemple. Nous n'en sommes pas là, le but est de gagner, point.
Les programmes ne sont pas en mesure d'expliquer la supériorité d'une ligne sur une autre autrement que par la monstration de la position résultante, dans le genre "tu vois bien que c'est mieux". L'humain lui saurait trouver une justification, plus ou moins pertinente selon sa compréhension du jeu.
En résumé, les ordinateurs savent comment gagner mais ils ne savent pas vraiment pourquoi. Le terme d'Intelligence dans Intelligence Artificielle est souvent (presque toujours ?) un abus de langage.
|
|
@Meikueilu :
"L'humain lui saurait trouver une justification"
Pour un autre humain. Développement, activité, opposition... ce sont des concepts humains, c'est notre façon de comprendre les échecs mais il n'y a pas de raison qu'un ordinateur ait ces mêmes concepts qui ne font pas partie intrinsèquement du jeu.
AlphaZero et LeelaZero ont découvert par eux-même comment gagner. Trop habitué à la programmation classique l'intelligence artificielle est un truc qui me dépasse complètement donc je ne sais pas comment elle organise ses connaissances, comment elle les améliore, mais pourquoi ne pas penser qu'elle puisse utiliser l'évaluation d'un module de calcul pour optimiser ses chances de gain ?
|
|
C'est une bonne question, que je pose autrement : est-ce que le concept "AlphaZero joue contre lui-même pour progresser" n'est pas une sorte d'esbroufe en fait, et que le concept ""AlphaZero joue contre Stockfish pour progresser" serait en fait plus puissant ? Après tout, un élève progresse plus vite en utilisant des connaissances établies qu'en travaillant seul.
|
|
C'est l'expérience sur l'intelligence artificielle dont je parle plus haut, le pari des développeurs en quelque sorte. Je pense effectivement qu'il serait profitable que ces programmes jouent contre différents adversaires, humains ou modules, ça leur apporterait de la richesse. Et puis sinon ? Il ne saurait bien jouer que contre lui-même.
"un élève progresse plus vite en utilisant des connaissances établies qu'en travaillant seul."
Ce qui reste intéressant c'est qu'il apprenne tout seul pour avoir sa propre conception du jeu et ne se base pas sur ce que l'humain a découvert.
On dit D=9, T=5, F=C=3, P=1 mais est-ce que c'est vrai ? Ce qui est intéressant c'est que l'ordinateur trouve lui-même comment il doit jouer.
Ce que je disais par rapport à l'utilisation d'un module de calcul par un module d'intelligence artificielle serait que le module de calcul donnerait une information supplémentaire.
Au début il connait juste les règles et le but du jeu, on y ajoute une valeur chiffrée, c'est l'évaluation chiffrée par un module de calcul des coups envisagés par l'intelligence artificielle.
C'est un input supplémentaire, l'intelligence artificielle ne sait pas ce que c'est, il devrait déjà mettre déjà pas mal de temps à comprendre qu'il y a un lien entre ce chiffre et la façon d'atteindre son but et ensuite "comprendre" comment le prendre en compte dans sa réflexion.
Le piège serait qu'il donne trop d'importance à cette valeur, voire même qu'il ne prenne plus en compte que cette valeur alors que l'idée serait au contraire qu'il relativise cette information pour jouer encore mieux.
Il faudrait sans doute qu'il ne dispose de cette information qu'une fois qu'il a choisit son coup et s'apprête à le jouer, si le module de calcul lui signale une baisse importante de l'évaluation alors il doit trouver autre chose. Mais alors le module de calcul ne pourra pas l'aider à trouver une combinaison nécessitant énormément de calcul et sur la base de coups improbables, et ça c'est dommage quand même.
|
|
Je fais maintenant tourner le module d'entrainement de Leela sur mon ordi et j'invite tout le monde à le faire, mais je trouve curieux ce qu'il joue pour s'entrainer. Quel peut être l'intérêt de telles parties ? Il rate même un mat en 1.
1. e4 c6 2. Nf3 d5 3. exd5 cxd5 4. Bb5+ Nc6 5. Ne5 d4 6. Qf3 Qd6 7. Qxf7+ Kd8 8. Qxf8+ Kc7 9. Nc4 Qe6+ 10. Kd1 Qd5 11. Qxg7 Nf6 12. Qg3+ Kd8 13. d3 Qxb5 14. a4 Qh5+ 15. f3 Rg8 16. Qf2 Ke8 17. Nba3 Be6 18. Nb5 Bxc4 19. dxc4 Rd8 20. Bd2 Qg6 21. Re1 Qxg2 22. Qxg2 Rxg2 23. Re2 Rg8 24. Re1 Rg2 25. Nc7+ Kf7 26. Ne6 Rdg8 27. b4 Nd7 28. f4 Rxh2 29. b5 Rgg2 30. Ng5+ Kf6 31. Ne4+ Kf5 32. bxc6 bxc6 33. Ra3 Nf6 34. Ng3+ Kg4 35. Nf1 Rh1 36. c3 Rf2 37. cxd4 Rhxf1 38. Rxf1 Rxf1+ 39. Ke2 Rg1 40. Re3 Rg2+ 41. Kd3 Rg3 42. Rxg3+ Kxg3 43. d5 cxd5 44. Bb4 Kxf4 45. Bxe7 Ke5 46. cxd5 Nxd5 47. Bd8 Nb6 48. a5 Nc8 49. Ke3 Kd6 50. Kd2 Ne7 51. a6 Nc6 52. Bh4 Kc7 53. Bf2 Kd6 54. Kc3 Kd5 55. Kd3 h5 56. Kc3 Ke4 57. Kc4 Nd8 58. Bxa7 Kf3 59. Bb6 Nf7 60. Bc7 Nh8 61. a7 Nf7 62. a8=Q+ Kg4 63. Qg8+ Ng5 64. Kd5 h4 65. Ke5 Kg3 66. Qxg5+ Kh3 67. Kf4 Kh2 68. Qg4 h3 69. Qc8 Kg1 70. Qxh3 Kf2 71. Qh2+ Ke1 72. Ke3 Kd1 73. Qf2 Kc1 74. Qa2 Kd1 75. Qd2+ 1-0
|
|
AlphaZero (sur lequel se base Leela) joue des millions de parties pour s'entraîner. Au début de l'entraînement il ne sait pas jouer, donc forcément il joue n'importe quoi. Pour rappel il apprend tout seul, il ne sait même pas qu'il doit mater, il l'apprend seulement quand il découvre qu'en matant il gagne la partie.
Une fois qu'il a commencé à apprendre, il devient évidemment meilleur. Cependant, il est obligé dans son réseau d'exploration (voir discussions ici : https://www.france-echecs.com/article.php?art=20160129090058186) des coups d'introduire du bruit, sinon il ne peut pas explorer les possibilités et il n'apprendra jamais. Donc automatiquement, lors de l'apprentissage, il va parfois jouer des coups très mauvais, mais c'est indispensable pour pouvoir espérer apprendre des coups très bons. La dichotomie peut être résumé ainsi : pour obtenir une bonne récompense (l'apprentissage par renforcement optimise une récompense à long terme, en l’occurrence le gain de la partie dans notre cas), l'agent (l'IA) doit jouer les coups qu'il a déjà appris et qui se sont révélés efficaces ; mais pour découvrir de tels coups efficaces, il a bien fallu à un moment explorer des coups qu'il n'avait pas tentés. Si l'agent ne fait qu'explorer, il ne peut pas apprendre à sélectionner les bons coups, s'il ne se repose que sur ce qu'il sait déjà, il n'apprend rien de mieux.
Quant à la question, est ce que l'agent deviendrait meilleur en utilisant en plus l'évaluation d'un module ? C'est difficile de répondre mais mon opinion est que non. Dans la plupart des cas l'agent jouera comme le module, mais dans certains cas l'agent jouera mieux (c'est le but en tout cas), et donc se reposer sur un module ne peut que le biaiser dans le mauvais sens. Mais ce n'est qu'une opinion, il faudrait que j'y réfléchisse plus longuement pour le coup.
Meikueilu : "Ils n'ont pas par contre la capacité de les rattacher à des concepts aussi abstraits que "développement" ou "activité". J'avais écrit sur un autre fil que je serai vraiment impressionné le jour où un programme sera capable d'identifier/de découvrir le concept d'opposition par exemple. Nous n'en sommes pas là, le but est de gagner, point."
C'est une question philosophique. En fait ça n'a pas de sens de demander un programme de comprendre l'opposition, parce que ça ne veut rien dire de comprendre pour un programme. En l'occurence, AlphaZero est capable de reconnaître des patterns, et ne fait pas que du pur calcul brute force, donc si, il est effectivement (au moins théoriquement) capable de reconnaître des patterns d'opposition et de les appliquer. AlphaZero a appris des concepts stratégiques, encodés dans ses réseaux de neurones. Mais ces concepts sont trop complexes avec trop de cas particuliers pour pouvoir être extraits de manière sensée pour un humain. Effectivement on n'en est pas encore à ce que l'IA apprenne toute seule à jouer, puis extrait des principes stratégiques très simples pour apprendre à l'humain. Mais il ne faut pas dire pour autant que l'IA n'a rien compris au jeu ou à la stratégie.
Je rejoins aussi ce qui a été dit plus haut. Le but de DeepMind c'est une IA globale, c'est pas de faire une IA hyper tunée pour battre sotckfish en conditions réelles de compétion. Ils ont juste montré qu'une IA pouvait apprendre toute seule et battre un des meilleurs modules. La question de savoir si le match était équitable avec SF sans livre d'ouvertures ou autres n'a aucun intérêt pour eux, le principe c'est d'illustrer la puissance d'une technologie qui apprend toute seule.
|
|
je suis d'accord avec ça. Mon problème avec toute cette histoire c'est les arnaques et contre vérité marketing qui ont il me semble été énoncées par DeepMind eux même, et non pas seulement par des enthousiastes non spécialistes.
Les arnaques principales :
"victoire d'une IA qui réfléchit comme un humain VS la machine qui calcule de manière brute"
"moins de coups calculés que Stockfish"
"en seulement quelques heures"
|
|
Dans leurs articles ils mettent surtout en avant le côté "apprentissage de zéro", ce qui est vrai.
Sur la puissance de calculs il est clair que c'est aujourd'hui inaccessible au commun des mortels, et le "en quelques heures" est une grosse blague de leur part. Mais comme dit précédemment ce n'est pas leur but de faire une IA qui tourne sur un laptop, leur but c'est de faire une IA généralisée, le hardware se démocratisera tout seul ensuite.
Ceci dit, sur le passage "moins de coups calculés que Stockfish", c'est effectivement vrai et ça montre bien que ce n'est pas du calcul brute force (pour ceux qui en doutaient), au sens exploration de tout l'arbre, même si leur exécution des réseaux de neurones demande aussi une grosse puissance de calcul bien sûr.
D'un point de vue IA, ce qu'il est important de comprendre, c'est que AlphaZero a effectivement appris tout seul (sans même regarder les parties de maîtres contrairement à AlphaGO), et qu'en plus il ne procède pas du tout de la même façon qu'un moteur classique puisqu'il explore beaucoup moins l'arbre des possibilités. Évidemment il ne joue pas comme un humain le ferait, au sens qu'il explore quand même des dizaines (ou centaines) de milliers de coups par seconde ... Mais il ne joue pas non plus comme un module. Il a explicitement un réseau d'évaluation de la position avec ses propres concepts stratégiques (visiblement plus profonds que SF puisqu’en évaluant moins de positions il le bat), et un réseau qui propose des coups candidats. De ce point de vue là on se rapproche de l'humain.
|
|
Ce qui est frustrant avec les parties de Leela c'est qu'il/elle est très créatif avec des sacrifices qui sont souvent payants à long terme, on sent un gros potentiel et puis en finale c'est le plantage. Il continue à sacrifier pour l'activité quand il faudrait se contenter de l'avantage acquis pour gagner, voire prendre la nulle.
Une des rares parties que Leela gagne contre un module https://lichess.org/zRFn2WX3
En général les parties entre modules sont chiantes à regarder, pas celles de Leela.
|
|
Une partie d'une pauvreté stratégique et tactique faramineuse.
|
|
"Une partie d'une pauvreté stratégique et tactique faramineuse. "
Ca c'est le commentaire de quelqu'un qui se ferait immanquablement démonter par les modules en question, mais bon...
|
|
Ou alors le commentaire d'un des rares mecs à avoir vraiment regarder la partie. Par exemple 4...g6 est provoc et 7.c4?? enchainé avec cxb5 affreux. 12.Db3 est ridicule aussi et je n'hésiterai pas à sanctionner n'importe lequel de ces coups chez un de mes élèves mais j'ai peur que mon commentaire ne devienne trop constructif pour les standards du forum.
Normalement on devrait voir Chemtov débarquer pour aller à l'encontre de ce que je viens de dire et tu devrais appuyer sur le fait que je me ferais déboiter par les deux logiciels ce qui est très certainement véridique. Sorry pour le spoil :-p
|
|
Première nulle avec la sicilienne Alapine contre PlayMagnus à l'âge de 15 ans ^^
|
|
On s'en fout de ce qu'il joue, surtout que 7.c4 ou 12.Db3 sont des coups de l'adversaire de Leela et que 4...g6 est tout à fait jouable. Il serait décevant que les coups d'un module basé sur l'IA soient des coups nimzo-tarraschiens (ou chats) et puisse se justifier par tel ou tel grand principe académique. Bien jouer aux échecs n'est sans doute pas jouer comme les livres mais c'est gagner des parties. Sur ce point Leela ne joue sans doute pas encore bien mais c'est un élève qui a du potentiel.
|
|
Tu utilises le client cpu ou gpu ?
Une partie dure combien de temps ?
|
|
cpu
Une partie dure entre 30 et 60mn pour les parties d'entrainement. Les parties où je fais jouer les modules entre eux comme celle que j'ai montré c'est du 10mn+10s
|
|
Avec le CPU, j'ai fait 6 parties en 1h30.
Je viens d'essayer avec le GPU, 4 parties en 17 mins avec 1 thread.
J'essaye de lancer 2 clients GPU avec 1 thread chacun.
Elles font un peu peur les parties jouées.
|
|
"On s'en fout de ce qu'il joue" 4 posts après une "analyse" du style de jeu du module c'est assez épique... Quand au reste ça me donne envie de relire Audiard...
Bref : continue à expérimenter, amuse toi avec ta brouette mais si tu ne veux pas lire de réactions sur tes analyses basées sur des parties que tu postes ben ne poste plus. ;-)
|
|
Il faut être barge pour voir une analyse dans mes propos.
|
|
Skyf : "Ceci dit, sur le passage "moins de coups calculés que Stockfish", c'est effectivement vrai et ça montre bien que ce n'est pas du calcul brute force (pour ceux qui en doutaient), au sens exploration de tout l'arbre, même si leur exécution des réseaux de neurones demande aussi une grosse puissance de calcul bien sûr."
Tu es sûr qu'il n'y a pas une arnaque là dedans ?
J'ai l'impression que certes, AlphaZero grâce à ses probas "a priori" élimine d'emblée certains coups et donc explore effectivement moins de coups candidats quand il fait face à une position, mais par contre ne peut on pas dire qu'il les calcule bien plus en profondeur ? Puisque si j'ai bien compris il simule des milliers et des milliers de suite de partie ?
Personnellement quand on a (si j'ai bien compris, je ne demande qu'à mieux comprendre) :
-un module qui calcule comme une brute tous les coups possibles le plus loin qu'il peut
-un module plus intelligent (certes) qui se concentre que sur certains coups mais dont la méthode de choix est basé sur une simulation brutale de milliers de fin de partie,
je veux bien dire qu'un des modules est plus intelligent que l'autre, mais certainement pas qu'il est plus économe en temps de calcul (il faut rappeler que même APRES avoir appris il tourne sur un hardware bien plus performant que stockfish, ce qui démontre que même après avoir appris, il a besoin de + de calcul..donc je maintiens que le marketing "robot humain intuitif qui bat la force brute et maladroite du calcul" est une semi arnaque..).
Et même le "il calcule moins de coups que Stockfish" est une semi arnaque : il considère moins de coups candidats mais les analyse bien plus en profondeur, au final il considère bien davantage de positions que Stockfish..
D'ailleurs, une autre "arnaque" au passage : "il est devenu plus fort que stockfish en quelques (peu) millions de parties contre lui même". (couplé avec le "en quelques heures", ca fait effectivement de l'effet)
C'est une façon de voir les choses, mais en réalité une partie contre lui même contient des milliers et des milliers de sous parties...Tout ça reste la victoire avant tout d'un hardware monstrueux
|
|
@JLuc : "Ce qui est frustrant avec les parties de Leela c'est qu'il/elle est très créatif avec des sacrifices qui sont souvent payants à long terme, on sent un gros potentiel et puis en finale c'est le plantage. Il continue à sacrifier pour l'activité quand il faudrait se contenter de l'avantage acquis pour gagner, voire prendre la nulle."
T'as pas l'impression d'avoir analysé le style de Leela, là ?
|
|
Est-ce que certains d'entre vous utilisent Google Colaboratory ?
|
|
Dans cette position, Leela a joué Dg6 ??
|
|
@adrct
Lorsqu'il évalue une position, il va effectivement simuler des milliers de coups (arbre MCTS classique). Mais à la fin le nombre de positions évaluées a été moindre que pour SF, car il sélectionne mieux les coups candidats et évalue mieux les positions résultantes. Pour moi il n'y a pas d'arnaques à ce niveau là.
Contrairement à AlphaGo, qui lui évaluait la position en se reposant à la fois sur son réseau d'évaluation, et à la fois sur de simulations brutes de parties jusqu'à la fin (en s'appuyant sur les parties apprises des grand maîtres, sans rentrer dans le détail), AlphaZero semble lui s'appuyer uniquement sur ses réseaux d'évaluation et de prédiction des coups, sans simuler de parties complètes lors du jeu.
Soyons clair, je suis d'accord avec toi qu'AlphaZero n'est pas plus économe en temps de calcul (c'est même le contraire). Mais premièrement, à cause de l'effet horizon il n'est pas évident qu'un SF tournant sur un hardware encore plus puissant soit tellement plus compétitif (et SF a été tout de même utilisé sur une machine puissante, mais ça ne peut pas se comparer à AlphaZero qui a besoin d'un hardware spécifique basé sur des TPU). Deuxièmement, AlphaZero a appris à jouer tout seul, et ça c'est une prouesse en soi quel que soit le hardware utilisé. SF a été hardcodé pour les échecs grâce à des principes stratégiques qui ont pris des décennies à émerger, c'est là toute la différence.
De ma compréhension (j'avais plus étudié AlphaGo que AlphaZero cependant), AlphaZero étudie effectivement moins de positions et ne simule pas des fins de parties pendant le jeu (pas de rollout policy pour ceux qui ont lu les deux papiers).
"C'est une façon de voir les choses, mais en réalité une partie contre lui même contient des milliers et des milliers de sous parties..."
Oui et non, pour sélectionner un coup candidat il va simuler des milliers de coups et avancer dans son arbre (MCTS), mais la mise à jour des poids du réseau de neurones (l'apprentissage à proprement parlé) n'est fait qu'à partir du résultat d'une seule partie jouée.
En clair je rejoins certains de tes points, mais j'y vois plus que la simple puissance du hardware
Une fois qu'on a compris l'essentiel, certaines questions restent plus philosophiques que techniques. L'émergence du deep learning provient avant tout de la puissance de calcul et de la masse des données, la théorie de base existant depuis longtemps. Mais l'application effective du deep learning a du coup engendré un intérêt très vif pour des recherches théoriques afin de rendre l'apprentissage plus puissant. L'apprentissage par renforcement a bénéficié de ce regain. D'un point de vue philosophique, c'est quand même fort qu'un agent apprenne à jouer tout seul sans être capable de simuler toutes les fins possibles (parce que évidemment, si la puissance de calcul permettait de tout calculer il n'y a plus rien à apprendre).
|
|
Après avoir longtemps tourné en rond pour essayer de gagner une finale de Fous de couleurs opposées où il avait d'avantage de pions Leela va... craquer, comme un humain, et jouer 63.Fc3?? alors qu'il envisageait l'idée gagnante que je vous laisse chercher. Qu'il fasse une erreur liée à l'étendue de son arbre de calcul (autant en largeur qu'en profondeur) on peut comprendre mais qu'est-ce qui se passe pour qu'il rate ça ?
@mop : amusant Dg6, c'est un peu pareil
|
|
"Et même le "il calcule moins de coups que Stockfish" est une semi arnaque : il considère moins de coups candidats mais les analyse bien plus en profondeur, au final il considère bien davantage de positions que Stockfish.."
Un GM élimine d'emblée des coups idiots envisagés par un petit amateur. Avec moins de coups candidats que ce dernier, il peut donc analyser plus en profondeur et, de ce fait, considère plus de positions que son faible adversaire.
Le niveau GM serait-il une "semi arnaque" ?
|
|
j'ai juste dit que la rhétorique autour du "moins de coups calculés" était une arnaque (qui est là pour minimiser le fait qu'Alpha Zero est avant tout là grâce à un hardware monstrueux), pas que le niveau d'AlphaZéro était une arnaque.
|
|
J'ai eu tort de parler de niveau, ce que je voulais dire c'est que la méthode de travail que vous attribuez à AlphaZéro, en la critiquant, ressemble à la façon dont un GM élague son arbre pour le travailler plus en profondeur.
Donc, s'il est vrai que les deux méthodes de pensée se ressemblent, pourquoi parler d'arnaque dans un cas et pas dans l'autre ?
C'est vrai qu'ils ont beaucoup communiqué, mais c'est ce que tout le monde fait aujourd'hui.
Et souvenons-nous que... Kotov, lui aussi, avait beaucoup communiqué avec son livre !
|
|
Il est clair qu'AlphaZero tournait sur un matos monstrueux mais cette nouvelle conception des modules est évidemment l'avenir.
Komodo existe déjà en version Monte-Carlo et vient de faire un match contre Nakamura. le module a encore beaucoup à apprendre, il s'est fait massacrer 2,5-20,5
LeelaZero stagne autour de 2800 Elo à cause de ses faiblesses tactiques mais est capable de produire de très belles parties. Etre à ce niveau en commettant régulièrement des gaffes qu'on reprocherait à un 1500 ça montre un bon potentiel.
On ne doute pas que les concepteurs de SF planchent déjà sur une version Monte-Carlo.
Je me risque à prédire que d'ici 1 an les meilleurs modules seront des modules Monte-Carlo. Peut-être que la solution soit dans un module hybride Alpha-Beta / Monte-Carlo, ce serait comme un humain qui jouerait avec ses idées mais vérifierait la validité tactique de ses coups en utilisant un ordi.
Je ne sais pas si ça va fondamentalement changer quelque chose au jeu humain mais au moins dans les ouvertures ça peut permettre de découvrir des trucs (j'ai été surpris de voir Leela jouer l'attaque anglo-polonaise 1.Cf3 d5 2.c4 d4 3.b4)
|
|
|