MulaiMulai sekarang secara gratis

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

Lihat Kursus

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)
Edit dan Jalankan Kode