通过非线性转换 RL 动作概率的效果

人工智能 强化学习
2021-11-13 20:00:32

我正在一个游戏环境中训练一个 RL 代理(特别是使用PPO 算法),有 2 个可能的动作。

可以用不同的“力量”采取行动;例如向左走17% 或向右走69.3%。目前,我有代理输出 21 个动作 - 10 个用于左侧(以 10% 的增量),10 个用于右侧,以 10% 的增量和 1 个用于保持原位(什么都不做)。换句话说,代理输出和代理在环境中移动的力之间存在直接的 1-1 映射,增量为 10%。

我想知道,如果不是输出 21 个可能的动作,而是将动作空间更改为二进制输出并获得动作概率。概率将具有例如 [70, 30] 的形式。也就是说,以 70% 的概率向左走,以 30% 的概率向右走。然后我将这些概率通过非线性转化为实际所采取的作用力;例如,70% 概率的输出向左移动,实际上可能转化为以 63.8% 的力向左移动。

非线性平移不是由代理直接观察到的,而是会确定直接观察到的进行状态。

我不完全理解这样做会产生什么影响。是否有任何论据表明这会提高性能(奖励),因为代理不需要学习直接动作映射,而只是二元概率输出?

2个回答

我不完全理解这样做会产生什么影响。

如果没有其他匹配调整,您将破坏您的代理。

问题是,在代理采取行动并需要从结果中学习之后,您的新行动空间如何转换回梯度以更新代理。您正在考虑的策略函数的 NN 组件旨在通过平衡离散概率分布来工作。它通过增加得分高于当前基线水平的动作概率(在二进制情况下,向左与向右的概率)来学习。

在解释剩余 63.8% 的结果时,您必须解决两件事 - 代理采取了哪些行动,以及对您的参数进行的哪些更改将增加采取该行动的可能性。不幸的是,如果您按照建议的方式组合操作选择,这些任务都不是简单的。

此外,你失去了探索。组合的左/右算法将始终为每个状态输出一个固定的转向量。虽然有一些算法,如 DDPG,可以使用它,但实际上不可能调整 PPO 来做到这一点。

但是,PPO 已经直接支持连续动作空间。您可以让您的网络输出一个分布的平均值和标准差,以了解如何引导,并从中采样。然后采取的行动选择将直接与网络的输出相关,您可以调整策略以根据采取的结果或多或少地做出该选择。如果您使用的是 PPO 的库实现,那么您应该可以使用此选项。

您是否考虑过使用连续动作空间?这可能值得研究。如果您不熟悉它,这里有一些离散与连续动作空间的资源 -

大型状态和行动空间中的建模和规划

连续动作空间中的深度强化学习:模拟冰壶比赛中的案例研究