이 repo에는 다음에 설명 된 알고리즘의 분산 구현이 포함됩니다.
[1] Deep Neuroevolution : 유전자 알고리즘은 강화 학습을위한 심층 신경망을 훈련하기위한 경쟁력있는 대안입니다.
[2] 참신을 추구하는 요원 집단을 통한 심층 강화 학습을위한 진화 전략의 탐구 개선
우리의 코드는 OpenAi의 코드를 기반으로합니다. OpenAi의 원본 코드 및 관련 용지는 여기에서 찾을 수 있습니다. 레포는 DEEP 유전자 알고리즘 (Deepga)을 로컬 및 AWS를 포함하여 ES 및 알고리즘을 모두 실행하도록 수정되었습니다.
참고 : 휴머노이드 실험은 Mujoco에 따라 다릅니다. 자신의 Mujoco 라이센스 및 바이너리를 제공하십시오
이 논문을 설명하는 기사는 여기에서 찾을 수 있습니다
폴더 ./visual_inspector 에는 신경 진화를위한 대화식 데이터 시각화 도구 인 Vine, IE, 신경 진화의 시각적 검사관 구현이 포함되어 있습니다. 시각화 실행 및 사용자 정의에 대한 추가 지침은 해당 폴더의 README.md 참조하십시오. 이 시각화 도구를 설명하는 기사는 여기에서 찾을 수 있습니다.
폴더 ./gpu_implementation 에는 GPU를보다 효율적으로 사용하는 구현이 포함되어 있습니다. 추가 지침은 해당 폴더의 README.md 참조하십시오.
복제 레포
git clone https://github.com/uber-common/deep-neuroevolution.git
Python3 가상 Env를 만듭니다
python3 -m venv env
. env/bin/activate
요구 사항을 설치하십시오
pip install -r requirements.txt
Mujoco Env를 사용할 계획이라면 Mujoco를 올바르게 설치하는 방법에 대한 Mujoco-Py의 README를 따르십시오.
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>
추가 폴더는 https://arxiv.org/abs/1712.06560에 사용되는기만 트랩 도메인과 함께 휴머노이드 운동에 대한 XML 사양 파일을 보유합니다. 체육관 에서이 XML 파일을 사용하여 환경을 재현하십시오.
Docker 및 Docker-Compose를 사용하여 Docker 컨테이너 내부에서 코드를 실행할 수도 있습니다.
Docker에 대한 소개는 https://docs.docker.com/get-started/를 참조하십시오.
Docker-Compose 소개는 https://docs.docker.com/compose/overview/도 참조하십시오.
복제 리포지토리를 복제하고 디렉토리를 입력하십시오.
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