Q-learning with a state-action-state reward structure and a Q-matrix with states as rows and actions as 列

Q-learning with a state-action-state reward structure and a Q-matrix with states as rows and actions as columns

我已经在 R 中设置了一个 Q-learning 问题,希望对我在构建问题时的方法的理论正确性提供一些帮助。

问题结构 对于这个问题,环境由 10 种可能的状态组成。在每个状态下,agent 有 11 种可能的动作可供选择(无论 agent 处于何种状态,这些动作都是相同的)。根据代理所处的特定状态以及代理随后采取的后续行动,存在用于转换到下一个状态的唯一分布,即到任何下一个状态的转换概率也(仅)取决于前一个状态作为当时采取的行动。

每一集有 9 次迭代,即在新一集开始之前,代理可以采取 9 个动作并进行 9 次转换。在每一集中,智能体将从状态 1 开始。

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

智能体的转移概率矩阵是静态的,奖励矩阵也是静态的。

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

最大的问题是在我的 Q-learning 中,我的智能体没有学习。随着时间的推移,它得到的奖励越来越少。我已经研究了其他潜在的问题,例如简单的计算错误或代码中的错误,但我认为问题出在我的 q-learning 问题的概念结构上。

问题

感谢和欢呼

你对问题的定义有问题。

Q(s,a) 是在状态 s 中采取行动 a 并随后遵循最优策略的预期效用。

走 1、2 或 9 步后的预期奖励不同。这意味着处于状态 s_0 并采取行动 a_0 的奖励在步骤 0 中与您在步骤 9

中获得的不同

您定义的"state"并不能确保您获得任何奖励,它是"state+step"的组合。

为了对问题进行充分建模,您应该重新构造它并将状态视为 'position'+'step'。您现在将拥有 90 个状态(10pos*9steps)。