概括
- 状态空间源于问题。“好”取决于方法,“太大”也是如此。
- 如果您知道最优策略对转换是不变的,则可以更改奖励函数以加快学习速度。
- 易处理不仅仅依赖于状态空间。RL 已应用于更大的问题,尽管这些方法并非完全开箱即用。
定义状态空间
不清楚你所说的“好”是什么意思。考虑一下你所知道的:
- 目标在中心。
- 代理从左下角开始。
- 第一个子目标出现在这两个空间之外的某个地方。
- 有时在达到一个子目标时,会出现另一个子目标;有时不是。
- 只要存在子目标,代理就必须在达到目标之前达到它。
这意味着,子目标的数量似乎对最优策略并不特别重要。
在离散表示中,代理可以处于以下状态之一10,000位置,如果存在子目标,它可以出现在任何位置9,998. (假设它永远不会处于目标状态,并且知道它永远不会处于代理的起始位置,这是因为知道子目标只会更接近目标。)
大的?当然。对于标准 Q 学习来说太大了吗?很可能,如果您希望您的学习者在宇宙热死之前退还保单。但这似乎是您的问题的完整、不可简化的表示。
我的想法是选择代理和目标之间的“相对”位置。就像是:(x,y),x={−1,0,1}.−1如果目标在代理的左侧,如果目标在右侧,则为 1,如果目标在同一位置,则为 0x作为代理人进行协调。y={−1,0,1},−1如果目标低于,1如果高于代理。0 如果它们相同y−协调。
我感觉到你在这里得到了什么:你想映射一个大的状态空间S变小一个S^这样π∗S(s)=π∗S^(s^). 这很直观,因为与子目标和目标的相对距离几乎是智能体做出最佳决策所需的全部。
这基本上是手工制定的政策;如果这适合您的问题,那很好,但是有人想知道您是否需要 RL。
这容易处理吗?
嗯,它是可学习的,因为它完全符合当前的技术水平。考虑一下关于通过深度神经网络和 Q-learning 学习玩 Atari 游戏的论文中描述的状态空间:
直接使用原始 Atari 帧(即 210 × 160 像素图像和 128 调色板)可能对计算要求很高,因此我们应用了一个旨在降低输入维数的基本预处理步骤。原始帧通过首先将其 RGB 表示转换为灰度并将其下采样为 110×84 图像进行预处理。最终的输入表示是通过裁剪图像的 84 × 84 区域来获得的,该区域大致捕获了比赛区域。[...] 对于本文中的实验,函数ϕ从算法 1 开始,将此预处理应用于历史的最后 4 帧,并将它们堆叠起来以产生 Q 函数的输入。
您可以将状态空间视为100×100图像,上面的状态空间让你的空间相形见绌。总而言之,即使对于更大的状态空间也存在可能的解决方案,但在这种情况下,您可能不需要那么花哨。
关于“作弊”
我相信在任务结束时给予奖励是强化学习的标准。
我敦促您尽快摆脱这种观念:这根本不是真的。首先,因为奖励功能来自应用程序,句号。如果一个应用程序需要不同的奖励,它们自然应该包括在内,即单一的奖励几乎不是标准的。其次,因为最优策略在奖励函数的某些变换下是不变的,这可以加速学习(强调我的):
本文研究了对马尔可夫决策过程的奖励函数的修改保持最优策略的条件。结果表明,[...] 可以为状态之间的转换添加奖励,该奖励可表示为应用于这些状态的任意势函数的值差异。[...] 特别是,奖励塑造过程中的一些众所周知的“错误”被证明是由非基于潜力的奖励引起的,并且给出了构建与基于距离和基于子目标的启发式相对应的塑造潜力的方法。我们表明,这种潜力可以导致学习时间的大幅减少。
如果您的问题有一个目标状态,那么单个奖励就是一种自然表示,您是对的,任意向状态添加奖励是一个坏主意。但只有在转换下不能表现出策略不变性时才会如此;否则这是公平的游戏。
你应该怎么做?
如您所知,您可以预期最优策略下的任何行动通常要么朝着子目标前进,要么朝着目标前进。我想你会发现你可以从这些事实中创建基于潜力的奖励塑造函数,这些函数可以快速加速学习。
您也可以将其视为一个选项学习问题,其中一个选项是追求子目标,另一个选项是追求目标。(选项是用来描述时间扩展动作的术语。您可以将其视为使用某种策略,直到达到某种状态。)
你也可以初始化Q使得启动策略接近最优。
附加物
有没有办法在不给予多重奖励的情况下编写包含子目标位置的状态?
状态空间的任何表示都不需要一定的奖励函数。目前尚不清楚这意味着什么。
参考