如何定义强化学习中的状态?

人工智能 强化学习 人工智能设计 马尔可夫决策过程 状态空间 国家代表
2021-10-22 20:14:01

我正在研究强化学习及其变体。我开始了解算法的工作原理以及它们如何应用于 MDP。

我不明白的是定义 MDP 状态的过程。在大多数示例和教程中,它们表示一些简单的东西,例如网格中的正方形或类似的东西。

对于更复杂的问题,比如机器人学习走路等,

  • 你如何定义这些状态?
  • 您可以使用学习或分类算法来“学习”这些状态吗?
2个回答

强化学习 (RL) 中的状态表示问题类似于有监督或无监督学习中的特征表示、特征选择和特征工程问题。

教授 RL 基础知识的文献倾向于使用非常简单的环境,以便可以枚举所有状态。这将价值估计简化为表格中的基本滚动平均值,更易于理解和实施。表格学习算法也有合理的收敛理论保证,这意味着如果你可以简化你的问题,使其具有少于几百万个状态,那么这是值得尝试的。

即使您将它们离散化,大多数有趣的控制问题也不适合该数量的状态。这是由于“维度的诅咒”。对于这些问题,您通常会将您的状态表示为不同特征的向量 - 例如对于机器人,机械部件的各种位置、角度、速度。与监督学习一样,您可能希望将这些用于特定的学习过程。例如,通常你会希望它们都是数字的,如果你想使用神经网络,你还应该将它们标准化到一个标准范围(例如 -1 到 1)。

除了上述适用于其他机器学习的问题外,对于 RL,您还需要关注马尔可夫属性——状态提供足够的信息,以便您可以准确地预测预期的下一个奖励和给定动作的下一个状态,无需任何额外信息。这不需要是完美的,由于空气密度或轮式机器人的温度变化引起的微小差异通常不会对其导航产生很大影响,并且可以忽略不计。在坚持 RL 理论的同时,任何本质上是随机的因素也可以被忽略——它可能会使智能体整体上不太理想,但该理论仍然有效。

如果有一致的未知因素影响结果,并且可以从逻辑上推断出来——可能是从状态或动作的历史中推断出来——但是你已经将它们排除在状态表示之外,那么你可能会遇到更严重的问题,并且代理可能无法学习.

值得注意的是观察状态之间的区别。观察是您可以收集的一些数据。例如,您的机器人上可能有反馈其关节位置的传感器。因为状态应该具有马尔可夫属性,所以单个原始观察数据可能不足以构成合适的状态。如果是这种情况,您可以应用您的领域知识以便从可用数据构建更好的状态,或者您可以尝试使用为部分可观察 MDP (POMDP)设计的技术- 这些有效地尝试构建状态数据的缺失部分统计上。您可以为此使用 RNN 或隐藏马尔可夫模型(也称为“信念状态”),并且在某种程度上这是使用“学习或分类算法来“学习”那些状态“如你所问。

最后,您需要考虑要使用的近似模型的类型。与监督学习类似的方法在这里适用:

  • 具有基于领域知识设计的特征的简单线性回归可以做得很好。您可能需要努力尝试不同的状态表示,以便线性近似起作用。优点是这种更简单的方法比非线性近似更能抵抗稳定性问题

  • 更复杂的非线性函数逼近器,例如多层神经网络。您可以输入一个更“原始”的状态向量,并希望隐藏层会找到一些结构或表示,从而产生良好的估计。在某些方面,这也是“学习或分类算法来“学习”这些状态”,但与 RNN 或 HMM 的方式不同。如果您的状态自然地表示为屏幕图像,这可能是一种明智的方法 - 手动弄清楚图像数据的特征工程非常困难。

DeepMind团队的Atari DQN 工作结合了特征工程和依靠深度神经网络来实现其结果。特征工程包括对图像进行下采样,将其降低到灰度,并且——对于马尔可夫特性而言——重要的是——使用四个连续的帧来表示单个状态,以便在状态表示中存在有关物体速度的信息。然后,DNN 将图像处理成更高级别的特征,可用于预测状态值。

对复杂问题建模的一种常见的早期方法是离散化在基本层面上,这是将一个复杂且连续的空间分割成一个网格。然后,您可以使用为离散、线性空间设计的任何经典 RL 技术。但是,正如您可能想象的那样,如果您不小心,这可能会导致很多麻烦!

Sutton & Barto 的经典著作Reinforcement Learning对解决此问题的其他方法提出了一些建议。一种是平铺编码,在新的第二版的第 9.5.4 节中有介绍在平铺编码中,我们生成大量网格,每个网格都有不同的网格间距。然后我们将网格重叠在一起。这会创建离散区域的非均匀形状,并且可以很好地解决各种问题。

第 9.5 节还涵盖了将连续空间编码为离散 MDP 的各种其他方法,包括径向基函数和粗编码。看看这个!