2015-09-03 157 views
1

我对任何机器学习方法都很陌生,我想我会尝试尝试Q-Learning。所以,我一直在阅读这篇文章:Q学习教程混淆

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)保持在教程中再次改变从1000然后回到100,WHAT ! R矩阵是静态的。

enter image description here

+0

乍一看,我会说这只是文章中的一个错误。尽管奖励可能有一个随机组件,但这里的环境是确定性的。 – maxy

+1

我的第一条评论之前我读得不够多。深入研究这篇文章,我对自己正在发生的事情变得非常困惑。问题在于 - 错误在哪里,因为整个前提似乎从确定方式转向前进,转变为对你刚刚做出的举动的回顾性评估(为什么我们要从随机状态3移动到1,然后评估从1开始移动,没有评估从状态3开始的移动?状态3在那里的目的是什么?) – roganjosh

+0

我越看越容易混淆。我建议找一个不同的指导:)'由于R(5,1)'即时,不,因为R(5,1)为0,所以对Q(1,5)的计算结果是100,因为R ?另外,他们将100放在附加图像Q矩阵中的错误位置,我怀疑方程之间存在复制/粘贴错误,但我无法解开预期过程应该是什么样子。 – roganjosh

回答

2

我觉得一个错误是在第二个公式使用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)的更新条目全部为零。由于R(5,1)的即时回报,Q(1,5)的计算结果为100。这个结果不会改变Q矩阵。

更改为:

矩阵Q的更新的条目,Q(5,1),Q(5,4),Q(5,5)(如,来自先前操作更新)都是零。由于来自R(1,5)的即时奖励,对于Q(1,5)的这种计算的结果是100。这个结果不会改变Q矩阵。

+0

这是有道理的,但帐户中的错误似乎相当普遍。 '矩阵Q,Q(5,1),Q(5,4),Q(5,5)的更新条目全部为零。由于R(5,1)的即时回报,Q(1,5)的计算结果为100。这个结果不会改变Q矩阵。'1)为什么我们在这里引用R(5,1)?这也应该是R(1,5)? 2)如果这不会导致Q矩阵的更新,我们如何在最终形式中得到100以上? – roganjosh

+0

@roganjosh 1)是的,我认为这也应该是'R(1,5)',我也将这个添加到我的答案中。 2)'Q'更新公式是一个涉及'R'和'Q'的其他值的总和,所以如果让它运行足够长的话,它可以很容易地超过100。本教程仅介绍一个步骤,方便选取状态。其他状态最终会被选中,这将更新'Q'矩阵。 – IVlad

+0

好吧,我可以理解这一点。但我们首先计算Q(1,5)并达到100.然后,我们通过1计算从3到5的路线,但Q(1,5)不会更新以反映此路线。因此我会假设2→3→1→5也不影响Q(1,5)。我没有看到Q(1,5)得到更新的点,还是我看错了? – roganjosh