始める無料で始める

Double Q-learning の更新則を実装する

Double Q-learning は、2 つの別々の Q テーブルを保持・更新することで行動価値の過大評価を抑える、Q-learning アルゴリズムの拡張手法です。行動の選択と評価を切り離すことで、Q 値の推定をより正確にします。この演習では、Double Q-learning の更新則を実装します。2 つの Q テーブルを含むリスト Q が用意されています。

numpy ライブラリは np としてインポート済みで、gammaalpha の値も事前に読み込まれています。更新式は以下の画像のとおりです。

Image showing the update rule of Q1.

Image showing the update rule of Q2.

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

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] = ____
コードを編集して実行