Policy Gradient


Чтобы узнать больше, см. Reinforcement Learning.

Мы реализуем алгоритм REINFORCE. Этот алгоритм требует, чтобы для начала обучения была выполнена полная траектория. Если вы посмотрите на следующее уравнение, вы поймете, почему:

$R_t = r_t + \gamma R_{t+1}$

Обратите внимание, что нам всегда нужен discounted return от следующего временного шага. Поэтому мы должны использовать подход Монте-Карло и смоделировать всю битву (поскольку мы не занимаемся обучением по временной разнице). Во время сражения мы собираем награды на каждом временном шаге, а затем вычисляем discounted return, начиная с последнего временного шага и двигаясь назад.

import numpy as np

def get_discounted_return(rewards, gamma):
    running_discounted_reward = rewards[len(rewards)-1]
    discounted_return = rewards.copy()
    discounted_return[-1] = rewards[-1]
    for t in reversed(range(len(discounted_return) - 1)):
        discounted_return[t] = rewards[t] + gamma * running_discounted_reward
        running_discounted_reward =+ rewards[t]
    return np.array(discounted_return)

Как и во всех моделях RL с непрерывным пространством, мы используем аппроксимацию функции для отображения состояния на политику. Для первоначальных тестов AI Arena мы ограничиваем исследователей в использовании нейронных сетей с прямолинейным движением и полным подключением.

Поддерживаемые фреймворки


Мы реализовали нейросетевую часть стартовой модели в следующих фреймворках, включая следующие фрагменты кода:

<aside> ↩️ Return

</aside>

<aside> ➡️ Next

</aside>