Walking IA
But
Prototype pour tester l'apprentissage par renforcement sur un agent (dans notre cas, un personnage avec deux jambes et une tête).
Les paramètres peuvent êtres modifiés dans le but d'entraîner plus ou moins efficacement notre agent à se déplacer vers la droite en marchant.
Le but est d'obtenir un agent qui "marche" comme un être humain en alternant les jambes gauche et droite.
Principe
L'agent possède 4 "membres" :
- 1 tête
- 1 corps
- 2 jambes
L'agent possède 3 actions possibles par membre (sauf la tête) :
- Impulsion vers la gauche
- Impulsion vers la droite
- Aucune impulsion
Les impulsions sont représentées par les flèches en jeu et peuvent être réglés grâce aux curseurs dans la section Général.
Toutes les 0.4 secondes, l'agent va effectuer une action (possiblement sur les 3 membres en simultanés).
L'action réalisée peut être de type :
- "Exploration" : il va réaliser des impulsions de manière aléatoire
- "Exploitation" : il va choisir dans sa mémoire (Values sur la gauche) l'action qui, en fonction de son état actuel, va lui donner une plus grande chance de faire des points (valeur la plus élevée)
Le ratio entre Exploration et Exploitation est géré par la variable Epsilon qui diminue dans le temps.
Au début de l'apprentissage, on va vouloir que l'agent explore beaucoup afin de se créer une base de connaissance.
Puis, plus le temps passe, plus Epsilon diminue et plus l'agent va exploiter sa mémoire.
Le temps d'apprentissage est nécessaire pour avoir de bons résultats. Vous pouvez cependant baisser la valeur d'Epsilon à 0 si vous souhaitez voir ce qu'a appris votre agent.
La tête de l'agent passe en vert lorsqu'il exploite et reste blanche lorsqu'il explore.
Récompenses et punitions
À la fin de chaque essai, l'agent va se voir octroyer des points qui vont dépendre de son comportement.
- Go Forward offre des points pour la distance parcourue. Plus sa valeur est élevée, plus l'agent sera poussé à aller loin.
- Stay Alive offre des points pour le temps resté en vie. Plus sa valeur est élevée, plus l'agent évitera les comportements à risque.
- Balance Body offre des points si le corps de l'agent reste stable. Plus sa valeur est élevée, plus l'agent voudra rester vertical.
- Alternate Legs offre des points à l'agent lorsqu'il n'effectue pas deux fois de suite la même action sur la même jambe. Plus sa valeur est élevée, plus l'agent essayera de marcher comme un humain.
- Progression Step offre un bonus lorsque l'agent déclenche un point de passage (barres vertes sur le chemin). Plus sa valeur est élevée, plus l'agent est incité à aller loin dans le niveau.
- Falling retire des points lors de la chute de l'agent. Plus sa valeur est élevée, plus la chute sera punitive.
Jouer sur le temps
L'entrainement d'un agent est un processus long. C'est pourquoi il est possible d'accélérer le temps avec le curseur jaune.
Il est également possible de gérer le temps à la souris :
- Roulette pour accélérer ou ralentir le temps
- Clic droit pour revenir à un temps "normal"
- Clic molette pour passer instantanément au maximum
J'ai effectué pas mal de tests mais sans réussir à trouver de configuration optimale.
Si vous parvenez à entraîner correctement l'agent, je veux bien que vous me partagiez les paramètres utilisés.
Amusez-vous bien avec ce petit prototype.
| Status | Released |
| Platforms | HTML5 |
| Author | Fax37 |
| Genre | Educational |
| Made with | Construct |


Leave a comment
Log in with itch.io to leave a comment.