《强化学习》第二版 阅读随笔4

第四章——动态规划(Dynamic Programming)

动态规划(Dynamic Programming,DP)是一类求取最优化策略的算法。由于对模型环境假设的理想化以及巨大的计算开销致使在强化学习领域的应用实分有限。但动态规划对于以后其他强化学习算法的理解是很有帮助的,其他强化学习算法都在尝试以更少的计算开销和更低的环境要求来达到与动态规划相同的效果。
动态规划和强化学习共同的思想是使用价值函数(value function)来寻找最优化的策略。正如在第三章中我们讨论的那样,只要我们知道符合贝尔曼方程(递归关系)的价值函数,理论上我们很容易就可以得到最优策略。
在这里插入图片描述

4.1 策略估计(预测)

在动态规划(DP)中,将获取状态-价值函数 v π v_\pi vπ(state-value function)的过程称作策略估计(policy evaluation)。

迭代策略评估(iterative policy evaluation)

如果环境的变化情况是已知的(已知环境模型),那么状态-价值函数 v π ( s ) v_\pi(s) vπ(s)
在这里插入图片描述
可以表示成自变量为系统状态 s s s的方程组, s ∈ S s\in{S} sS γ < 1 \gamma<1 γ<1或是有限的状态数是 v π v_\pi vπ的存在性和唯一性的保证。最初我们以随机数初始化 v 0 v_0 v0,随后我们就可以使用贝尔曼方程来计算下一个状态的近似值,这就是状态更新的规则。数学语言表示为
在这里插入图片描述
k → ∞ k\rightarrow\infty k,通过上述过程推导所得的 v k v_k vk最终会收敛到 v π v_\pi vπ,我们遍历当前状态 s s s所有可能的下一状态 s ′ s' s,从旧的价值函数 v k v_k vk中提取新的价值函数 v k + 1 v_{k+1} vk+1的估计(期望值),这种算法被称作迭代策略估计(iterative policy evaluation),也就是利用了贝尔曼方程的递归特性。
上面我们提到,使用迭代策略估计,环境模型必须是已知的,也就是对于模型采取的任何行为(action)所获得的奖励(reward)是已知的,进而对于迭代策略估计,每一次状态更新我们都需要遍历所有可能的状态,以回报的期望来推导对价值函数的估计,我们称这种操作为期望更新(expected update),这是动态规划(DP)的状态更新模式。—— All the updates done in DP algorithms are called expected updates because they are based on an expectation over all possible next states rather than on a sample next state.(Page 75)

4.2 策略优化(Policy Improvement)

Our reason for computing the value function for a policy is to help find better policies. 我们对价值函数的计算是为了寻找更好的策略。
策略改进的过程可以通过下面的式子来表达。
在这里插入图片描述对于行为-价值函数 q π ( s , a ) q_\pi(s, a) qπ(s,a),即在状态 s s s下采取行为 a a a所能获取回报的期望值。如果有 q π ( s , a ) ≥ v π ( s ) q_\pi(s, a)\geq{v_\pi(s)} qπ(s,a)vπ(s)说明在状态 s s s出现时,采取行为 a a a比遵循原有策略 π \pi π有可能获取更高的回报(reward)。所以agent将在状态 s s s再次出现时采取行为 a a a而不是继续原有的策略,本质上来说其实就是产生了新的策略,这就是策略改进的过程。
如果将新产生的策略用符号 π ′ \pi' π表示,上面的过程可以用数学语言描述为: q π ( s , π ′ ( s ) ) ≥ v π ( s ) , s ∈ S q_\pi(s,\pi'(s))\geq{v_\pi(s)},s\in{S} qπ(s,π(s))vπ(s),sS很容易我们可以知道 v π ′ ( s ) ≥ v π ( s ) v_{\pi'}(s)\geq{v_\pi(s)} vπ(s)vπ(s)很自然地我们可以将这种思想推广到同时对所有状态下的行为-价值函数进行遍历,从而得到一个全局的最优策略。
在这里插入图片描述
如果行为策略已知,也就同时获得了价值函数,简单的替换符号后策略 π ′ \pi' π的价值函数可以被表示为:
在这里插入图片描述
比较贝尔曼最优化方程中的状态-价值函数表达式,可以发现两者的形式完全一致。这也就从侧面说明了贝尔曼优化方程的正确性,这或许也是动态规划(DP)和强化学习之间微妙的联系之一吧。

在这里插入图片描述
通过整个策略优化的过程我们不难看出其背后的贪心思想,但同时我们又不难证明这样得到的结果一定会优于原有的策略。对于以贪心思想优化原有策略价值函数的方法我们称为策略优化(policy improvement)。
如果有多个行为方式 s s s同时取到最大的 q ( a , s ) q(a,s) q(a,s),那么应该从中随机选取一个。

4.3 策略迭代(Policy Iteration)

随着状态的迭代和策略优化过程的进行,模型的策略 π \pi π会不断得到优化,这一价值(value)和策略(policy)单调递增的过程可以用下面的序列来描述:
在这里插入图片描述
其中 ⟶ E \stackrel{E}{\longrightarrow} E代表对价值 π \pi π的评估(evaluation),而 ⟶ I \stackrel{I}\longrightarrow I代表对策略的优化(improvement)。这一迭代过程的每一环都可以使模型的策略更加合理,直到最优。因为一个有限马尔可夫决策过程的状态是有穷的,所以最优的策略和价值函数必须在有限的步骤内收敛。
这样一个寻找最优策略的迭代过程称为策略迭代(policy iteration)

4.4 价值迭代(Value Iteration)

策略迭代需要不断依次进行价值评估和策略优化步骤,造成每个迭代周期需要多次遍历状态空间,非常消耗资源。当迭代次数 → ∞ \rightarrow\infty 时价值函数将达到最优,但通常当迭代一定次数后,策略趋于稳定,仅状态价值函数会继续收敛(各个状态之间的价值估计 v ( s ) v(s) v(s)差距增大,但是已经不影响为行为模式 a a a做出选择),为了简化策略迭代的过程,我们一方面可以考虑适时中止迭代也可以从简化策略迭代本身入手。
所谓价值迭代就是在策略迭代的基础上去除策略优化的步骤而仅保留价值评估步骤。
在上面介绍的策略迭代的基础上,我们考虑仅进行价值的估计,而不再进行策略评估这个方法被称作价值迭代(value iteration)。该过程的数学描述为:在这里插入图片描述对比迭代策略估计(iterative policy evaluation)的原式:在这里插入图片描述
我们不难发现,价值迭代(Value Iteration)以贪心思想选择最大化当前价值函数 v k + 1 ( s ) v_{k+1}(s) vk+1(s)的行为方式 a a a,而不需要对当前状态所有的行为模式进行评估。
通过与最优化贝尔曼方程的对比:在这里插入图片描述我们可以发现,它们几乎是完全一致的,价值估计以迭代估计的更新方式(这里指从 v k v_k vk中估计 v k + 1 v_{k+1} vk+1的收敛方式)截取其中的一步。
无论是从最优化贝尔曼方程的角度还是本章中之前论述的策略优化角度来理解价值迭代方法,都可以看出价值迭代一定会向最优化的方向收敛。
最后,来看一下如何判断价值迭代的终止条件:每次遍历更新的幅度小于阈值。
为了更快的收敛速度,可以考虑在价值迭代中加入适当频率的策略评估。

4.5 异步动态规划(Asynchronous Dynamic Programming)

基于我们目前讨论,动态规划(DP)的主要缺陷是在马尔可夫决策过程中需要一次次遍历整个状态空间。如果状态空间过大,那么问题将变得非常棘手。
异步动态规划算法可以避免扫描整个状态空间而造成的计算开销问题。这类算法可以以任意顺序更新状态值,使用现有的状态数据。不同状态之间的更新频率可以不同步。但是为了保证能正确收敛而不陷入局部最优,异步动态规划算法也必须保证所有必要的状态的更新,只是在更新状态的选择上有较高灵活性,可以选择性的忽视那些对模型优化无意义的状态,或是只在模型遇到对应状态时再更新状态的价值估计。
更新过程可以使用价值迭代和策略迭代结合的方式。
当然,避免对状态空间的扫描不代表可以减少计算量,这样做的好处是可以避免模型的每一步决策都会耗费不可接受的等待时间和计算开销导致模型不可用。
这样的思路与我们日常生活经验的积累过程是类似的,俗话说,人算不如天算,有时候我们不可能在头脑中预演所有可能的状况,只能走一步看一步,吃一堑长一智。

4.6 广义策略迭代(Generalized Policy Iteration——GPI)

通过上面的讨论我们知道,策略迭代(policy iteration)由两部分构成,一个是对策略的评估(evaluation)另一个是对策略的改进(improvement)。策略评估是通过价值函数来评估现行政策,而策略改进则是以贪心思维去最大化新策略下的价值函数。在策略迭代过程中,两个步骤交替进行,但是实际上并没有比较进行如此频繁的更新操作,原因已经在异步动态规划部分说明。
在这里插入图片描述
我们定义属于广义策略迭代(GPI)来描述策略评估和策略优化这两个过程之间的关系。几乎所有的强化学习算法都可以用GPI来描述。这些强化学习方法都有各自的策略和价值函数。它们之间的关系如图:在这里插入图片描述策略优化过程实际上是通过贪心思想最大化价值函数,价值函数因为策略的优化过程而改变,改变的结果又反作用于策略的优化过程,使其在新的价值函数基础上进一步优化。如果价值函数和策略都达到稳定、不再变化的状态,代表价值函数和策略均已达到最优。
从长远来看,这两个过程相互作用,找到一个单一的联合解决方案,即最优价值函数和最优策略。这种相互掣肘的关系示意如下。
在这里插入图片描述

4.7 动态规划的效率(Efficiency of Dynamic Programming)

DP may not be practical for very large problems, but compared with other methods for solving MDPs, DP methods are actually quite efficient. 考虑最坏的情况,动态规划寻找最优解(策略)的时间是行为和状态数的多项式。动态规划要优于直接在决策空间中暴力搜索,并且一定可以找到最优解(尽管此时的计算量可能为 k n k^n kn,k为行为数,n为状态数)。相对于线性规划和直接搜索,动态规划更适合于解决状态和行为数量级更大的复杂问题。对于复杂问题中出现的维数爆炸现象,可以通过异步动态规划或其他GPI的变体来解决。

4.8 总结

在本章中,主要介绍了动态规划的基本思想和算法,动态规划与求解有限MDP问题有关。策略评估(policy evaluation)是指对给定策略的价值函数的迭代计算。策略优化(policy improvement)是指根据策略的价值函数计算对策略进行改进。将这两种计算结合起来,我们得到了策略迭代和值迭代这两种最流行的DP算法。这两种方法都可以用于可靠地计算有限MDP问题的最优策略和价值函数,前提是完全了解该MDP问题。
传统的动态规划(DP)算法需要不断遍历扫描整个状态集,通过迭代策略评估(iterative policy evaluation)进行期望更新(expected update)。每一轮操作仅更新一个状态的值,但实际上更新过程中我们综合考虑了所有下一个状态 s ′ s' s以及它们出现的可能性。在这里插入图片描述
期望更新(expected update)的过程非常接近于贝尔曼方程:在这里插入图片描述
期望更新可以看作贝尔曼方程的单步操作。
所有的强化学习方法都可以看作GPI的一种实现。GPI是围绕近似策略和近似价值函数两个相互作用过程的一般思想。一个过程接受给定的策略并执行某种形式的策略评估,使价值函数的结果更接近真实值。另一个过程接受给定的价值函数并执行某种形式的策略改进,更改策略使其更好。尽管每个流程之间相互影响牵制,但总的来说,两个过程的共同目标找到一个联合的解决方案: 策略和价值函数不会因任何一个流程而改变,因此是最优的。在某些情况下,GPI可以被证明是收敛的,尤其是我们在本章中介绍的经典DP方法。
异步DP方法是一种以任意顺序更新状态的就地(in-place)迭代方法,状态更新的次序可能是随机确定的,并可以使用之前“过时”的信息作为状态更新的依据。
最后,我们注意到DP方法的最后一个特殊属性。状态价值(value of state)估计的更新建立在对下一个状态的价值估计的基础上,我们把这种思想称为“自举”(bootstrapping)。对于动态规划而言这种思想是根本性的,它基于动态规划必须完全掌握环境模型的假设。许多强化学习算法种都包含了自举思想,但并不一定是必要的,这取决于强化学习模型对环境模型的要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值