当前位置: 首页 > 知识库问答 >
问题:

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

姚德容
2023-03-14

我正在尝试进入机器学习领域,并决定自己尝试一些东西。我写了一个小的井字游戏。到目前为止,计算机使用随机移动与自己对弈。

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

我不明白的部分是这样的:代理用什么来为当前状态训练自己?假设一个RNG机器人玩家这样做:

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

[…][x][o]

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

现在代理必须决定最好的行动应该是什么。一个训练有素的人会选择第一,第三,第七或第九。它是否在数据库中查找了导致他获胜的类似状态?因为如果是这样的话,我认为我需要将每一步棋都保存到数据库中,直到最终的结束状态(赢/输/平状态),对于一场比赛来说,这将是相当多的数据?

如果我考虑错了,我想知道如何正确做到这一点。

共有1个答案

从经略
2023-03-14

学习

1)观察当前的板状态;

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

3)按顺序记录s';

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

博弈

1)观察当前的板状态;

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

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

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

 类似资料:
  • 我想将我的IntelliJ配置文件保留在我的dotfiles repo中,但我的文件夹重量>1.3g:( 仍然重量>215米... 包含大量二进制文件...不是dotfiles的最佳候选项:(

  • 我想使用h2作为数据库,在内存模式下准确保存数据。 所以我有一个应用程序。属性文件,配置如下: 使用特定参数: -保持数据库打开/保持内存中数据库的内容,只要虚拟机是活动的 -禁用数据库关闭退出 如H2数据库文档所述。 同时,我使用实体保存在数据库中: 发送请求后,我将从Hibernate状态获取控制台信息: 但在使用组合键Ctrl/kbd>F5或通过以下方式刷新数据源中的数据库之后: 凯,我没有

  • 我正在制作一个程序来玩Connect 6,Connect 4的变体,你必须连续获得6的序列,并且无论下面有多少个棋子,棋子都可以放置在任何未占用的空间中。 我目前正在使用Minimax和Alpha Beta修剪。我想用换位表来加快速度。 然而,我显然不能在我的换位表中保留所有可能的板子,所以我如何决定保留哪些板子? 我的换位表目前是[1000000][4]数组,因此可以存储400万个电路板状态。

  • 我的应用程序将一些文件保存到设备上的数据/数据文件夹中。保存远程文件后,我会处理这些文件,并将它们复制到其他文件夹中。在之前测试过的所有设备上,All都能正常工作,但在galaxy s3上会生成空指针异常。似乎我不被允许在那个文件夹上写或处理文件!但只有新的星系s3!我也无法使用EclipseDDMS文件浏览器在数据文件夹中找到任何文件,而在模拟器(相同的android版本)中,我可以正确查看所有

  • 在https://github.com/luisgoncalves/xades4j/wiki/definingkeyingdata中提到,存储在智能卡中的密钥和证书可以用于对XML文档进行签名。代码示例中提到了本机库: 但是这个本机库中应该有什么,是dll还是Java jar,库应该导出哪些函数?我尝试使用来自我国数字签名包发行版的库pkcs11wrapper-1.2.18.jar和pkcs11w

  • 本文向大家介绍python学习将数据写入文件并保存方法,包括了python学习将数据写入文件并保存方法的使用技巧和注意事项,需要的朋友参考一下 python将文件写入文件并保存的方法: 使用python内置的open()函数将文件打开,用write()函数将数据写入文件,最后使用close()函数关闭并保存文件,这样就可以将数据写入文件并保存了。 示例代码如下: 执行结果: 内容扩展: pytho