我已经在一个简单的网格世界中实现了natural actor-critic RL算法,它有四个可能的动作(上、下、左、右),我注意到在某些情况下,它往往会在上下或左右之间摇摆。
现在,在这个领域中,up-down和left-right是相反的,我觉得如果我能以某种方式让agent意识到这一事实,学习可能会得到改善。我正在考虑简单地在计算动作激活之后添加一个步骤(例如,从右激活中减去左激活,反之亦然)。但是,我担心这在一般情况下会导致收敛问题。
添加约束似乎是该领域的普遍愿望,所以我想知道是否有人知道我应该为此目的使用的标准方法。如果不是,那么我的特别方法看起来是否合理。
提前感谢!
发布于 2013-03-14 22:15:20
如果可能的话,我会尽量避免使用启发式方法来选择动作。如果你想在你的训练中加入启发式,我会在奖励函数的计算中这样做。这样,智能体将学习并体现启发式作为它所近似的值函数的一部分。
关于摆动行为,你允许不移动的动作(即停留在同一位置)吗?
最后,我不会太担心违反一般情况和收敛保证。它们仅仅是做应用工作时的指导方针。
https://stackoverflow.com/questions/14616576
复制相似问题