始める無料で始める

Q-Network のアーキテクチャ

最初の Deep Reinforcement Learning エージェントを学習させる準備がほぼ整いました。完全なトレーニングループに進む前に、エージェントの意思決定と学習能力を支えるニューラルネットワークのアーキテクチャが必要です。

先ほどの演習で定義した汎用アーキテクチャを修正していきます。 torchtorch.nn は演習に読み込まれています。

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

Pythonで学ぶDeep Reinforcement Learning

コースを見る

演習の手順

  • 最初の隠れ層を作成します。入力は環境の状態で、次元は state_size です。
  • 出力層を作成します。各アクションの Q 値を出力し、次元は action_size です。
  • forward() メソッドを完成させます。この例では活性化関数に torch.relu を使用します。

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

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

class QNetwork(nn.Module):
    def __init__(self, state_size, action_size):
        super(QNetwork, self).__init__()
        # Instantiate the first hidden layer
        self.fc1 = nn.Linear(____, ____)
        self.fc2 = nn.Linear(64, 64)
        # Instantiate the output layer
        self.fc3 = nn.Linear(____, ____)
    def forward(self, state):
        # Ensure the ReLU activation function is used
        x = ____(self.fc1(torch.tensor(state)))
        x = ____(self.fc2(x))
        return self.fc3(x)
コードを編集して実行