始める無料で始める

最小構成DQNでの行動選択

select_action() 関数は、各ステップで最も高いQ値をもつ行動をエージェントに選ばせます。

この関数は、Qネットワークと現在の状態を引数に取り、最も高いQ値をもつ行動のインデックスを返します。

Qネットワークは q_network としてインスタンス化されており、作業用のサンプルとして state = torch.rand(8) でランダムな状態が環境に読み込まれています。

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

Pythonで学ぶDeep Reinforcement Learning

コースを見る

演習の手順

  • 引数として与えられた状態に対する、各行動に対応するQ値を計算します。
  • 最も高いQ値をもつ行動に対応するインデックスを取得します。

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

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

def select_action(q_network, state):
    # Calculate the Q-values
    q_values = ____
    print("Q-values:", [round(x, 2) for x in q_values.tolist()])
    # Obtain the action index with highest Q-value
    action = torch.____.item()
    print(f"Action selected: {action}, with q-value {q_values[action]:.2f}")
    return action

select_action(q_network, state)
コードを編集して実行