强化学习 - 如何摆脱“粘性”状态?

时间:2012-07-27 18:21:59

标签: machine-learning neural-network reinforcement-learning

问题:

我已经训练了一个代理人在网格世界中执行一项简单的任务(在没有碰到障碍物时到达网格顶部),但似乎总是会发生以下情况。它发现自己处于状态空间的一个简单部分(没有障碍物),因此不断获得强烈的正强化信号。然后当它确实发现自己是状态空间的困难部分(楔入两个障碍物旁边)时,它只是选择与之前相同的动作,没有效果(它上升并击中障碍物)。最终,此值的Q值与负值奖励匹配,但此时其他操作的Q值甚至更低,在状态空间的简单部分中无用,因此错误信号降至零,并且错误操作仍然始终为选择的。

如何防止这种情况发生?我想到了一些解决方案,但似乎都不可行:

  • 使用一个总是探索沉重的政策。由于障碍需要约5个动作来解决,所以不时出现一个随机动作似乎无效。
  • 制作奖励功能,以便在重复时不良行为更糟。这使得奖励功能打破马尔可夫属性。也许这不是一件坏事,但我根本就没有线索。
  • 只奖励代理人完成任务。任务完成需要一千多个动作,因此训练信号太弱了。

该任务的一些背景知识:

所以我为尝试RL算法制作了一个小测试平台 - 就像Sutton书中描述的更复杂的网格世界版本。世界是一个大的二进制网格(300乘1000),在0的背景下以1的随机大小的矩形形式填充。 1个乐队围绕着世界的边缘。

一个代理占据了这个世界上的一个空间,只有一个固定的窗口围绕它(41到41窗口,代理在中心)。代理人的行动包括在四个基本方向中的任何一个方向上移动1个空格。代理只能通过标记为0的空格移动,1是无法通行的。

在此环境中执行的当前任务是从底部的随机位置开始,使其位于网格世界的顶部。成功向上移动可获得+1的奖励。任何会碰到障碍或世界边缘的行动都会给出-1的奖励。所有其他州都获得0的奖励。

代理使用基本的SARSA算法和神经网络值函数近似(如Sutton书中所讨论的)。对于政策决定,我尝试过e-greedy和softmax。

1 个答案:

答案 0 :(得分:2)

教授此类任务的典型方法是在每一步给予代理人一个负面的奖励,然后在完成时给予一大笔支付。您可以通过使用资格跟踪并最初将代理放置在目标附近,然后靠近它探索的区域来弥补长时间的延迟。