33
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

強化学習環境まとめ

Last updated at Posted at 2019-06-05
1 / 28

Abstract

  • 強化学習環境について紹介
    • なんだかんだいろんな環境で遊んできたので紹介

とりあえず強化学習(Reinforcement Learning: RL)の概要


image.png


強化学習の要素

  • エージェント (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のゲーム

image.png

AtariショックのAtari。単純なゲームが多い。


Atariのゲームの例

ブロック崩し
パックマン
その他


Atariには無理ゲーが多い

以下、DQN論文より引用。下の方は、人間でも無理ゲー。

image.png


無理ゲーの例

MontezumaRevenge-v0
PrivateEye-v0

※ Montezumaは集中的に研究され、最近は解けたと主張する論文がある


Breakoutを見てみる

test-breakout-v0.py
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

Image from Gyazo


MuJoCo: Ant-v2

Image from Gyazo


Robotics: FetchPickAndPlace-v1

Image from Gyazo



RoboSchool: RoboschoolAnt-v1

Image from Gyazo


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

image.png


lis

  • Unityを使ってAnimal AI-Olympicsのような事をする環境

    • 相当古い実装で最近更新が無い。Unity ML-Agentはつかわれていない
    • Unity開発環境をそのまま使うので、ポータブルなアプリではない
  • LIS (Life in Silico) のソースを読んでみる


PyLIS

  • lisをPyBulletで書き直したもの
  • ユーザーは少なそう
33
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?