我有一个想要训练 RL 模型的游戏环境。这个环境有两个代理可以采取的基本行动;“左”或“右”(例如,0 或 1)。
然而,“左”或“右”动作可以在离散的“度数”中进行。例如,我可以以 70% 的度数执行“左”动作,或以 16% 的度数执行“右”动作。
假设每个“左”或“右”的离散动作空间在 0-100% 之间,使总动作空间的离散大小为 201(0-200,以 1 为增量),智能体是否学习最佳程度以采取任一在任何给定状态下是“左”还是“右”?
我有一个想要训练 RL 模型的游戏环境。这个环境有两个代理可以采取的基本行动;“左”或“右”(例如,0 或 1)。
然而,“左”或“右”动作可以在离散的“度数”中进行。例如,我可以以 70% 的度数执行“左”动作,或以 16% 的度数执行“右”动作。
假设每个“左”或“右”的离散动作空间在 0-100% 之间,使总动作空间的离散大小为 201(0-200,以 1 为增量),智能体是否学习最佳程度以采取任一在任何给定状态下是“左”还是“右”?
如果您使用基于值的方法,例如深度 Q 网络 (DQN) 中的 Q-learning,那么“度”概念对代理没有什么意义,并且您正在有效地训练代理以学习最佳离散动作200 个动作。
是的,这可能比学习一个简单的 2-action 场景需要更长的时间,因为代理不会轻易地了解到“Right 49%”的值与任何特定状态下的“Right 52%”的值相关。
如果您想从对狗与猫图像分类器进行分类转移到为生物所在的位置添加边界框,那么您在监督学习中可能会遇到类似的问题。您不会将边界框添加为大量分类 - 而是将其添加为回归,将图像直接映射到某个实数向量。
可能有一些方法可以使用基于值的方法来解决这个问题,但这里通常的方法是移动到一个连续的动作空间(可能 -1 表示 100% 右,+1 表示 100% 左),并使用策略梯度方法。Policy Gradient 有几种不同的选择,但它们都共享建模策略函数的基本原则——这可能是您需要从中采样的动作空间上的概率分布,或者是特定动作——从状态转换为动作。
最基本的 Policy Gradient 方法是 REINFORCE,如果它足够简单,您可以将其用作问题的介绍。A3C、DDPG、PPO等算法就是基于这个思路,可以应对更具挑战性的环境。