Red de críticos
Los métodos del Actor Crítico requieren dos redes neuronales muy diferentes.
La arquitectura de la red de actores es idéntica a la de la red de políticas que utilizaste para REINFORCE, por lo que puedes reutilizar la clase PolicyNetwork.
Sin embargo, la red de críticos es algo que no has implementado hasta ahora. El crítico pretende aproximar la función de valor de estado \(V(s_t)\), rather than the action value function \(Q(s_t, a_t)\) aproximada por Q-Networks.
Ahora pondrás en marcha el módulo de red Critic que utilizarás en A2C.
Este ejercicio forma parte del curso
Aprendizaje profundo por refuerzo en Python
Instrucciones del ejercicio
- Rellena la dimensión deseada para la segunda capa totalmente conectada, de modo que produzca un valor de estado.
- Obtén el valor devuelto por el paso hacia delante a través de la red crítica.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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)