
Mushroomrl: ห้องสมุดการเรียนรู้การเสริมแรง
เนื้อหาของเอกสารนี้:
Mushroomrl เป็นห้องสมุดการเรียนรู้การเสริมแรงของ Python (RL) ซึ่งเป็นโมดูลที่อนุญาตให้ใช้ห้องสมุด Python ที่รู้จักกันดีสำหรับการคำนวณเทนเซอร์ (เช่น Pytorch, Tensorflow) และ Benchmarks RL (เช่น Openai Gym, Pybullet, ห้องควบคุม DeepMind DeepMind) ช่วยให้สามารถทำการทดลอง RL ได้อย่างง่ายดายโดยให้อัลกอริทึม RL แบบคลาสสิก (เช่น Q-Learning, Sarsa, FQI) และอัลกอริทึม RL ลึก (เช่น DQN, DDPG, SAC, TD3, TRPO, PPO)
เอกสารเต็มรูปแบบและบทช่วยสอนมีอยู่ที่นี่
คุณสามารถติดตั้ง MushroomRL ได้น้อยที่สุดด้วย:
pip3 install mushroom_rl MushroomRL ยังมีส่วนประกอบที่เป็นตัวเลือกเช่นการสนับสนุนสภาพแวดล้อมของ OpenAI Gym , Atari 2600 เกมจาก Arcade Learning Environment และการสนับสนุนสำหรับการจำลองฟิสิกส์เช่น Pybullet และ MuJoCo การสนับสนุนสำหรับคลาสเหล่านี้ไม่ได้เปิดใช้งานโดยค่าเริ่มต้น
ในการติดตั้งคุณสมบัติทั้งหมดคุณจะต้องติดตั้งแพ็คเกจเพิ่มเติม คุณสามารถติดตั้งทุกอย่างได้โดยการรัน:
pip3 install mushroom_rl[all]สิ่งนี้จะติดตั้งทุกการพึ่งพาของ Mushroomrl ยกเว้นการพึ่งพาแปลง สำหรับ Ubuntu> 20.04 คุณอาจต้องติดตั้งการพึ่งพา pygame และโรงยิม:
sudo apt -y install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
libsdl1.2-dev libsmpeg-dev libportmidi-dev ffmpeg libswscale-dev
libavformat-dev libavcodec-dev swigโปรดสังเกตว่าคุณยังต้องติดตั้งการพึ่งพาเหล่านี้สำหรับระบบปฏิบัติการที่แตกต่างกันเช่น Swig สำหรับ macOS
ด้านล่างเป็นรหัสที่คุณต้องเรียกใช้เพื่อติดตั้งพล็อตการพึ่งพา:
sudo apt -y install python3-pyqt5
pip3 install mushroom_rl[plots]คุณอาจต้องติดตั้งการพึ่งพาภายนอกก่อน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้ง Mujoco-PY ทำตามคำแนะนำในหน้าโครงการ
คำเตือน! เมื่อใช้ conda อาจมีปัญหากับ QT คุณสามารถแก้ไขได้โดยการเพิ่มบรรทัดต่อไปนี้ลงในรหัสแทนที่<conda_base_path>ด้วยเส้นทางไปยังการกระจาย conda ของคุณและ<env_name>ด้วยชื่อของสภาพแวดล้อม conda ที่คุณใช้:
import os
os . environ [ 'QT_QPA_PLATFORM_PLUGIN_PATH' ] = '<conda_base_path>/envs/<env_name>/bin/platforms' หากต้องการใช้อินเทอร์เฟซ DM_CONTROL MushroomRl ให้ติดตั้ง dm_control ตามคำแนะนำที่สามารถพบได้ที่นี่
ที่อยู่อาศัยและ Igibson เป็นแพลตฟอร์มการจำลองที่ให้สภาพแวดล้อมการเรียนรู้ที่สมจริงและมีความรู้สึก ใน Mushroomrl การสังเกตเริ่มต้นของตัวแทนคือภาพ RGB แต่ RGBD ข้อมูลทางประสาทสัมผัสตัวแทนและข้อมูลอื่น ๆ สามารถใช้ได้
หากคุณติดตั้ง Igibson หรือที่อยู่อาศัยรุ่นก่อนหน้านี้แล้วเราขอแนะนำให้ลบออกและทำความสะอาดการติดตั้ง
ทำตามคู่มืออย่างเป็นทางการและติดตั้งสินทรัพย์และชุดข้อมูล
สำหรับ <MUSHROOM_RL PATH>/mushroom-rl/examples/igibson_dqn.py คุณต้องเรียกใช้
python -m igibson.utils.assets_utils --download_assets
python -m igibson.utils.assets_utils --download_demo_data
python -m igibson.utils.assets_utils --download_ig_datasetคุณยังสามารถใช้ชุดข้อมูลของบุคคลที่สาม
รายละเอียดของฉากถูกกำหนดไว้ในไฟล์ YAML ซึ่งจะต้องส่งผ่านไปยังตัวแทน ดู <IGIBSON PATH>/igibson/test/test_house.YAML สำหรับตัวอย่าง
ทำตามคู่มืออย่างเป็นทางการและทำการ ติดตั้งเต็มรูปแบบ ด้วย Habitat_baselines จากนั้นคุณสามารถดาวน์โหลดชุดข้อมูลแบบอินเทอร์แอคทีฟตามนี้และสิ่งนี้ หากคุณต้องการดาวน์โหลดชุดข้อมูลอื่น ๆ คุณสามารถใช้ยูทิลิตี้นี้ได้
เมื่อคุณสร้างสภาพแวดล้อม Habitat คุณจะต้องผ่านชื่อ wrapper และไฟล์ YAML สองไฟล์: Habitat(wrapper, config_file, base_config_file)
wrapper จะต้องอยู่ในกลุ่มที่กำหนดไว้ใน <MUSHROOM_RL PATH>/mushroom-rl/environments/habitat_env.py และดูแลการแปลงการกระทำและการสังเกตในรูปแบบที่เหมือนโรงยิม หากงาน / หุ่นยนต์ของคุณต้องการมันคุณอาจต้องกำหนด wrappers ใหม่
ไฟล์ YAML กำหนดทุกรายละเอียด: สภาพแวดล้อมที่อยู่อาศัยฉากเซ็นเซอร์ที่มีให้กับหุ่นยนต์รางวัลการกระทำการกระทำและข้อมูลเพิ่มเติมใด ๆ ที่คุณอาจต้องการ ไฟล์ Yaml ที่สองเป็นตัวเลือกและเขียนทับสิ่งที่กำหนดไว้แล้วใน Yaml แรก
หากคุณใช้ YAMLs จาก
habitat-labให้ตรวจสอบว่าพวกเขากำหนด YAML สำหรับBASE_TASK_CONFIG_PATHหรือไม่ หากพวกเขาทำคุณจะต้องส่งผ่านเป็นbase_config_fileไปยังHabitat()ในความเป็นจริงhabitat-labในขณะที่ใช้เส้นทางสัมพัทธ์และเรียกพวกเขาจากภายนอกโฟลเดอร์รูทจะทำให้เกิดข้อผิดพลาด
หากคุณใช้ชุดข้อมูลตรวจสอบให้แน่ใจว่าเส้นทางที่กำหนดไว้ในไฟล์ YAML นั้นถูกต้องโดยเฉพาะอย่างยิ่งถ้าคุณใช้เส้นทางสัมพัทธ์ habitat-lab Yamls ใช้เส้นทางสัมพัทธ์ดังนั้นควรระวังสิ่งนั้น โดยค่าเริ่มต้นพา ธ ที่กำหนดไว้ในไฟล์ YAML จะสัมพันธ์กับตำแหน่งที่คุณเปิดตัวรหัส Python หากโฟลเดอร์ข้อมูลของคุณอยู่ที่อื่นคุณอาจสร้างลิงค์สัญลักษณ์
--data-path data ดาวน์โหลดดาวน์โหลดในโฟลเดอร์จากจุดที่คุณกำลังเปิดรหัสของคุณ) python -m habitat_sim.utils.datasets_download --uids replica_cad_dataset --data-path data<HABITAT_LAB PATH>/habitat_baselines/config/rearrange/rl_pick.yaml yaml นี้กำหนด BASE_TASK_CONFIG_PATH: configs/tasks/rearrange/pick.yaml และเนื่องจากนี่เป็นเส้นทางสัมพัทธ์เราจำเป็นต้องเขียนทับโดยผ่านเส้นทางสัมบูรณ์เป็น base_config_file อาร์กิวเมนต์ไปยัง Habitat()pick.yaml กำหนดชุดข้อมูลที่จะใช้ด้วยความเคารพต่อ <HABITAT_LAB PATH> หากคุณยังไม่ได้ใช้ --data-path กับคำสั่งดาวน์โหลดก่อนหน้านี้ชุดข้อมูล ReplicAcad จะอยู่ใน <HABITAT_LAB PATH>/data และคุณต้องสร้างลิงก์ไปยังมัน ln -s < HABITAT_LAB PATH > /data/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_rearrange_sac.py ดาวน์โหลดและแยกฉากจำลอง
คำเตือน! ชุดข้อมูลมีขนาดใหญ่มาก!
sudo apt-get install pigz
git clone https://github.com/facebookresearch/Replica-Dataset.git
cd Replica-Dataset
./download.sh replica-path สำหรับงานนี้เราใช้ไฟล์ YAML ที่กำหนดเอง pointnav_apartment-0.yaml เท่านั้น
DATA_PATH: "replica_{split}_apartment-0.json.gz" กำหนดไฟล์ JSON พร้อมรายละเอียดฉากบางอย่างเช่นตำแหน่งเริ่มต้นและการวางแนวของตัวแทน ค่า {split} ถูกกำหนดไว้ในปุ่ม SPLIT
หากคุณต้องการลองตำแหน่งใหม่คุณสามารถสุ่มตัวอย่างบางส่วนได้จากชุดของจุดนำทางของฉาก หลังจากเริ่มต้นสภาพแวดล้อม
habitatเช่นmdp = Habitat(...)ให้เรียกใช้mdp.env._env._sim.sample_navigable_point()
SCENES_DIR: "Replica-Dataset/replica-path/apartment_0" กำหนดฉาก ดังที่ได้กล่าวไว้ก่อนหน้านี้เส้นทางนี้สัมพันธ์กับที่คุณเปิดสคริปต์ดังนั้นเราจำเป็นต้องเชื่อมโยงโฟลเดอร์จำลอง หากคุณเปิดตัว habitat_nav_dqn.py จากโฟลเดอร์ตัวอย่างให้เรียกใช้
ln -s < PATH TO > /Replica-Dataset/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_nav_dqn.pyคุณยังสามารถทำการติดตั้งที่แก้ไขได้ในท้องถิ่นโดยใช้:
pip install --no-use-pep517 -e .ในการติดตั้งการพึ่งพาตัวเลือก:
pip install --no-use-pep517 -e .[all]ในการเรียกใช้การทดลอง Mushroomrl ต้องใช้ไฟล์สคริปต์ที่ให้ข้อมูลที่จำเป็นสำหรับการทดลอง ติดตามสคริปต์ในโฟลเดอร์ "ตัวอย่าง" เพื่อให้มีความคิดว่าการทดลองสามารถทำงานได้อย่างไร
ตัวอย่างเช่นในการเรียกใช้การทดลองอย่างรวดเร็วด้วยหนึ่งในสคริปต์ตัวอย่างที่ให้มารัน:
python3 examples/car_on_hill_fqi.pyหากคุณใช้ Mushroomrl สำหรับสิ่งพิมพ์ทางวิทยาศาสตร์ของคุณโปรดอ้างอิง:
@article { JMLR:v22:18-056 ,
author = { Carlo D'Eramo and Davide Tateo and Andrea Bonarini and Marcello Restelli and Jan Peters } ,
title = { MushroomRL: Simplifying Reinforcement Learning Research } ,
journal = { Journal of Machine Learning Research } ,
year = { 2021 } ,
volume = { 22 } ,
number = { 131 } ,
pages = { 1-5 } ,
url = { http://jmlr.org/papers/v22/18-056.html }
}สำหรับคำถามใด ๆ ให้ส่งอีเมลที่ [email protected]
ติดตามเราได้ที่ Twitter @mushroom_rl!