Réseau de critiques
Les méthodes Actor Critic nécessitent deux réseaux neuronaux très différents.
L'architecture du réseau d'acteurs est identique à celle du réseau de politiques que vous avez utilisé pour REINFORCE, vous pouvez donc réutiliser la classe PolicyNetwork.
Cependant, le réseau de critiques est un élément que vous n'avez pas encore mis en place. Le critique vise à approximer la fonction de valeur d'état \(V(s_t)\), rather than the action value function \(Q(s_t, a_t)\) approximée par les réseaux Q.
Vous allez maintenant implémenter le module réseau Critic que vous utiliserez dans A2C.
Cet exercice fait partie du cours
Apprentissage par renforcement profond en Python
Instructions
- Veuillez saisir la dimension souhaitée pour la deuxième couche entièrement connectée afin qu'elle produise une valeur d'état.
- Obtenir la valeur renvoyée par le passage direct à travers le réseau critique.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)