在机器学习中,“特征”是解释变量的同义词。我知道什么是功能。但是,在 RL 的特定情况下,我不清楚什么是特征。在 RL 的具体情况下,什么是“特征”?RL 中的特征示例有哪些?哪些 RL 算法需要特征规范?为什么我们需要 RL 中的“特征”?
强化学习的背景下有哪些特征?
在 RL 的具体情况下,什么是“特征”?
在 RL 中,监督学习组件用于学习价值函数或策略的函数逼近。这通常是状态的函数,有时是状态和动作的函数。因此,这些特征是与状态(或状态和动作)相关的解释变量,需要足以解释该状态的价值或最佳动作。
在 RL 文献中,术语“状态表示”或“特征”之间通常没有区别。尽管您可能需要使用特征工程将状态表示处理为适合您正在使用的任何监督学习的特征。对于神经网络,这可能涉及对可能导致问题的值进行归一化。
RL 中的特征示例有哪些?
在OpenAI 的健身房中,CartPole-v1具有以下描述状态的特征:
- 购物车位置
- 推车速度
- 极角
- 尖端极速
在这种情况下,位置和速度以任意单位测量,但您可能会认为它们是 SI 单位 - 沿轨道的米、米/秒、弧度、米/秒。
通常在 RL 中,您需要以下功能:
描述状态(可能还有动作,取决于实现)
可以通过观察环境来收集
与动作选择一起,可以充分解释预期奖励和下一个状态。在 RL 术语中,它们应该总体上具有马尔可夫性质
哪些 RL 算法需要特征规范?
没有一个*。但是,如果没有状态的描述性特征,您只能枚举所有可能的状态,并使用表格方法。在实践中,使用表格方法会限制您完全探索所有状态所需的时间,以及表示所有单独的价值估计所需的内存空间。
如果您正在考虑使用 DQN、A3C 或其他使用神经网络的“深度”RL 方法来解决您的问题,那么您需要考虑由特征组成的状态表示,并将这些特征视为是监督学习中使用的相同神经网络的输入。
为什么我们需要 RL 中的“特征”?
处理具有大状态空间的复杂环境,如果没有某种形式的近似和(希望)泛化就无法解决。
* 这使用策略梯度方法稍微复杂一些,因为它们确实需要您使用函数逼近器,例如神经网络。但是,在这种情况下,可以使“特征”成为状态枚举的一次性编码向量,这与基于表格值的方法的表示相同。在实践中几乎没有理由这样做,但原则上是可能的。