我已经在R中建立了一个Q学习问题,并希望在我构建问题的方法的理论正确性方面提供一些帮助。
Problem structure对于此问题,环境由10种可能的状态组成。在每个状态下,代理都有11个可供选择的潜在操作(这些操作与代理所处的状态无关)。根据智能体所处的特定状态和智能体随后采取的动作,存在向下一状态的转变的唯一分布,即,到任何下一状态的转变概率(仅)依赖于前一状态以及随后采取的动作。
每集有9次迭代,即在新的一集开始之前,代理可以采取9个动作并进行9次转换。在每一集中,智能体将从状态1开始。
在每个场景中,在agent的9个动作中的每个动作之后,agent将获得一个奖励,该奖励取决于agent(立即)的前一个状态和他们(立即)的前一个动作以及他们着陆的状态,即agent的奖励结构取决于状态-动作-状态三元组(其中一个集中将有9个)。
智能体的转移概率矩阵是静态的,奖励矩阵也是静态的。
我已经设置了两个学习算法。在第一个阶段中,Q矩阵的更新发生在每集的每个动作之后。在第二个阶段中,Q矩阵在每集之后更新。该算法使用epsilon贪婪学习公式。
最大的问题是,在我的Q学习中,我的代理没有学习。随着时间的推移,它得到的奖励越来越少。我已经研究了其他潜在的问题,比如简单的计算错误,或者代码中的bug,但我认为问题出在我的q-learning问题的概念结构上。
问题
我已经将Q矩阵设置为10行乘以11列的矩阵,即所有10个状态都是行,11个动作都是列。这是最好的方法吗?这意味着智能体正在学习一个策略,该策略说“无论何时您处于状态x,do action y”
谢谢和干杯
发布于 2017-08-03 02:49:34
你对这个问题的定义有问题。
Q(s,a)是在状态s中执行操作a并在之后遵循最优策略的预期效用。
走1步、2步或9步后,期望的奖励是不同的。这意味着在步骤0中处于状态s_0并采取行动a_0的奖励与在步骤9中获得的奖励不同
你所定义的“状态”并不能确保你得到任何奖励,它是"state+step“的组合。
要对问题进行适当的建模,您应该重新构建它,并将状态考虑为“位置”+“步骤”。现在您将拥有90个状态(10pos*9步)。
https://stackoverflow.com/questions/45382763
复制相似问题