Ce repo contient des implémentations distribuées des algorithmes décrits dans:
[1] Neuroévolution profonde: les algorithmes génétiques sont une alternative compétitive pour la formation de réseaux de neurones profonds pour l'apprentissage du renforcement
[2] Améliorer l'exploration dans les stratégies d'évolution pour l'apprentissage en renforcement profond via une population d'agents de recherche de nouveauté
Notre code est basé sur le code d'Openai, que nous remercions. Le code d'origine et le papier connexe d'OpenAI sont disponibles ici. Le repo a été modifié pour exécuter à la fois ES et nos algorithmes, y compris notre algorithme génétique profond (Deepga) localement et sur AWS.
Remarque: L'expérience humanoïde dépend de Mujoco. Veuillez fournir votre propre licence Mujoco et votre binaire
L'article décrivant ces articles peut être trouvé ici
Le dossier ./visual_inspector contient des implémentations de vigne, c'est-à-dire l'inspecteur visuel pour la neuroévolution, un outil de visualisation des données interactif pour la neuroévolution. Reportez-vous à README.md dans ce dossier pour d'autres instructions sur l'exécution et la personnalisation de votre visualisation. Un article décrivant cet outil de visualisation peut être trouvé ici.
Le dossier ./gpu_implementation contient une implémentation qui utilise plus efficacement GPU. Reportez-vous à README.md dans ce dossier pour d'autres instructions.
repo clone
git clone https://github.com/uber-common/deep-neuroevolution.git
créer python3 virtual env
python3 -m venv env
. env/bin/activate
Installer les exigences
pip install -r requirements.txt
Si vous prévoyez d'utiliser le Mujoco Env, assurez-vous de suivre la lecture de Mujoco-Py sur la façon d'installer correctement Mujoco
Lancement de redis
. scripts/local_run_redis.sh
Lancez l'échantillon d'expérience ES
. scripts/local_run_exp.sh es configurations/frostbite_es.json # For the Atari game Frostbite
. scripts/local_run_exp.sh es configurations/humanoid.json # For the MuJoCo Humanoid-v1 environment
Lancez l'échantillon d'expérience NS-ES
. scripts/local_run_exp.sh ns-es configurations/frostbite_nses.json
. scripts/local_run_exp.sh ns-es configurations/humanoid_nses.json
Lancez l'échantillon d'expérience NSR-ES
. scripts/local_run_exp.sh nsr-es configurations/frostbite_nsres.json
. scripts/local_run_exp.sh nsr-es configurations/humanoid_nsres.json
Lancez l'échantillon d'expérience GA
. scripts/local_run_exp.sh ga configurations/frostbite_ga.json # For the Atari game Frostbite
Lancez un exemple d'expérience de recherche aléatoire
. scripts/local_run_exp.sh rs configurations/frostbite_ga.json # For the Atari game Frostbite
Visualiser les résultats en exécutant un fichier de stratégie
python -m scripts.viz 'FrostbiteNoFrameskip-v4' <YOUR_H5_FILE>
python -m scripts.viz 'Humanoid-v1' <YOUR_H5_FILE>
Le dossier supplémentaire contient le fichier de spécification XML pour la locomotion humanoïde avec un domaine de piège trompeur utilisé dans https://arxiv.org/abs/1712.06560. Utilisez ce fichier XML dans le gymnase pour recréer l'environnement.
Vous pouvez également exécuter le code dans un conteneur Docker à l'aide de Docker et Docker-Compose.
Voir https://docs.docker.com/get-started/ pour une introduction à Docker.
Voir aussi https://docs.docker.com/compose/overview/ Pour une introduction à Docker-Compose.
Clone Repo et entrez dans le répertoire.
git clone https://github.com/uber-common/deep-neuroevolution.git
cd deep-neuroevolution
Démarrez le conteneur Lançant l'instance Redis, utilisez Sudo si nécessaire, voir également cette page.
sudo docker-compose up
Ouvrez une deuxième session de terminal dans le conteneur.
sudo docker exec -it deepneuro /bin/bash
Commencez l'expérience de votre choix comme indiqué ci-dessus. Par exemple
cd ~/deep-neuroevolution/
. scripts/local_run_exp.sh es configurations/frostbite_es.json