PyTorch 官方教程真的是关于 Q-learning 的吗?

人工智能 q学习 价值迭代
2021-11-06 03:15:59

我读过 Q 学习算法,也知道值迭代(当你更新动作值时)。我认为 PyTorch 的例子是价值迭代而不是 Q 学习。

这是链接: https ://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html

1个回答

TL;DR:这是 Q 学习。然而,Q 学习基本上是基于样本的值迭代,所以看到相似之处也就不足为奇了。

Q learning* 和价值迭代密切相关。在考虑行动价值时,两种方法都使用相同的贝尔曼方程来优化策略,q(s,a)=r,sp(r,s|s,a)(r+γmaxaq(s,a))作为更新步骤的基础。区别在于:

  • 值迭代使用环境模型进行更新,Q 学习从主动代理生成的环境样本中工作。

    • 通过在模拟环境而不是真实环境中工作,可能不清楚代理是无模型还是基于模型(或计划而不是行动)。但是,PyTorch 示例中模拟环境的使用方式与无模型方法一致。
  • 值迭代循环遍历所有可能的状态和更新操作,独立于代理可能采取的任何操作(实际上代理不需要存在)。Q learning 适用于代理所经历的任何状态。

    • 通过在 DQN 中添加经验回放记忆,Q 学习变得更接近于值迭代,因为您可以将记忆构建为学习模型,并将其视为一种规划(或“扫描”状态)。这就是它的描述方式,例如在 DynaQ 中,这是一种几乎与 DQN 中使用的重放算法相同的算法,当两者都用于最简单的版本时 - 参见 Sutton & Barto 第 8 章。
  • 值迭代值更新步骤超出了下一个状态和奖励的期望——它处理加权和r,sp(r,s|s,a). Q 学习更新步骤对下一个状态和奖励进行过采样——它最终在许多单独的更新上近似于相同的期望。

    • 在这个问题上,即使使用大量的经验回放记忆也不能得到与值迭代相同的 Q 学习,样本也不能保证完美。但是,在确定性环境中,这种差异没有意义。所以如果你有一个确定性的环境,Q 学习和价值迭代在本质上也可能被认为更接近一点。

* 从技术上讲,这适用于单步 Q 学习。n-step Q-learning 和 Q(λ) 使用不同的未来预期回报估计,这些估计与此处显示的单步版本相关但不同。