人工智能 – Delphi / Pascal中的TD(λ)(时间差异学习)

我有一个人工神经网络玩Tic-Tac-Toe – 但还没有完成.

我还有什么:

>奖励数组“R [t]”,每个时间步长的整数值或移动“t”(1 =玩家A获胜,0 =平局,-1 =玩家B获胜)
>输入值通过网络正确传播.
>调整权重的公式:

缺什么:

> TD学习:我仍然需要一个使用TD(λ)算法“反向传播”网络错误的程序.

但我真的不明白这个算法.

我的方法到目前为止……

痕量衰减参数λ应该是“0.1”,因为远端状态不应该得到那么多的奖励.

两层(输入和隐藏)的学习率均为“0.5”.

这是延迟奖励的情况:奖励在游戏结束前保持为“0”.然后奖励对于第一个玩家的胜利变为“1”,对于第二个玩家的胜利变为“-1”或者在抽奖的情况下变为“0”.

我的问题:

>您如何以及何时计算净误差(TD误差)?
>如何实现错误的“反向传播”?
>如何使用TD(λ)调整权重?

非常感谢你提前:)

最佳答案 如果你真的想要做这项工作,那么理解TD-lambda会非常有帮助. Sutton和Barto的书“强化学习”是
available for free in HTML format,详细介绍了这个算法.基本上,TD-lambda所做的是在游戏结束时创建游戏状态与预期奖励之间的映射.随着比赛的进行,更有可能获得胜利状态的状态往往会获得更高的预期奖励值.

对于像tic-tac-toe这样的简单游戏,最好从表格映射开始(只跟踪每个可能的游戏状态的预期奖励值).然后,一旦你有了工作,你可以尝试使用NN进行映射.但我建议先尝试一个单独的,更简单的NN项目……

点赞