如何让机器人从以前的游戏中学习

人工智能 人工智能设计
2021-10-19 21:17:15

如何训练一个机器人,给定一系列他做了(最初是随机的)动作的游戏,以根据以前的经验改进它的行为?

该机器人有一些动作:例如射击、等待、移动等。这是一个基于回合的“游戏”,其中,众所周知,我正在运行带有一些目标(例如杀死其他机器人)和随机动作的机器人。所以每个机器人都会有一个评分函数,在游戏结束时会说,从 X 到 Y(0 到 100?),如果他们做得好或不好。

那么如何让机器人学习他们以前的经验呢?因为这不是神经网络所采用的固定输入,所以这是一个游戏列表,机器人在每个游戏中都采取了几个动作(每个“回合”一个)。我知道的 IA 函数用于预测未来值。我不确定是否相同。

也许我应该有一个函数来获取机器人玩过的“更相似的以前的游戏”并检查他采取了什么行动,如果结果不好他应该采取另一个行动,如果结果很好那么他应该采取同样的行动行动。但这似乎是硬编码的。

另一种选择是根据先前的游戏动作训练神经网络(以某种方式解决固定输入的问题)并预测未来动作的得分结果(我猜这类似于国际象棋和围棋游戏的工作方式)并选择似乎有更好结果的那个。

我希望这不是太抽象。我不想在机器人中硬编码很多东西,我希望他们从空白页开始自己学习。

2个回答

强化学习

您描述的问题,即根据基于整个序列(并且可能显着延迟)收到的奖励/分数选择一个好的动作序列,几乎是强化学习的教科书定义。

与许多其他主题一样,深度神经网络目前似乎是解决此类问题的一种有前途的方法。可能是对这种方法的初学者友好描述。

如果这是一个游戏,你可以尝试一个简单的权重计算,如果机器人执行一个产生积极结果的动作 - 杀死一个敌人,获得一个有利的位置等。为那个动作添加一个“权重”,在类似情况下的机会执行将导致积极结果的行动更高。

然而,由于有可能不执行被记住会产生积极结果的动作,所以有一点“随机性”,也有机会发现新的可能性。请记住,不要让单个事件的权重发生太大变化,或者让单个动作的权重变得如此之高,以至于 AI 停止在类似情况下尝试不同的动作。