L'objectif est de concevoir un composant d'optimisation de stratégie proximale qui a des contraintes spécifiques sur l'espace d'action dépendant de règles induites par l'état, en utilisant un cadre comme Tensorforce.
Options de conception énumérées dans la question
Ces options sont répertoriées ici pour référence rapide lors de la lecture de l'analyse initiale ci-dessous.
- Modifiez l'espace d'action à chaque étape, selon l'état_interne. Je suppose que cela n'a aucun sens.
- Ne rien faire: laissez le modèle comprendre que le choix d'une action non disponible n'a aucun impact.
- Ne - presque - rien: impact légèrement négatif sur la récompense lorsque le modèle choisit une action indisponible.
- Aidez le modèle: en incorporant un entier dans l'espace d'état / d'observation qui informe le modèle quelle est la valeur internal_state + puce 2 ou 3
Analyse initiale
Il est en effet judicieux de changer l'espace d'action pour chaque mouvement. C'est, en fait, une représentation appropriée du problème tel qu'indiqué et de la façon normale dont les humains jouent à des jeux et de la façon dont les ordinateurs battent les humains dans Chess and Go.
L'apparence insensée de cette idée n'est qu'un artefact des progrès le long de la feuille de route du projet Tensorforce et des progrès le long de la théorie du renforcement, tous deux jeunes dans le tableau d'ensemble. En lisant la documentation et la FAQ de Tensorforce, il ne semble pas que le framework soit conçu pour brancher un moteur de règles pour déterminer l'espace d'action. Ce n'est pas une lacune de l'open source. Il ne semble pas y avoir d'articles fournissant de la théorie ou proposant des algorithmes pour la décision en chaîne de Markov conditionnée par des règles.
L'option de ne rien faire est celle qui s'inscrit dans les stratégies actuellement disponibles représentées dans la littérature. Le faire-presque-rien est probablement l'approche qui produira un comportement souhaitable plus fiable et peut-être plus immédiat.
Le problème avec le concept d'aider le modèle est qu'il n'est pas une idée aussi forte que l'extension du modèle. En open source, cela se ferait en étendant les classes qui représentent le modèle, ce qui nécessiterait un travail théorique avant de coder en
a. Represent rule-conditioned learning in nomenclature
b. Represent convergence mathematically using the new nomenclature
c. Determining a method of convergence
d. Proving convergence
e. Rechecking
f. Defining a smooth and efficient algorithm
g. Providing PAC learning information for planning
f. Peer review
g. Extending the classes of the library
h. Proof of concept with the current problem above
i. Additional cases and metrics comparing the approach with the others
j. Extending the library flexibility to support more such dev
L'extension des systèmes d'apprentissage pour couvrir le cas de règles restreintes est une excellente idée pour une thèse de doctorat et pourrait voler dans les laboratoires de recherche en tant que proposition de projet avec de nombreuses applications possibles. Ne laissez pas toutes les étapes dissuader le chercheur. Il s'agit essentiellement d'une liste d'étapes pour toute thèse de doctorat ou projet de laboratoire d'IA financé.
Pour une solution à court terme, aider le modèle pourrait fonctionner, mais ce n'est pas une bonne stratégie pour faire avancer les idées de l'IA le long du parcours d'apprentissage du renforcement. En tant que solution à court terme pour un problème particulier, cela peut fonctionner correctement. L'idée de ne rien faire peut être plus judicieuse, car elle s'inscrit dans les preuves de convergence qui ont conduit à l'implémentation particulière que Tensorforce est susceptible d'utiliser.
Le renommer de ne rien faire pour aider à la convergence peut aider à développer la bonne perspective avant de l'essayer. Il se peut que vous deviez atténuer l'assistance lorsque vous approchez de la convergence pour éviter un dépassement, tout comme avec un taux d'apprentissage.
Normalement, l'ensemble des actions que l'agent peut exécuter ne change pas avec le temps, mais certaines actions peuvent devenir impossibles dans différents états (par exemple, tous les mouvements ne sont pas possibles dans n'importe quelle position du jeu TicTacToe).
Jetez un œil comme exemple au morceau de code https://github.com/haje01/gym-tictactoe/blob/master/examples/base_agent.py :
la source