Le moteur de jeu c'est ce qui maintient l'état du jeu (effets compris), sait ce qui est jouable et calcule ce qui change quand on le joue. Donc oui il est bon aux bugs près

Modérateur : Equipe Modératrice
Le moteur de jeu c'est ce qui maintient l'état du jeu (effets compris), sait ce qui est jouable et calcule ce qui change quand on le joue. Donc oui il est bon aux bugs près
C'est pourquoi je parlais de machine learning, qui n'a rien à voir avec une approche algorithmique. Inutile de comprendre quoi que ce soit au problème à résoudre, il s'agit de brancher un système d'apprentissage, de voir ce que ça donne, et après c'est de la cuisine pour améliorer les performances ( = modifier les paramètres de l'apprentissage et c'est une question de chance / d'expérience de trouver ceux qui marchent le mieux ; ou, au plus haut niveau, monter une architecture d'apprentissage qui parvient à surmonter les difficultés rencontrées). Ça peut aussi bien marcher étonnamment bien qu'échouer lamentablement et on ne sait essentiellement pas pourquoi, c'est une question de recherche à part entière que de savoir pourquoi une IA qui marche marche.Ankylosaure a écrit : ↑29 nov. 2019, 13:17Faire une IA correcte sur un jeu comme PTCG est vraiment difficile, car il me paraît impossible de résoudre le jeu par un arbre de décisions.
Non c'est un problème connu. Un exemple d'approche est la programmation génétique : à chaque génération les decks les plus performants donnent plus de copies d'eux-même, les moins performants diminuent en nombre, et pour chaque copie, il y a une possibilité de mutation (changer une ou plusieurs cartes). Au fil des générations les deck-lists s'améliorent vers un optimum local. Donc s'il s'agit de trouver un deck Malamar optimal, un humain pourrait fournir plusieurs decklists initiales et un pool de cartes qu'il pense envisageables dans l'archétype ; il va aussi fixer en face les decklists qu'il pense représentatives du méta ; à chaque génération il faut entraîner les IAs des nouveaux Malamar pour chaque match-up et leurs performances dictent la composition de la génération suivante. Donc si tu te demandes si ça fait sens de mettre 4 acrobikes dans le deck, ben tu les mets dans des decklists du début et tu vois s'il y a encore des acrobikes à la fin et comment les listes sont organisées.Si l'on considère que nous ne pouvons développer une IA performante qu'une fois le deck connu, cela pose un sérieux problème conceptuel.
Tu entraînes deux AI l'une contre l'autre. Chaque AI a la même structure et joue l'un des decks.
C'est un peu ça le problème. Une IA peut perdre parce qu'elle prend une décision absurde sur un coup, en ayant joué correctement le reste de la partie. Le point faible de tout système d'apprentissage par renforcement, inspiré par la cybernétique, est qu'il faut que le but ne soit pas ambigu. Dit autrement, il faut des tâches et des sous-tâches, auxquelles on peut répondre à la question : "est-ce que le but est atteint ?" La tâche est ici définie : gagner la partie. Mais les sous-tâches...
Et elle peut aussi gagner en jouant mal parce que l'adversaire a encore plus mal joué. Je suis d'accord qu'il n'est pas évident que cela marche ; mais le fait est que des équipes ont réussi à faire marcher des choses comme ça. L'idée est "dans le passé, dans des situations similaires, quand j'ai joué x, ça s'est bien terminé dans y% des cas" ; tout est renforcé ou atténué au hasard mais les bons coups ont plus tendance à être renforcés et les mauvais à être atténués, puisque les parties avec des bons coups ont plus tendance à être gagnantes.Ankylosaure a écrit : ↑01 déc. 2019, 15:02Une IA peut perdre parce qu'elle prend une décision absurde sur un coup, en ayant joué correctement le reste de la partie.
C'est bien la force du machine learning d'arriver à "identifier" les sous-tâches par lui-même. Si tu peux le faire à sa place, ça va évidemment beaucoup accélérer l'apprentissage, mais quand il n'y a pas de moyen algorithmique accessibles à l'humain, tu laisses l'IA calculer des trucs au hasard dans les couches intermédiaires de son architecture de deep learning et "découvrir" que certains calculs sont corrélés avec le résultat souhaité (gagner) par le moyen d'un renforcement statistique. Une fois une bonne IA obtenue un humain peut essayer de comprendre quel algorithme elle utilise, mais c'est loin d'être facile même pour avoir un bout d'explication parce que les humains fonctionnent avec des concepts alors que ces concepts (je ne sais même pas si on peut affirmer qu'il y en a) sont cachés derrière des manipulations simples d'un nombre colossal de nombres (colossal parce que l'humain a une mémoire de travail d'environ 7 trucs alors que l'IA contient des millions de paramètres). C'est le même type de difficulté que pour comprendre comment un cerveau fonctionne.Le point faible de tout système d'apprentissage par renforcement, inspiré par la cybernétique, est qu'il faut que le but ne soit pas ambigu. Dit autrement, il faut des tâches et des sous-tâches, auxquelles on peut répondre à la question : "est-ce que le but est atteint ?" La tâche est ici définie : gagner la partie. Mais les sous-tâches...
Cela serait pertinent si l'on avait ces données...Je me demande s'il ne serait pas pertinent dans le cas de PTCG d'entraîner d'abord l'IA contre des joueurs humains, puis de la laisser en apprentissage non supervisé seulement lorsqu'elle commence à obtenir des victoires.
Oui il serait dommage que ce topic dévie de son objectif initialAnkylosaure a écrit : ↑04 déc. 2019, 12:14J'ai ma petite idée sur les raisons pour lesquelles on ne le fait pas, mais cela nous emmènerait sur des sentiers bien éloignés de ce sujet sur les cartes Pokémon.