Zacznij terazZacznij za darmo

Sieć krytyka

Metody Actor-Critic wymagają dwóch bardzo różnych sieci neuronowych.

Architektura sieci aktora jest identyczna jak sieć polityki użyta w algorytmie REINFORCE, więc możesz ponownie wykorzystać klasę PolicyNetwork.

Natomiast sieć krytyka to element, którego jeszcze nie implementowałeś. Krytyk ma za zadanie aproksymować funkcję wartości stanu \(V(s_t)\), a nie funkcję wartości akcji \(Q(s_t, a_t)\) aproksymowaną przez sieci Q.

Teraz zaimplementujesz moduł sieci Critic, który wykorzystasz w algorytmie A2C.

To ćwiczenie jest częścią kursu

Głębokie uczenie ze wzmocnieniem w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Podaj odpowiedni wymiar drugiej w pełni połączonej warstwy, tak aby zwracała jedną wartość stanu.
  • Uzyskaj wartość zwróconą przez przejście w przód (forward pass) przez sieć krytyka.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod