我读到了 Tesauro 的 TD-Gammon 程序,并且很想将其应用于 tic tac toe,但作为一名高中生,我几乎无法访问所有信息,因为我不知道术语。
这里的第一个方程,http://www.stanford.edu/group/pdplab/pdphandbook/handbookch10.html#x26-1310009.2
给出了“一般监督学习范式”。它表示方程左侧的 w sub t 是时间步 t 处的参数向量。 “时间步长”到底是什么意思?在旨在输出棋盘状态值的井字棋神经网络框架内,时间步长是否指给定游戏中的棋子数量?例如,由字符串“xoxoxoxox”表示的棋盘将在时间步骤 9 处,而棋盘“xoxoxoxo”将在时间步骤 8 处?或者时间步长是指自训练开始以来耗时量?
由于 w sub t 是给定时间步的权重向量,这是否意味着每个时间步都有自己的评估函数(神经网络)?因此,要仅用一次移动来评估棋盘状态,您必须输入不同的神经网络,而不是用两次移动来输入棋盘状态?我认为我在这里误解了一些东西,因为据我所知 Tesauro 仅使用一个 NN 来评估所有棋盘状态(尽管很难找到有关 TD-Gammon 的可靠信息)。
为什么输出的梯度是相对于 w 而不是 w sub t 获取的?
预先感谢您澄清这些想法。如果您对我的项目有任何建议或对无障碍阅读 Material 的建议,我将不胜感激。
最佳答案
TD 涉及 Markov Decision Process 框架内的学习。 。也就是说,您从某种状态 st 开始,执行操作 at,获得奖励 rt,并最终进入另一种状态 — st+1。初始状态称为 s0。下标称为时间。
TD 智能体开始不知道自己会因哪些操作而获得什么奖励,也不知道这些操作会将其带到什么其他状态。其目标是了解哪些行动可以最大化长期总返回。
状态可以代表井字游戏棋盘的状态。因此,在您的情况下, s0 将是一个透明板:“---------”,s1 可能是“-o----” ---”,s2 可能是“-o--x----”等。操作可能是要标记的单元格索引。通过这种表示,您将拥有 39=19 683 种可能的状态和 9 种可能的操作。学习游戏后,您将得到一张表格,告诉您在每个可能的棋盘上标记哪个单元格。
同样类型的直接表示对于双陆棋来说效果不佳,因为可能的状态太多了。 TD-Gammon 所做的是使用神经网络来近似状态。网络的权重被视为状态向量,奖励始终为 0,除非获胜。
这里棘手的部分是 TD-Gammon 算法学习的状态是用于评估棋盘位置的神经网络的状态,而不是棋盘的状态。因此,在 t=0 时,您还没有玩过任何游戏,网络处于初始状态。每次你必须采取行动时,你都使用网络来选择最好的一步,然后根据该行动是否导致胜利来更新网络的权重。在进行移动之前,网络的权重为 wt,之后网络的权重为 wt+1。在玩了数十万场游戏后,您学习了权重,使神经网络能够非常准确地评估棋盘位置。
我希望这能解决问题。
关于machine-learning - 时间差异学习的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696087/