动态规划求解强化学习任务——价值迭代

本文深入探讨了强化学习中的策略迭代和价值迭代方法。策略迭代包括策略评估和策略改进两步,但存在循环嵌套的问题。价值迭代则通过截断策略评估,仅进行一步更新即进行策略改进,以提高效率。此外,介绍了异步更新策略,用于处理大规模状态空间的问题。最后,讨论了广义策略迭代的思想,允许在策略评估未完成时进行策略改进,以达到最优策略和价值函数。
摘要由CSDN通过智能技术生成

目录

前面部分介绍了策略改进定理的理论推导策略迭代求解策略 π \pi π的具体算法过程,本节将介绍动态规划求解强化学习任务最后一个模块——价值迭代

回顾 - 策略迭代

整体介绍中介绍了策略迭代共包含2个步骤:

  • 策略评估(Policy Iteration)
    给定一个策略 π \pi π,求出它的最优价值函数 V π ( s ) V_\pi(s) Vπ(s)
  • 策略改进(Policy Improvement)
    基于策略评估给出的 V π ( s ) → V_\pi(s) \to Vπ(s) 使用贪心策略,获取收益最大的动作作为新的策略 π ( s ) \pi(s) π(s)

重复执行策略评估策略改进,直到获取最优策略 π \pi π,迭代结束。

策略迭代缺陷

在整个迭代过程中,策略评估(迭代解) 本身就是一个迭代过程,即便使用了策略改进定理优化了计算最优价值函数的过程,但仍改变不了循环嵌套循环的本质
为了优化掉这个嵌套循环的过程,我们将介绍价值迭代

价值迭代

价值迭代介绍

针对策略迭代中策略评估过程中的缺陷,思考如何优化策略评估步骤;
首先回顾策略评估的算法过程:

输入 初始策略: π ( a ∣ s ) \pi(a \mid s) π(as),动态特性函数: p ( s ′ , r ∣ s , a ) p(s',r\mid s,a) p(s,rs,a),奖励: r r r,折扣系数: γ \gamma γ
初始化操作
(Initialization operation)
1. 对 ∀ s ∈ S \forall s \in \mathcal S sS,初始化状态价值函数:如 V ( s ) = 0 V(s) = 0 V(s)=0;
2.设置一个阈值 θ \theta θ,将其设置为很小的实数值,如 θ = 0.01 \theta=0.01 θ=0.01
策略评估
(Policy Evaluation)
1. repeat 对每一轮策略评估: k = 1 , 2 , . . . k=1,2,... k=1,2,...
2.    δ ← 0 \delta \gets 0 δ0
3.    for 每个状态 s s sdo
4.        v ← V ( s ) \mathcal v \gets V(s) vV(s)
5.        V ( s ) ← ∑ a ∈ A π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V ( s ′ ) ] V(s) \gets \sum_{a \in \mathcal A}\pi(a \mid s) \sum_{s',r}p(s',r \mid s,a) [r + \gamma V(s')] V(s)aAπ(as)s,rp(s,rs,a)[r+γV(s)]
6.        δ ← m a x ( δ , ∣ v − V ( s ) ∣ ) \delta \gets max(\delta, \mid \mathcal v - V(s) \mid) δmax(δ,vV(s))
7.    end for
8. until δ < θ \delta < \theta δ<θ
输出结果 V ( s ) V(s) V(s)

通过上述的算法过程,我们发现:
在计算新的 V π ( s ) V_\pi(s) Vπ(s)过程中,使用贝尔曼期望方程 → \to 加权平均方法进行迭代;

计算加权平均方法是从整个策略本身对状态价值函数计算的结果。但在迭代过程中,中间过程中的价值函数并不是我们关心的对象,而只有最终迭代收敛后的 V ∗ ( s ) , π ∗ ( a ∣ s ) V_*(s),\pi_*(a \mid s) V(s),π(as)才是我们关注的最终结果。

因此,如何优化策略迭代中循环嵌套循环的情况?提出一种解决方案:对策略评估进行截断

从常规思路考虑,假设某一次迭代的策略改进结果 π \pi π,进入下一次的策略评估时,仍然需要上述算法通过迭代的方式求解精确的最优价值函数 V ∗ ( s ) V_*(s) V(s),这种方式实际上只要进行迭代,它必然会向最优价值函数方向更新,并且迭代次数越高,可优化的信息可能就越少(最优价值函数在更新过程中增长的越慢)
总而言之,通过大规模的迭代只是得到一个比较精确的中间过程的价值函数是很不划算的;
截断策略评估使用的方式

在策略评估的迭代过程中仅进行一步后直接进行策略改进;
根据贝尔曼方程满足的不动点定理 → \to 即便只是更新了一步,但它仍然产生了一个优于更新前的价值函数。
它具体是如何更新这一步的呢?

贝尔曼最优方程 → \to 干脆选择一个最优动作对应的状态-动作价值函数进行更新;
V k + 1 ( s ) = max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V k ( s ′ ) ] V_{k+1}(s) = \mathop{\max}\limits_{a} \sum_{s',r}p(s',r \mid s,a)[r + \gamma V_k(s')] Vk+1(s)=amaxs,rp(s,rs,a)[r+γVk(s)]

继续观察:

  • 首先从数值角度来观察 V k + 1 ( s ) V_{k+1}(s) Vk+1(s)结果,在之前介绍的贝尔曼最优方程一节中提到,期望(加权平均)值小于最大值。因此,取最大值方式相比于期望方式必然更新的幅度更大一些
  • 准确性角度观察 V k + 1 ( s ) V_{k+1}(s) Vk+1(s)结果,这个结果相比于期望方式求解结果必然更加粗糙一些。因为期望方式求解结果中存在策略的权重比例,而最大值方式默认这个权重比例为:
    π ∗ ( a ∣ s ) = { 1 i f a = arg ⁡ max ⁡ a ∈ A q π ∗
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

静静的喝酒

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值