Answers:
强化学习(RL)中的状态表示问题类似于有监督或无监督学习中的特征表示,特征选择和特征工程问题。
讲授RL基础知识的文献倾向于使用非常简单的环境,以便可以列举所有状态。这样可以将值估算简化为表格中的基本滚动平均值,从而更易于理解和实施。表格学习算法也具有合理的理论保证收敛性,这意味着如果您可以简化问题,使其具有少于几百万个状态,那么值得尝试。
即使将它们离散化,大多数有趣的控制问题也不会适合那种状态。这是由于“ 维数的诅咒 ”。对于这些问题,通常将状态表示为具有不同特征的向量-例如,对于机器人,机械零件的各种位置,角度,速度。与监督学习一样,您可能希望将其用于特定的学习过程。例如,通常您希望它们全部都是数字,并且如果您想使用神经网络,还应该将它们归一化为标准范围(例如-1到1)。
除了上述适用于其他机器学习的问题外,对于RL,您还需要关注Markov属性 -状态提供了足够的信息,以便您可以准确地预测预期的下一个奖励和给定操作的下一个状态,无需任何其他信息。这不必是完美的,由于例如轮式机器人的空气密度或温度变化而引起的微小差异通常不会对其导航产生很大影响,因此可以忽略不计。在遵循RL理论的同时,也可以忽略任何本质上是随机的因素-这可能会使代理总体上不太理想,但该理论仍然有效。
如果存在影响结果的一致未知因素,并且可以从逻辑上推论出来(也许是从状态或动作的历史中得出),但是您已将它们从状态表示中排除,那么您可能会遇到更严重的问题,并且座席可能无法学习。
这里值得注意的是观察与状态之间的区别。观察值是您可以收集的一些数据。例如,您的机器人上可能有传感器可以反馈其关节的位置。由于状态应具有马尔可夫属性,因此单个原始观测值可能不足以构成合适的状态。如果是这种情况,您可以运用您的领域知识,以便从可用数据中构建更好的状态,或者您可以尝试使用为部分可观察的MDP(POMDP)设计的技术-这些有效地尝试建立状态数据的缺失部分统计上。您可以为此使用RNN或隐藏的马尔可夫模型(也称为“信仰状态”),并且在某种程度上,这是使用“学习或分类算法来“学习”那些状态 “。
最后,您需要考虑要使用的近似模型的类型。类似的方法也适用于监督学习:
具有基于领域知识设计的特征的简单线性回归可以很好地完成。您可能需要努力尝试不同的状态表示形式,以便线性近似起作用。优点是,与非线性逼近相比,这种更简单的方法对稳定性问题更鲁棒
更复杂的非线性函数逼近器,例如多层神经网络。您可以输入一个更“原始”的状态向量,并希望隐藏的层将找到一些结构或表示形式,以产生良好的估计。在某些方面,这也是“ 学习或分类算法以“学习”那些状态 ”,但与RNN或HMM的方式不同。如果将您的状态自然地表示为屏幕图像,这可能是一种明智的方法-手工确定图像数据的特征工程非常困难。
DeepMind团队的Atari DQN工作结合了特征工程和依靠深度神经网络来实现其结果。特征工程包括对图像进行下采样,将其降低为灰度级,并且(对于Markov属性而言,重要的是)使用四个连续的帧来表示单个状态,以便有关对象速度的信息出现在状态表示中。然后,DNN将图像处理为更高级别的功能,这些功能可以用于预测状态值。
对复杂问题建模的一种常见的早期方法是离散化。从根本上讲,这是将复杂且连续的空间划分为网格。然后,您可以使用为离散,线性,空间设计的任何经典RL技术。但是,正如您可能想象的那样,如果不小心,可能会造成很多麻烦!
萨顿和巴托(Sutton&Barto)的经典著作《强化学习》(Reinforcement Learning)为解决此问题的其他方法提供了一些建议。一种是瓦片编码,在新的第二版第9.5.4节中进行了介绍。在图块编码中,我们生成大量的网格,每个网格具有不同的网格间距。然后,我们将网格彼此叠加。这会创建不均匀形状的离散区域,并且可以很好地解决各种问题。
9.5节还介绍了将连续空间编码为离散MDP的多种其他方法,包括径向基函数和粗略编码。一探究竟!