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

标签 machine-learning artificial-intelligence reinforcement-learning

我正在尝试进入机器学习领域,并决定亲自尝试一下。我写了一个小井字游戏。到目前为止,计算机使用随机 Action 与自己对战。

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

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

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

[..][x][o]

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

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

如果我的想法是错误的,我想知道如何正确地思考。

最佳答案

学习

1) 观察当前棋盘状态s;

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

3) 将s'记录在一个序列中;

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

玩游戏

1) 观察当前棋盘状态s;

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

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

关于你的问题,是的,游戏阶段的查找表是在学习阶段建立的。每次状态都是从所有 V(s) 中选择,最大可能数量为 3^9=19683。这是a sample code written by Python在训练中运行 10000 场比赛。

关于machine-learning - 我应该使用强化学习将哪些内容保存到文件/数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818145/

相关文章:

machine-learning - TensorFlow 中的堆叠 RNN 模型设置

apache-spark - Spark MlLib 线性回归(线性最小二乘)给出随机结果

lisp - AI中的Lisp: self 修改代码和特定领域的抽象级别

machine-learning - 如何保存经过训练的强化学习代理以避免每次都对其进行训练?

algorithm - 学习元素的顺序

machine-learning - 机器学习的特征选择

machine-learning - Keras 保存的模型预测不同 session 上的不同值

F#和模糊逻辑

python - 索引错误: index 1 is out of bounds for axis 0 with size 1 while storing the result as a tuple in python

machine-learning - 具有可变 Action 的强化学习