【发布时间】:2013-01-15 00:15:45
【问题描述】:
我已经在一个简单的网格世界上实现了natural actor-critic RL 算法,它有四种可能的动作(上、下、左、右),我注意到在某些情况下它往往会在上-向下或左右。
现在,在这个领域中,上下和左右是对立的,如果我能以某种方式让代理意识到这一事实,我觉得学习可能会得到改善。我正在考虑在计算动作激活后简单地添加一个步骤(例如,从右激活中减去左激活,反之亦然)。但是,我担心这会在一般情况下导致收敛问题。
添加约束似乎是该领域的共同愿望,所以我想知道是否有人知道我应该为此目的使用的标准方法。如果不是,那么我的临时方法是否合理。
提前致谢!
【问题讨论】:
-
你能详细说明
subtracting the left activation from the right activation and vice versa吗? -
@greeness 肯定的 :) 想象一下模型为每个动作输出这个激活:up=.7,left=.9,down=.1,right=.8。通常会选择最活跃的动作(即左)。但我希望模型认为想要左右移动都不是一个好的选择。我建议通过将激活值更改为以下值来通知模型:up=.7,left=.9-.8=.1,down=.1,right=.8-.9=-.1。现在模型将选择向上动作,因为左右激活抵消了。
-
问题仍然是 1) 这个方案是否真的有效,2) 是否有一些标准的方法来完成同样的事情。
-
我认为这次取消是无效的。考虑一种情况:上=0.2,下=0.1,左=0.8,右=0.8,上或下会导致一条没有出口的黑洞,而向左或向右可以避免这种情况。如果您使用取消,您将永远找不到正确的方法,对吗?您是否尝试使用 epsilon-exploration 方法,以便每个操作都有机会被尝试。
-
嗯,是的,我认为我的想法显然有问题;就是这样,哈哈,是的,我一直在用相当高的 epsilon(从 0 到 25%)进行电子贪婪,但我不认为探索是问题所在。我认为这个问题是由我有非常细粒度的操作引入的。回到您的黑洞示例,在向左或向右转之后,代理还没有完全清除黑洞,因此再次做出几乎相同的决定。所以代理最终沿着左右轴随机游走,直到他清除了这个洞。无法弄清楚如何解决这个问题:-/
标签: algorithm machine-learning constraints neural-network reinforcement-learning