Kritiker-Netzwerk
Actor Critic-Methoden erfordern zwei sehr unterschiedliche neuronale Netze.
Die Architektur des Akteursnetzwerks ist identisch mit der des Richtliniennetzwerks, das du für REINFORCE verwendet hast, sodass du die Klasse PolicyNetwork
wiederverwenden kannst.
Das Kritikernetzwerk ist jedoch etwas, das du bisher noch nicht umgesetzt hast. Der Kritiker zielt darauf ab, die Zustandswertfunktion \(V(s_t)\), rather than the action value function \(Q(s_t, a_t)\) durch Q-Netze anzunähern.
Du wirst nun das Critic
Netzwerkmodul implementieren, das du in A2C verwenden wirst.
Diese Übung ist Teil des Kurses
Deep Reinforcement Learning in Python
Anleitung zur Übung
- Fülle die gewünschte Dimension für die zweite voll verknüpfte Schicht aus, damit sie einen Zustandswert ausgibt.
- Erhalte den Wert, der beim Vorwärtsdurchlauf durch das kritische Netzwerk zurückgegeben wird.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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)