Gymnasium 環境との対話

Pythonで学ぶGymnasiumによるReinforcement Learning

Fouad Trad

Machine Learning Engineer

Gymnasium

  • 強化学習タスクの標準ライブラリ
  • RL 問題の複雑さを抽象化
  • 多数の RL 環境を提供

Gymnasium のロゴと提供環境の例を示す画像。

Pythonで学ぶGymnasiumによるReinforcement Learning

主要な Gymnasium 環境

CartPole: エージェントは台車上の棒を倒さずに保つ CartPole 環境の GIF。

MountainCar: エージェントは急坂を車で登る MountainCar 環境の GIF。

FrozenLake: エージェントは穴のある凍った湖を移動 FrozenLake Gymnasium 環境の GIF。

Taxi: 乗客の乗降を行う Taxi 環境の GIF。

Pythonで学ぶGymnasiumによるReinforcement Learning

Gymnasium インターフェース

 

  • すべての環境で統一
  • 次を行う関数とメソッドを含む:
    • 環境の初期化
    • 環境の可視化
    • 行動の実行
    • 結果の観測

CartPole 環境の GIF。

Pythonで学ぶGymnasiumによるReinforcement Learning

環境の作成と初期化

import gymnasium as gym

env = gym.make('CartPole', render_mode='rgb_array')
state, info = env.reset(seed=42) print(state)
[-0.04405273  0.0242996  -0.04377224 -0.01767325]
1 https://gymnasium.farama.org/environments/classic_control/cart_pole/
Pythonで学ぶGymnasiumによるReinforcement Learning

状態の可視化

 

import matplotlib.pyplot as plt

state_image = env.render()
plt.imshow(state_image)

plt.show()

CartPole の初期状態のプロット。

Pythonで学ぶGymnasiumによるReinforcement Learning

状態の可視化

 

import matplotlib.pyplot as plt

def render(): state_image = env.render() plt.imshow(state_image) plt.show()
# Call function render()

CartPole の初期状態のプロット。

Pythonで学ぶGymnasiumによるReinforcement Learning

行動の実行

  • 0: 左へ移動
  • 1: 右へ移動
action = 1 
state, reward, terminated, truncated, info = env.step(action)




Pythonで学ぶGymnasiumによるReinforcement Learning

行動の実行

  • 0: 左へ移動
  • 1: 右へ移動
action = 1
state, reward, terminated, _, _ = env.step(action)


print("State: ", state) print("Reward: ", reward) print("Terminated: ", terminated)
State:  [-0.04356674  0.22002107 -0.0441257  -0.3238392 ]
Reward:  1.0
Terminated:  False
Pythonで学ぶGymnasiumによるReinforcement Learning

相互作用ループ

while not terminated:
    action = 1 # Move to the right
    state, reward, terminated, _, _ = env.step(action)
    render()

相互作用ループ中に取得した、CartPole 環境の4つの異なる状態。

Pythonで学ぶGymnasiumによるReinforcement Learning

Passons à la pratique !

Pythonで学ぶGymnasiumによるReinforcement Learning

Preparing Video For Download...