始める無料で始める

素の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)
コードを編集して実行