了解策略迭代算法中策略的更新规则

人工智能 强化学习 价值迭代 政策迭代 政策改进
2021-10-23 12:28:06

考虑 RL 中的网格世界问题。正式地,RL 中的策略定义为π(a|s). 如果我们通过策略迭代解决网格世界,则使用以下伪代码:

在此处输入图像描述

我的问题与政策改进步骤有关。具体来说,我试图了解以下更新规则。

π(s)argmaxasp(s|s,a)[r(s,a,s)+γv(s)]

我可以对此更新规则有 2 种解释。

  1. 在这一步中,我们检查哪个动作(例如,在特定状态下右转)具有最高奖励,并将右转的概率分配为 1,将其余动作的概率分配为 0。因此,在 PE 步骤中,我们将始终正确该状态的所有迭代,即使在某些迭代之后它可能不是最有价值的函数。

  2. 我们牢记策略改进步骤,并且在执行 PE 步骤时,我们更新了v(s),基于给予最高奖励的动作(例如,对于第一次迭代k=0, 向右走给出最高的奖励, 我们基于此更新, 同时, 对于k=1,我们看到向左提供最高奖励,并基于此更新我们的值。因此,动作会根据最大奖励而变化)。

对我来说,第二种解释与值迭代非常相似。那么,哪一个是对策略迭代的正确解释?

1个回答

策略可以是随机的或确定的。确定性策略是形式的函数πdeterministic:SA,即从状态集到动作集的函数。随机策略是形式的映射πstochastic:SP(A), 在哪里P(A)是一组概率分布 (P(A)={ps1(A),ps2(A),,ps|S|(A)}, 在哪里psi(A)是一组动作的概率分布A为国家si|S|是环境状态集的大小)在动作集上A. 确定性策略可以解释为给出概率的随机策略1到可用的操作之一(和0到剩余的动作),对于每个状态。

在价值迭代 (VI) 和策略迭代 (PI) 的情况下,策略是确定性的,无论是在策略评估 (PE) 还是策略改进 (PI) 步骤中。

在 PE 步骤中,对于特定的状态s(在 for 循环内),您使用π(s),也就是你假设在特定状态下采取的动作s是贪心动作,因为argmax根据现行政策,在 PI 中。然而,总的来说,πk(si)πk(sj), 为了ij, 在哪里k是当前迭代步骤(PE 和 PI)。

更新规则

πk+1(s)argmaxasp(ss,a)[r(s,a,s)+γvk(s)]

在给定当前和固定值函数的情况下,计算预期会产生最高回报的动作(vk)。看看离散随机变量的期望定义:它被定义为加权和(就像上面的更新规则一样,其中权重是p(ss,a))。

价值迭代是策略迭代的较短版本。在 VI 中,不是为环境的每个状态执行一个 PI 步骤,而是在执行 PE 时,选择期望给出最高回报的动作。在 VI 中,策略仅在策略评估结束时更新一次。在 PI 中,您在 PE 和 PI 之间交替,并且在每个 PI 处更新策略。