我需要提前知道 Q-Learning 中所有可能的状态数吗?

人工智能 强化学习 q学习 状态空间
2021-10-20 10:14:15

在 Q-learning 中,是否必须知道智能体最终可能进入的所有可能状态?

我有一个包含 4 个源节点、3 个接收节点和 4 个主链路的网络。初始状态是接收节点拥有最大资源的状态网络。我以随机方式生成从源节点到汇节点的服务请求。这些服务请求是在随机时间步长上生成的,这意味着,从一个状态到另一个状态,网络状态可能保持不变。

当发起一个服务请求时,来自 sink 节点的资源会发生变化,网络状态也会发生变化。

代理的目的是通过将每个服务请求与路径相关联来平衡网络。

我知道在 MDP 中你应该有一个有限的状态集,我的问题是:如果这个有限的状态集应该是所有可能发生的状态,或者只是一个你认为足以优化 Q 的数字-桌子?

1个回答

当你开始学习 Q 学习时,你会从一个有几个状态的简单例子开始。对于每个状态,您都尝试估计该状态的“价值”。因为状态很少,所以可以将这些值存储在一个表中(这对于解释的直观性也很有用)。

但是,如果您开始尝试解决更多“现实生活”中的问题,那么状态的数量可能会非常庞大​​。然而本质将保持不变。您正在尝试根据对每种状态最终可以达到的程度的估计来估计下一步要做什么。但是,现在这些值“大多数时候”不再存储在表中,因为方法通常归结为使用人工神经网络来估计价值函数。

回答您的问题:如果您的表无法存储它可能遇到的可能状态的值,那么在使用 Q-learning 训练某些模型时,您将遇到很多问题。在实践中,大多数实现不使用 Q 表而只使用 ANN,这缓解了必须“定义”问题包含多少个状态的问题。