Bắt đầu ngayBắt đầu miễn phí

Mạng Critic

Các phương pháp Actor-Critic cần hai mạng nơ-ron rất khác nhau.

Kiến trúc cho mạng actor giống hệt với mạng policy bạn đã dùng trong REINFORCE, vì vậy bạn có thể tái sử dụng lớp PolicyNetwork.

Tuy nhiên, mạng critic là phần bạn chưa triển khai trước đó. Mục tiêu của critic là xấp xỉ hàm giá trị trạng thái \(V(s_t)\), thay vì hàm giá trị hành động \(Q(s_t, a_t)\) được Q-Networks xấp xỉ.

Bây giờ bạn sẽ triển khai mô-đun mạng Critic để dùng trong A2C.

Bài tập này là một phần của khóa học

Deep Reinforcement Learning bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Điền kích thước mong muốn cho tầng kết nối đầy đủ thứ hai để nó xuất ra một giá trị trạng thái duy nhất.
  • Lấy giá trị được trả về từ lượt truyền xuôi qua mạng critic.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)
Chỉnh sửa và Chạy Mã