马尔可夫决策过程问题

alt text http://img693.imageshack.us/img693/724/markov.png

我对这里的一些点感到困惑:

  1. 如果说他尝试一个给定的动作有 70% 的几率成功,这意味着什么? 是指每次他尝试执行动作 A 时,有 70% 的几率执行该动作 A,而另外 30% 的几率执行导致相同状态的动作,还是仅仅是好像他总是执行动作 A,但只是 30% 的几率他没有做? 我希望我表达清楚了 🙁
  2. 如何能有几个连续状态具有相同的效用? 理论上,离有奖励的状态越远,效用不应该总是降低吗?
  3. 仅知道我上面给出的信息,是否可以推断出折扣因子 (gamma) 是什么? 如果是,怎么做?
  4. 是否可以计算状态的奖励? 如何计算?

回答:

处理大多数 MDP 问题都有一个模式,但我认为你可能遗漏了问题描述中的一些信息,很可能与你试图到达的状态有关,或者一个 episode 如何结束(如果你跑到网格边缘会发生什么)。 我尽力回答了你的问题,但我附上了一个关于我用来处理这些类型问题的过程的入门知识。

首先,效用是对你想处于某个给定状态的程度的一个相当抽象的衡量标准。即使你用简单的启发式方法(欧几里得或曼哈顿距离)来衡量效用,两个状态有相同的效用也是完全有可能的。 在这种情况下,我假设效用值和奖励是可以互换的。

从长远来看,这些类型问题的目标往往是,你如何最大化你的预期(长期)奖励? 学习率 gamma 控制你对当前状态与你希望到达的状态的重视程度——实际上你可以把 gamma 看作一个光谱,从 “做在当前时间步最有利于我的事情” 到另一个极端 “探索我所有的选择,然后回到最好的一个”。 Sutton 和 Barto 在他们的强化学习一书中,有一些非常好的关于这如何工作的解释


在你开始之前,回头看看这个问题,确保你能自信地回答以下问题。

  1. 什么是状态?有多少个状态?
  2. 什么是动作?有多少个动作?
  3. 如果你从状态 u 开始,并应用动作 a,到达新状态 v 的概率是多少?

那么这些问题的答案呢?

  1. 状态是一个向量 (x,y)。 网格是 5 x 5,所以有 25 个状态。
  2. 有四种可能的动作,{E,N,S,W}
  3. 在应用合适的动作后,成功到达相邻状态的概率为 0.7,不移动的概率(停留在同一状态)为 0.3。 假设 (0,0) 是左上角的单元格,(4,4) 是右下角的单元格,下表显示了所有可能转换的一个小例子。
Start State Action           Final State    Probability---------------------------------------------------(0,0)           E               (0,0)          0.3(0,0)           E               (1,0)          0.7(0,0)           E               (2,0)          0...(0,0)           E               (0,1)          0... (0,0)           E               (4,4)          0(0,0)           N               (0,0)          0.3...(4,4)           W               (3,4)          0.7(4,4)           W               (4,4)          0.3

我们如何检查这对这个问题是否有意义?

  1. 检查该表是否有适当数量的条目。 在 5 x 5 的网格上,有 25 个状态和 4 个动作,因此该表应有 100 个条目。
  2. 检查以确保对于一个开始状态/动作对,只有两个条目具有非零的发生概率。

编辑。 回答请求目标状态的转移概率。 下面的符号假设

  • v 是最终状态
  • u 是源状态
  • a 是动作,如果没有提到,则意味着应用的动作不相关。
P( v=(3,3) | u =(2,3), a=E ) = 0.7P( v=(3,3) | u =(4,3), a=W ) = 0.7P( v=(3,3) | u =(3,2), a=N ) = 0.7P( v=(3,3) | u =(3,4), a=S ) = 0.7P( v=(3,3) | u =(3,3) ) = 0.3

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中创建了一个多类分类项目。该项目可以对…

发表回复

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