我看到了价值函数之间的区别和. 但是我什么时候使用每一个?当我在 Matlab 中编码时,我只使用了直接(因为我正在考虑表格方法)。那么,什么时候比另一个更有利呢?我有一个很大的状态空间。
何时使用状态值函数五(秒)V(s)以及何时使用状态-动作价值函数Q ( s , a )Q(s,a)?
人工智能
强化学习
比较
价值函数
2021-11-03 09:27:05
1个回答
使用之间的核心区别或者是:
不能单独使用来决定策略。
您要么需要单独的策略功能它是价值函数,或者如果您可以访问环境的分布模型,则可以从中派生策略- 获得奖励的概率并到达下一个状态给定开始. 派生策略将是确定性的
相比下,可用于派生策略而不参考任何模型:. 这使得动作值函数 Q 对于无模型的基于值的控制方法是必要的。因此,蒙特卡洛控制、SARSA、Q-Learning 都将使用动作值。
通常比.
状态值表使用的空间是
动作值表使用的空间是
当您使用近似时,这些空间问题也适用 - 您需要学习近似的输入域比你需要学习的要大. 尽管对于具有大量维度的大型状态空间,近似后的相对差异可能足够小,以至于您并不真正关心。
较小的空间使如果你可以使用它是一个不错的选择。好处是内存占用更小,并且通常学习速度更快,因为要学习的单独值更少(并不总是更快,因为您仍然需要探索所有状态下的所有操作才能学习准确的值)。
可以使用的典型场景代替
- 您可以访问完整的环境模型,如上文第一部分所述。
或者
- 您正在使用单独的策略功能。在最优控制中,这通常发生在 actor-critic 方法中,这是相对先进的 RL 方法,但却是一种流行的方法,尤其是当动作空间很大时。这种情况也出现在预测问题中,任务不是优化任何东西,而是评估固定策略。
或者
- 你的行为是直接选择下一个状态。这称为状态后表示,与状态值略有不同,但具有使用较小空间的类似好处。它可用于确定棋盘游戏和类似环境中的值。
如果这些情况都不适用,那么您将不得不使用动作价值函数. 您也可以选择使用因为在您工作的任何框架中都更容易坚持使用它。有时使用它的好处相反,它们不够大,不值得付出努力。
其它你可能感兴趣的问题