LoslegenKostenlos starten

Kritiker-Netzwerk

Actor Critic-Methoden erfordern zwei sehr unterschiedliche neuronale Netze.

Die Architektur des Akteursnetzwerks ist identisch mit der des Richtliniennetzwerks, das du für REINFORCE verwendet hast, sodass du die Klasse PolicyNetwork wiederverwenden kannst.

Das Kritikernetzwerk ist jedoch etwas, das du bisher noch nicht umgesetzt hast. Der Kritiker zielt darauf ab, die Zustandswertfunktion \(V(s_t)\), rather than the action value function \(Q(s_t, a_t)\) durch Q-Netze anzunähern.

Du wirst nun das Critic Netzwerkmodul implementieren, das du in A2C verwenden wirst.

Diese Übung ist Teil des Kurses

<Kurs>Deep Reinforcement Learning in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Fülle die gewünschte Dimension für die zweite voll verknüpfte Schicht aus, damit sie einen Zustandswert ausgibt.
  • Erhalte den Wert, der beim Vorwärtsdurchlauf durch das kritische Netzwerk zurückgegeben wird.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

class Critic(nn.Module):
    def __init__(self, state_size):
        super(Critic, self).__init__()
        self.fc1 = nn.Linear(state_size, 64)
        # Fill in the desired dimensions
        self.fc2 = nn.Linear(____)

    def forward(self, state):
        x = torch.relu(self.fc1(torch.tensor(state)))
        # Calculate the output value
        value = ____
        return value

critic_network = Critic(8)
state_value = critic_network(torch.rand(8))
print('State value:', state_value)
Code bearbeiten und ausführen