我应该使用强化学习将哪些内容保存到文件/数据库中?

问题描述 投票:0回答:1

我写了一个小井字游戏。到目前为止,计算机使用随机动作与自己对战。

现在,我想通过编写一个代理来应用强化学习,该代理将根据其对棋盘当前状态的知识进行探索或利用。

我不明白的部分是: 代理使用什么来训练自己以适应当前状态?假设 RNG 机器人 (o) 玩家会这样做:

[..][..][..]

[..][x][o]

[..][..][..]

现在智能体必须决定最好的举动应该是什么。训练有素的人会选择第一、第三、第七或第九。它是否在数据库中查找导致他获胜的类似状态?因为如果是这样,我想我需要将每一个动作保存到数据库中,直到最终它的最终状态(赢/输/平局状态),这对于单次游戏来说会是相当多的数据?

如果我的想法是错误的,我想知道如何正确地做到这一点。

machine-learning artificial-intelligence reinforcement-learning
1个回答
2
投票

学习

1)观察当前板状态s;

2)根据所有可用的下一步行动 V(s') 的分布进行下一步行动。严格来说,选择通常基于 V(s') 的玻尔兹曼分布,但可以简化为最大值移动(贪婪),或者使用某种概率 epsilon,如您所使用的随机移动;

3)按序列记录s';

4)如果游戏结束,则更新序列中访问过的状态的值并重新开始;否则,转1)。

玩游戏

1)观察当前板状态s;

2) 根据下一步所有可用的 V(s') 的分布进行下一步;

3)直到游戏结束并重新开始;否则,转到1)。

关于你的问题,是的,游戏阶段的查找表是在学习阶段建立的。每次状态都是从所有 V(s) 中选择,最大可能数量为 3^9=19683。这是由 Python 编写的示例代码,它在训练中运行了 10000 个游戏。

© www.soinside.com 2019 - 2024. All rights reserved.