我在一个环境中工作,每个转换奖励 0,除了转换到终端状态,奖励 1。
我的问题是,我应该如何定义终端状态的值?现在我只是将所有值初始化为 0,但由于终端状态没有转换,它保持为 0,而它周围的状态具有正值。因此,如果我想通过使其对邻国变得贪婪来改进我的政策,则终端状态旁边的状态不会想要选择终端状态(因为它附近有积极的非终端状态)。
这种环境是否不适用于强化学习的状态值动态规划方法?我不知道如何才能使这项工作。
我在一个环境中工作,每个转换奖励 0,除了转换到终端状态,奖励 1。
我的问题是,我应该如何定义终端状态的值?现在我只是将所有值初始化为 0,但由于终端状态没有转换,它保持为 0,而它周围的状态具有正值。因此,如果我想通过使其对邻国变得贪婪来改进我的政策,则终端状态旁边的状态不会想要选择终端状态(因为它附近有积极的非终端状态)。
这种环境是否不适用于强化学习的状态值动态规划方法?我不知道如何才能使这项工作。
我的问题是,我应该如何定义终端状态的值?
情节问题中终端状态的状态值应始终为零。状态的价值是从该状态开始并遵循特定策略时所有未来奖励的预期总和。对于终端状态,这是零 - 没有更多的奖励。
因此,如果我想通过使其对邻国贪婪来改进我的政策,则终端状态旁边的状态不会想要选择终端状态(因为它附近有积极的非终端状态)
您还没有在这里说 100% 清楚,但我担心您可能会认为贪婪策略是这样选择的:- 在哪里是你的状态价值函数,并且 是转换到状态的概率给定的起始状态和行动(使用与 Sutton & Barto,第 2 版相同的符号)。这不是贪婪行动选择的正确公式。相反,为了最大化下一个动作的奖励,您需要考虑即时奖励加上下一个状态的预期未来奖励(我在常用的折扣因子中添加了这里):
如果您更习惯于看到转换矩阵和期望奖励矩阵,那么使用这些的相同公式是:
当你使用这个贪婪的动作选择时,转换到终端状态的动作至少与其他选择具有相同的价值。
此外,您的具体问题还有另一个问题,与您如何设置奖励有关。
我在一个环境中工作,每个转换奖励 0,除了转换到终端状态,奖励 1。
这种环境是否不适用于强化学习的状态值动态规划方法?我不知道如何才能使这项工作。
回想一下,状态值是仅假设特定策略的状态值。您的问题的答案将取决于您使用的学习算法的类型,以及您是否允许随机或确定性策略。应该总是至少有一个状态至少有一些小的机会转换到终端状态,以便为所有其他状态提供除 0 以外的任何值。这应该在大多数学习算法下得到保证。然而,这些算法中的许多都可以很好地学习复杂的策略,当你期望/希望它们选择不转换到终端状态时(不知道你的问题定义,我无法直观地说出哪个是)。
你最大的问题是,在你的奖励结构中,你没有给代理结束这一集的动力。是的,它可以获得 1 的奖励,但是您的奖励计划意味着无论代理做什么,最终都会保证获得该奖励,没有时间限制。如果您将学习算法(例如策略迭代)应用于您的 MDP,您会发现除了终端状态之外的所有状态的值都是 1,一旦代理转换到终端状态,它最终将获得该值。只要它学习到最终发生的策略,那么就代理而言,它已经学习了最优策略。
如果你想要一个能在最短的时间内解决你的 MDP 的代理,在一个偶发问题中,通常会为每个时间步编码一些负奖励。例如,一个基本的迷宫求解器通常会为每个时间步提供 -1 奖励。
另一种方法可能是应用折扣因子- 这将导致代理对立即奖励有一些偏好,这应该会影响策略,以便始终采取到达终端状态的步骤。
使您进入最终状态的转换为 1,然后从终端转换为自身 0。