
MushroomRl:補強学習Pythonライブラリ。
このドキュメントの内容:
MushroomRLは、テンソル計算(Pytorch、Tensorflowなど)およびRLベンチマーク(Openai Gym、Pybullet、Deepmind Control Suiteなど)に有名なPythonライブラリを簡単に使用できるようにするPython Renection Learning(RL)ライブラリです。クラシックRLアルゴリズム(Qラーニング、SARSA、FQIなど)、およびディープRLアルゴリズム(DQN、DDPG、SAC、TD3、TRPO、PPOなど)を提供する簡単な方法でRL実験を実行できます。
完全なドキュメントとチュートリアルはこちらから入手できます。
MushroomRLの最小限のインストールを次のように行うことができます。
pip3 install mushroom_rlMushroomRLには、オプションのOpenAI Gym環境のサポート、 Arcade Learning EnvironmentのAtari 2600ゲーム、 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さまざまなオペレーティングシステムにこれらの依存関係のいくつかをインストールする必要があることに注意してください。
以下は、プロットの依存関係をインストールするために実行する必要があるコードです。
sudo apt -y install python3-pyqt5
pip3 install mushroom_rl[plots]最初に外部依存関係をインストールする必要があるかもしれません。 Mujoco-Pyのインストールの詳細については、プロジェクトページの指示を続けてください
警告! Condaを使用する場合、QTに問題がある可能性があります。次の行をコードに追加して、<conda_base_path>コンドラディストリビューションへのパスに置き換え、使用しているconda環境の名前で<env_name>置き換えて修正できます。
import os
os . environ [ 'QT_QPA_PLATFORM_PLUGIN_PATH' ] = '<conda_base_path>/envs/<env_name>/bin/platforms' dm_control mushroomrlインターフェイスを使用するには、ここにある命令に従ってdm_controlをインストールします
HabitatとIgibsonは、現実的で感覚が豊富な学習環境を提供するシミュレーションプラットフォームです。 MushroomRLでは、エージェントのデフォルトの観測はRGB画像ですが、RGBD、エージェント感覚データ、およびその他の情報も使用できます。
以前のバージョンのIgibsonまたはHabitatがすでにインストールされている場合は、それらを削除してクリーンインストールを行うことをお勧めします。
公式ガイドに従って、その資産とデータセットをインストールします。
<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環境を作成するときは、ラッパー名と2つのYAMLファイルHabitat(wrapper, config_file, base_config_file)渡す必要があります。
ラッパーは<MUSHROOM_RL PATH>/mushroom-rl/environments/habitat_env.pyで定義されているものの1つである必要があり、ジムのような形式でアクションと観測を変換するのに役立ちます。タスク /ロボットに必要な場合は、新しいラッパーを定義する必要がある場合があります。
YAMLファイルは、生息地環境、シーン、ロボットで利用可能なセンサー、報酬、アクション離散、および必要な追加情報など、すべての詳細を定義します。 2番目のYAMLファイルはオプションであり、最初のYAMLで既に定義されているものを上書きします。
habitat-labのYamlsを使用している場合は、BASE_TASK_CONFIG_PATHのyamlを定義するかどうかを確認してください。もしそうなら、base_config_fileとしてHabitat()に渡す必要があります。実際、habitat-labYamlsは相対パスを使用し、それらをルートフォルダーの外側から呼び出すとエラーが発生します。
データセットを使用する場合は、特に相対パスを使用する場合は、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キーで定義されています。
新しいポジションを試してみたい場合は、シーンのナビゲーションポイントのセットからいくつかをサンプリングできます。
mdp = Habitat(...)などの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でフォローしてください!