素のDQNの学習
Lunar Lander 環境で Barebone DQN アルゴリズムを学習させましょう。これはまだ素のアルゴリズムなので性能は高くありませんが、後で改良していきます。
月面着陸に向けて Lunar Lander を着地させるための最初の一歩だと考えてください!
先ほど定義した q_network インスタンスは利用可能です。
このコースの演習全体を通して、各エピソードの最後にエージェントの成績を表示するための describe_episode() 関数も Python 環境に用意されています。
この演習はコースの一部です
Pythonで学ぶDeep Reinforcement Learning
演習の手順
- 内側のループでエージェントの行動を選択します。
- 損失を計算します。
- 勾配降下ステップを実行してネットワークの重みを更新します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
for episode in range(10):
state, info = env.reset()
done = False
step = 0
episode_reward = 0
while not done:
step += 1
# Select the action
action = ____(____, ____)
next_state, reward, terminated, truncated, _ = (env.step(action))
done = terminated or truncated
# Calculate the loss
loss = ____(q_network, state, action, next_state, reward, done)
optimizer.zero_grad()
# Perform a gradient descent step
loss.____
optimizer.____
state = next_state
episode_reward += reward
describe_episode(episode, reward, episode_reward, step)