【发布时间】:2022-06-19 13:50:10
【问题描述】:
在为强化学习中的特定问题定义状态时,如何决定要包含什么以及要为定义留下什么,以及如何设置观察和状态之间的差异。 例如,假设代理处于人力资源和计划的背景下,它需要根据工作需求雇用一些工人,考虑到雇用他们的成本(假设预算有限)是格式为( #workers, cost) 状态的定义好不好? 总的来说,我不知道什么信息需要处于状态以及应该留下什么,因为它是相当观察的。 谢谢
【问题讨论】:
在为强化学习中的特定问题定义状态时,如何决定要包含什么以及要为定义留下什么,以及如何设置观察和状态之间的差异。 例如,假设代理处于人力资源和计划的背景下,它需要根据工作需求雇用一些工人,考虑到雇用他们的成本(假设预算有限)是格式为( #workers, cost) 状态的定义好不好? 总的来说,我不知道什么信息需要处于状态以及应该留下什么,因为它是相当观察的。 谢谢
【问题讨论】:
我假设您将其表述为 RL 问题,因为需求量是未知的。而且,也许[这是可选标准]雇用他们的成本可能会考虑到工人对最初未知的工作的贡献。但是,如果这两个量都是已知的或可以预先近似,那么您可以运行规划算法来解决问题[或只是某种优化]。
话虽如此,这个问题中的状态可能就像 (#workers) 一样简单。注意我不包括成本,因为成本必须由代理体验,因此代理在达到特定状态之前是未知的。根据问题,您可能需要添加另一个“时间”因素或“剩余工作”。
大多数关于 RL 的理论结果都取决于几个设置中的一个关键假设,即环境是 Markovian。有几件作品可以在没有这种假设的情况下完成,但如果你能以展示这种属性的方式来制定你的环境,那么你将有更多的工具可以使用。关键思想是,代理可以根据当前状态(#workers = 5, time =6)。请注意,我们尚未区分工人,因此解雇“a”人,而不是解雇“特定”人 x。如果工人有不同的能力,您可能需要添加几个其他因素,每个因素代表当前雇用的工人,以及当前在池中,尚未被雇用的,就像一个固定长度的布尔数组。 (我希望您了解如何形成状态表示,这可能会根据您的问题中缺少的问题的具体情况而有所不同。
现在,一旦我们有了状态定义 S、动作定义 A(雇佣/解雇),我们就有了 RL 框架中 MDP 设置的“已知”数量。我们还需要一个环境,当我们查询它时可以为我们提供成本函数(奖励函数/成本函数),并告诉我们对某个状态(转换)采取某种行动的结果。请注意,我们不一定需要事先知道这些 Reward / Transition 函数,但是当我们查询特定(状态、动作)时,我们应该有办法获取这些值。
来到你的最后一部分,观察和状态之间的区别。有更好的资源可以深入挖掘,但粗略地说,观察是代理(任何代理、人工智能、人类等)的感官数据。例如,在您的情况下,代理能够计算当前雇用的工人人数(但无法区分工人)。
一个状态,更正式地说,一个真正的 MDP 状态必须是马尔可夫状态,并在其基本层面捕获环境。因此,也许为了确定公司的真实成本,代理需要能够区分工人、每个工人的工作时间、他们从事的工作、工人之间的互动等等。请注意,这些因素中的大部分可能与您的任务无关,例如工人的性别。通常,人们希望事先对哪些因素是相关的形成一个很好的假设。
现在,即使我们同意员工的分配(特定工作)可能是决定雇用或解雇他们的相关特征,但您的观察没有此信息。因此,您有两个选择,或者您可以忽略此信息很重要这一事实并使用您可用的信息,或者您尝试推断这些功能。如果您对公式中的决策制定的观察不完整,我们通常将其归类为部分可观察环境(并为此使用 POMDP 框架)。
我希望我澄清了几点,但是,所有这一切背后都有巨大的理论,你问的关于“提出国家定义”的问题是一个研究问题。 (很像机器学习中的特征工程和特征选择)。
【讨论】: