Double Q-learning の更新則を実装する
Double Q-learning は、2 つの別々の Q テーブルを保持・更新することで行動価値の過大評価を抑える、Q-learning アルゴリズムの拡張手法です。行動の選択と評価を切り離すことで、Q 値の推定をより正確にします。この演習では、Double Q-learning の更新則を実装します。2 つの Q テーブルを含むリスト Q が用意されています。
numpy ライブラリは np としてインポート済みで、gamma と alpha の値も事前に読み込まれています。更新式は以下の画像のとおりです。


この演習はコースの一部です
Pythonで学ぶGymnasiumによるReinforcement Learning
演習の手順
Q内のどちらの Q テーブルで行動価値の推定を更新するか、インデックスiをランダムに決めてください。Q[i]を更新するために必要な手順を実行してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
Q = [np.random.rand(8,4), np.random.rand(8,4)]
def update_q_tables(state, action, reward, next_state):
# Get the index of the table to update
i = ____
# Update Q[i]
best_next_action = ____
Q[i][state, action] = ____