AI实验室神经进化算法
此仓库包含以下算法的分布式实现:
[1] 深度神经进化:遗传算法是训练深度神经网络用于强化学习的有力替代方案
[2] 通过一群寻求新奇的代理改进深度强化学习的进化策略中的探索
我们的代码基于OpenAI的代码,在此我们表示感谢。OpenAI的原始代码和相关论文可以在此处找到。我们已对仓库进行了修改,以便在本地和AWS上运行ES(进化策略)和我们的算法,包括我们的深度遗传算法(DeepGA)。
注意:Humanoid实验依赖于Mujoco。请提供您自己的Mujoco许可证和二进制文件。
描述这些论文的文章可以在此处找到。
NeuroEvolution的视觉审查器(VINE)
文件夹./visual_inspector
包含VINE的实现,即NeuroEvolution的视觉审查器,一个用于神经进化的交互式数据可视化工具。有关运行和定制可视化的进一步指示,请参阅该文件夹中的README.md
。描述此可视化工具的文章可以在此处找到。
加速的深度神经进化
文件夹./gpu_implementation
包含更有效利用GPU的实现。有关进一步指示,请参阅该文件夹中的README.md
。
如何在本地运行
克隆仓库
git clone https://github.com/uber-common/deep-neuroevolution.git
创建python3虚拟环境
python3 -m venv env
. env/bin/activate
安装依赖
pip install -r requirements.txt
如果您计划使用mujoco环境,请确保遵循mujoco-py 的README,了解如何正确安装mujoco。
启动redis
. scripts/local_run_redis.sh
启动样本ES实验
. scripts/local_run_exp.sh es configurations/frostbite_es.json # 适用于Atari游戏Frostbite
. scripts/local_run_exp.sh es configurations/humanoid.json # 适用于MuJoCo Humanoid-v1环境
启动样本NS-ES实验
. scripts/local_run_exp.sh ns-es configurations/frostbite_nses.json
. scripts/local_run_exp.sh ns-es configurations/humanoid_nses.json
启动样本NSR-ES实验
. scripts/local_run_exp.sh nsr-es configurations/frostbite_nsres.json
. scripts/local_run_exp.sh nsr-es configurations/humanoid_nsres.json
启动样本GA实验
. scripts/local_run_exp.sh ga configurations/frostbite_ga.json # 适用于Atari游戏Frostbite
启动样本随机搜索实验
. scripts/local_run_exp.sh rs configurations/frostbite_ga.json # 适用于Atari游戏Frostbite
通过运行策略文件可视化结果
python -m scripts.viz 'FrostbiteNoFrameskip-v4' <YOUR_H5_FILE>
python -m scripts.viz 'Humanoid-v1' <YOUR_H5_FILE>
额外文件夹
额外文件夹包含用于https://arxiv.org/abs/1712.06560 的Humanoid Locomotion with Deceptive Trap域的XML规格文件。在gym中使用此XML文件以重建环境。
如何在Docker容器中运行
您还可以使用docker和docker-compose在Docker容器中运行代码。
请参见https://docs.docker.com/get-started/ 以获取docker的介绍。
另请参见https://docs.docker.com/compose/overview/ 以获取docker-compose的介绍。
克隆仓库并进入目录。
git clone https://github.com/uber-common/deep-neuroevolution.git
cd deep-neuroevolution
启动容器并初始化redis实例,如有必要,请使用sudo,另请参见此页面。
sudo docker-compose up
在容器中打开第二个终端会话。
sudo docker exec -it deepneuro /bin/bash
按照上述说明开始您选择的实验。例如:
cd ~/deep-neuroevolution/
. scripts/local_run_exp.sh es configurations/frostbite_es.json