政策梯度


要了解更多关于政策梯度的信息,请参阅 强化学习.

我们实现了 REINFORCE 算法。这个算法要求完成一个完整的轨迹,以便开始训练。如果你看一下下面的方程式,你就会明白为什么:

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

注意,我们总是需要下一个时间步骤的折现回报。因此,我们必须使用蒙特卡洛方法,模拟整个战斗(因为我们没有进行时差学习)。在战斗的时候,我们在每个时间步骤中收集奖励,之后我们从最后一个时间步骤开始,向后移动,计算折现的回报。

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> ↩️ 返回

</aside>

<aside> ➡️ 下一页

</aside>