НачатьНачать бесплатно

Сеть критика

Методы Actor-Critic используют две принципиально разные нейронные сети.

Архитектура сети актора совпадает с архитектурой политики, которую вы использовали в REINFORCE, поэтому класс PolicyNetwork можно применить повторно.

Однако сеть критика вы ещё не реализовывали. Задача критика — аппроксимировать функцию ценности состояния \(V(s_t)\), а не функцию ценности действия \(Q(s_t, a_t)\), которую аппроксимируют Q-сети.

Теперь вам предстоит реализовать модуль Critic, который вы будете использовать в A2C.

Это упражнение является частью курса

Глубокое обучение с подкреплением на Python

Посмотреть курс

Инструкции к упражнению

  • Укажите нужную размерность для второго полносвязного слоя так, чтобы он возвращал одно значение состояния.
  • Получите значение, которое возвращает прямой проход через сеть критика.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код