我尝试通过调整this pytorch implementation来连续控制问题来实现简单的vanilla策略梯度(REINFORCE),我偶然发现了以下问题。
通常,当动作空间离散时,策略网络的输出由{max}函数限制在(0,1)^n
,这给出了代理人选择给定某个动作的概率状态(输入到网络)。但是,当操作空间为 continuos 时,例如,如果我们有K操作,以便每个操作ak
都有下限和上限lk
和uk
,没有找到一种方法(经验或理论)来限制网络的输出(通常是给定状态的动作概率分布的均值和标准偏差)lk
和uk
。
从我做的几次试验中,在不限制政策网络的输出的情况下,学习一项好的政策是非常困难的,如果不是不可能的话,但由于我不熟悉强化学习,我可能会做错事。 / p>
我的直觉建议我使用例如sigmoid来限制策略网络的均值和标准偏差输出,然后使用lk
和uk
之间的绝对差来缩放它们。我不太确定如何正确地做到这一点,同时考虑到采样动作可能超过你在使用时对分布参数施加的任何限制,例如,高斯分布。
我错过了什么吗? 是否有既定的方法来限制政策网络的输出以用于连续的行动空间,或者根本不需要这样做?
我不确定这个问题是否适合这个问题,如果不是我会很高兴你能给我一个更好的地方。