始める無料で始める

滑りやすい Frozen Lake での方策評価

滑りやすい Frozen Lake 環境では、学習済みのQテーブルから方策を導くことだけでは、その有効性を十分に評価できません。学習した方策の適切さを正しく評価するには、複数のエピソードを実行し、得られた平均報酬を観察する必要があります。本演習では、学習した方策の有効性を、学習時にランダム方策に従った場合に確立したベースラインと比較します。あなたの課題は、学習済み方策を複数エピソードで実行し、収集した平均報酬にもとづいてその性能を分析し、ランダム方策フェーズで得られた平均報酬と対比することです。

Qテーブル Qnum_statesnum_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: ", ____)
コードを編集して実行