// Internationalization dictionary
window.lang_dict = {
// English
'EN': {
'introTour': {
'nextLabel': "Next",
'prevLabel': "Back",
'doneLabel': "Done",
'welcomeTitle': "Welcome!",
'welcomeText': "Here you can play with a simulation where autonomously trained agents are trying to navigate through a 2D environment.",
'viewportTitle': "Viewport simulation",
'viewportText': "Here is the viewport where the simulation is rendered in real time. It allows you to see the environment and visualize live how the agents are dealing with it.
You can also interact with the simulation using the mouse in order to scroll, zoom or even drag and drop the agents.
Try it now! ",
'runTitle': "Run the simulation",
'runText': 'Click the button to run the simulation.
Then, click the button to pause it or the to reset it.
Try it now!',
'baseEnvsTitle': "Some environments",
'baseEnvsText': "Here are some basic environments that will let you become more familiar with the different morphologies of agents.
You will be able to load them into the simulation to visualize the behaviour of the different agents.",
'morphologiesTitle': "Agents morphologies",
'morphologiesText': "Here are all the morphologies available for the agents. You can select one of several agents for each morphology and add it to the simulation.
Each agent has been trained to learn an optimal behaviour to navigate through the environment according to its morphology. Try to compare them!",
'agentsListTitle': "List of running agents",
'agentsListText': "In this section you can find all the agents that are currently running in the simulation.",
'customEnvsTitle': "Custom environments",
'customEnvsText': "Here you can save and download your custom environments but also upload them from previously downloaded files. Try to share them with your friends!",
'furtherTitle': "Going further...",
'furtherText': "If you want to customize the environment, access more advanced options or learn more about the context of this demo, open these tabs.
Enjoy!",
},
'introHints': {
'buttonLabel': "Got it",
'tips': `Tips
The goal of this demo is to showcase the challenge of generalization to unknown tasks for Deep Reinforcement Learning (DRL) agents.
DRL is a Machine Learning approach for teaching virtual agents how to solve tasks by combining Reinforcement Learning and Deep Learning methods. This approach has been used for a diverse set of applications including robotics (e.g. Solving Rubik's Cube [1]), video games and boardgames (e.g. AlphaGo [2]).
In this demo, all the agents have been autonomously trained to learn an efficient behaviour to navigate through a 2D environment, combining a DRL algorithm and a teacher algorithm (see below) so that they can be able to generalize their behaviour to never-seen-before situations.
The demo provides different tools to customize the environment in order to test and challenge the robustness of the agents on different situations.
`, 'rlTitle': "Reinforcement Learning", 'rlText': `
Reinforcement Learning (RL) is the study of agents and how they learn by trial and error.
The main idea is to reward or punish an agent according to the actions it takes in order to make it learn an efficient behavior to reach an objective.
The RL approaches generally feature an agent which evolves and interacts with a world.
At each interaction step, the agent sees a partial observation of the current state of the environment and decides of an action to take.
Each action taken by the agent changes the state of the world.
The agent also receives a reward signal at each step, that indicates how good or bad the current state is
according to the objective the agent has to reach.
The diagram on the right presents this interaction process between the agent and the environment,
with the different information they exchange at each step.
Maximizing the reward over steps is a way for the agent to learn a behaviour, also called policy,
to achieve its objective.
In order to remember and improve the actions taken by the agent, DRL algorithms utilize artificial neural networks. With training, these neural networks are able to learn to predict an optimal action to take at each step from the observation received, thanks to all the observations and rewards previously received after each action during training. Thanks to this, DRL algorithms are able to produce behaviours that are very effective in situations similar to those they were trained on.
However, in real-world applications, the environment rarely remains still and frequently evolves. Therefore one would want DRL agents to be able to generalize their behaviour to previously unseen changes of the environment so that they can adapt to a large range of situations.
`, 'aclTitle': "Automatic Curriculum Learning", 'aclText': `
One solution to handle this challenge is to train DRL agents on procedurally generated environments.
Procedural generation is a method of automatically creating environments according to some parameters.
Using this method, DRL agents can be trained on a very wide range of environments, hence allowing them
to generalize their behaviour to more different situations.
However, randomly generating environments during training implies the risk to generate environments that are too difficult or too easy to resolve
for the agents, preventing them to continuously learn in an efficient way.
Therefore, one would need smarter training strategies that propose relevant environments tailored to the current learning progress of the student (DRL agent).
This method is called Automatic Curriculum Learning (ACL) [3] and is embodied by a teacher algorithm which is trained to learn to generate
the most relevant environments throughout the entire training process according to the student performances.
This way, the teacher proposes easy environments to the student at the beginning and gradually increases the difficulty
and the diversity of the tasks in order to guarantee that the student is progressing while not always facing the same situation or forgetting what it has already learned.
In this demo, all the available agents were trained using Soft Actor Critic [4]
as the DRL student algorithm alongside different ACL teacher algorithms such as ALP-GMM [5].
They successfully learned efficient behaviours to move through the environment and to generalize to never-seen-before situations.
The physics of the simulation are handled by the box2d.js physics engine
which is a direct port to JavaScript of the Box2D physics engine.
The pre-trained policies (agents behaviours) are loaded in the browser thanks to TensorFlow.js.
This demo was designed by Paul Germon as part of an internship within Flowers research team at Inria. This internship was monitored by Rémy Portelas and Clément Romac, and supervised by Pierre-Yves Oudeyer. Special thanks to Nikita Melkozerov for its very helpful contribution. Recommended citation format:
@misc{germon2021demo, title={Interactive Deep Reinforcement Learning Demo}, author={Germon, Paul and Romac, Clément and Portelas, Rémy and Pierre-Yves, Oudeyer}, url={https://developmentalsystems.org/Interactive_DeepRL_Demo/}, year={2021} }
Le but de cette démonstration est de mettre en évidence le challenge de généralisation à des nouvelles tâches pour des agents entraînés par Apprentissage par Renforcement Profond (ARP).
L'ARP est une approche d'Apprentissage automatique (Machine Learning) qui permet d'apprendre à des agents virtuels à résoudre des tâches en combinant des méthodes d'Apprentissage par renforcement (Reinforcement Learning) et d'Apprentissage profond (Deep Learning). Cette approche a été utilisée pour diverses applications dont notamment la robotique (e.g. Solving Rubik's Cube) [1], les jeux vidéo et les jeux de plateau (e.g. AlphaGo) [2].
Dans cette démo, tous les agents ont été entraînés de manière autonome dans le but d'apprendre un comportement efficace pour traverser un environnement 2D. Ils ont été entraînés en combinant un algorithme d'ARP et un algorithme enseignant (voir ci-dessous) pour qu'ils soient capables de généraliser leur comportement à des situations inédites.
La démo fournit différents outils pour personnaliser l'environnement dans le but de tester et mettre la robustesse des agents à l'épreuve lorsqu'ils font face à différentes situations.
`, 'rlTitle': "Apprentissage par Renforcement", 'rlText': `
L'Apprentissage par renforcement (AR) est l'étude des agents virtuels et de leur apprentissage par essais et erreurs.
L'idée principale est de récompenser ou punir un agent en fonction des actions qu'il effectue pour qu'il apprenne un comportement efficace pour atteindre un objectif.
Les approches d'AR sont généralement composées d'un agent qui évolue dans un monde ou environnement et interagit avec.
À chaque pas de temps, l'agent voit une observation partielle de l'état actuel de l'environnement et décide d'effectuer une action.
Chaque action effectuée par l'agent change l'état de l'environnement. L'agent reçoit également une récompense
à chaque pas de temps, qui indique à quel point l'état actuel du monde est bon ou mauvais selon l'objectif que l'agent doit atteindre.
Le schéma ci-contre présente ce processus d'interaction entre l'agent et l'environment,
avec les différentes informations qu'ils échangent à chaque pas de temps.
Maximiser la récompense au cours du temps est un moyen pour l'agent d'apprendre un comportement optimal (ou politique)
pour atteindre son objectif.
Pour améliorer continuellement les actions effectuées par les agents, les algorithmes d'ARP utilisent des réseaux de neurones artificiels. Avec de l'entraînement, ces réseaux de neurones sont capables d'apprendre à prédire une action optimale à effectuer à chaque étape à partir de l'observation reçue grâce à toutes les observations et les récompenses préalablement reçues après chaque action effectuée au cours de l'entraînement. Grâce à cela, les algorithmes d'ARP sont capables de produire des comportements très efficaces dans des situations similaires à celles sur lesquelles ils ont été entraînés.
Cependant, dans des applications réelles, l'environnement reste rarement identique en permanence mais évolue. Par conséquent, l'idéal serait que les agents d'ARP soient capables de généraliser leur comportement à des changements inédits du monde pour qu'ils puissent s'adapter à un large éventail de situations.
`, 'aclTitle': "Programme d'apprentissage automatique", 'aclText': `
Une solution pour résoudre en partie ce problème est d'entraîner les agents d'ARP sur des environnements générés procéduralement.
La génération procédurale est une méthode permettant de créer automatiquement des environnements en fonction de quelques paramètres.
En utilisant cette méthode, les agents peuvent être entraînés sur un très large éventail d'environnements, leur permettant ainsi
de généraliser leur comportement à plus de situations différentes.
Néanmoins, le fait de générer des environnements aléatoires au cours de l'entraînement implique le risque de générer
des environnements trop difficiles ou trop faciles à résoudre pour les agents, les empêchant par conséquent d'apprendre en continu de manière efficace.
L'idéal serait donc de disposer de stratégies d'entraînement plus intelligentes qui proposeraient des
environnements pertinents adaptés à l'avancement de l'apprentissage de l'élève (agent).
Cette méthode est appelée programme d'apprentissage automatique (Automatic Curriculum Learning) [3]
et est incarnée par un algorithme enseignant qui est entraîné dans le but d'apprendre à générer des environnements
les plus pertinents possibles tout au long du processus d'entraînement de l'élève en fonction de l'évolution de ses performances.
De cette manière, l'enseignant commence par proposer des environnements faciles à l'élève puis augmente leur difficulté et leur diversité petit à petit
pour garantir que l'élève progresse continuellement tout en ne rencontrant pas toujours la même situation et en n'oubliant pas
ce qu'il a déjà appris.
Dans cette démo, tous les agents ont été entraînés avec Soft Actor Critic [4]
comme algorithme élève d'ARP aux côtés de différents algorithmes enseignants comme par exemple ALP-GMM [5].
Les agents ont ainsi appris avec succès des comportements efficaces pour se déplacer à travers les envirionnements 2D en
généralisant leur comportement à des situations inédites.
La physique de la simulation est gérée par le moteur physique box2d.js
qui est un portage direct en JavaScript du moteur physique Box2D.
Les politiques pré-entraînées (comportements des agents) sont chargées dans le navigateur grâce à TensorFlow.js.
Cette démo a été conçue par Paul Germon dans le cadre d'un stage au sein de l'équipe de recherche Flowers au laboratoire Inria. Ce stage était encadré par Rémy Portelas et Clément Romac, et supervisé par Pierre-Yves Oudeyer. Remerciements particuliers à Nikita Melkozerov pour sa contribution. Citation recommandée:
@misc{germon2021demo, title={Interactive Deep Reinforcement Learning Demo}, author={Germon, Paul and Romac, Clément and Portelas, Rémy and Pierre-Yves, Oudeyer}, url={https://developmentalsystems.org/Interactive_DeepRL_Demo/}, year={2021} }