Этот репо содержит распределенные реализации алгоритмов, описанных в:
[1] Глубокая нейроэволюция: генетические алгоритмы являются конкурентной альтернативой для обучения глубоких нейронных сетях для обучения подкреплению
[2] Улучшение разведки в стратегиях эволюции для обучения глубокому подкреплению через популяцию агентов, ищущих новизны
Наш код основан на коде от Openai, который мы благодарим. Оригинальный код и связанная статья от Openai можно найти здесь. Репо была модифицирована для запуска как ES, так и наших алгоритмов, включая наш глубокий генетический алгоритм (Deepga) локально и на AWS.
Примечание: гуманоидный эксперимент зависит от Mujoco. Пожалуйста, предоставьте свою собственную лицензию Mujoco и бинарный
Статью, описывающую эти документы, можно найти здесь
Папка ./visual_inspector содержит реализации виноградной лозы, то есть визуального инспектора для нейроэволюции, интерактивного инструмента визуализации данных для нейроэволюции. Обратитесь к README.md в этой папке для дальнейших инструкций по запуску и настройке вашей визуализации. Статью, описывающую этот инструмент визуализации, можно найти здесь.
Папка ./gpu_implementation содержит реализацию, которая использует графический процессор более эффективно. Обратитесь к README.md в этой папке для дальнейших инструкций.
клон репо
git clone https://github.com/uber-common/deep-neuroevolution.git
Создать виртуальную Env Python3
python3 -m venv env
. env/bin/activate
установить требования
pip install -r requirements.txt
Если вы планируете использовать Mujoco Env, обязательно следуйте Readme Mujoco-Py о том, как правильно установить Mujoco
запустить Redis
. scripts/local_run_redis.sh
Запустите эксперимент с образцом 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
Запустите образец эксперимент 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 # For the Atari game Frostbite
Запустить образцы эксперимента по случайному поиску
. scripts/local_run_exp.sh rs configurations/frostbite_ga.json # For the Atari game Frostbite
Визуализировать результаты, запустив файл политики
python -m scripts.viz 'FrostbiteNoFrameskip-v4' <YOUR_H5_FILE>
python -m scripts.viz 'Humanoid-v1' <YOUR_H5_FILE>
Дополнительная папка содержит файл спецификации XML для гуманоидной локомоции с обманчивым доменом ловушки, используемым в https://arxiv.org/abs/1712.06560. Используйте этот XML -файл в тренажерном зале, чтобы воссоздать окружающую среду.
Вы также можете запустить код внутри контейнера Docker, используя Docker и Docker-Compose.
См. Https://docs.docker.com/get-started/ для введения в Docker.
См. Также https://docs.docker.com/compet/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