我终于开发了一个游戏机器人,它可以通过深度 Q-Learning 学习如何玩电子游戏 Snake。我尝试了不同的神经网络和超参数,并找到了一个可行的设置,用于一组特定的奖励。
问题是:当我奖励代理朝着正确的方向前进时——如果代理的坐标根据食物的坐标增加或减少,则给予积极的奖励——代理的学习速度非常快,获得了非常高的分数。当我不为此奖励代理时,仅对死亡进行负奖励和对吃食物进行正面奖励时,代理不会学习。该州会考虑附近是否有任何危险,食物是否向上、向下、向右或向左,以及代理人是否在向上、向下、向右或向左移动。
问题来了:奖励代理进入正确的方向是强化学习中的“正确方法”吗?或者它被视为作弊,因为系统需要自己学习?将食物的坐标作为状态传递是另一种“作弊”方式吗?
强化学习的边界
数据挖掘
机器学习
Python
深度学习
喀拉斯
强化学习
2022-03-02 04:03:34
1个回答
问题来了:奖励代理进入正确的方向是强化学习中的“正确方法”吗?
这取决于您希望代理能够自行学习什么。这对你来说是一个问题,因为你有一个“玩具”问题,你可以控制更多的环境并改变获胜的意义。
一般来说,是的,这是“作弊”,至少在声称编写了解决游戏的 RL 代理方面是这样。学术上理想的基本 RL 代理会通过在解决问题的背景下获得有意义的东西来奖励,而临时奖励则无济于事。在蛇类游戏中,以及任何其他街机风格的游戏中,它真的应该是游戏中的官方得分,仅此而已。
将食物的坐标作为状态传递是另一种“作弊”方式吗?
同样,这取决于您期望代理从中学习什么。如果在您的目标生产环境中,这些数据很容易获得,并且您打算使用它来编写一个根据训练有素的策略工作的游戏机器人,那么这很好。如果您有实际问题要解决,则不要求您做一件事或另一件事。
但是,从仅像素状态中学习,如 DQN 原始论文中的那样,具有学术兴趣,因为这是适用于许多问题的通用状态表示,而从蛇到食物的距离是您拥有的特定特征经过精心设计,可以在较小的游戏集中更轻松地学习。
这里的主要问题再次是,您的目标并不是真正将“蛇形机器人”放入生产系统,而是了解 RL 的工作原理。RL 很棘手,而且对于算法和问题的许多组合来说,它通常不能像你期望的那样工作——或者根本不能工作。
这篇文章值得一读:深度强化学习还行不通——它可能会从基本的 DQN 中看到令人失望的结果。
我鼓励您剥离您的 Snake 问题以删除“有用的”奖励和状态,而是研究核心 DQN 算法的扩展,或不同的学习代理,例如 A3C。
其它你可能感兴趣的问题