具有状态 - 动作 - 状态奖励结构和Q矩阵的Q学习,其中状态为行,动作为列

时间:2017-07-28 21:36:23

标签: algorithm machine-learning artificial-intelligence reinforcement-learning q-learning

我在R中设置了一个Q学习问题,并希望能帮助我解决问题的理论正确性。

问题结构 对于此问题,环境包含10种可能的状态。当处于每个状态时,代理有11个可以选择的潜在操作(无论代理所处的状态如何,这些操作都是相同的)。根据代理所处的特定状态以及代理随后采取的后续操作,有一个独特的分布可以转换到下一个状态,即转换到下一个状态的概率也取决于(仅)先前的状态然后采取行动。

每集都有9次迭代,即代理人可以在新剧集开始前拍摄9个动作并进行9次转换。在每集中,代理将从状态1开始。

在每一集中,在每个代理人的9个动作之后,代理人将获得奖励,该奖励取决于代理人(立即)之前的状态和他们(立即)之前的动作以及他们登陆的状态,即代理人的奖励结构取决于一个国家 - 行动 - 国家三联体(在一集中将有9个)。

代理的转移概率矩阵是静态的,奖励矩阵也是如此。

我已经设置了两种学习算法。在第一个中,q-矩阵更新发生在每集中的每个动作之后。在第二个中,q-矩阵在每集之后被更新。该算法使用epsilon贪婪学习公式。

最大的问题是,在我的Q学习中,我的经纪人并没有学习。随着时间的推移,它会得到越来越少的奖励。我已经研究过其他潜在的问题,比如简单的计算错误或代码中的错误,但我认为问题在于我的q学习问题的概念结构。

问题

  • 我将Q矩阵设置为10行×11列矩阵,即所有10个状态都是行,11个动作是列。这是最好的方法吗?这意味着代理正在学习一项政策,即“当你处于状态x时,做行动”
  • 鉴于我问题的这种独特结构,标准的Q-update是否仍然适用?即Q [cs,act]<< -Q [cs,act] + alpha *(奖励+ gamma * max(Q [ns,]) - Q [cs,act]) 其中cs是当前状态;行为是选择的行动;奖励是给予您当前状态,您选择的行动以及您将转换到的下一个州的奖励; ns是您将转换到给定上一个状态和最后一个操作的下一个状态(请注意,您随机转换到此状态)。
  • R中有一个开放的AI健身房吗?是否存在针对此结构问题的Q学习包?

谢谢和欢呼

1 个答案:

答案 0 :(得分:0)

您对问题的定义存在问题。

Q(s,a)是在州a内采取行动s并遵循最佳政策的预期效用。

在采取1,2或9步后,预期奖励有所不同。这意味着,状态s_0和采取行动a_0的奖励在步骤0中与您在步骤9中获得的奖励不同

你所定义的“状态”并不能确保你有任何奖励,它是“状态+步骤”的组合是什么。

为了对问题进行充分的建模,您应该重新构建它并将状态视为“位置”+“步骤”。您现在将拥有90个州(10pos * 9steps)。