【RL】Value Iteration and Policy Iteration(利用迭代算法求解贝尔曼最优等式)

news2024/12/27 12:12:05

Lecture 4: Value Iteration and Policy Iteration

Value Iteration Algorithm

对于Bellman最优公式:
v = f ( v ) = m a x π ( r + γ P π v ) \mathbf{v} = f(\mathbf{v}) = max_{\pi}(\mathbf{r} + \gamma \mathbf{P}_{\pi} \mathbf{v}) v=f(v)=maxπ(r+γPπv)
在Lecture 3中,已知可以通过contraction mapping原理来提出迭代算法:
v k + 1 = f ( v k ) = m a x π ( r + γ P π v k )        k = 1 , 2 , 3 \mathbf{v}_{k+1} = f(\mathbf{v}_k) = max_{\pi}(\mathbf{r} + \gamma \mathbf{P}_{\pi} \mathbf{v}_k) \;\;\; k=1, 2, 3 vk+1=f(vk)=maxπ(r+γPπvk)k=1,2,3
其中, v 0 v_0 v0可以是任意的。

上述算法就是所谓的 value iteration(值迭代)。

其可以分为两步:

  • step 1: policy update (策略更新)。
    π k + 1 = argmax π ( r π + γ P π v k ) \pi_{k+1}=\text{argmax}_{\pi}(r_{\pi} + \gamma P_{\pi}v_k) πk+1=argmaxπ(rπ+γPπvk)
    其中, v k v_k vk是给定的。

  • step 2: value update(值更新)。
    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 vk+1=rπk+1+γPπk+1vk

注意: v k v_k vk不是state value,因为其不满足Bellman等式。

Value iteration algorithm分析

  • step 1: policy update
    π k + 1 = argmax π ( r π + γ P π v k ) \pi_{k+1} = \text{argmax}_{\pi}(r_{\pi} + \gamma P_{\pi}v_k) πk+1=argmaxπ(rπ+γPπvk)
    的元素形式为:
    π k + 1 ( s ) = argmax π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) )        s ∈ S = argmax π ∑ a π ( a ∣ s ) q k ( s , a ) \begin{align*} \pi_{k+1}(s) &= \text{argmax}_{\pi} \sum_a \pi(a|s) \left( \sum_r p(r | s, a)r + \gamma \sum_{s'} p(s' | s, a) v_k(s') \right) \;\;\; s \in \mathcal{S} \\ &= \text{argmax}_{\pi} \sum_a \pi(a|s) q_k(s, a) \end{align*} πk+1(s)=argmaxπaπ(as)(rp(rs,a)r+γsp(ss,a)vk(s))sS=argmaxπaπ(as)qk(s,a)
    解决上述优化问题的最优策略为:
    π k + 1 ( a ∣ s ) = { 1 a = a k ∗ ( s ) 0 a ≠ a k ∗ ( s ) \pi_{k+1}(a | s) = \left\{\begin{matrix} 1 & a = a^*_k(s)\\ 0 & a \ne a^*_{k}(s) \end{matrix}\right. πk+1(as)={10a=ak(s)a=ak(s)
    其中, a k ∗ ( s ) = argmax a q k ( a , s ) a^*_{k}(s)=\text{argmax}_aq_k(a, s) ak(s)=argmaxaqk(a,s) π k + 1 \pi_{k+1} πk+1是greedy policy(贪心策略),因为其只是简单的选择最大的q-value。

  • step 2: value update
    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 vk+1=rπk+1+γPπk+1vk
    的元素形式为:
    v k + 1 ( s ) = ∑ a π k + 1 ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) )        s ∈ S = ∑ a π k + 1 ( a ∣ s ) q k ( s , a ) \begin{align*} v_{k+1}(s) &= \sum_a \pi_{k+1}(a | s)\left( \sum_r p(r | s, a)r + \gamma \sum_{s'} p(s' | s, a) v_k(s') \right) \;\;\; s \in \mathcal{S}\\ &=\sum_a \pi_{k+1}(a | s)q_k(s, a) \end{align*} vk+1(s)=aπk+1(as)(rp(rs,a)r+γsp(ss,a)vk(s))sS=aπk+1(as)qk(s,a)
    因为 π k + 1 \pi_{k+1} πk+1是贪心的,上述等式可以简化为:
    v k + 1 ( s ) = max a q k ( a , s ) v_{k+1}(s)=\text{max}_a q_k(a, s) vk+1(s)=maxaqk(a,s)

Procedure Summary
v k ( s ) → q k ( s , a ) → greedy policy  π k + 1 ( a ∣ s ) → new value  v k + 1 → max a q k ( s , a ) v_k(s) \rightarrow q_k(s, a) \rightarrow \text{greedy policy } \pi_{k+1}(a | s) \rightarrow \text{new value } v_{k+1} \rightarrow \text{max}_a q_k(s, a) vk(s)qk(s,a)greedy policy πk+1(as)new value vk+1maxaqk(s,a)
在这里插入图片描述

Example:

设置:reward: r boundary = r forbidden = − 1 r_{\text{boundary}} = r_{\text{forbidden}} = -1 rboundary=rforbidden=1 r target = 1 r_{\text{target}} = 1 rtarget=1,discount rate γ = 0.9 \gamma=0.9 γ=0.9

在这里插入图片描述

其q-table为:

在这里插入图片描述

  • k=0时,使 v 0 ( s 1 ) = v 0 ( s 2 ) = v 0 ( s 3 ) = v 0 ( s 4 ) = 0 v_0(s_1) = v_0(s_2) = v_0(s_3) = v_0(s_4) = 0 v0(s1)=v0(s2)=v0(s3)=v0(s4)=0

在这里插入图片描述

step1: policy update
π 1 ( a 5 ∣ s 1 ) = 1 , π 1 ( a 3 ∣ s 2 ) = 1 , π 1 ( a 2 ∣ s 3 ) = 1 , π 1 ( a 5 ∣ s 4 ) = 1 \pi_1(a_5|s_1) = 1, \pi_1(a_3|s_2) = 1, \pi_1(a_2|s_3) = 1, \pi_1(a_5|s_4) = 1 π1(a5s1)=1,π1(a3s2)=1,π1(a2s3)=1,π1(a5s4)=1
如上图(b)

step2: value update
v 1 ( s 1 ) = 0 , v 2 ( s 2 ) = 1 , v 1 ( s 3 ) = 1 , v 1 ( s 4 ) = 1 v_1(s_1) = 0, v_2(s_2) = 1, v_1(s_3) = 1, v_1(s_4)=1 v1(s1)=0,v2(s2)=1,v1(s3)=1,v1(s4)=1

  • k=1时,因为 v 1 ( s 1 ) = 0 , v 2 ( s 2 ) = 1 , v 1 ( s 3 ) = 1 , v 1 ( s 4 ) = 1 v_1(s_1) = 0, v_2(s_2) = 1, v_1(s_3) = 1, v_1(s_4)=1 v1(s1)=0,v2(s2)=1,v1(s3)=1,v1(s4)=1,可得

    step1: policy update
    π 2 ( a 3 ∣ s 1 ) = 1 , π 2 ( a 3 ∣ s 2 ) = 1 , π 2 ( a 2 ∣ s 3 ) = 1 , π 2 ( a 5 ∣ s 4 ) = 1 \pi_2(a_3|s_1) = 1, \pi_2(a_3|s_2) = 1, \pi_2(a_2|s_3) = 1, \pi_2(a_5|s_4) = 1 π2(a3s1)=1,π2(a3s2)=1,π2(a2s3)=1,π2(a5s4)=1
    step2: value update
    v 1 ( s 1 ) = γ 1 , v 2 ( s 2 ) = 1 + γ 1 , v 1 ( s 3 ) = 1 + γ 1 , v 1 ( s 4 ) = 1 + γ 1 v_1(s_1) = \gamma 1, v_2(s_2) = 1 + \gamma 1, v_1(s_3) = 1 + \gamma 1, v_1(s_4)=1 + \gamma 1 v1(s1)=γ1,v2(s2)=1+γ1,v1(s3)=1+γ1,v1(s4)=1+γ1
    如上图(c)

  • 继续迭代,直到 ∥ v k − v k + 1 ∥ \| v_k - v_{k+1} \| vkvk+1小于预设的阈值。

Policy Iteration Algorithm

Algorithm description

对于给定的初始随机policy π 0 \pi_0 π0

  • step 1: policy evaluation (PE)

    这一步是计算 π k \pi_k πk的state value
    v π k = r π k + γ P π k v π k \mathbf{v}_{\pi_k} = \mathbf{r}_{\pi_k} + \gamma \mathbf{P}_{\pi_k}\mathbf{v}_{\pi_k} vπk=rπk+γPπkvπk
    注意 v π k v_{{\pi}_k} vπk是state value函数

  • step 2: policy improvement (PI)
    π k + 1 = argmax π ( r π + γ P π v π k ) \pi_{k+1} = \text{argmax}_{\pi} (r_\pi + \gamma P_\pi v_{\pi_k}) πk+1=argmaxπ(rπ+γPπvπk)
    最大化按元素计算

算法会产生如下序列:
π 0 → P E v v π 0 → P I π 1 → P E v π 1 → P I π 2 → P E v π 2 → P I ⋯ \pi_0 \xrightarrow[]{PE} v_{v_{\pi_0}} \xrightarrow[]{PI} \pi_1 \xrightarrow[]{PE} v_{\pi_1} \xrightarrow[]{PI} \pi_2 \xrightarrow[]{PE} v_{\pi_2} \xrightarrow[]{PI} \cdots π0PE vvπ0PI π1PE vπ1PI π2PE vπ2PI
其中,PE=policy evaluation,PI=policy improvement

三个问题

In the policy evaluation step, how to get the state value v π k v_{\pi_k} vπkby solving the Bellman equation?
v π k = r π k + γ P π k v π k \mathbf{v}_{\pi_k} = \mathbf{r}_{\pi_k} + \gamma \mathbf{P}_{\pi_k}\mathbf{v}_{\pi_k} vπk=rπk+γPπkvπk

  • Close-form解:
    v π k = ( I − γ P π k ) − 1 r π k \mathbf{v}_{\pi_k} = (I - \gamma \mathbf{P}_{\pi_k})^{-1} \mathbf{r}_{\pi_k} vπk=(IγPπk)1rπk

  • 迭代求解:
    v π k ( j + 1 ) = r π k + γ P π k v π k ( j ) \mathbf{v}_{\pi_k}^{(j+1)} = \mathbf{r}_{\pi_k} + \gamma \mathbf{P}_{\pi_k}\mathbf{v}_{\pi_k}^{(j)} vπk(j+1)=rπk+γPπkvπk(j)
    policy iteration是一种迭代算法,在policy评估步骤中嵌入了另一种迭代算法!

In the policy improvement step, why is the new policy π k + 1 \pi_{k+1} πk+1 better than π k \pi_k πk?

Lemma (Policy Improvemnent)

如果:
π k + 1 = argmax π ( r π + γ P π v π k ) \pi_{k+1} = \text{argmax}_{\pi}(r_{\pi} + \gamma P_{\pi} v_{\pi_k}) πk+1=argmaxπ(rπ+γPπvπk)
那么,对任意 k k k,都有 v π k + 1 ≥ v π k v_{\pi_{k+1}} \ge v_{\pi_k} vπk+1vπk成立。

Why such an iterative algorithm can finally reach an optimal policy?

已知:
v π 0 ≤ v π 1 ≤ v π 2 ⋯ ≤ v π k ≤ ⋯ v ∗ v_{\pi_0} \le v_{\pi_1} \le v_{\pi_2} \cdots \le v_{\pi_k} \le \cdots v^* vπ0vπ1vπ2vπkv
故,每一次迭代都会提高 v π k v_{\pi_k} vπk而且其会收敛,接下来证明其会收敛到 v ∗ v^* v

Theorem (Convergence of Policy Iteration)

由policy iteration算法产生的state value序列 { v π k } k = 0 ∞ \left\{ v_{\pi_k} \right\}^{\infty}_{k=0} {vπk}k=0会收敛到最优的state value v ∗ v^* v,因此,policy序列 { π k } k = 0 ∞ \left \{ \pi_k \right \}^{\infty}_{k=0} {πk}k=0也会收敛到最优的policy。

Policy iteration algorithm分析:

  • step 1: policy evaluation

    maxtrix-vector form:
    v π k ( j + 1 ) = r π k + γ P π k v π k ( j )        j = 0 , 1 , 2 \mathbf{v}_{\pi_k}^{(j+1)} = \mathbf{r}_{\pi_k} + \gamma \mathbf{P}_{\pi_k}\mathbf{v}_{\pi_k}^{(j)} \;\;\; j=0, 1, 2 vπk(j+1)=rπk+γPπkvπk(j)j=0,1,2
    elementwise form:
    v π k ( j + 1 ) = ∑ a π k ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( j ) ( s ′ ) ) ,        s ∈ S v_{\pi_k}^{(j+1)} = \sum_a \pi_k(a|s) \left( \sum_rp(r| s, a)r + \gamma \sum_{s'} p(s' | s, a)v_{\pi_k}^{(j)} (s')\right), \;\;\; s \in \mathcal{S} vπk(j+1)=aπk(as)(rp(rs,a)r+γsp(ss,a)vπk(j)(s)),sS
    j → ∞ j \rightarrow \infty j j j j 足够大或 ∥ v π k ( j + 1 ) − v π k ( j ) ∥ \| v^{(j+1)}_{\pi_k} - v^{(j)}_{\pi_k} \| vπk(j+1)vπk(j)足够小时,迭代停止。

  • step 2: policy improvement

    matrix-vector form:
    π k + 1 = argmax π ( r π + γ P π v π k ) \mathbf{\pi}_{k+1} = \text{argmax}_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_\pi \mathbf{v}_{\pi_k}) πk+1=argmaxπ(rπ+γPπvπk)
    elementwise form:
    π k + 1 ( s ) = argmax π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( s ′ ) )        s ∈ S = argmax π ∑ a π ( a ∣ s ) q π k ( s , a ) \begin{align*} \pi_{k+1}(s) &= \text{argmax}_\pi \sum_a \pi(a | s)\left( \sum_r p(r | s, a)r + \gamma \sum_{s'} p(s' | s, a) v_{\pi_k}(s') \right) \;\;\; s \in \mathcal{S}\\ &= \text{argmax}_\pi \sum_a \pi(a | s) q_{\pi_k}(s, a) \end{align*} πk+1(s)=argmaxπaπ(as)(rp(rs,a)r+γsp(ss,a)vπk(s))sS=argmaxπaπ(as)qπk(s,a)
    其中, q π k q_{\pi_k} qπk是policy π k \pi_k πk 下的action value:
    a k ∗ ( s ) = argmax a q π k ( a , s ) a^*_k(s) = \text{argmax}_a q_{\pi_k}(a, s) ak(s)=argmaxaqπk(a,s)
    greedy policy为:
    π k + 1 ( a ∣ s ) = { 1 a = a k ∗ ( s ) , 0 a ≠ a k ∗ ( s ) . \pi_{k+1}(a | s) = \begin{cases} 1 & a = a^*_k(s), \\ 0 & a \ne a^*_k(s). \end{cases} πk+1(as)={10a=ak(s),a=ak(s).

在这里插入图片描述

Simple example:

在这里插入图片描述

reward设置: r boundary = − 1 r_{\text{boundary}} = -1 rboundary=1 r target = 1 r_{\text{target}} = 1 rtarget=1,discount rate γ = 0.9 \gamma=0.9 γ=0.9

action: a ℓ a_\ell a a 0 a_0 a0 a r a_{r} ar代表向左、保持不变和向右。

迭代: k = 0 k=0 k=0:

  • step1: policy evaluation

    π 0 \pi_0 π0为上图(a),Bellman公式为:
    v π 0 ( s 1 ) = − 1 + γ v π 0 ( s 1 ) v π 0 ( s 2 ) = 0 + γ v π 0 ( s 1 ) \begin{align*} &v_{\pi_0}(s_1) = -1 + \gamma v_{\pi_0}(s_1) \\ &v_{\pi_0}(s_2) = 0 + \gamma v_{\pi_0}(s_1) \end{align*} vπ0(s1)=1+γvπ0(s1)vπ0(s2)=0+γvπ0(s1)
    直接计算等式:
    v π 0 ( s 1 ) = − 10 v π 0 ( s 2 ) = − 9 \begin{align*} &v_{\pi_0}(s_1) = -10\\ &v_{\pi_0}(s_2) = -9 \end{align*} vπ0(s1)=10vπ0(s2)=9
    迭代计算等式:

    假定初始 v π 0 ( 0 ) ( s 1 ) = v π 0 ( 0 ) ( s 2 ) = 0 v^{(0)}_{\pi_0}(s_1) = v^{(0)}_{\pi_0}(s_2) = 0 vπ0(0)(s1)=vπ0(0)(s2)=0,则
    { v π 0 ( 1 ) ( s 1 ) = − 1 + γ v π 0 ( 0 ) ( s 1 ) = − 1 v π 0 ( 1 ) ( s 2 ) = 0 + γ v π 0 ( 0 ) ( s 1 ) = 0 { v π 0 ( 2 ) ( s 1 ) = − 1 + γ v π 0 ( 1 ) ( s 1 ) = − 1.9 v π 0 ( 2 ) ( s 2 ) = 0 + γ v π 0 ( 1 ) ( s 1 ) = − 0.9 { v π 0 ( 3 ) ( s 1 ) = − 1 + γ v π 0 ( 2 ) ( s 1 ) = − 2.71 v π 0 ( 3 ) ( s 2 ) = 0 + γ v π 0 ( 2 ) ( s 1 ) = − 1.71 ⋯ \begin{align*} &\begin{cases} v^{(1)}_{\pi_0}(s_1) = -1 + \gamma v^{(0)}_{\pi_0}(s_1) = -1\\ v^{(1)}_{\pi_0}(s_2) = 0 + \gamma v^{(0)}_{\pi_0}(s_1) = 0 \end{cases} \\ &\begin{cases} v^{(2)}_{\pi_0}(s_1) = -1 + \gamma v^{(1)}_{\pi_0}(s_1) = -1.9\\ v^{(2)}_{\pi_0}(s_2) = 0 + \gamma v^{(1)}_{\pi_0}(s_1) = -0.9 \end{cases} \\ &\begin{cases} v^{(3)}_{\pi_0}(s_1) = -1 + \gamma v^{(2)}_{\pi_0}(s_1) = -2.71\\ v^{(3)}_{\pi_0}(s_2) = 0 + \gamma v^{(2)}_{\pi_0}(s_1) = -1.71 \end{cases} \\ \end{align*}\\ \cdots {vπ0(1)(s1)=1+γvπ0(0)(s1)=1vπ0(1)(s2)=0+γvπ0(0)(s1)=0{vπ0(2)(s1)=1+γvπ0(1)(s1)=1.9vπ0(2)(s2)=0+γvπ0(1)(s1)=0.9{vπ0(3)(s1)=1+γvπ0(2)(s1)=2.71vπ0(3)(s2)=0+γvπ0(2)(s1)=1.71

  • step 2: policy improvement

    q π k ( s , a ) q_{\pi_k}(s, a) qπk(s,a)为:

在这里插入图片描述

替换 v π 0 ( s 1 ) = − 10 v_{\pi_0}(s_1) = -10 vπ0(s1)=10 v π 0 ( s 2 ) = − 9 v_{\pi_0}(s_2) = -9 vπ0(s2)=9 γ = 0.9 \gamma=0.9 γ=0.9,得:

在这里插入图片描述

通过寻找 q π 0 q_{\pi_0} qπ0的最大值,提高的policy为:
π 1 ( a r ∣ s 1 ) = 1 π 1 ( a 0 ∣ s 2 ) = 1 \pi_1(a_r | s_1) = 1\\ \pi_1(a_0 | s_2) = 1 π1(ars1)=1π1(a0s2)=1
迭代一次之后,policy达到最优

Truncated Policy Iteration Algorithm

Compare value iteration and policy iteration

Policy iteration: 从 π 0 \pi_0 π0开始

  • policy evaluation (PE):
    v π k = r π k + γ P π k v π k \mathbf{v}_{\pi_k} = \mathbf{r}_{\pi_k} + \gamma \mathbf{P}_{\pi_k}\mathbf{v}_{\pi_k} vπk=rπk+γPπkvπk

  • policy imporovement (PI):
    π k + 1 = argmax π ( r π + γ P π v π k ) \pi_{k+1} = \text{argmax}_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}_{\pi_k}) πk+1=argmaxπ(rπ+γPπvπk)

value iteration: 从 v 0 v_0 v0开始

  • policy update (PU):
    π k + 1 = argmax π ( r π + γ P π v π k ) \pi_{k+1} = \text{argmax}_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}_{\pi_k}) πk+1=argmaxπ(rπ+γPπvπk)

  • value update (VU):
    v k + 1 = r π k + 1 + γ P π k + 1 v k \mathbf{v}_{k+1} = \mathbf{r}_{\pi_{k+1}} + \gamma \mathbf{P}_{\pi_{k+1}}\mathbf{v}_k vk+1=rπk+1+γPπk+1vk

两个算法十分相似:

policy iteration: π 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} \cdots π0PE vπ0PI π1PE vπ1PI π2PE vπ2PI

value iteraton: u 0 → P U π 1 ′ → V U u 1 → P U π 2 ′ → V U u 2 → P U ⋯ u_0 \xrightarrow[]{PU} \pi'_1 \xrightarrow[]{VU} u_1 \xrightarrow[]{PU} \pi_2' \xrightarrow[]{VU} u_2 \xrightarrow[]{PU} \cdots u0PU π1VU u1PU π2VU u2PU

对两个算法详细比较:

在这里插入图片描述

  • 两个算法的初始条件是相同的

  • 两个算法的前三步是相同的

  • 两个算法的第四步是不同的:

    在policy iteration中,计算 v π 1 = r π 1 + γ P π 1 v π 1 \mathbf{v}_{\pi_1} = \mathbf{r}_{\pi_1} + \gamma \mathbf{P}_{\pi_1}\mathbf{v}_{\pi_1} vπ1=rπ1+γPπ1vπ1需要一个迭代算法

    在value iteration中,计算 v 1 = r π 1 + γ P π 1 v 0 \mathbf{v}_1 = \mathbf{r}_{\pi_{1}} + \gamma \mathbf{P}_{\pi_{1}}\mathbf{v}_0 v1=rπ1+γPπ1v0是一个one-step算法

考虑计算 v π 1 = r π 1 + γ P π 1 v π 1 \mathbf{v}_{\pi_1} = \mathbf{r}_{\pi_1} + \gamma \mathbf{P}_{\pi_1}\mathbf{v}_{\pi_1} vπ1=rπ1+γPπ1vπ1这一步:

在这里插入图片描述

  • value iteration算法只计算一次
  • policy iteraton算法计算“无穷”次
  • truncated policy iteration算法计算有限次。剩下的从 j j j ∞ \infty 次的迭代被省略。
    在这里插入图片描述

truncted policy iteration是否会收敛:

考虑解决policy evaluaion的迭代算法:
v π k ( j + 1 ) = r π k + γ P π k v π k ( j )        j = 0 , 1 , 2 , ⋯ \mathbf{v}_{\pi_k}^{(j+1)} = \mathbf{r}_{\pi_k} + \gamma \mathbf{P}_{\pi_k}\mathbf{v}_{\pi_k}^{(j)} \;\;\; j=0, 1, 2, \cdots vπk(j+1)=rπk+γPπkvπk(j)j=0,1,2,
如果初始状态 v π k ( 0 ) = v π k − 1 v_{\pi_k}^{(0)}=v_{\pi_{k-1}} vπk(0)=vπk1,那么:
v π k ( j + 1 ) ≥ v π k ( j ) v_{\pi_k}^{(j+1)} \ge v_{\pi_k}^{(j)} vπk(j+1)vπk(j)
对所有 j j j 成立。

在这里插入图片描述

由上图可知,因为policy iteration和value iteration都会收敛到optimal state value,并且truncated policy iteration夹在两者之间,则由夹逼准则可知,其一定会收敛到最优。

例子

如上图为初始状态,定义 ∥ v k − v ∗ ∥ \| v_k - v^* \| vkv为在步骤 k k k时的state error。算法停止的标准为 ∥ v k − v ∗ ∥ < 0.01 \| v_k - v^* \| < 0.01 vkv<0.01

在这里插入图片描述

  • truncated policy iteration- x x x代表truncated policy iteration算法中policy evaluation的迭代次数。
  • x x x越大代表值估计收敛的越快。
  • x x x不断增加时,其对收敛速度的贡献越来越小。
  • 因此,实际上,仅迭代少数几次就已足够。

Summary

Value iteration:

求解Bellman最优等式的迭代算法,给定初始value v 0 v_0 v0
v k + 1 = m a x π ( r π + γ P π v k ) ⇕ { Policy update : π k + 1 = argmax π ( r π + γ P π v k ) Value update : v k + 1 = r π k + 1 + γ P π k + 1 v k v_{k+1} = max_{\pi}(r_{\pi} + \gamma P_{\pi}v_k)\\ \Updownarrow \\ \begin{cases} \text{Policy update}: \pi_{k+1} = \text{argmax}_{\pi}(r_{\pi} + \gamma P_{\pi} v_k) \\ \text{Value update}: v_{k+1} = r_{\pi_{k+1}} + \gamma P_{\pi_{k+1}}v_k \end{cases} vk+1=maxπ(rπ+γPπvk){Policy update:πk+1=argmaxπ(rπ+γPπvk)Value update:vk+1=rπk+1+γPπk+1vk
Policy iteration: 给定初始 policy π 0 \pi_0 π0
{ Policy evaluation : v π k = r π k + γ P π k v π k Policy improvement : π k + 1 = argmax π ( r π + γ P π v π k ) \begin{cases} \text{Policy evaluation}: v_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k}v_{\pi_k}\\ \text{Policy improvement}: \pi_{k+1} = \text{argmax}_{\pi}(r_{\pi} + \gamma P_{\pi}v_{\pi_k}) \end{cases} {Policy evaluation:vπk=rπk+γPπkvπkPolicy improvement:πk+1=argmaxπ(rπ+γPπvπk)
Truncated policy iteration



以上内容为B站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1452711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Midjourney绘图欣赏系列(一)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不清楚。我们知道它严重依赖机器学…

Python教程(26)——Python迭代器和生成器详解

迭代器 Python中的迭代器是一种对象&#xff0c;它可以迭代&#xff08;遍历&#xff09;一个可迭代对象&#xff08;比如列表、元组或字符串&#xff09;的元素。迭代器用于实现迭代器协议&#xff0c;即包含 __iter__() 方法和 __next__() 方法。 迭代器的工作原理是每次调…

2.11题目

#include <stdio.h> int main() { char a; while((a getchar()) ! -1) { if(a > A && a < Z) a32; putchar(ch); } return 0;} ———————————————— 版权声明&#xff1a;本文为博主原创文章…

2024年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供&#xff0c;危险化学品经营单位主要负责人证模拟考试题库是根据危险化学品经营单位主…

【大模型 数据增强】LLMAAA:使用 LLMs 作为数据标注器

【大模型 数据增强】LLMAAA&#xff1a;使用 LLMs 作为数据标注器 提出背景算法步骤1. LLM作为活跃标注者&#xff08;LLMAAA&#xff09;2. k-NN示例检索与标签表述化3. 活跃学习策略4. 自动重权技术 LLMAAA 框架1. LLM Annotator2. Active Acquisition3. Robust Training 总结…

数据结构对链表的初步认识(一)

已经两天没有更新了&#xff0c;今天就写一篇数据结构的链表吧&#xff0c;巩固自己也传授知识&#xff0c;不知道各位是否感兴趣看看这一篇有关联表的文章。 目录 链表的概念与结构 单向链表的实现 链表各个功能函数 首先我在一周前发布了一篇有关顺序表的文章&#xff0c;…

【Linux系统化学习】缓冲区

目录 缓冲区 一个样例 现象解释 缓冲区存在的位置 缓冲区 在刚开始学习C语言的时候我们就听过缓冲区这个名词&#xff0c;很是晦涩难懂&#xff1b;在Linux下进程退出时也包含缓冲区&#xff0c;因此缓冲区到底是什么&#xff1f;有什么作用&#xff1f; 让我们先从一个小…

斯坦福大学全能家政服务机器人Mobile ALOHA以及“小群体大智慧”Zooids集群机器人

斯坦福大学成功研发出低成本自主进化克隆人类行为和任务的能力全能型家政服务机器人。 原文标题: 【Mobile ALOHA-Learning Bimanual Mobile Manipulation with Low-Cost Whole-Body Teleoperation】 论文链接:【Mobile ALOHA (mobile-aloha.github.io)】。 以及由斯坦福大学…

51单片机项目(32)——基于51单片机的温度检测及控制装置的proteus仿真

1.功能设定 使用DS18B20测定当前温度并实时显示在LCD1602屏幕&#xff0c;使用四个按键设定温度的上限、下限。当温度低于下限时&#xff0c;蜂鸣器报警同时开启升温装置&#xff1b;当温度大于上限时&#xff0c;蜂鸣器报警同时启动降温装置。 仿真图如下&#xff1a; 2.软件设…

【无标题】管理kvm 虚拟机

管理kvm 虚拟机 点击虚拟机 创建新的虚拟机 安装操作系统 设置root密码

中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第三套(选择题)

CSP-J入门组初赛模拟练习题第三套 1、以下不是属于国家顶级域名的是 A、.au B、.cn C、.com D、.jp 答案&#xff1a;C 考点分析&#xff1a;主要考查域名相关知识&#xff0c;au是澳大利亚、cn是中国&#xff0c;jp是日本&#xff0c;答案C 2、2个10进制数1111和1010的异…

蓝桥杯 星期计算

思路1 由于2022太大&#xff0c;用double来存储&#xff0c;即(52022 % 7) % 7即可 int num 5;int t (int)(Math.pow(20,22)%7);num t;num%7;System.out.println(num1);思路2 你需要知道 (a * b ) % p a % p * b % p Scanner scan new Scanner(System.in);int num 1;for…

计算机设计大赛 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习YOLO抽烟行为检测 该项目较为新颖&#xff0c;适合作为竞赛课…

【感知机】感知机(perceptron)学习策略

感知机( perceptron )是二类分类的线性分类模型&#xff0c;其输入为实例的特征向量&#xff0c;输出为实例的类别&#xff0c;取1 和-1二值。感知机对应输入空间(特征空间)中将实例划分为正负两类的分离超平面&#xff0c;是一种判别模型。感知机是神经网络与支持向量机的基础…

Linux系统——拓展LVM逻辑卷分区与磁盘配额

一、LVM逻辑卷分区 1.检测并确认新硬盘 1.1fdisk 查看或管理硬盘分区 fdisk -l&#xff08;小写的L&#xff09; &#xff08;硬盘设备&#xff09; 或 fdisk 硬盘设备 1.2实际操作 1.2.1fdisk查询结果详解 Device&#xff1a;分区的设备文件名称Boot&#xff1a;是否…

WordPress主题YIA在广告位添加图片广告时下方有空白怎么办?

YIA主题设置中默认有4个广告位&#xff0c;而侧边栏的广告位由站长自行添加。boke112百科在这些广告位添加图片广告后发现图片下方有空白&#xff0c;导致下方的两个角没有变圆角&#xff0c;看起来也有点不好看。具体如下图所示&#xff1a; 其实&#xff0c;这个问题就是典型…

PyTorch-线性回归

已经进入大模微调的时代&#xff0c;但是学习pytorch&#xff0c;对后续学习rasa框架有一定帮助吧。 <!-- 给出一系列的点作为线性回归的数据&#xff0c;使用numpy来存储这些点。 --> x_train np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.168],[9.779], [6.1…

【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床

准备工作&#xff1a; 首先电脑得提前完成安装如下&#xff1a; 1. nodejs环境(node ,npm):【安装指南】nodejs下载、安装与配置详细教程 2. Picgo:【安装指南】图床神器之Picgo下载、安装与配置详细教程 3. Typora:【安装指南】markdown神器之Typora下载、安装与无限使用详细教…

模型 4i(趣味、利益、互动、个性)理论

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_总纲目录。重在提升认知。以用户为中心营销。 1 模型 4i(趣味、利益、互动、个性)理论的应用 1.1 4i理论在电子商务中的应用 小米公司在其电子商务平台上运用了 4i理论&#xff0c;取得了较好的效果。具体表现如下…

Netty Review - ByteBuf扩容机制源码解析

文章目录 Pre概述前置知识&#xff1a; 名词解释writeByte 源码解析实现ensureWritable0(minWritableBytes)ensureWritable0alloc().calculateNewCapacity 总结 Pre Netty Review - 直接内存的应用及源码分析 Netty Review - 底层零拷贝源码解析 Netty Review - ByteBuf内存…