*はじめに [#c5953425]
「[[RL-Glue:http://glue.rl-community.org/wiki/Main_Page]]」は[[RL-Community:http://rl-community.org/wiki/Main_Page]]が開発している強化学習プラットフォームです.
(本家ではインターフェースと説明しています.)
-[[''RL-Glue: Language-Independent Software for Reinforcement-Learning Experiments'':http://jmlr.csail.mit.edu/papers/v10/tanner09a.html]]~
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
*必要なもの [#md825677]
とくにありません.
*ダウンロード [#fc262fa6]
**RL-Glue Core [#k7e91858]
-RL-Glue Core~
http://glue.rl-community.org/wiki/RL-Glue_Core
「Download RL-Glue Core」をクリックして[[Google Codeのページ:http://code.google.com/p/rl-glue-ext/wiki/RLGlueCore]]へ移動し,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) [#eb84c7db]
-RL-Library~
http://library.rl-community.org/wiki/Main_Page
[[Sample Experiment RL-Viz (Java):http://library.rl-community.org/wiki/Sample_Experiment_RL-Viz_App_(Java)]]の「Download and Installation Instructions」のところにあるdownload linkをクリックし,''SampleExperimentRLVizApp-Java-R1306.tar.gz''をダウンロードします.
**Sample Experiment RL-Glue (Java) [#s5934e0c]
-RL-Library~
http://library.rl-community.org/wiki/Main_Page
[[Sample Experiment RL-Glue (Java):http://library.rl-community.org/wiki/Sample_Experiment_RL-Glue_(Java)]]の「Download and Installation Instructions」のところにあるdownload linkをクリックし,''SampleExperimentRLGlue-Java-R1306.tar.gz''をダウンロードします.
**Mountain Car (Java) [#lffcaf65]
-RL-Library~
http://library.rl-community.org/wiki/Main_Page
[[Mountain Car (Java):http://library.rl-community.org/wiki/Mountain_Car_(Java)]]の「Download and Installation Instructions」のところにあるdownload linkをクリックし,''MountainCar-Java-R1308.tar.gz''をダウンロードします.
**Sarsa Lambda Tile Coding (Java) [#q81fcab5]
-RL-Library~
http://library.rl-community.org/wiki/Main_Page
[[Sarsa Lambda Tile Coding (Java):http://library.rl-community.org/wiki/Sarsa_Lambda_Tile_Coding_(Java)]]の「Download and Installation Instructions」のところにあるdownload linkをクリックし,''EpsilonGreedyTileCodingSarsaLambda-Java-R30.tar.gz''をダウンロードします.
**Random (Java) [#w328bc7f]
-RL-Library~
http://library.rl-community.org/wiki/Main_Page
[[Random (Java):http://library.rl-community.org/wiki/Random_(Java)]]の「Download and Installation Instructions」のところにあるdownload linkをクリックし,''RandomAgent-Java-R1306.tar.gz''をダウンロードします.
*インストール [#f6e198e1]
基本的には,サイトの指示に従えばできます.
**RL-Glue Core [#l262b655]
まず最初に,RL-Glue Coreをインストールします.
ダウンロードしたディスク・イメージをダブル・クリックし,ディスク・イメージに含まれるインストーラーを実行します.
**その他 [#c969e725]
それ以外は一度にインストールできます.
ただし,ダウンロードしたtarファイルをダブル・クリックして展開すると,ディレクトリー構成が制作者が意図したものと違うものになってしまいます.
したがって,tarコマンドを使って展開します.
まず,好きな所に''rl-library''というディレクトリーを作成します.
#geshi(bash){{
mkdir rl-library
cd rl-libarary
}}
このフォルダーダウンロードしたtarファイルを移動します.
tarコマンドで展開します.
#geshi(bash){{
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
}}
*使い方 [#d3411bc8]
**RL-Viz [#q30c4edf]
SampleExperimentRLVizApp-Java-R1306ディレクトリーに移動し,"run.bash"を実行します.
#geshi(bash){{
cd SampleExperimentRLVizApp-Java-R1306
bash run.bash
}}
RLVizAppウィンドウのStartボタンを押すと,実験が始まります.
#ref(RLVizApp.png,,,75%)
#ref(EnvironmentVisualizer.png,,,75%)
**RL-Glue [#c0d1a6bb]
SampleExperimentRLGlue-Java-R1306ディレクトリーに移動し,''run.bash''を実行します.
#geshi(bash){{
cd SampleExperimentRLGlue-Java-R1306
bash run.bash
}}
実行結果は次のようになります.
#geshi(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を実行します.