MacでRL-Glueを使う

| Topic path: Top / 強化学習 / MacでRL-Glueを使う

*はじめに [#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を実行します.

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS