滑りやすい Frozen Lake での方策評価
滑りやすい Frozen Lake 環境では、学習済みのQテーブルから方策を導くことだけでは、その有効性を十分に評価できません。学習した方策の適切さを正しく評価するには、複数のエピソードを実行し、得られた平均報酬を観察する必要があります。本演習では、学習した方策の有効性を、学習時にランダム方策に従った場合に確立したベースラインと比較します。あなたの課題は、学習済み方策を複数エピソードで実行し、収集した平均報酬にもとづいてその性能を分析し、ランダム方策フェーズで得られた平均報酬と対比することです。
Qテーブル Q、num_states、num_actions、および avg_reward_per_random_episode はあらかじめ読み込まれています。
NumPy ライブラリは np としてインポート済みです。
この演習はコースの一部です
Pythonで学ぶGymnasiumによるReinforcement Learning
演習の手順
- 各反復で、学習済みのQテーブル
Qに基づいて最良の行動を選択します。 - 学習済みエピソードあたりの平均報酬
avg_reward_per_learned_episodeを計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
for episode in range(10000):
state, info = env.reset()
terminated = False
episode_reward = 0
while not terminated:
# Select the best action based on learned Q-table
action = ____
new_state, reward, terminated, truncated, info = env.step(action)
state = new_state
episode_reward += reward
reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)