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 de 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
Pruebe este ejercicio completando este 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)