
Mushroomrl: Penguatan Pembelajaran Perpustakaan Python.
Isi dokumen ini:
Mushroomrl adalah perpustakaan pembelajaran penguatan Python (RL) yang modularitasnya memungkinkan untuk dengan mudah menggunakan pustaka Python terkenal untuk komputasi tensor (misalnya Pytorch, TensorFlow) dan ranjang RL (EG Openai Gym, Pybullet, Deepmind Control Suite). Hal ini memungkinkan untuk melakukan eksperimen RL dengan cara sederhana yang menyediakan algoritma RL klasik (misalnya algoritma Q Q, SARSA, FQI), dan RL Deep (misalnya DQN, DDPG, SAC, TD3, TRPO, PPO).
Dokumentasi lengkap dan tutorial tersedia di sini.
Anda dapat melakukan pemasangan minimal MushroomRL dengan:
pip3 install mushroom_rl MushroomRL juga berisi beberapa komponen opsional misalnya, dukungan untuk lingkungan OpenAI Gym , permainan ATARI 2600 dari Arcade Learning Environment , dan dukungan untuk simulator fisika seperti Pybullet dan MuJoCo . Dukungan untuk kelas -kelas ini tidak diaktifkan secara default.
Untuk menginstal seluruh set fitur, Anda akan memerlukan paket tambahan yang diinstal. Anda dapat menginstal semuanya dengan menjalankan:
pip3 install mushroom_rl[all]Ini akan menginstal setiap ketergantungan jamur, kecuali ketergantungan plot. Untuk Ubuntu> 20.04, Anda mungkin perlu memasang Pygame dan dependensi gym:
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 swigPerhatikan bahwa Anda masih perlu menginstal beberapa dependensi ini untuk sistem operasi yang berbeda, misalnya Swig untuk MacOS
Di bawah ini adalah kode yang perlu Anda jalankan untuk menginstal dependensi plot:
sudo apt -y install python3-pyqt5
pip3 install mushroom_rl[plots]Anda mungkin perlu menginstal dependensi eksternal terlebih dahulu. Untuk informasi lebih lanjut tentang instalasi mujoco-py, ikuti instruksi di halaman proyek
PERINGATAN! Saat menggunakan Conda, mungkin ada masalah dengan QT. Anda dapat memperbaikinya dengan menambahkan baris berikut ke kode, mengganti<conda_base_path>dengan jalur ke distribusi conda Anda dan<env_name>dengan nama lingkungan conda yang Anda gunakan:
import os
os . environ [ 'QT_QPA_PLATFORM_PLUGIN_PATH' ] = '<conda_base_path>/envs/<env_name>/bin/platforms' Untuk menggunakan antarmuka DM_CONTROL Mushroomrl, instal dm_control mengikuti instruksi yang dapat ditemukan di sini
Habitat dan Igibson adalah platform simulasi yang menyediakan lingkungan belajar yang realistis dan kaya sensorik. Di Mushroomrl, pengamatan default agen adalah gambar RGB, tetapi RGBD, data sensoris agen, dan informasi lainnya juga dapat digunakan.
Jika Anda memiliki versi Igibson atau habitat sebelumnya yang sudah terpasang, kami sarankan untuk menghapusnya dan melakukan instalasi bersih.
Ikuti panduan resmi dan instal aset dan datasetnya.
Untuk <MUSHROOM_RL PATH>/mushroom-rl/examples/igibson_dqn.py Anda perlu menjalankan
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_datasetAnda juga dapat menggunakan set data pihak ketiga.
Detail adegan didefinisikan dalam file YAML, yang perlu diteruskan ke agen. Lihat <IGIBSON PATH>/igibson/test/test_house.YAML Sebagai contoh.
Ikuti panduan resmi dan lakukan instalasi penuh dengan habitat_baselines. Kemudian Anda dapat mengunduh kumpulan data interaktif yang mengikuti ini dan ini. Jika Anda perlu mengunduh set data lainnya, Anda dapat menggunakan utilitas ini.
Saat Anda membuat lingkungan Habitat , Anda perlu melewati nama pembungkus dan dua file YAML: Habitat(wrapper, config_file, base_config_file) .
Pembungkus harus termasuk yang didefinisikan dalam <MUSHROOM_RL PATH>/mushroom-rl/environments/habitat_env.py , dan menangani tindakan dan pengamatan yang mengkonversi dalam format seperti gym. Jika tugas / robot Anda memerlukannya, Anda mungkin perlu mendefinisikan pembungkus baru.
File YAML menentukan setiap detail: lingkungan habitat, adegan, sensor yang tersedia untuk robot, imbalan, diskritisasi tindakan, dan informasi tambahan yang mungkin Anda butuhkan. File YAML kedua adalah opsional, dan menimpa apa pun yang sudah didefinisikan di YAML pertama.
Jika Anda menggunakan YAML dari
habitat-lab, periksa apakah mereka mendefinisikan YAML untukBASE_TASK_CONFIG_PATH. Jika mereka melakukannya, Anda harus meneruskannya sebagaibase_config_filekeHabitat(). Yamlhabitat-lab, pada kenyataannya, menggunakan jalur relatif, dan memanggil mereka dari luar folder akarnya akan menyebabkan kesalahan.
Jika Anda menggunakan dataset, pastikan bahwa jalur yang ditentukan dalam file YAML benar, terutama jika Anda menggunakan jalur relatif. Yaml habitat-lab menggunakan jalur relatif, jadi berhati-hatilah dengan itu. Secara default, jalur yang ditentukan dalam file YAML akan relatif terhadap tempat Anda meluncurkan kode Python. Jika folder data Anda ada di tempat lain, Anda juga dapat membuat tautan simbolik.
--data-path data Unduh mereka di folder dari mana Anda meluncurkan kode Anda) 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 ini mendefinisikan BASE_TASK_CONFIG_PATH: configs/tasks/rearrange/pick.yaml , dan karena ini adalah jalur relatif yang kita butuhkan untuk menimpanya dengan melewati jalur absolutnya sebagai argumen base_config_file ke Habitat() .pick.yaml mendefinisikan dataset untuk digunakan sehubungan dengan <HABITAT_LAB PATH> . Jika Anda belum menggunakan argumen --data-path dengan perintah unduhan sebelumnya, dataset replicacad sekarang ada di <HABITAT_LAB PATH>/data dan Anda perlu membuat tautan ke sana ln -s < HABITAT_LAB PATH > /data/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_rearrange_sac.py . Unduh dan ekstrak adegan replika
PERINGATAN! Datasetnya sangat besar!
sudo apt-get install pigz
git clone https://github.com/facebookresearch/Replica-Dataset.git
cd Replica-Dataset
./download.sh replica-path Untuk tugas ini kami hanya menggunakan file YAML khusus pointnav_apartment-0.yaml .
DATA_PATH: "replica_{split}_apartment-0.json.gz" mendefinisikan file JSON dengan beberapa detail adegan, seperti posisi dan orientasi awal agen. Nilai {split} didefinisikan dalam kunci SPLIT .
Jika Anda ingin mencoba posisi baru, Anda dapat mencicipi beberapa dari set poin yang dapat dilayari adegan. Setelah menginisialisasi lingkungan
habitat, misalnyamdp = Habitat(...), jalankanmdp.env._env._sim.sample_navigable_point().
SCENES_DIR: "Replica-Dataset/replica-path/apartment_0" mendefinisikan adegan. Seperti yang dikatakan sebelumnya, jalur ini relatif terhadap tempat Anda meluncurkan skrip, sehingga kami perlu menautkan folder replika. Jika Anda meluncurkan habitat_nav_dqn.py dari folder contohnya, jalankan
ln -s < PATH TO > /Replica-Dataset/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_nav_dqn.py .Anda juga dapat melakukan instalasi yang dapat diedit lokal dengan menggunakan:
pip install --no-use-pep517 -e .Untuk menginstal juga dependensi opsional:
pip install --no-use-pep517 -e .[all]Untuk menjalankan eksperimen, MushroomRl memerlukan file skrip yang memberikan informasi yang diperlukan untuk percobaan. Ikuti skrip di folder "Contoh" untuk memiliki gagasan tentang bagaimana percobaan dapat dijalankan.
Misalnya, untuk menjalankan percobaan cepat dengan salah satu skrip contoh yang disediakan, jalankan:
python3 examples/car_on_hill_fqi.pyJika Anda menggunakan Mushroomrl untuk publikasi ilmiah Anda, silakan kutip:
@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 }
}Untuk pertanyaan apa pun, buang email di [email protected].
Ikuti kami di Twitter @Mushroom_RL!