【问题标题】:Q learning transition matrixQ学习转移矩阵
【发布时间】:2015-05-27 04:23:40
【问题描述】:

我试图弄清楚如何在 gridworld 示例中实现 Q 学习。我相信我了解 Q 学习的基本原理,但它似乎并没有给我正确的价值观。

这个例子来自 Sutton 和 Barton 关于强化学习的书。

指定网格世界,使得代理可以在任何给定状态下以相等的概率采取动作 {N,E,W,S},并且所有动作的奖励为 0,除非代理尝试离开网格如果是-1。有两种特殊状态,A 和 B,其中代理将确定性地分别移动到 A' 和 B',奖励分别为 +10 和 +5。

我的问题是关于如何通过 Q 学习来实现这一点。我希望能够通过矩阵求逆来估计价值函数。代理以某种初始状态开始,什么都不知道,然后采取由 epsilon-greedy 算法选择的动作并获得我们可以模拟的奖励,因为我们知道奖励是如何分配的。

这引出了我的问题。每次代理从某个状态 S -> S' 转换时,我是否可以构建一个转换概率矩阵,其中概率是根据代理采取特定操作并执行特定转换的频率计算的?

【问题讨论】:

    标签: machine-learning statistics q-learning


    【解决方案1】:

    对于 Q 学习,您不需要环境的“模型”(即转移概率矩阵)来估计价值函数,因为它是一种无模型方法。对于矩阵求逆评估,您指的是使用转移矩阵的动态规划(基于模型)。您可以将 Q-learning 算法视为一种试错算法,您可以在其中选择一个动作并接收来自环境的反馈。但是,与基于模型的方法相反,您对环境的工作方式一无所知(没有转换矩阵和奖励矩阵)。最终,经过足够的采样经验后,Q 函数将收敛到最优。

    对于算法的实现,您可以从初始状态开始,在为所有统计和操作初始化 Q 函数之后(这样您就可以跟踪 $SxA$)。然后根据您的策略选择一个操作。在这里你应该实现一个step function。 step 函数将返回新状态 $s'$ 和奖励。将阶跃函数视为环境对您的操作的反馈。

    最终您只需要根据以下内容更新您的 Q 函数: $Q(s,a)=Q(s,a)+\alpha\left[r+\gamma\underset{a'}{\max(Q(s',a)})-Q(s,a)\对]$ 设置$s=s'$,重复整个过程直到收敛。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      不确定这是否有帮助,但here 是一篇通过机器人示例解释 Q 学习的文章。如果您想自己尝试一下,里面还有一些 R 代码。

      【讨论】: