Kom igångKom igång gratis

Critic-nätverk

Actor Critic-metoder kräver två helt olika neurala nätverk.

Arkitekturen för actor-nätverket är identisk med den för policynätverket som du använde i REINFORCE, så du kan återanvända klassen PolicyNetwork.

Critic-nätverket är däremot något du inte har implementerat tidigare. Critic-nätverket syftar till att approximera tillståndsvärdsfunktionen \(V(s_t)\), snarare än aktionsvärdsfunktionen \(Q(s_t, a_t)\) som approximeras av Q-nätverk.

Du ska nu implementera nätverksmodulen Critic, som du kommer att använda i A2C.

Den här övningen är en del av kursen

Djup förstärkningsinlärning i Python

Visa kurs

Övningsinstruktioner

  • Ange önskad dimension för det andra fullt anslutna lagret så att det returnerar ett tillståndsvärde.
  • Hämta värdet som returneras av det framåtriktade passet genom critic-nätverket.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod