最小構成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)