在强化学习中,MDP 模型包含马尔可夫属性。许多学科中的许多调度应用程序使用强化学习(主要是深度 RL)来学习调度决策。例如,来自 SIGCOMM 2019 的论文Learning Scheduling Algorithms for Data Processing Clusters使用强化学习进行调度。
不是在安排非马尔可夫进程,还是我遗漏了一些要点?
在强化学习中,MDP 模型包含马尔可夫属性。许多学科中的许多调度应用程序使用强化学习(主要是深度 RL)来学习调度决策。例如,来自 SIGCOMM 2019 的论文Learning Scheduling Algorithms for Data Processing Clusters使用强化学习进行调度。
不是在安排非马尔可夫进程,还是我遗漏了一些要点?
许多实际任务实际上不是马尔可夫任务,但这并不意味着您不能尝试在这些任务上训练代理。这就像说“我们假设变量 x 是正态分布的”,您只是假设您可以根据环境的当前状态调整概率分布,希望代理能够学习一个好的策略。事实上,对于大多数应用程序来说,挑战在于构建一个问题,以使其尽可能地符合马尔可夫问题(通过将一些重要的过去信息压缩到环境的当前状态中)。
理所当然地给出马尔可夫属性是很常见的,例如在 NLP 中,隐藏马尔可夫模型被大量用于实体检测等顺序任务,这当然会导致众所周知的问题,比如长句子的高错误率(你越展望未来错误率越高)。
另请注意,马尔可夫模型可以是一阶的(概率仅取决于当前状态):
但它们也可以是更高阶的(例如,如果以当前状态为条件加上过去的一步,则为二阶):
当然,过去的步骤越多,问题变得越快,这就是为什么几乎总是使用一阶模型的原因。
编辑
我按照 nbro 的建议对调度文件添加了一些评论。
所以,在这里我想说的是,使流程看起来无法描述为 MDP 的最引人注目的方面是作业之间存在依赖关系。由于在处理另一个特定作业2之前我可能需要某些作业1的结果,因此时间步长t肯定不可能独立于时间步长t-1(我需要知道我处理了哪个作业才能知道哪些进程我可以处理或不处理)。
在这里,他们使用的技巧是通过深度强化学习框架中的 DNN 表示的图网络来学习作业之间的这些依赖关系。因此,代理必须学习的是选择两个动作的元组:“哪个输出 (i) 指定下一个调度的阶段,以及 (ii) 用于该阶段工作的执行者数量的上限” . 用于进行此选择的信息是图网络在要调度的作业的体面图上计算的深度表示。从这个意义上说,由于网络能够表示当前状态下工作之间的“时间”关系,这允许假设下一个动作元组的选择不依赖于先前的状态。希望这对您有用并且对您有意义。