Model-Based Learning
On souhaite maintenant apprendre un modèle de l'évolution de notre système, de façon à pouvoir résonner dessus et planifier les actions à réaliser.
Model-Based-Learning - Support (PDF)
Apprendre le Modèle :
On va chercher à apprendre l'évolution au 421:
Il faut dans un premier explorer l'environnement, ie tester toutes les actions suffisamment de foi pour générer une connaissance statistique de l'évolution du système et ceux depuis chaque état atteignable.
Bref c'est laborieux, ici vous pouvez utiliser la trace suivante: log de 1000 transitions par couple états-actions au 421 (attention fichier de 45 Mega).
pour le copier localement:
Le fichier est structuré par ligne : "état-de-départ action état-atteint récompense" séparé donc par des espaces.
Sur la base de ce fichier (et en utilisant les dictionnaires python):
Générer la fonction de récompense - une structure qui stocke la valeur moyenne d'exécuter une action depuis un état donné.
Générer la fonction de transition - une structure qui stocke une structure avec la liste des états atteignables couplée à la probabilité de les atteindre (typiquement un dictionnaire de dictionnaires de dictionnaires).
Notez qu'il s'agit ici d'expérimenter, et non pas de réfléchir un code efficace.
Planifier :
Le plus dur est fait. Il faut maintenant faire tourner un algo de résolution de MDP ('value iteration par exemple') pour calculer une politique et enfin l'exécuter dans des parties de 421.
Proposition d'implémentation:
First: a bellman implémentation at horizon 1 (i.e. non recursive).
In this implementation:
transition
is a dictionary over states of dictionaries over action of dictionaries over states of values between 0 and 1.reward
is a dictionary over states of dictionary over action of values.s
a state, an entrance intransition
andreward
a
an action, an entrance intransition[s]
andreward[s]
defaultValues
a first estimation of Belleman value (a dictionary over state of values).
Second: Value Iteration:
Notez que vous pouvez stocker dans une fichier lisible votre politique implémenté comme un dictionnaire avec la librairie python 'json' :
Et la recharger tout aussi simplement:
Last updated
Was this helpful?