我在R中设置了一个Q学习问题,并希望能帮助我解决问题的理论正确性。
问题结构 对于此问题,环境包含10种可能的状态。当处于每个状态时,代理有11个可以选择的潜在操作(无论代理所处的状态如何,这些操作都是相同的)。根据代理所处的特定状态以及代理随后采取的后续操作,有一个独特的分布可以转换到下一个状态,即转换到下一个状态的概率也取决于(仅)先前的状态然后采取行动。
每集都有9次迭代,即代理人可以在新剧集开始前拍摄9个动作并进行9次转换。在每集中,代理将从状态1开始。
在每一集中,在每个代理人的9个动作之后,代理人将获得奖励,该奖励取决于代理人(立即)之前的状态和他们(立即)之前的动作以及他们登陆的状态,即代理人的奖励结构取决于一个国家 - 行动 - 国家三联体(在一集中将有9个)。
代理的转移概率矩阵是静态的,奖励矩阵也是如此。
我已经设置了两种学习算法。在第一个中,q-矩阵更新发生在每集中的每个动作之后。在第二个中,q-矩阵在每集之后被更新。该算法使用epsilon贪婪学习公式。
最大的问题是,在我的Q学习中,我的经纪人并没有学习。随着时间的推移,它会得到越来越少的奖励。我已经研究过其他潜在的问题,比如简单的计算错误或代码中的错误,但我认为问题在于我的q学习问题的概念结构。
问题
谢谢和欢呼
答案 0 :(得分:0)
您对问题的定义存在问题。
Q(s,a)
是在州a
内采取行动s
并遵循最佳政策的预期效用。
在采取1,2或9步后,预期奖励有所不同。这意味着,状态s_0
和采取行动a_0
的奖励在步骤0
中与您在步骤9
中获得的奖励不同
你所定义的“状态”并不能确保你有任何奖励,它是“状态+步骤”的组合是什么。
为了对问题进行充分的建模,您应该重新构建它并将状态视为“位置”+“步骤”。您现在将拥有90个州(10pos * 9steps)。