Jaringan critic
Metode Actor-Critic memerlukan dua jaringan saraf yang sangat berbeda.
Arsitektur untuk jaringan actor identik dengan jaringan kebijakan (policy network) yang Anda gunakan untuk REINFORCE, sehingga Anda dapat menggunakan kembali kelas PolicyNetwork.
Namun, jaringan critic adalah sesuatu yang belum Anda implementasikan sejauh ini. Critic bertujuan untuk mendekati fungsi nilai keadaan \(V(s_t)\), bukan fungsi nilai aksi \(Q(s_t, a_t)\) yang didekati oleh Q-Network.
Sekarang Anda akan mengimplementasikan modul jaringan Critic yang akan digunakan dalam A2C.
Latihan ini adalah bagian dari kursus
Deep Reinforcement Learning dengan Python
Petunjuk latihan
- Isi dimensi yang diinginkan untuk lapisan fully connected kedua sehingga menghasilkan satu nilai keadaan.
- Peroleh nilai yang dikembalikan oleh proses forward melalui jaringan critic.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)