《Reinforcement Learning: An Introduction》第4章笔记

动态规划是一种在给定完备环境模型的MDP中计算最优策略的算法。它包括策略评估来计算策略的价值函数,策略改进通过贪心策略来生成更好的策略,以及价值迭代作为策略评估和改进的快速版本。异步动态规划适用于大型状态空间的问题,而广义策略迭代概括了这些方法的基本思想,通过策略和价值函数的交替优化来寻找最优解。
摘要由CSDN通过智能技术生成

Chapter 4 Dynamic Programming

动态规划(Dynamic Programming,DP)是一类在给定完备环境模型的MDP后用来计算最优策略的算法。动态规划算法在强化学习中因为:1. 假设有一个完美的环境模型;2. 极大的计算代价 实际用处不大,但是它提供了理解本书其他算法的重要基础。

假设环境是第3章定义过的有限MDP, 也就是环境的状态 S \mathcal{S} S、动作 A \mathcal{A} A、奖励 R \mathcal{R} R是有限的,对于所有的 s ∈ S , r ∈ R , a ∈ A ( s ) ,且 s ′ ∈ S + s \in \mathcal{S}, r\in \mathcal{R}, a \in \mathcal{A}(s),且s^{\prime} \in \mathcal{S^+} sS,rR,aA(s),且sS+ ,MDP的动态性由一系列概率 p ( s ′ , r ∣ s , a ) p(s^{\prime}, r | s, a) p(s,rs,a)表示。

DP的核心思想是使用价值函数来组织和结构化对于好的策略的搜索。当我们已经得到满足以下Bellman最优方程的最优价值函数 v ∗ v_* v q ∗ q_* q后,很容易得到最优策略:
v ∗ ( s )   =   m a x a   E [ R t + 1 + γ v ∗ ( S t + 1 ) ∣ S t = s , A t = a ] = m a x a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v ∗ ( s ′ ) ] ( 4.1 ) \begin{aligned} v_{*}(s)\ &= \ \mathop{max} \limits_a \ \mathbb{E}[R_{t+1} + \gamma v_{*}(S_{t+1}) \mid S_t=s,A_t=a] \\ &= \mathop{max} \limits_a \sum_{s^{\prime}, r}p(s^{\prime}, r|s, a)[r + \gamma v_*(s^{\prime})] \qquad (4.1) \end{aligned} v(s) = amax E[Rt+1+γv(St+1)St=s,At=a]=amaxs,rp(s,rs,a)[r+γv(s)](4.1)

q ∗ ( s , a )   =   E [ R t + 1 + γ   m a x a ′   q ∗ ( S t + 1 , a ′ ) ∣ S t = s , A t = a ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ   m a x a ′   q ∗ ( s ′ , a ′ ) ]   ( 4.2 ) \begin{aligned} q_{*}(s, a)\ & = \ \mathbb{E}[R_{t+1} + \gamma\ \mathop{max} \limits_{a^{\prime}}\ q_*(S_{t+1}, a^{\prime}) \mid S_t=s,A_t=a] \\ &= \sum_{s^{\prime}, r} p(s^{\prime}, r | s, a) [r + \gamma\ \mathop{max} \limits_{a^{\prime}}\ q_*(s^{\prime}, a^{\prime})] \ \qquad (4.2) \end{aligned} q(s,a) = E[Rt+1+γ amax q(St+1,a)St=s,At=a]=s,rp(s,rs,a)[r+γ amax q(s,a)] (4.2)

4.1 Policy Evaluation(Prediction)

来考虑一下对任意的策略 π \pi π如何计算状态价值函数 v π v_{\pi} vπ, 在DP文献中,将这个称作策略评估(policy evaluation),也将其称作预测问题(prediction problem)。

回忆一下第3章的式(3.14),对于所有的 s ∈ S s \in \mathcal{S} sS,有:
v π ( s )   = ˙   E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] ( b y ( 3.9 ) ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] ( 4.3 ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] ( 4.4 ) \begin{aligned} v_{\pi}(s)\ & \dot{=} \ \mathbb{E}_{\pi}\left[G_t \mid S_t=s\right] \\ & =\mathbb{E}_{\pi}\left[R_{t+1}+\gamma G_{t+1} \mid S_t=s\right] \qquad (by(3.9)) \\ & =\mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{\pi}(S_{t+1}) \mid S_t=s\right] \qquad (4.3) \\ &= \sum _{a } \pi(a | s) \sum_{s^{\prime},r} p(s^{\prime}, r | s, a) \left[ r + \gamma v_{\pi}(s^{\prime}) \right] \qquad (4.4) \end{aligned} vπ(s) =˙ Eπ[GtSt=s]=Eπ[Rt+1+γGt+1St=s](by(3.9))=Eπ[Rt+1+γvπ(St+1)St=s](4.3)=aπ(as)s,rp(s,rs,a)[r+γvπ(s)](4.4)
上式中的 π ( a ∣ s ) \pi(a|s) π(as)表示在策略 π \pi π下的状态 s s s时采取动作 a a a的概率。在策略 π \pi π下,只要 γ < 1 \gamma < 1 γ<1或有最终步,那么 v π v_{\pi} vπ的存在和唯一性是有保证的。

迭代策略评估算法(iterative policy evaluation):

如果环境的动态性是完全可知的,则公式(4.4)是一个有 ∣ S ∣ |\mathcal{S}| S个未知数( v π , s ∈ S v_{\pi},s \in \mathcal{S} vπ,sS)的 ∣ S ∣ |\mathcal{S}| S个等式的线性联立方程组。理论上这个方程组可以被直接解出,只是计算很繁琐。而使用迭代方法更合适;考虑有一系列的近似价值函数 v 0 , v 1 , v 2 , ⋯ v_0, v_1, v_2, \cdots v0,v1,v2,,每一个都将 S + S^+ S+映射到 R \mathbb{R} R。初始的近似价值函数 v 0 v_0 v0被随意选择(除了终止状态必须设为0)。其他每个后继近似价值函数使用式(4.4)的 v π v_{\pi} vπ的贝尔曼方程来作为更新规则:
v k + 1 ( s ) = ˙ E π [ R t + 1 + γ v k ( S t + 1 ) ∣ S t = s ] = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v k ( s ′ ) ] ( 4.5 ) \begin{aligned} v_{k+1}(s) & \dot{=} \mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{k}(S_{t+1}) \mid S_t=s\right] \\ &= \sum _{a } \pi(a | s) \sum_{s^{\prime},r} p(s^{\prime}, r | s, a) \left[ r + \gamma v_{k}(s^{\prime}) \right] \qquad (4.5) \end{aligned} vk+1(s)=˙Eπ[Rt+1+γvk(St+1)St=s]=aπ(as)s,rp(s,rs,a)[r+γvk(s)](4.5)
对于所有的 s ∈ S s \in \mathcal{S} sS来说, v k = v π v_k= v_{\pi} vk=vπ是这个更新规则中的不动点,因为 v π v_{\pi} vπ的贝尔曼方程已经保证了这种情况下等式的成立。并且在保证 v π v_{\pi} vπ的成立的条件下,序列 { v k } \{v_k\} {vk} k → ∞ k \rightarrow \infty k时可以收敛到 v π v_{\pi} vπ。这个求解算法被称为迭代策略评估算法。

期望更新(expected update):为了从 v k v_k vk得到下一个近似 v k + 1 v_{k+1} vk+1, 迭代策略评估算法对每一个状态 s s s采用相同的操作:在被评估的策略下可能的所有的一步转移中,用从s的后继状态的旧值中获得的新值来替换s的旧值,以及期望即时奖励。迭代策略评估的每一次迭代更新所有的状态的价值函数,以产生新的近似价值函数 v k + 1 v_{k+1} vk+1。在DP中这些方法被称为期望更新,因为它们是基于所有可能的后继状态的期望值的,而不是后继状态的一个样本。

为了编程实现式(4.5)所示的迭代策略评估:

  • 我们需要两个数组,一个用于存储旧的价值函数 v k ( s ) v_k(s) vk(s),一个存储新的价值函数 v k + 1 ( s ) v_{k+1}(s) vk+1(s);这样在旧的价值函数不变的情况下,新的价值函数可以一个接一个的被计算出来。
  • 也可以只使用一个数组来“就地(in place)"更新,即每次用新的价值函数直接替换旧的价值函数;在这种情况下,根据状态更新的顺序,在式(4.5)的右侧有时候会使用新的状态值而不是旧的状态值;这种就地更新的算法也能够收敛到 v π v_{\pi} vπ,甚至会比两个数组的版本收敛更快,因为它更快的使用新数据。
  • 在DP算法中一般使用就地更新的版本。

迭代策略评估的就地更新的伪代码如下,在每次遍历之后会测试 m a x s ∈ S ∣ v k + 1 ( s ) − v k ( s ) ∣ max_{s \in \mathcal{S}} |v_{k+1}(s)-v_k(s)| maxsSvk+1(s)vk(s), 当它足够小时就停止迭代。

在这里插入图片描述

4.2 Policy Improvement

先来看一下策略提升定理(policy improvement theorem, 也译作策略改进定理或策略改善定理)的特例:假设对于任意一个确定的策略 π \pi π,我们已经确定了它的价值函数 v π v_{\pi} vπ。对于一些状态 s s s,我们想知道是否应该选择一个不同于给定的策略的动作 a ≠ π ( s ) a \neq \pi(s) a=π(s),我们已经知道从状态s继续选择当前策略的价值 v π ( s ) v_{\pi}(s) vπ(s),但是选择新策略是更好还是更坏?回答这个问题的一个答案是在状态s选择动作a,然后继续遵循现有的策略 π \pi π。这种方法的价值为:
q π ( s , a )   = ˙   E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s , A t = a ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] ( 4.6 ) \begin{aligned} q_{\pi}(s, a)\ & \dot{=} \ \mathbb{E}[R_{t+1} + \gamma v_{\pi}(S_{t+1}) \mid S_t=s,A_t=a] \\ &= \sum_{s^{\prime}, r}p(s^{\prime}, r|s, a)[r + \gamma v_{\pi}(s^{\prime})] \qquad (4.6) \end{aligned} qπ(s,a) =˙ E[Rt+1+γvπ(St+1)St=s,At=a]=s,rp(s,rs,a)[r+γvπ(s)](4.6)
而关键准则就是这个值是大于还是小于 v π ( s ) v_{\pi}(s) vπ(s),如果这个值更大,则说明在状态s下选择动作a,然后继续使用策略 π \pi π比始终使用策略 π \pi π更优。当每次在转态s下选择a都是更好时,我们就认为新策略总体上来说更好。

接下来就是策略提升定理的更一般形式,假设 π \pi π π ′ \pi^{\prime} π是任意两个确定的策略,对于任意状态 s ∈ S s \in \mathcal{S} sS:
q π ( s , π ′ ( s ) ) ≥ v π ( s ) ( 4.7 ) q_{\pi}(s, \pi^{\prime}(s)) \ge v_{\pi}(s) \qquad (4.7) qπ(s,π(s))vπ(s)(4.7)
那么策略 π ′ \pi^{\prime} π相比与策略 π \pi π 一样好或更好,也就是说,对于任意状态 s ∈ S s \in \mathcal{S} sS,它肯定能获得一样或更好的期望回报:
v π ′ ( s ) ≥ v π ( s ) ( 4.8 ) v_{\pi^{\prime}}(s) \ge v_{\pi}(s) \qquad (4.8) vπ(s)vπ(s)(4.8)
并且如果式(4.7)中的不等式在某个状态下是严格不等的,那么式(4.8)在这个状态下也会是严格不等的。

策略提升定理的证明通过以下推导过程可以证明,从式(4.7)开始,我们用式(4.6)不断扩展公式左侧的 q π q_{\pi} qπ,并不断应用式(4.7)直到得到 v π ′ ( s ) v_{\pi^{\prime}}(s) vπ(s):
v π ( s ) ≤ q π ( s , π ′ ( s ) ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s , A t = π ′ ( s ) ] ( b y ( 4.6 ) ) = 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 ] ( b y ( 4.7 ) ) = E π ′ [ R t + 1 + γ E [ R t + 2 + γ v π ( S t + 2 ) ∣ S t + 1 , A t + 1 = π ′ ( S t + 1 ) ] ∣ 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) & \le q_{\pi}(s, \pi^{\prime}(s)) \\ &= \mathbb{E}[R_{t+1} + \gamma v_{\pi}(S_{t+1}) \mid S_t=s,A_t=\pi^{\prime}(s)] \qquad (by (4.6)) \\ &= \mathbb{E}_{\pi^{\prime}}[R_{t+1} + \gamma v_{\pi}(S_{t+1}) \mid S_t=s] \\ &\le \mathbb{E}_{\pi^{\prime}}[R_{t+1} + \gamma q_{\pi}(S_{t+1}, \pi^{\prime}(S_{t+1})) \mid S_t=s] \qquad (by (4.7)) \\ &= \mathbb{E}_{\pi^{\prime}}[R_{t+1} + \gamma \mathbb{E}[R_{t+2} + \gamma v_{\pi}(S_{t+2}) \mid S_{t+1},A_{t+1}=\pi^{\prime}(S_{t+1})] \mid S_t=s] \\ &= \mathbb{E}_{\pi^{\prime}}[R_{t+1} + \gamma R_{t+2} + \gamma^2 v_{\pi}(S_{t+2})\mid S_t=s] \\ &\le \mathbb{E}_{\pi^{\prime}}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 v_{\pi}(S_{t+3})\mid S_t=s] \\ & \vdots \\ &\le \mathbb{E}_{\pi^{\prime}}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 R_{t+4} + \cdots \mid S_t=s] \\ &= v_{\pi^{\prime}}(s) \end{aligned} vπ(s)qπ(s,π(s))=E[Rt+1+γvπ(St+1)St=s,At=π(s)](by(4.6))=Eπ[Rt+1+γvπ(St+1)St=s]Eπ[Rt+1+γqπ(St+1,π(St+1))St=s](by(4.7))=Eπ[Rt+1+γE[Rt+2+γvπ(St+2)St+1,At+1=π(St+1)]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)
对于一个新的策略 π ′ \pi^{\prime} π, 如果满足:
π ′ ( s )   = ˙   a r g m a x a   q π ( s , a ) = a r g m a x a   E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s , A t = a ] ( 4.9 ) = a r g m a x a   ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] \begin{aligned} \pi^{\prime}(s) &\ \dot{=}\ \mathop{argmax} \limits_a\ q_{\pi}(s, a) \\ & = \mathop{argmax} \limits_a\ \mathbb{E}[R_{t+1} + \gamma v_{\pi}(S_{t+1}) \mid S_t=s, A_t=a] \qquad (4.9) \\ & = \mathop{argmax} \limits_a\ \sum_{s^{\prime}, r} p(s^{\prime}, r | s, a)[r + \gamma v_{\pi}(s^{\prime})] \end{aligned} π(s) =˙ aargmax qπ(s,a)=aargmax E[Rt+1+γvπ(St+1)St=s,At=a](4.9)=aargmax s,rp(s,rs,a)[r+γvπ(s)]
上面的 a r g m a x a argmax_a argmaxa表示能够使表达式最大化的a(如果相等则任取一个)。这个贪心策略根据 v π v_{\pi} vπ向前单步搜索采取在短期内看上去最优的动作。这个贪心策略满足式(4.7)的策略提升定理,所以它跟原来的策略一样好,甚至更好。这种根据原策略的价值函数执行贪心算法,来构造一个更好策略的过程,被称为策略提升(policy improvement)。

如果新的策略 π ′ \pi^{\prime} π和旧的策略 π \pi π一样好,但不是更好,那么 v π = v π ′ v_{\pi} = v_{\pi^{\prime}} vπ=vπ, 从式(4.9)可得到,对于所有状态 s ∈ S s \in \mathcal{S} sS:
π ′ ( s ) = m a x a   E [ R t + 1 + γ v π ′ ( S t + 1 ) ∣ S t = s , A t = a ] ( 4.9 ) = m a x a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ′ ( s ′ ) ] \begin{aligned} \pi^{\prime}(s) & = \mathop{max} \limits_a\ \mathbb{E}[R_{t+1} + \gamma v_{\pi^{\prime}}(S_{t+1}) \mid S_t=s, A_t=a] \qquad (4.9) \\ & = \mathop{max} \limits_a \sum_{s^{\prime}, r} p(s^{\prime}, r | s, a)[r + \gamma v_{\pi^{\prime}}(s^{\prime})] \end{aligned} π(s)=amax E[Rt+1+γvπ(St+1)St=s,At=a](4.9)=amaxs,rp(s,rs,a)[r+γvπ(s)]
这和式(4.1)的贝尔曼最优方程完全相同,因此 v π ′ v_{\pi^{\prime}} vπ一定是 v ∗ v_* v,策略 π ′ \pi^{\prime} π π \pi π都是最优策略。策略提升一定会给我们一个严格最优的策略除非原来的策略已经是最优的了。

这里讨论的都是确定性策略,但是要记住随机提升定理在随机策略的情况下也是成立的。并且在类似式(4.9)中出现多个动作都可以得到最大值的情况时,在随机情况下不需要从中选一个。相反,在新的贪心策略中,每一个最优的动作都能以一定的概率被选中。

4.3 Policy Iteration

策略迭代(policy iteration):当一个策略 π \pi π,根据 v π v_{\pi} vπ提升并得到了一个更好的策略 π ′ \pi^{\prime} π,我们可以计算 v π ′ v_{\pi^{\prime}} vπ并提升它得到一个更好的策略 π ′ ′ \pi^{\prime \prime} π′′,因此,我们可以获得一系列单调改进的策略和价值函数:
π 0 ⟶ E v π 0 ⟶ I π 1 ⟶ E v π 1 ⟶ I π 2 ⟶ E ⋯ ⟶ I π ∗ ⟶ E v ∗ \pi_0 \stackrel{E}{\longrightarrow} v_{\pi0} \stackrel{I}{\longrightarrow} \pi_1 \stackrel{E}{\longrightarrow} v_{\pi1} \stackrel{I}{\longrightarrow} \pi_2 \stackrel{E}{\longrightarrow} \cdots \stackrel{I}{\longrightarrow} \pi_* \stackrel{E}{\longrightarrow} v_* π0Evπ0Iπ1Evπ1Iπ2EIπEv
上式中的 ⟶ E \stackrel{E}{\longrightarrow} E是策略评估, ⟶ I \stackrel{I}{\longrightarrow} I是策略提升。每一个策略都被保证比前一个策略更优(除非它前一个已经是最优的)。因为有限MDP只有有限种策略,这个过程在有限迭代里一定会收敛到最优策略和最优价值函数。

策略迭代的完整算法如下图所示:

在这里插入图片描述

4.4 Value Iteration

策略迭代的一个缺点是它使用了策略评估,而策略评估需要很多轮的迭代。

价值迭代(value iteration):可以被认为是策略评估只进行了一轮更新的策略迭代算法,它可以被记作结合了策略提升和截断策略评估的更新操作, 对于所有状态 s ∈ S s \in \mathcal{S} sS::
v k + 1 ( s )   = ˙   m a x a   E [ R t + 1 + γ v k ( S t + 1 ) ∣ S t = s , A t = a ] = m a x a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v k ( s ′ ) ] ( 4.10 ) \begin{aligned} v_{k+1}(s) &\ \dot{=}\ \mathop{max} \limits_a\ \mathbb{E}[R_{t+1} + \gamma v_{k}(S_{t+1}) \mid S_t=s, A_t=a] \\ & = \mathop{max} \limits_a \sum_{s^{\prime}, r} p(s^{\prime}, r | s, a)[r + \gamma v_{k}(s^{\prime})] \qquad (4.10) \end{aligned} vk+1(s) =˙ amax E[Rt+1+γvk(St+1)St=s,At=a]=amaxs,rp(s,rs,a)[r+γvk(s)](4.10)
对于任意 v 0 v_0 v0, 在保证 v ∗ v_* v存在的条件下,序列 { v k } \{v_k \} {vk}都可以收敛到 v ∗ v_* v

理解价值迭代的tips:

  • 借助贝尔曼最优方程式(4.1),价值迭代将贝尔曼最优方程变为一条更新规则。除了从达到最大值的状态更新外,价值迭代更新与式(4.5)的策略评估更新一样

  • 比较下面两个图的回溯图,左图是策略评估(原书59页),右图是价值迭代(原书图3.4左侧)

在这里插入图片描述

  • 在每一次遍历中,价值迭代有效结合了策略评估的遍历和策略改进的遍历。一般来说,可以将截断策略迭代算法看做一系列的遍历序列,其中一些进行策略评估更新,而另一些进行价值迭代更新。

价值迭代如何终止呢?当一次遍历中价值函数仅有细微的变化时,就可以停止了。下面是一个包含这个停止条件的完整价值迭代算法。
在这里插入图片描述

4.5 Asynchronous Dynamic Programming

这章已经讨论过的DP方法的一个缺点是它需要遍历MDP的整个状态集。如果状态集很大,单次遍历的开销就非常大了。比如backgammon游戏有 1 0 20 10^{20} 1020个状态,即使每秒可以进行100万个状态的价值迭代更新,也需要花上1000年来进行一次扫描。

异步DP算法(Asynchronous DP algorithms)是一类就地迭代的DP算法,它不以系统遍历状态集的形式来组织算法,这些算法使用任意可用的状态值,以任意顺序来更新状态值。所以在某些状态的值更新一次之前,另一些状态的值可能已经更新好几次了。所以为了正确收敛,异步算法必须不断地更新所有状态的值:在某个计算节点后,它不能忽略任何一个状态。

比如使用异步价值迭代来更新式(4.10),在每一个步骤k上,只就地更新一个状态 s k s_k sk的值,如果 0 ≤ γ < 1 0 \le \gamma < 1 0γ<1,则只要所有状态都在序列 { s k } \{s_k\} {sk}中出现无数次,就能保证渐进收敛到 v ∗ v_* v

当然,避免遍历并不一定意味着我们可以减少计算量。这只是意味着一个算法在提升一个策略前,不需要陷入任何漫长而无望的遍历。

  • 我们可以尝试通过选择一些特定状态来更新,从而加快算法的速度。
  • 我们可以调整更新的顺序,使价值信息能够更有效地在状态之间传播。
  • 对于一些状态可能不需要像其他状态那样频繁地更新其价值函数;如果与最优行为无关,我们甚至可以完全跳过一些状态。后面第8章就会讨论这样的思路。

异步算法还有个好处:使计算和实时交互的结合变得更加容易。为了解决给定的MDP问题,我们可以在一个agent在MDP中进行真实交互的同时,执行迭代DP算法。agent的经验可用于确定DP算法要更新哪个状态。同时DP算法的最新值和策略信息可以指导agent的决策。

4.6 Generalized Policy Iteration

广义策略迭代(generalized policy iteration GPI):让策略评估和策略提升相互作用的一般思路,与这两个流程的粒度和其他细节无关。几乎所有方法都包括明确定义的策略和价值函数,如下图所示。策略总是基于特定的价值函数进行提升,价值函数也始终会向对应策略的真实价值函数收敛。当评估流程和提升流程都很稳定,不再变化,那么价值函数和策略必定是最优的。价值函数只有在与当前策略一致时才稳定,并且策略只有在对当前价值函数是贪心策略时才稳定,因此只有当一个策略发现它对自己的评估价值函数是贪心策略时,这两个流程才会稳定下来,这意味着式(4.1)的贝尔曼最优方程成立,这个策略和价值函数也都是最优的。

理解GPI的角度:

  • 可以将GPI的评估和提升流程看做是竞争和合作。竞争是指它们朝着相反的方向前进:让策略对价值函数贪心通常会使价值函数与当前策略不匹配,而使价值函数与策略一致通常会导致策略不再贪心。从长远看,这两个过程会相互作用来找到一个联合解决方案:最优价值函数和最优策略。

  • 可以将GPI的评估和提升流程视为两个约束或目标之间的相互作用的流程,如下图所示的二维空间中的两条线。每个流程都把价值函数或策略推向其中的一条线,这条线代表了对于两个目标中的某一个目标的解决方案。图中的箭头对应于策略迭代的行为,即每个箭头都表示系统每次都会完全地达到其中一个目标。

在这里插入图片描述

4.7 Efficiency of Dynamic Programming

DP算法也许对一些规模非常大的问题不太适用,但是相比于其他解决MDPs的方法,DP方法实际上效率很高。如果忽略掉一些技术上的细节,在最坏情况下,DP方法找到最优策略的时间与状态和动作的数量是呈多项式级关系的。

DP算法有时会由于维度灾难(the curse of dimensionality)而被认为缺乏实用性。维度灾难是指状态总数量随着状态变量的增加而指数级上升。状态集合太大的确会带来一些困难,但是这些是问题本身的困难,而非DP作为一种解法所带来的困难。实际上,相比于直接搜索和线性规划,DP更加适合于解决大规模状态空间的问题。

在实际运用中,采用今天的计算机实现DP算法,可以解决拥有数百万个状态的MDPs,策略迭代和价值迭代都被广泛采用,并且目前没有定论说哪种方法更好。并且这些方法通常比理论最坏的运行情况收敛的更快,尤其是使用了好的初始价值函数或策略的时候。

对于那些有很大状态空间的问题,通常会使用异步DP算法。

4.8 Summary

本章熟悉了利用动态规划来解决有限MDPs问题。关键概念:

  • 策略评估
  • 策略提升
  • 策略迭代
  • 价值迭代
  • 期望更新
  • 广义策略迭代GPI
  • 异步DP算法

自举法(bootstrapping):DP算法有一个特殊性质,所有的方法都是根据对后继状态价值的估计,来更新对当前状态价值的估计。也就是它们根据其他估计来更新自己的估计,这种思想就被称作自举法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《强化学习导论》(Reinforcement Learning: An Introduction)是Richard S. Sutton和Andrew G. Barto合作编写的一本经典教材,是强化学习领域的一本重要参考书。该书系统地介绍了强化学习的基本概念、算法和应用。 这本书分为三个部分。第一部分概述了强化学习的基本概念和问题,介绍了强化学习的基本元素:智能体、环境、状态、动作、奖励等,并讨论了不同类型的强化学习问题。第二部分重点介绍了标准强化学习问题的解决方法,包括动态规划、蒙特卡罗方法和时间差分学习等。通过这些方法,可以学习到如何最大化累积奖励来达到特定目标。第三部分则讨论了强化学习中的其他重要主题,如函数近似学习、策略梯度方法、探索与利用的平衡等。 这本书有几个显著的特点。首先,它以直观的例子和图解介绍了强化学习的基本概念,使得读者能够更容易地理解和掌握相关知识。其次,书中提供了大量的算法和伪代码,方便读者实际操作和实现。此外,书中还包含了丰富的练习题和案例研究,可以帮助读者巩固学习成果和应用知识。 《强化学习导论》被广泛应用于学术界和工业界,对于研究者、学生和工程师都具有重要的参考价值。它为读者提供了一个系统和全面的学习路径,帮助他们深入理解强化学习的原理和方法,并在实际问题中应用和发展强化学习技术。通过阅读《强化学习导论》,读者将能够了解强化学习的基本思想,熟悉常用的解决方法,并能够运用这些知识解决实际问题,为相关领域的研究和应用做出贡献。 ### 回答2: 《强化学习导论》(Reinforcement Learning: An Introduction)是一本经典的强化学习教材,由Richard S. Sutton和Andrew G. Barto合著。 该书的主要目的是介绍强化学习的基本概念、方法和算法。强化学习是一种机器学习的分支,其中智能体通过与环境的交互来学习最佳行动策略。与传统的监督学习和无监督学习不同,强化学习的训练过程主要基于奖励信号的反馈。 《强化学习导论》的内容涵盖了强化学习的基础知识和重要概念。首先,书中介绍了马尔可夫决策过程(Markov Decision Process,MDP)作为强化学习问题的数学框架。然后详细介绍了值函数和策略的概念,以及如何通过值函数和策略来指导智能体的学习和决策过程。 该书还介绍了各种强化学习方法,如蒙特卡罗方法、时序差分学习和Q-learning等。这些方法用于解决基于模型(model-based)和非基于模型(model-free)的强化学习问题。每种方法的优点、局限性和适用场景都有详细阐述。 此外,《强化学习导论》还提供了大量的实例和案例研究,以帮助读者加深对强化学习理论的理解。书中还包含了许多练习题和算法伪代码,读者可以通过实践来巩固所学的知识。 总之,《强化学习导论》是一本系统全面介绍强化学习理论和方法的经典教材。它不仅适合作为强化学习领域的入门读物,也适合作为学术界和工业界从业人员的参考书籍。 ### 回答3: 《强化学习:一种介绍》(Reinforcement Learning: An Introduction)是由Richard S. Sutton和Andrew G. Barto合著的一本权威教材,详细介绍了强化学习的原理和应用。 该书首先从强化学习的基本概念入手,解释了强化学习与其他机器学习方法的区别。强化学习是一种学习代理如何通过与环境的交互来最大化奖励的方法。与监督学习和无监督学习不同,强化学习的代理在无人指导的情况下进行学习,通过不断试错来逐步提升策略的质量。 书中详细介绍了强化学习中的基本要素:环境、状态、动作和奖励。同时,书中还介绍了多种强化学习算法,包括动态规划、蒙特卡洛方法和时序差分学习等。这些算法分别适用于不同类型的问题和环境,读者可以根据具体情况选择合适的算法进行应用。 此外,书中还介绍了强化学习中的进一步概念,如函数逼近和价值函数等。函数逼近是解决大规模问题的关键技术,而价值函数则用于评估状态或策略的质量。通过这些进一步的概念,读者可以深入理解强化学习的工作原理,并应用于解决复杂实际问题。 《强化学习:一种介绍》是一本深入浅出、权威且易读的教材,适合学习强化学习的初学者和相关领域的研究人员。无论是对于计算机科学、人工智能还是机器学习感兴趣的读者,该书都提供了一个良好的入门指南,帮助读者理解并应用强化学习的基本原理和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值