Donkey Car は、市販のラジコンカーを改造して自律走行させることができるプラットフォームです。
Donkey Car - https://www.donkeycar.com/
gym-donkeycar は、この Donkey Car のシミュレータのGym環境です。
gym-donkeycar - https://github.com/tawnkramer/gym-donkeycar
Donkey Car は、市販のラジコンカーを改造して自律走行させることができるプラットフォームです。
Donkey Car - https://www.donkeycar.com/
gym-donkeycar は、この Donkey Car のシミュレータのGym環境です。
gym-donkeycar - https://github.com/tawnkramer/gym-donkeycar
gym-sokobanは、倉庫の保管場所にすべての荷物を運ぶ倉庫番のゲーム環境です。
DeepMindの論文 Imagination Augmented Agents for Deep Reinforcement Learning で発表されたルールに基づいて実装されています。
gym-sokoban - https://github.com/mpSchrader/gym-sokoban
gym-minigridは、シンプルかつ軽量なグリッドワールド環境です。
各環境はサイズや複雑さがプログラムで調整可能で、カリキュラムの学習や難易度の微調整に便利です。
gym-minigrid - https://github.com/maximecb/gym-minigrid
gym-mazeは、単純な2D迷路環境です。
スタートからゴールまでの最短経路を見つけることが目的となります。
gym-maze - https://github.com/MattChanTK/gym-maze
Micropolis(オープンソース版のシムシティ1)および Conway’s Game of Life の1プレイヤーバージョンを含む、さまざまな規模の都市計画を行うための強化学習環境です。
gym-city - https://github.com/smearle/gym-city
GVGAI GYMは、ビデオゲーム記述言語(Video Game Description Language)で記述されたゲーム用の強化学習環境です。
AI研究用に作成された9個のクラシックゲームのクローンが含まれています。
GVGAI GYM - https://github.com/rubenrtorrado/GVGAI_GYM
Generic Video Gameコンペティション用のフレームワークも含まれています。
The GVG-AI Competition - http://www.gvgai.net/
Youtube上にデモ映像もあります。
osim-rlは、人間の筋骨格モデルと物理ベースのシミュレーション環境です。
人間モデルのコントローラーを開発して、最小限の労力で速度命令に従って、歩いたり走ったりすることが目的になります。
osim-rl - https://github.com/stanfordnmbl/osim-rl
前回収集した人間のデモ操作データを使って事前学習を行います。
環境設定に関しては、前回の記事(模倣学習② 人間のデモを使って事前学習を行う)を参照して下さい。
(Ubuntu 19.10で動作確認しています。)
人間のデモ操作データであるbowling_demo.npzファイルとrecorded_imagesフォルダを使って模倣学習を行うコードは以下の通りです。
[コード]
1 | import gym |
人間の操作したデータを事前学習するにはmodel.pretrain関数(24行目)を使います。
引数の意味は下記の通りです。
また模倣学習を行った後、さらに強化学習を行う場合はmodel.learn関数(27行目)をコメントアウトします。
実行すると、スコアは「120.2」になりました。(人間のデモ操作によって結果は変わります。)
模倣学習と合わせて強化学習も合わせて実行した結果や、強化学習のみで実行した結果も調査していきたいと思います。
ランダム行動では報酬を見つけにくい環境に対応するために模倣学習を試してみます。
Atari環境の1つであるボーリングゲーム(Bowling)を実行環境とします。
(Windowsではうまく動作しなかったので、Ubuntu 19.10で動作確認しています。)
下記のコマンドを実行し、実行環境をインストールします。
1 | pip3 install gym |
人間のデモ収集を行うコードは下記になります。
[コード]
1 | import random |
デモ収集にはgenerate_expert_trajを使います。引数の意味は下記の通りです。
返値はデモ demo(dict型)となります。
実行すると、次のような画面が表示されます。右側のウィンドウにフォーカスをあてるとゲームを操作することができます。

up、downで位置を選択し、fireでボールを投げます。
ボールを投げた後にup、downでボールの起動を曲げることができます。
10ゲーム(1エピソード)の人間の操作が収集され、bowling_demo.npzファイルとrecorded_imagesフォルダが出力されます。
次回は、今回収集した人間のデモデータを使って事前学習を行います。
gym-gazeboは、ROS(Robot Operating System)とGazeboを使用したロボット工学向けの環境です。
ROSはロボット開発のための開発ツールやライブラリが含まれたオープンソースソフトウェア、Gazeboはロボット開発のためのシミュレータになります。
gym-gazebo - https://github.com/erlerobot/gym-gazebo/