策略梯度与成本函数

数据挖掘 神经网络 强化学习 成本函数 政策梯度
2022-03-13 08:47:22

我正在使用连续系统 RL,显然偶然发现了这个Policy Gradient

我想知道这是否类似于RL 的成本函数?考虑到我们正在发现整个系统的效率(奖励的加权总和乘以所有策略),它有点给人这样的印象。

让我们以原版 PG 为例:

g=E[Rt()(θ)lnπθ(at|st)]

在这里,梯度只不过是Return的期望值(也就是所有奖励的折扣总和)乘以策略(网络输出)需要根据网络权重发生的变化。

这似乎类似于成本函数,我们使用交叉熵(类似于return给出的信息)使用总误差,然后我们使用它来查看如何通过反向传播改变神经网络的权重。

让我知道我是否做对了。

1个回答

是的,有一个成本(分数/效用)函数,你的直觉是正确的。在 vanilla PG 中,我们优化了预期回报J轨迹的τ根据政策π参数化θ

θJ(τ)1Ni=1Nθlogπθ(τi)r(τi)

(你可以在这里找到很多信息:https ://spinningup.openai.com/en/latest/algorithms/vpg.html )

普通 PG 与最大似然关系非常密切:

θJML(θ)1Ni=1Nθlogπθ(τi)

除了奖励乘法之外,这两个梯度几乎相同。这个奖励就是学习信号。从反向传播的角度考虑,你的梯度乘以奖励信号。您可以将原版 PG 视为对成本敏感的分类 - 具有广泛意义。

我将给你一个非常简单的神经网络示例,以向你展示 PG 学习机制的结果。假设一个非常简单的架构:

( 输入 --> CNN --> CNN --> 全连接 (fc) 层 --> out1: V(input), out2:π(a|input))

可以异步或同步训练。输出有两个头,一个用于预期奖励,一个用于策略。让我们假设一个任务,其中代理必须学习在两个奖励目标(橙色 r=10,绿色 r=1)之间进行选择。完成一集后,目标要么同时出现,要么一次随机出现。

现在假设代理已经完全训练。从各个情节中获取 fc 表示并运行 tsne(聚类),我们得到以下图片:

fc的tsne

这个 2D 表示告诉我们,当只有绿色目标、只有橙色目标以及它们都在一起时,网络有一个“清晰的认识”。我们可以对集群进行不同的着色,以了解预期的奖励或动作偏好(因为 fc 编码空间信息、奖励信息和动作偏好)。

策略梯度将状态映射到动作分布(和/或奖励预测)。这意味着学习的函数(神经网络)应该有适当的表示来进行映射。这本质上就是网络学习的东西:决策边界(给定输入状态)。请注意,这是一个非常简单的示例,可以深入了解网络所学的内容,以便您可以轻松地与分类案例进行比较。