強化学習環境まとめ
Abstract
- 強化学習環境について紹介
- なんだかんだいろんな環境で遊んできたので紹介
とりあえず強化学習(Reinforcement Learning: RL)の概要
強化学習の要素
- エージェント (agent)
- 環境 (environment)
- 行動 (action)
- 報酬 (reward)
- 状態 (status)
強化学習についてつづきはこちら
全ての基本OpenAI Gym
import gym
env = gym.make("Taxi-v1") # <- 環境を作成
observation = env.reset() # <- リセット。初期の状態sを受け取る
for _ in range(1000):
env.render() # <- 描画する。学習時には無くても良い
action = env.action_space.sample() # <- これは推論・探索に置き換え
observation, reward, done, info = env.step(action)
# ↑ ステップをまわす。状態s、報酬r、終了フラグ等が返られる
OpenAI Gymにあるもの
- Atariのゲーム
- Box2D: 古典力学的な2D物理演算エンジン
- Classic control: 典型的な強化学習タスク
- MuJoCo: 商用3D物理演算エンジン
- Roboschool: フリーのMuJoCo互換
- Algoriths, ToyText: 単純なタスク
Atariのゲーム
AtariショックのAtari。単純なゲームが多い。
Atariのゲームの例
Atariには無理ゲーが多い
以下、DQN論文より引用。下の方は、人間でも無理ゲー。
無理ゲーの例
MontezumaRevenge-v0
PrivateEye-v0
※ Montezumaは集中的に研究され、最近は解けたと主張する論文がある
Breakoutを見てみる
import gym
env = gym.make("Breakout-v0")
timestep_limit = env.spec.tags.get(
'wrapper_config.TimeLimit.max_episode_steps')
obs_space = env.observation_space
obs_size = obs_space.low.size
action_space = env.action_space
observation = env.reset() # <- リセット。初期の状態sを受け取る
for _ in range(1000):
env.render() # <- 描画する。学習時には無くても良い
action = env.action_space.sample() # <- これは推論・探索に置き換え
observation, reward, done, info = env.step(action)
Box2Dの例:BipedalWalker-v2
MuJoCo: Ant-v2
Robotics: FetchPickAndPlace-v1
RoboSchool: RoboschoolAnt-v1
Roboschool
- Bulletエンジンで、MuJoCo互換の環境を実装。
- MuJoCoのライセンス費は高い
- Dockerで使うにはさらに高いライセンス費が必要(今時の学習環境に合わない)
- なんか全体的にコード品質が低く、未完成感
- READMEには、Roboschool2を作っていると書いてある(がどこで?)
Roboschoolを読んでみる
PyBullet
- 去年ぐらいにPyBullet自身がGymに対応
- よく見ると、Roboschoolのコードが入っている
- 今後、これが本流となる見込み
PyBullet(余談)
- 最近のRLの潮流として、Domain Adaptationがある
- 現実世界とシミュレーションのギャップをいろいろな方法で埋める手法
- Sim2Realという
- そのためには、シミュレーター自体のパラメーターを色々いじくれる必要がある
- Roboshcool は、BulletエンジンをC++でラップしてPythonから使っていたので、エンジン自体をいじくりにくかった
- PyBulletはエンジン自体をPythonでラップしているのでパラメーターを変更しやすい
gym-gazebo
- Gazebo は、ROS(Robot operating system)のシミュレーター
- Gazebo を Gym化したのが、gym-gazebo
- 導入が大変で試していない
deep racer (virtual league)
- AWSが作ったハードウェア
- それのシミュレーター。Robomaker がベース。つまり、Gazebo
https://github.com/aws-robotics/aws-robomaker-sample-application-deepracer
https://aws.amazon.com/jp/deepracer/schedule-and-standings/leaderboard-virtual-london-loop-2019/?p=drl&exp=btn&loc=2
Unity ML-Agent
- UnityをRLAgentにつかうもの
- Unityを使って環境をビルドして一つのアプリにする
- Pythonを使って環境を構築できるフレームワークでは無い
- 環境がポータブルなアプリになるので単に利用するだけの人は環境構築が楽
Animal AI-Olympics
- Unity ML-Agentを使って作った環境
- 動物が生き延びるためのタスク(Competition)
- 食べ物・障害物・毒の沼等がある
- ソースは少し読んだ
lis
-
Unityを使ってAnimal AI-Olympicsのような事をする環境
- 相当古い実装で最近更新が無い。Unity ML-Agentはつかわれていない
- Unity開発環境をそのまま使うので、ポータブルなアプリではない
PyLIS
- lisをPyBulletで書き直したもの
- ユーザーは少なそう
Author And Source
この問題について(強化学習環境まとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/ikeyasu/items/8af7d2d2e65e245daa6d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .