tic tac toe 的神经网络 q learning - 如何使用阈值

数据挖掘 机器学习 神经网络 q学习
2022-03-02 17:46:46

我目前正在编程 aq 学习神经网络,但它不起作用。我之前问过一个关于输入的问题,并已经解决了。我目前对程序为什么不起作用的想法是与阈值有关。这是一个神经网络 - q 学习特定变量。

基本上阈值是一个介于 0 和 1 之间的值,然后你在 0 和 1 之间创建一个随机数,如果这个随机数大于阈值,那么你选择一个完全随机的选择,否则神经网络通过找到最大的来选择q值。

我的问题是,有了这个阈值,我目前将其实现为几乎从 0 开始,然后线性增加,直到程序达到最终迭代时达到 1。它是否正确?

我怀疑这是不正确的原因是,当通过训练神经网络绘制错误图时,程序根本没有学习,但是当阈值几乎达到 1 时,它开始学习非常快,如果你在之后运行更多迭代达到1,回放内存中的所有游戏集都变得相同,从它们开始误差基本为0。

非常感谢任何反馈,如果这个问题无论如何都不清楚,请告诉我,我会尝试解决它。感谢任何提供帮助的人。

1个回答

您正在有效地实施 -贪婪的动作选择。ϵ

至少在我熟悉的情况下,在 RL 中表示这一点的常用方法不是作为选择最佳估计动作的概率的“阈值”,而是作为不选择最佳估计动作的小概率ϵ

为了与我所知道的 RL 文献保持一致,我将使用 -greedy 形式,因此我不会考虑当你的阈值从 0 上升到 1 时会发生什么,我会考虑当从 1 下降到 0 时会发生什么。它是一样的东西。我希望您可以调整以使用或在精神上转换此答案的其余部分,使其与您的阈值有关。. .ϵϵϵ

在监控 Q-Learning 时,您必须小心衡量成功的方式。监控学习游戏的行为会给你带来轻微的反馈。代理将进行探索性移动(概率),学习游戏的结果可能涉及代理失败,即使它已经有一个足够好的策略,不会从它开始探索的位置失败。如果您想衡量智能体对游戏的学习程度,您必须停止训练阶段并在设置为的情况下玩一些游戏。我怀疑这可能是一个问题 - 您正在衡量训练期间的行为结果(注意这适用于 SARSA)ϵϵ0

此外,为您的问题选择过高或过低的值会降低学习速度。高值会干扰 Q 学习,因为它必须拒绝来自探索性动作的一些数据,并且代理很少会看到使用其首选策略进行的完整游戏。低值会扼杀学习,因为智能体没有充分探索不同的选项,只是在可能有更好的动作但它没有尝试过时重复相同的游戏。对于井字游戏和 Q 学习,我建议选择介于ϵ0.010.2

事实上,使用 Q-learning 不需要更改的值。您应该能够选择一个值,例如并坚持使用它。代理仍将学习最优策略,因为 Q-learning 是一种离策略算法ϵ0.1