【强化学习】强化学习数学基础:值迭代与策略迭代

值迭代和策略迭代是强化学习中两种重要的算法,用于解决贝尔曼最优公式。值迭代从一个初始值出发,通过不断迭代逼近最优状态值和策略。策略迭代则从初始策略开始,通过策略评估和策略改善逐步优化策略,直至找到最优策略。截断策略迭代是策略迭代的一种变体,限制了策略评估步骤的迭代次数。这些算法在实际应用中需要平衡计算效率和收敛速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 值迭代算法(Value iteration algorithm)

如下,如何求解Bellman Optimality Equation v = f ( v ) = max ⁡ π ( r π + γ P π v ) v=f(v)=\max_{\pi}(r_\pi +\gamma P_\pi v) v=f(v)=πmax(rπ+γPπv)
根据之前的内容,我们知道可以采用contraction mapping theorem使用迭代算法求解: v k + 1 = f ( v k ) = max ⁡ π ( r π + γ P π v k ) , k = 1 , 2 , 3 , . . . v_{k+1}=f(v_k)=\max_{\pi} (r_\pi +\gamma P_\pi v_k), k=1,2,3,... vk+1=f(vk)=πmax(rπ+γPπvk),k=1,2,3,...,其中 v 0 v_0 v0是一个任意值。

  • 该算法最终能够发现最优状态值(optimal state value)和一个最优策略(optimal policy)
  • 该算法被称为value iteration

值迭代算法详细过程 v k + 1 = f ( v k ) = max ⁡ π ( r π + γ P π v k ) , k = 1 , 2 , 3... v_{k+1}=f(v_k)=\max_\pi (r_\pi +\gamma P_\pi v_k), k=1,2,3... vk+1=f(vk)=πmax(rπ+γPπvk),k=1,2,3...可以分解为两部:

  • Step 1: policy update, 这一步是求解 π k + 1 = a r g max ⁡ π ( r π + γ P π v k ) \pi_{k+1}=arg\max_\pi (r_\pi +\gamma P_\pi v_k) πk+1=argπmax(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?当然不是,因为不能确定 v k v_k vk满足一个贝尔曼等式(Bellman equation)。

接下来,我们要研究elementwise form,目的是实现算法。

  • Matrix-vector form适合于理论分析
  • Elementwise form适合算法实现

Step1: Policy update
elementwise form如下: π k + 1 = a r g max ⁡ π ( r π + γ P π v k ) \pi_{k+1}=arg\max_\pi (r_\pi +\gamma P_\pi v_k) πk+1=argπmax(rπ+γPπvk)
Policy update
上面最优化问题的最优解是 π 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)其中 a k ∗ = a r g max ⁡ a q k ( a , s ) a_k^*=arg\max_a q_k(a, s) ak=argmaxaqk(a,s) π k + 1 \pi_{k+1} πk+1被称为greedy policy,因为简单地选择最大的q-value。

Step2: Value update
elementwise form: 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
value update
因为 π k + 1 \pi_{k+1} πk+1是greedy,上面等式可以简化为 v k + 1 ( s ) = max ⁡ a q k ( a , s ) v_{k+1}(s)=\max_{a} q_k(a, s) vk+1(s)=amaxqk(a,s)

过程总结
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}=\max_a q_k(s, a) vk(s)qk(s,a) greedy policy πk+1(as) new value vk+1=amaxqk(s,a)
Value iteration algorithm
举个例子:
奖励设定(reward setting)为: r b o u n d a r y = r f o r b i d d e n = − 1 , r t a r g e t = 1 r_{boundary}=r_{forbidden}=-1, r_{target}=1 rboundary=rforbidden=1,rtarget=1。折扣率(discount rate) γ = 0.9 \gamma=0.9 γ=0.9
example
q-table: q ( s , a ) q(s, a) q(s,a)的表达式如下:
q-table
k = 0 k=0 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,q-table如下:
q-value
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 1 ( s 2 ) = 1 , v 1 ( s 3 ) = 1 , v 1 ( s 4 ) = 1 v_1(s_1)=0,v_1(s_2)=1,v_1(s_3)=1,v_1(s_4)=1 v1(s1)=0,v1(s2)=1,v1(s3)=1,v1(s4)=1

k=1:因为我们有 v 1 ( s 1 ) = 0 , v 1 ( s 2 ) = 1 , v 1 ( s 3 ) = 1 , v 1 ( s 4 ) = 1 v_1(s_1)=0,v_1(s_2)=1,v_1(s_3)=1,v_1(s_4)=1 v1(s1)=0,v1(s2)=1,v1(s3)=1,v1(s4)=1,得到新的q-table:
q-table
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 2 ( s 1 ) = γ 1 , v 2 ( s 2 ) = 1 + γ 1 , v 2 ( s 3 ) = 1 + γ 1 , v 2 ( s 4 ) = 1 + γ 1 v_2(s_1)=\gamma 1,v_2(s_2)=1+\gamma 1,v_2(s_3)=1+\gamma 1,v_2(s_4)=1+\gamma 1 v2(s1)=γ1,v2(s2)=1+γ1,v2(s3)=1+γ1,v2(s4)=1+γ1
策略更新如图(c)
注意:当前策略已经是最优的。

k=2,3,…,当 ∣ ∣ v k − v k + 1 ∣ ∣ ||v_k-v_{k+1}|| ∣∣vkvk+1∣∣小于一个预定义的阈值的时候停止。

2. 策略迭代算法(Policy iteration algorithm)

首先给出策略迭代算法的描述:
给定一个随机初始策略 π 0 \pi_0 π0
Step1:策略评估(policy evaluation, PE),这一步是计算 π k \pi_k πk的state value 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πkvπk
注意: v k v_k vk是一个state value function
Step2:策略改善(policy improvement, PI) π k + 1 = a r g max ⁡ π ( r π + γ P π v π k ) \pi_{k+1}=arg\max_{\pi} (r_\pi +\gamma P_{\pi}v_{\pi_k}) πk+1=argπmax(rπ+γPπvπk)
The maximization is componentwise!

算法流程:
PIA
相关问题:
quation
问题1:在Policy evaluation步,如何通过求解贝尔曼公式得到state value v π k v_{\pi_k} vπk 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πkvπk

  • Closed-form Solution: v π k = ( I − γ P π k ) − 1 r π k v_{\pi_k}=(I-\gamma P_{\pi_k})^{-1}r_{\pi_k} vπk=(IγPπk)1rπk
  • Iterative solution: v π k ( j + 1 ) = r π k + γ P π k v π k ( j ) , j = 0 , 1 , 2 , . . . v_{\pi_k}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k}^{(j)}, j=0,1,2,... vπk(j+1)=rπk+γPπkvπk(j),j=0,1,2,...

Policy iteration is an iterative algorithm with another iterative algorithm embedded in the policy evaluation step!
问题2:在Policy improvement步,为什么新的策略 π k + 1 \pi_{k+1} πk+1 π k \pi_k πk好?
Policy improvement
问题3:为什么iterative algorithm最终可以找到一个最优策略?
因为随着每次迭代,策略会逐步优化,即 v π 0 ≤ v π 1 ≤ v π 2 ≤ . . . ≤ v π k ≤ . . . ≤ v ∗ v_{\pi_0} \le v_{\pi_1} \le v_{\pi_2} \le ... \le v_{\pi_k} \le ... \le v^* vπ0vπ1vπ2...vπk...v
其结果就是 v π k v_{\pi_k} vπk会不断增加,最终收敛,可以证明塔收敛到 v ∗ v^* v
策略迭代收敛
问题4:策略迭代和值迭代之间有什么关系?
这个问题跟问题3中的策略迭代定理有关。

如何具体实现Policy iteration algorithm——Elementwise form?
Step1: Policy evaluation

  • Matrix-vector form: v π k ( j + 1 ) = r π k + γ P π k v π k ( j ) , j = 0 , 1 , 2 , . . . v_{\pi_k}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k}^{(j)}, j=0,1,2,... vπk(j+1)=rπk+γPπkvπk(j),j=0,1,2,...
  • Elementwise form:
    PE
    j → ∞  or  j j\rightarrow \infty \text { or } j j or j是足够大,或者 ∣ ∣ v π k ( j + 1 ) − v π k ( j ) ∣ ∣ ||v_{\pi_k}^{(j+1)}-v_{\pi_k}^{(j)}|| ∣∣vπk(j+1)vπk(j)∣∣是足够小的时候停止。

Step2: Policy improvement

  • Matrix-vector form: π k + 1 = a r g max ⁡ π ( r π + γ P π v π k ) \pi_{k+1}=arg\max_{\pi}(r_\pi +\gamma P_\pi v_{\pi_k}) πk+1=argmaxπ(rπ+γPπvπk)
  • Elementwise form
    PI
    这里, q π k ( s , a ) q_{\pi_k}(s, a) qπk(s,a)是基于策略 π k \pi_k πk的action value。令 a k ∗ ( s ) = a r g max ⁡ a q π k ( a , s ) a_k^*(s)=arg\max_a q_{\pi_k}(a, s) ak(s)=argamaxqπk(a,s)
    那么,the 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)

Policy iteration algorithm——Implementation
策略迭代
举个例子:
策略迭代算法示例
奖励设定(reward setting)是 r b o u n d a r y = − 1 r_{boundary}=-1 rboundary=1 r t a r g e t = 1 r_{target}=1 rtarget=1,折扣率(discount rate) γ = 0.9 \gamma=0.9 γ=0.9
Action: a l , a 0 , a r a_l, a_0, a_r al,a0,ar分别表示向左,原地不动,向右
Aim:使用策略迭代找到最优策略
迭代轮数k=0:Step 1: policy evaluation
如图(a), π 0 \pi_0 π0是初始策略。贝尔曼方程如下:
v π 0 ( s 1 ) = − 1 + γ v π 0 ( s 1 ) v_{\pi_0}(s_1)=-1+\gamma v_{\pi_0}(s_1) vπ0(s1)=1+γvπ0(s1) v π 0 ( s 2 ) = 0 + γ v π 0 ( s 1 ) v_{\pi_0}(s_2)=0+\gamma v_{\pi_0}(s_1) vπ0(s2)=0+γvπ0(s1)

  • 直接求解等式: v π 0 ( s 1 ) = − 10 , v π 0 ( s 2 ) = − 9 v_{\pi_0}(s_1)=-10, v_{\pi_0}(s_2)=-9 vπ0(s1)=10,vπ0(s2)=9
  • 迭代求解等式。选择初始猜测为 v π 0 ( 0 ) ( s 1 ) = v π 0 ( 0 ) ( s 2 ) = 0 v_{\pi_0}^{(0)}(s_1)=v_{\pi_0}^{(0)}(s_2)=0 vπ0(0)(s1)=vπ0(0)(s2)=0
    迭代求解
    迭代轮数k=0:Step 2: policy improvement
    q π k ( s , a ) q_{\pi_k}(s, a) qπk(s,a)的表示如下:
    PI
    v π 0 ( s 1 ) = − 10 , v π 0 ( s 2 ) = − 9 v_{\pi_0}(s_1)=-10, v_{\pi_0}(s_2)=-9 vπ0(s1)=10,vπ0(s2)=9 γ = 0.9 \gamma=0.9 γ=0.9带入之后,得到
    substituting
    通过选择 q π 0 q_{\pi_0} qπ0的最大值,the improved 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
    经过一次迭代,策略被优化。在具体实现中,需要持续迭代过程直到某个评价标准被满足。

一个复杂的例子:令 r b o u n d a r y = − 1 , r f o r b i d d e n = − 10 r_{boundary}=-1, r_{forbidden}=-10 rboundary=1,rforbidden=10 r t a r g e t = 1 r_{target}=1 rtarget=1,折扣率(discount rate) γ = 0.9 \gamma=0.9 γ=0.9,可以检查这些中间策略和状态值。
复杂例子
复杂示例2
可以发现,接近目标的状态策略是先变好,远离目标的状态策略会后变好。

3. Truncated policy iteration algorithm

首先,比较value iteration和policy iteration:
Policy Iteration: 从一个初始策略 π 0 \pi_0 π0开始:

  • Policy evaluation (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πkvπk
  • Policy improvement (PI): π k + 1 = a r g max ⁡ π ( r π + γ P π v π k ) \pi_{k+1}=arg\max_{\pi} (r_\pi +\gamma P_{\pi}v_{\pi_k}) πk+1=argπmax(rπ+γPπvπk)

Value Iteration: 从一个值 v 0 v_0 v0开始:

  • Policy update (PU): π k + 1 = a r g max ⁡ π ( r π + γ P π v k ) \pi_{k+1}=arg\max_{\pi} (r_\pi +\gamma P_{\pi}v_{k}) πk+1=argπmax(rπ+γPπvk)
  • Value update (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} vk+1=rπk+1+γPπk+1vk

然后,比较这两个算法的迭代流程:
迭代流程
然后,详细比较这两个算法的步骤:
算法比较

  • 它们从相同的初始条件出发
  • 前三步是相同的
  • 在第四步变得不同:
    • 在policy iteration,求解 v π 1 = r π 1 + γ P π 1 v π 1 v_{\pi_1}=r_{\pi_1}+\gamma P_{\pi_1}v_{\pi_1} vπ1=rπ1+γPπ1vπ1需要一个迭代算法(无限数量的迭代)
    • 在value iteration, v 1 = r π 1 + γ P π 1 v 0 v_1=r_{\pi_1}+\gamma P_{\pi_1}v_0 v1=rπ1+γPπ1v0,是一个one-step iteration。

考虑求解 v π 1 = r π 1 + γ P π 1 v π 1 v_{\pi_1}=r_{\pi_1}+\gamma P_{\pi_1}v_{\pi_1} vπ1=rπ1+γPπ1vπ1的步骤:
比较value iteration 和policy iteration

  • value iteration algorithm计算one
  • policy iteration algorithm计算an infinite number of iterations
  • The truncated policy iteration algorithm计算a finite number of iterations(称为j)。剩下的从j到∞的迭代是truncated(截断)。

Truncated policy iteration——伪代码
Truncated policy iteration
问题1:是否这个截断(truncation)会削弱收敛(convergence)?
Proposision
如下图所示:说明了value iteration,policy iteration和truncated policy iteration之间的关系。
value iteration,policy iteration和truncated policy iteration之间的关系
举个例子:初始策略是每个状态都待在原地不动
实例
定义 ∣ ∣ v k − v ∗ ∣ ∣ ||v_k-v^*|| ∣∣vkv∣∣是在时刻 k k k的state value error。停止标准是 ∣ ∣ v k − v ∗ ∣ ∣ < 0.01 ||v_k-v^*||<0.01 ∣∣vkv∣∣<0.01。仿真结果如下:
仿真
”Truncated-policy iteration-x“,其中x=1,3,4,100对应一个policy evalutaion step执行x次迭代的truncated policy iteration algorithm. 根据上图,结论是:

  • 当x更大的时候,能够更快的收敛
  • 但是当x继续增大,这种加快的速率会逐渐放慢
  • 实际上,在policy evaluation step中执行一个很小的迭代次数

总结

  • Value iteration: 是一个迭代算法,用于求解贝尔曼最优公式。给定一个初始值 v 0 v_0 v0
    value iteration
  • Policy iteration:给定一个初始策略 π 0 \pi_0 π0
    policy iteration
  • Truncated policy iteration

内容来源

  1. 《强化学习的数学原理》 西湖大学 赵世钰教授
  2. 《动手学强化学习》 俞勇 著
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值