はじめに †
「RL-Glue」はRL-Communityが開発している強化学習プラットフォームです. (本家ではインターフェースと説明しています.)
- RL-Glue: Language-Independent Software for Reinforcement-Learning Experiments
Brian Tanner, Adam White (University of Alberta)
JMLR 10 (2009) 2133-2136.
RL-Glueを動かすには,次の4つのコンポーネントが必要です.
- RL-Glue Core
- 実験
- 環境
- エージェント
ここでは,実験とエージェントを2種類ずつダウンロードして動かす方法についてメモしておきます.
次の環境で確認しました.
- Mac OS X 10.6.2
必要なもの †
とくにありません.
ダウンロード †
RL-Glue Core †
- RL-Glue Core
http://glue.rl-community.org/wiki/RL-Glue_Core
「Download RL-Glue Core」をクリックしてGoogle Codeのページへ移動し,Mac OS X : Disk Image (Intel Only)から「Mac OS X RL-Glue Core Project and C/C++ Codec Disk Image 3.04」をクリックしてRL-Glue-3.04-and-C-Codec.dmgをダウンロードします.
Sample Experiment RL-Viz (Java) †
Sample Experiment RL-Viz (Java)の「Download and Installation Instructions」のところにあるdownload linkをクリックし,SampleExperimentRLVizApp-Java-R1306.tar.gzをダウンロードします.
Sample Experiment RL-Glue (Java) †
Sample Experiment RL-Glue (Java)の「Download and Installation Instructions」のところにあるdownload linkをクリックし,SampleExperimentRLGlue-Java-R1306.tar.gzをダウンロードします.
Mountain Car (Java) †
Mountain Car (Java)の「Download and Installation Instructions」のところにあるdownload linkをクリックし,MountainCar-Java-R1308.tar.gzをダウンロードします.
Sarsa Lambda Tile Coding (Java) †
Sarsa Lambda Tile Coding (Java)の「Download and Installation Instructions」のところにあるdownload linkをクリックし,EpsilonGreedyTileCodingSarsaLambda-Java-R30.tar.gzをダウンロードします.
Random (Java) †
Random (Java)の「Download and Installation Instructions」のところにあるdownload linkをクリックし,RandomAgent-Java-R1306.tar.gzをダウンロードします.
インストール †
基本的には,サイトの指示に従えばできます.
RL-Glue Core †
まず最初に,RL-Glue Coreをインストールします. ダウンロードしたディスク・イメージをダブル・クリックし,ディスク・イメージに含まれるインストーラーを実行します.
その他 †
それ以外は一度にインストールできます. ただし,ダウンロードしたtarファイルをダブル・クリックして展開すると,ディレクトリー構成が制作者が意図したものと違うものになってしまいます. したがって,tarコマンドを使って展開します.
まず,好きな所にrl-libraryというディレクトリーを作成します.
mkdir rl-library cd rl-libarary
このフォルダーダウンロードしたtarファイルを移動します.
tarコマンドで展開します.
tar -xvf SampleExperimentRLVizApp-Java-R1306.tar.gz tar -xvf SampleExperimentRLGlue-Java-R1306.tar.gz tar -xvf MountainCar-Java-R1308.tar.gz tar -xvf EpsilonGreedyTileCodingSarsaLambda-Java-R30.tar.gz tar -xvf RandomAgent-Java-R1306.tar.gz
使い方 †
RL-Viz †
SampleExperimentRLVizApp-Java-R1306ディレクトリーに移動し,"run.bash"を実行します.
cd SampleExperimentRLVizApp-Java-R1306 bash run.bash
RLVizAppウィンドウのStartボタンを押すと,実験が始まります.
RL-Glue †
SampleExperimentRLGlue-Java-R1306ディレクトリーに移動し,run.bashを実行します.
cd SampleExperimentRLGlue-Java-R1306 bash run.bash
実行結果は次のようになります.
% bash run.bash Starting up RL-glue - PID=25980 RL-Glue Version 3.04, Build 909 RL-Glue is listening for connections on port=4096 RL-Glue :: Agent connected. Agent Codec Connected RL-Glue Java Experiment Codec Version: 2.07 (Build:836M) Connecting to 127.0.0.1 on port 4096... Experiment Codec Connected RL-Glue :: Experiment connected. RL-Glue Java Environment Codec Version: 2.07 (Build:836M) Connecting to 127.0.0.1 on port 4096... RL-Glue Java Agent Codec Version: 2.07 (Build:836M) Connecting to 127.0.0.1 on port 4096... RL-Glue :: Environment connected. Environment Codec Connected Running: 10 with a cutoff each of: 10000 steps. Episode: 1 steps: 10000 Episode: 2 steps: 10000 Episode: 3 steps: 10000 Episode: 4 steps: 10000 Episode: 5 steps: 10000 Episode: 6 steps: 10000 Episode: 7 steps: 10000 Episode: 8 steps: 10000 Episode: 9 steps: 10000 Episode: 10 steps: 8543 ----------------------------------------------- Number of episodes: 10 Average number of steps per episode: 9854.3 Average return per episode: -9853.3 -----------------------------------------------
run.bashの中に使用する環境とエージェントが書かれていますので,これを変更すると他の環境やエージェントで試すことができます.
また,run.bashの中にはsrcディレクトリーにあるSampleExperiment.javaのコンパイルも含まれていますので,実験のパラメーター(エピソード数,打ち切りステップ数)や表示メッセージを変更する場合は,ソース・コードを変更してからrun.bashを実行します.