Q Learning 教程困惑

我对机器学习方法还比较陌生,我想尝试一下Q-Learning。所以我一直在阅读这篇文章:

http://mnemstudio.org/path-finding-q-learning-tutorial.htm

让我感到困惑的是这个方程:

Q(1, 5) = R(1, 5) + 0.8 * Max[Q(5, 1), Q(5, 4), Q(5, 5)] = 100 + 0.8 * 0 = 100

在这个教程中,R(1, 5)的值从100变到0,然后又变回100,这让我很困惑!R矩阵应该是静态的。

enter image description here


回答:

我认为一个错误是第二方程中使用了R(1, 5)。如果你仔细阅读文本,你会发现你目前在状态3,并且随机选择去状态1

对于下一集,我们从随机选择的初始状态开始。这次,我们的初始状态是状态3

查看R矩阵的第四行;它有3个可能的行动:去状态1、2或4。通过随机选择,我们选择去状态1作为我们的行动

R(3, 1)0,文章中随后更新的Q矩阵也为Q(3, 1)填充了值。

因此,方程应该是:

Q(3, 1) = R(3, 1) + 0.8 * Max[Q(1, 3), Q(1, 5)] = 0 + 0.8 * 100 = 80

(1, 2)-1,所以我认为使用这个是错误的。文本甚至说:

现在我们想象我们处于状态1。查看奖励矩阵R的第二行(即状态1)。它有2个可能的行动:去状态3或状态5

所以R(1, 5)不会变化:它始终是100。只是有时与R(3, 1)混淆了。

更新

这里是教程的另一部分,我认为为了清晰和正确性应该进行修改,以及我认为它应该表达的内容。我加粗了我的修改部分。

矩阵Q的更新条目,Q(5, 1), Q(5, 4), Q(5, 5),都是零。Q(1, 5)的计算结果为100,因为来自R(5, 1)的即时奖励。这个结果不会改变Q矩阵。

修改为:

矩阵Q的更新条目,Q(5, 1), Q(5, 4), Q(5, 5)(即,从之前的操作更新),都是零。Q(1, 5)的计算结果为100,因为来自R(1, 5)的即时奖励。这个结果不会改变Q矩阵。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注