ComeçarComece gratuitamente

Rede de críticos

Os métodos Actor Critic exigem duas redes neurais muito diferentes.

A arquitetura da rede de atores é idêntica à da rede de políticas que você usou para REINFORCE, portanto, você pode reutilizar a classe PolicyNetwork.

No entanto, a rede de críticas é algo que você não implementou até o momento. O objetivo do crítico é aproximar a função de valor do estado \(V(s_t)\), rather than the action value function \(Q(s_t, a_t)\) aproximada por Q-Networks.

Agora você implementará o módulo de rede Critic que será usado no A2C.

Este exercício faz parte do curso

Aprendizado por reforço profundo em Python

Ver Curso

Instruções de exercício

  • Preencha a dimensão desejada para a segunda camada totalmente conectada, de modo que ela produza um valor de estado.
  • Obtenha o valor retornado pela passagem direta pela rede crítica.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

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)
Editar e executar código