Réseau du critique
Les méthodes Actor-Critic exigent deux réseaux de neurones très différents.
L'architecture du réseau de l'acteur est identique à celle du réseau de politique que vous avez utilisé pour REINFORCE, vous pouvez donc réutiliser la classe PolicyNetwork.
Cependant, vous n'avez pas encore implanté le réseau du critique. Le critique vise à approximer la fonction de valeur d'état V(s_t), plutôt que la fonction de valeur d'action Q(s_t, a_t) approximée par les Q-Networks.
Vous allez maintenant implanter le module de réseau Critic que vous utiliserez dans A2C.
Cette activité fait partie du cours
Deep Reinforcement Learning en Python
Instructions de l’exercice
- Inscrivez la dimension souhaitée pour la deuxième couche entièrement connectée afin qu'elle retourne une seule valeur d'état.
- Obtenez la valeur retournée par la passe avant (forward pass) dans le réseau du critique.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)