已经进行了大量研究来使用 A2C 等方法创建最佳(或“最智能”)RL 代理。智能体现在可以在围棋、国际象棋、扑克、雅达利游戏、DOTA 等方面击败人类。但我认为这类智能体永远不会成为人类的朋友,因为人类不会与总是击败它们的智能体一起玩。
我们如何创建一个性能不超过人类但具有人类水平技能的智能体,这样当它与人类比赛时,人类仍然有动力击败它?
已经进行了大量研究来使用 A2C 等方法创建最佳(或“最智能”)RL 代理。智能体现在可以在围棋、国际象棋、扑克、雅达利游戏、DOTA 等方面击败人类。但我认为这类智能体永远不会成为人类的朋友,因为人类不会与总是击败它们的智能体一起玩。
我们如何创建一个性能不超过人类但具有人类水平技能的智能体,这样当它与人类比赛时,人类仍然有动力击败它?
假设机器总能找到最佳移动,您基本上必须降低结果。有多种可能性:
限制搜索的深度。在早期的国际象棋程序中,我认为这是调节难度的主要方式。在达到搜索树的特定深度后,您停止对移动的评估。这相当于只向前看两步而不是二十步。
设定时间限制。这有点类似于限制搜索的深度,但更普遍适用。如果您的算法积累了候选动作,并且总体趋势是在首先找到一些较弱的动作之后获得更好的动作,那么您可以在给定的时间点停止并返回您当时找到的动作。
扭曲现有信息。这可能不适用于国际象棋等游戏,但您可以限制机器可用于评估移动的信息。战略游戏中经常使用的“战争迷雾”之类的东西。在信息不完整的情况下,很难找到一个好的棋步,尽管这并非不可能,这比限制搜索深度更具挑战性。
次优评价函数。如果您有一个评估移动质量的函数,只需捏造该函数以不返回最佳值。可能会在返回值上添加一个随机偏移量,以降低其确定性/可预测性。
可能还有其他方法;棘手的部分是在看起来是一个较弱(但始终如一)的玩家和只是一个随机数生成器之间划清界限。