Double Q-learning を適用する
この演習では、Expected SARSA で解いたのと同じカスタム環境に対して Double Q-learning アルゴリズムを適用し、違いを確かめます。Double Q-learning は 2 つの Q テーブルを用いることで、従来の Q-learning アルゴリズムに内在する過大評価バイアスを軽減し、他の時間差分法よりも安定した学習を実現します。この手法を使ってグリッド環境を移動し、できるだけ早くゴールに到達するために、山を避けつつ最も高い報酬を目指します。

この演習はコースの一部です
Pythonで学ぶGymnasiumによるReinforcement Learning
演習の手順
- 直前の演習で作成した
update_q_tables()関数を使って Q テーブルを更新します。 - 2 つの Q テーブルを合計して結合します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
state, info = env.reset()
terminated = False
while not terminated:
action = np.random.choice(num_actions)
next_state, reward, terminated, truncated, info = env.step(action)
# Update the Q-tables
____
state = next_state
# Combine the learned Q-tables
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)