OpenAI

強化学習「Stable Baselines」のサンプルを読み解く

強化学習のライブラリの「Stable Baselines」を活用して、学習させたサンプルを読み解いて行きます。サンプルから、主要な部分を抜き出して、新しい要素を読み解きます。

env = gym.make('CartPole-v1')

model = PPO2(MlpPolicy, env, verbose=1) # モデルの生成
model.learn(total_timesteps=10000) # モデルの学習

# 学習させたモデルの実行
obs = env.reset()
for i in range(1000):
    action, _states = model.predict(obs) # モデルの推論
    obs, rewards, dones, info = env.step(action)
    env.render()

env.close()

おおまかに、モデルの生成・学習・推論の3つを確認します。

モデルの生成

PPO2のモデルを生成しています。実際のコードはこちらから。

ポリシと、環境、ログの詳細度を引数に渡しています。ポリシとは、環境からの入力に対してどのような方策で学習をさせるかということです。 MlpPolicy, CnnPolicy, CnnLstmPolicy などがあります。

MlpPolicyは、Mlp(Multilayer perceptron)とは多層パーセプトロンで、シンプルなニューラルネットワークです。執筆時のリンク

ログの詳細度は、 0はnone(なし), 1はtraining information(訓練情報), 2はtensorflow debugを意味します。執筆時のリンク

モデルの学習

total_timestepsには、訓練させるステップ数の合計を入れます。

モデルの推論

引数に観測値を与え、返り値として行動と、状態を受け取ります。そして、その次の行で、環境に対して行動を渡して1ステップ実行し、結果の観測値などを保存します。

上記の流れをrange分繰り返します。

PPO以外の強化学習アルゴリズムについては、また機会を見つけ、まとめていきます。