值迭代 | Value Iteration

值迭代(Value Iteration)直接利用递归性,通过不断迭代逼近最优状态值函数 v ∗ ( s ) v^{*}(s) v(s)。整个算法可以概括为:
v ( k + 1 ) = f ( v ( k ) ) = max ⁡ π ( r π + γ P π v ( k ) ) , k = 1 , 2 , 3 … v^{(k+1)}=f\left(v^{(k)}\right)=\max _\pi\left(r_\pi+\gamma P_\pi v^{(k)}\right), \quad k=1,2,3 \ldots v(k+1)=f(v(k))=πmax(rπ+γPπv(k)),k=1,2,3
因此这个算法理论上需要包含两个主要步骤:

  1. 策略更新(PU) π ( k + 1 ) = arg ⁡ max ⁡ π ( r π + γ P π v ( k ) ) \pi^{(k+1)} = \arg\max _\pi\left(r_\pi+\gamma P_\pi v^{(k)}\right) π(k+1)=argmaxπ(rπ+γPπv(k))

    现在我求出了 π ( k + 1 ) \pi^{(k+1)} π(k+1),我就可以再代入下面的式子,再去求解 v ( k + 1 ) v^{(k+1)} v(k+1),他们有一个前后顺序!

  2. 状态更新(VU) v ( k + 1 ) = r π ( k + 1 ) + γ P π ( k + 1 ) v ( k ) v^{(k+1)}=r_{\pi^{(k+1)}}+\gamma P_{\pi^{(k+1)}} v^{(k)} v(k+1)=rπ(k+1)+γPπ(k+1)v(k)

注意!此处的 v k v_k vk并不是state value!因为step 2这个方程不是贝尔曼方程,是一个迭代式。对比一下贝尔曼方程的matrix-vector形式,你会看见方程左右应该是同一个 v k v_k vk

而策略 π 更新的时候由于使用了贪心选择,这两个步骤可以合并简化,直接使用最优的动作价值去更新状态价值
v ( k + 1 ) ( s ) = max ⁡ a q ( k + 1 ) ( s , a ) v^{(k+1)}(s) = \max_a q^{(k+1)}(s,a) v(k+1)(s)=amaxq(k+1)(s,a)

值得一提的是,贪心更新策略 π 也带来了一个有趣的现象:越靠近目标区域的状态越先变好。直观上就是因为 π 依赖于其他状态,而当其他状态都不好的时候无从更新,只有接近目标区域的状态有明确的优化方向。

具体步骤

  1. 初始化值函数:设定初始值 v ( 0 ) ( s ) v^{(0)}(s) v(0)(s),通常初始化为全零或任意常数。

  2. 迭代更新值函数: 对于每个状态 s,根据贝尔曼最优公式更新
    v ( k + 1 ) ( s ) = max ⁡ a [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( k ) ( s ′ ) ] v^{(k+1)}(s) = \max_a \left[ \sum_r p(r \mid s, a) r + \gamma \sum_{s'} p(s' \mid s, a) v^{(k)}(s') \right] v(k+1)(s)=amax[rp(rs,a)r+γsp(ss,a)v(k)(s)]

  3. 判断收敛: 检查值函数更新是否足够小(例如 ∥ v ( k + 1 ) − v ( k ) ∥ ∞ < ϵ \lVert v^{(k+1)} - v^{(k)} \rVert_\infty < \epsilon v(k+1)v(k)<ϵ),若收敛则停止迭代并输出 v(k+1)。

  4. 推导策略: 一旦得到收敛的值函数 v∗(s),通过以下方式获得对应的最优策略 π∗:

π ∗ ( s ) = arg ⁡ max ⁡ a [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v ∗ ( s ′ ) ] \pi^*(s) = \arg\max_a \left[ \sum_r p(r \mid s, a) r + \gamma \sum_{s'} p(s' \mid s, a) v_*(s') \right] π(s)=argamax[rp(rs,a)r+γsp(ss,a)v(s)]
假设我们有一个3 x 3的棋盘:

  • 有一个单元格是超级玛丽,每回合可以往上、下、左、右四个方向移动
  • 有一个单元格是宝藏,超级玛丽找到宝藏则游戏结束,目标是让超级玛丽以最快的速度找到宝藏
  • 假设游戏开始时,宝藏的位置一定是(1, 2)

这个一个标准的马尔科夫决策过程(MDP):

  • 状态空间State:超级玛丽当前的坐标
  • 决策空间Action: 上、下、左、右四个动作
  • Action对State的影响和回报 P(State’, Reward | State, Action):本文认为该关系是已知的
    • 超级玛丽每移动一步,reward = -1
    • 超级玛丽得到宝箱,reward = 0并且游戏结束

结合上图可以非常简单的理解价值迭代:

  • 初始化:所有state的价值V(s) = 0

  • 第一轮迭代:对于每个state,逐一尝试上、下、左、右四个Action

    • 记录Action带来的Reward、以及新状态 V(s’)
    • 选择最优的Action,更新V(s) = Reward + V(s’) = -1 + 0
    • 第一轮结束后,所有状态都有V(s) = -1,即从当前位置出发走一步获得Reward=-1
  • 第二轮迭代:对于每个state,逐一尝试上、下、左、右四个Action

    • 记录Action带来的Reward、以及新状态 V(s’)
    • 选择最优的Action,更新V(s) = Reward + V(s’)
      • 对于宝箱周围的State,最优的Action是一步到达宝箱,V(s) = Reward + V(s’) = -1 + 0
      • 对于其他State,所有的Action都是一样的,V(s) = Reward + V(s’) = -1 + -1
    • 第二轮结束后,宝箱周围的State的价值保持不变 V(s) = -1,其他State的价值 V(s) = -2
  • 第三轮迭代:对于每个state,逐一尝试上、下、左、右四个Action

    • 记录Action带来的Reward、以及新状态 V(s’)
    • 选择最优的Action,更新V(s) = Reward + V(s’)
      • 对于宝箱周围的State,最优的Action是一步到达宝箱,V(s) = Reward + V(s’) = -1 + 0
      • 对于宝箱两步距离的State,最优的Action是先一步到达宝箱周边的State,V(s) = Reward + V(s’) = -1 + -1
      • 对于宝箱三步距离的State,所有Action都是一样的,V(s) = Reward + V(s’) = -1 + -2
  • 第四轮迭代:对于每个state,逐一尝试上、下、左、右四个Action

    • 记录Action带来的Reward、以及新状态 V(s’)

    • 选择最优的Action,更新V(s) = Reward + V(s’)

      • 对于宝箱周围的State,最优的Action是一步到达宝箱,V(s) = Reward + V(s’) = -1 + 0
      • 对于宝箱两步距离的State,最优的Action是先一步到达宝箱周边的State,V(s) = Reward + V(s’) = -1 + -1
      • 对于宝箱三步距离的State,最优的Action是所有Action都是一样的,V(s) = Reward + V(s’) = -1 + -2
    • 在第四轮迭代中,所有V(s)更新前后都没有任何变化,价值迭代已经找到了最优策略。、

策略迭代 | Policy Iteration

策略迭代是另一种求解 BOE 的方法,核心思想是交替优化策略和状态值函数,直到收敛到最优策略 π∗。

与值迭代不同的是,策略迭代先初始化一个随机策略,再交替进行以下两个主要步骤:

  • 策略评估(PE): v π ( k ) = r π ( k ) + γ P π ( k ) v π ( k ) v_{\pi^{(k)}}=r_{\pi^{(k)}}+\gamma P_{\pi^{(k)}} v_{\pi^{(k)}} vπ(k)=rπ(k)+γPπ(k)vπ(k)
  • 策略改进(PI): π ( k + 1 ) = arg ⁡ max ⁡ π ( r π + γ P π v π ( k ) ) \pi^{(k+1)} = \arg\max _\pi\left(r_\pi+\gamma P_\pi v_{\pi^{(k)}}\right) π(k+1)=argmaxπ(rπ+γPπvπ(k))

这个算法按照如下顺序

π 0 → P E v π 0 → P I π 1 → P E v π 1 → P I π 2 → P E v π 2 → P I … {\pi_0}\xrightarrow{PE}{v_{\pi_0}}\xrightarrow{PI}\pi_1\xrightarrow{PE}{v_{\pi_1}}\xrightarrow{PI}\pi_2\xrightarrow{PE}v_{\pi_2}\xrightarrow{PI}\ldots π0PE vπ0PI π1PE vπ1PI π2PE vπ2PI

PE=policy evaluation, PI=policy improvement

  1. 初始化策略:随机初始化一个初始策略 π ( 0 ) \pi^{(0)} π(0)

  2. 策略评估:在当前策略 π ( k ) \pi^{(k)} π(k)下,通过求解以下线性方程组来获得状态

值函数 v π ( k ) ( s ) : v_{\pi^{(k)}}(s): vπ(k)(s):

v π ( k ) ( s ) = ∑ a π ( k ) ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π ( k ) ( s ′ ) ] v_{\pi^{(k)}}(s)=\sum_a\pi^{(k)}(a\mid s)\left[\sum_rp(r\mid s,a)r+\gamma\sum_{s^{\prime}}p(s^{\prime}\mid s,a)v_{\pi^{(k)}}(s^{\prime})\right] vπ(k)(s)=aπ(k)(as)[rp(rs,a)r+γsp(ss,a)vπ(k)(s)]

∘ \circ 当状态空间较小时,可以直接解线性方程组,

∘ \circ 对于较大的问题,可以使用 Bootstrap 迭代逼近的方法。这个算法过程如下:首先把所有的 V 0 ( s ) V_0(s) V0(s)都初始化成0,然后根据V0计算V1,…,一直继续下去直到收敛。根据 V k ( s ) V_k(s) Vk(s)计算 V k + 1 ( s ) V_{k+1}(s) Vk+1(s)的公式如下:
V k + 1 ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V k ( s ′ ) ] V_{k+1}(s)=\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)[r+\gamma V_k(s')] Vk+1(s)=aπ(as)s,rp(s,rs,a)[r+γVk(s)]
我们可以看一下收敛的时候,Vk+1=Vk,Δ=0,那么上面的迭代公式正好就是贝尔曼方程!有了上面的迭代算法,任何给定的策略ππ,我们都可以计算出它的价值函数。

  1. 策略改进:基于更新后的值函数 v π ( k ) v_{\pi^{(k)}} vπ(k),贪心更新策略:

π ( k + 1 ) ( s ) = arg ⁡ max ⁡ a [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π ( k ) ( s ′ ) ] \pi^{(k+1)}(s)=\arg\max_a\left[\sum_rp(r\mid s,a)r+\gamma\sum_{s'}p(s'\mid s,a)v_{\pi^{(k)}}(s')\right] π(k+1)(s)=argamax[rp(rs,a)r+γsp(ss,a)vπ(k)(s)]

  1. 检查收敛:如果策略不再变化,即 π ( k + 1 ) = π ( k ) \pi^{(k+1)}=\pi^{(k)} π(k+1)=π(k),则算法结束, π ( k ) \pi^{(k)} π(k)
    即为最优策略;否则返回步骤 2。

策略提升定理

假设 π \pi π π ′ \pi^\prime π是两个确定的策略(一个状态s下只有一个行为a的概率是1,其余是0),如果对于所有的
s ∈ S 都有: s\in\mathcal{S}_\text{都有:} sS都有:

q π ( s , π ′ ( s ) ) ≥ v π ( s ) q_\pi(s,\pi^{\prime}(s))\geq v_\pi(s) qπ(s,π(s))vπ(s)

那么策略 π ′ \pi^{\prime} π π \pi π要“好”,也就是对于所有的 s ∈ S : s\in\mathcal{S}: sS:

v π ′ ( s ) ≥ v π ( s ) v_{\pi^{\prime}}(s)\geq v_\pi(s) vπ(s)vπ(s)

并且如果第一个不等式是严格大于,那么第二个不等式也是严格大于,也就是 π ′ \pi^{\prime} π一定比 π \pi π更好(而不
是一样)。

如果这个定理成立,那就证明了我们前面结论,因为我们新的策略在s的时候采取的满足
q π ( s , a ) ≥ v π ( s ) q_\pi(s,a)\geq v_\pi(s) qπ(s,a)vπ(s),而其它的状态s’都是一样的,因此新的策略会更好。当然上面的新策略是随便选择一个满足条件的行为a,但更好的办法是从所有可能的a里选择 q π ( s , a ) q_\pi(s,a) qπ(s,a)最大的那个a,此外我们可以改变所有s的策略,而不是一个s,这个改进版本就是我们最终用到的策略提升算法。如果所有的状态,当前的a已经是 q π ( s , a ) q_\pi(s,a) qπ(s,a)中最大的那个呢?那说明当前策略已经是最优的策略了。下面我们来证明这个定理:
v π ( s ) ≤ q π ( s , π ′ ( s ) ) t时刻使用策略 π ′ , t+1时刻之后还是用策略 π = E π ′ [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] 用前面的假设 ≤ E π ′ [ R t + 1 + γ q π ( S t + 1 , π ′ ( S t + 1 ) ) ∣ S t = s ] = E π ′ [ R t + 1 + γ E π ′ [ R t + 2 + γ v π ( S t + 2 ) ] ∣ S t = s ] = E π ′ [ R t + 1 + γ R t + 2 + γ 2 v π ( S t + 2 ) ∣ S t = s ] ≤ E π ′ [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + γ 3 v π ( S t + 3 ) ∣ S t = s ] … ≤ E π ′ [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + γ 3 R t + 4 … + ∣ S t = s ] = v π ′ ( s ) \begin{aligned}&v_{\pi}(s)\leq q_{\pi}(s,\pi^{\prime}(s))\\&\text{t时刻使用策略}\pi^{\prime},\text{t+1时刻之后还是用策略}\pi\\&=\mathbb{E}_{\pi^{\prime}}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s]\\&\text{用前面的假设}\\&\leq\mathbb{E}_{\pi^{\prime}}[R_{t+1}+\gamma q_{\pi}(S_{t+1},\pi^{\prime}(S_{t+1}))|S_{t}=s]\\&=\mathbb{E}_{\pi^{\prime}}[R_{t+1}+\gamma\mathbb{E}_{\pi^{\prime}}[R_{t+2}+\gamma v_{\pi}(S_{t+2})]|S_{t}=s]\\&=\mathbb{E}_{\pi^{\prime}}[R_{t+1}+\gamma R_{t+2}+\gamma^{2}v_{\pi}(S_{t+2})|S_{t}=s]\\&\leq\mathbb{E}_{\pi^{\prime}}[R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\gamma^{3}v_{\pi}(S_{t+3})|S_{t}=s]\\&\ldots\\&\leq\mathbb{E}_{\pi^{\prime}}[R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\gamma^{3}R_{t+4}\ldots+|S_{t}=s]\\&=v_{\pi^{\prime}}(s)\end{aligned} vπ(s)qπ(s,π(s))t时刻使用策略π,t+1时刻之后还是用策略π=Eπ[Rt+1+γvπ(St+1)St=s]用前面的假设Eπ[Rt+1+γqπ(St+1,π(St+1))St=s]=Eπ[Rt+1+γEπ[Rt+2+γvπ(St+2)]St=s]=Eπ[Rt+1+γRt+2+γ2vπ(St+2)St=s]Eπ[Rt+1+γRt+2+γ2Rt+3+γ3vπ(St+3)St=s]Eπ[Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+St=s]=vπ(s)

上面的证明就是不停的应用假设条件,里面有一点就是 E π E π X = E π X E_\pi E_\pi X=E_\pi X EπEπX=EπX,因为求一次期望之后就和

π \pi π无关了,可以认为是常量了。

我们最终使用的策略是“贪心”的策略,对于所有的s,我们都选择qπ(s,a)最大的那个a。

参考文章:
https://zhuanlan.zhihu.com/p/33229439
https://hwcoder.top/RL-Note-3

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐