ÎncepețiÎncepe gratuit

Rețeaua Critic

Metodele Actor-Critic necesită două rețele neuronale cu arhitecturi foarte diferite.

Arhitectura rețelei actor este identică cu cea a rețelei de politică utilizate pentru REINFORCE, așadar poți reutiliza clasa PolicyNetwork.

Însă rețeaua critic este ceva ce nu ai implementat până acum. Critic-ul urmărește să aproximeze funcția de valoare a stării \(V(s_t)\), în loc de funcția de valoare a acțiunii \(Q(s_t, a_t)\) aproximată de Q-Networks.

Vei implementa acum modulul rețelei Critic, pe care îl vei folosi în A2C.

Acest exercițiu face parte din cursul

Deep Reinforcement Learning în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează dimensiunea dorită pentru al doilea strat complet conectat, astfel încât acesta să returneze o singură valoare a stării.
  • Obține valoarea returnată de pasul înainte (forward pass) prin rețeaua critic.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul