在 SARSA 中结合转移概率

Incorporating Transition Probabilities in SARSA

我正在用 C++ 实现 SARSA(lambda) 模型以克服 DP 模型的一些限制(绝对时间量和 space DP 模型需要),这有望减少计算时间(类似的研究需要几个小时的 atm)和更少的 space 将允许为模型添加更多的肤色。

我们确实有明确的转移概率,它们确实有所作为。那么我们应该如何将它们合并到 SARSA 模型中呢?

简单select下一个状态根据自己的概率?显然 SARSA 模型并不完全期望你使用概率 - 或者我可能读错了书。

PS- 有没有办法知道算法是否正确实施?第一次使用 SARSA。

如果您有权访问转移概率,我建议不要使用基于 Q 值的方法。这将需要额外的采样以提取您已有的信息。

情况可能并非总是如此,但如果没有其他信息,我会说 modified policy iteration 是更适合您的问题的方法。

动态规划 (DP) 和强化学习 (RL) 之间的根本区别在于,前者假设环境的动态是已知的(即模型),而后者可以直接从过程中获得的数据中学习,以一组样本、一组过程轨迹或单个轨迹的形式。由于这个特性,RL 方法在模型难以构建或构建成本高昂时很有用。但是,应该注意这两种方法共享相同的工作原理(在 Sutton's book 中称为广义策略迭代)。

鉴于它们相似,这两种方法也有一些局限性,即维数灾难。来自 Busoniu's book(第 3 章是免费的,可能对您的目的有用):

A central challenge in the DP and RL fields is that, in their original form (i.e., tabular form), DP and RL algorithms cannot be implemented for general problems. They can only be implemented when the state and action spaces consist of a finite number of discrete elements, because (among other reasons) they require the exact representation of value functions or policies, which is generally impossible for state spaces with an infinite number of elements (or too costly when the number of states is very high).

Even when the states and actions take finitely many values, the cost of representing value functions and policies grows exponentially with the number of state variables (and action variables, for Q-functions). This problem is called the curse of dimensionality, and makes the classical DP and RL algorithms impractical when there are many state and action variables. To cope with these problems, versions of the classical algorithms that approximately represent value functions and/or policies must be used. Since most problems of practical interest have large or continuous state and action spaces, approximation is essential in DP and RL.

在您的情况下,很明显您应该使用某种函数逼近。但是,如果您知道转移概率矩阵,则可以选择基于 DP 或 RL 的方法。在 RL 的情况下,转换仅用于计算给定动作的下一个状态。

DP好还是RL好?其实我不知道答案,最佳方法可能取决于您的具体问题。直觉上,以计划的方式 (DP) 对一组状态进行采样似乎更安全,但也许你的状态 space 的很大一部分与找到最佳策略无关。在这种情况下,对一组轨迹 (RL) 进行采样可能在计算上更有效。无论如何,如果正确应用这两种方法,应该会得到类似的解决方案。

注意:当采用函数逼近时,收敛性更脆弱,在迭代过程中发散的情况并不少见,尤其是当逼近器是非线性的(例如人工神经网络)与 RL 结合时。