始める無料で始める

Expected SARSA の更新則

この演習では、時相差学習に基づく Model-Free RL アルゴリズムである Expected SARSA の更新則を実装します。Expected SARSA は、取りうるすべての行動にわたって平均をとることで現在のポリシーの期待値を推定し、SARSA と比べてより安定した更新ターゲットを提供します。Expected SARSA で用いる数式は以下を参照してください。

Image showing the mathematical formula of the expected SARSA update rule.

numpy ライブラリは np としてインポート済みです。

この演習はコースの一部です

Pythonで学ぶGymnasiumによるReinforcement Learning

コースを見る

演習の手順

  • next_state に対する期待Q値を計算します。
  • Expected SARSA の数式を用いて、現在の stateaction のQ値を更新します。
  • エージェントが状態 2 で行動 1 を取り、状態 3 に遷移して報酬 5 を受け取ったと仮定して、Qテーブル Q を更新します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

def update_q_table(state, action, next_state, reward):
  	# Calculate the expected Q-value for the next state
    expected_q = ____
    # Update the Q-value for the current state and action
    Q[state, action] = ____
    
Q = np.random.rand(5, 2)
print("Old Q:\n", Q)
alpha = 0.1
gamma = 0.99

# Update the Q-table
update_q_table(____, ____, ____, ____)
print("Updated Q:\n", Q)
コードを編集して実行