zer*_*ord 5 machine-learning reinforcement-learning neural-network
问题:
我已经训练了一个代理在网格世界中执行一个简单的任务(在不碰到障碍物的情况下到达网格的顶部),但是似乎总是会发生以下情况。它发现自己处于状态空间的一个简单部分(没有障碍物),因此不断收到强烈的正强化信号。然后,当它发现自己是状态空间的困难部分(楔在两个障碍物旁边)时,它只是选择与以前相同的动作,但没有任何效果(它上升并击中障碍物)。最终,这个值的 Q 值与负奖励相匹配,但此时其他动作的 Q 值甚至更低,因为在状态空间的简单部分无用,因此误差信号降为零,错误动作仍然总是选择了。
我怎样才能防止这种情况发生?我想到了一些解决方案,但似乎都不可行:
任务的一些背景:
因此,我为尝试 RL 算法制作了一个小测试平台——类似于 Sutton 书中描述的网格世界的更复杂版本。世界是一个大的二进制网格(300 x 1000),在 0 的背景下以随机大小的矩形形式填充 1。一个 1 的带环绕着世界的边缘。
一个代理在这个世界上占据一个空间,周围只有一个固定的窗口(41 x 41 窗口,代理在中心)。代理的动作包括在四个主要方向中的任何一个方向上移动 1 个空间。代理只能通过标记为 0 的空间,1 是不能通过的。
当前要在此环境中执行的任务是从底部的随机位置开始,使其到达网格世界的顶部。成功向上移动将获得 +1 奖励。任何会撞到障碍物或世界边缘的移动都会给予 -1 的奖励。所有其他状态的奖励为 0。
代理使用带有神经净值函数逼近器的基本 SARSA 算法(如 Sutton 书中所述)。对于政策决策,我尝试了 e-greedy 和 softmax。