ПочатиПочніть безкоштовно

Мережа критика

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