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

news2024/11/25 20:42:58

Chapter 3 Finite Markov Decision

本章正式介绍有限马尔科夫决策过程(finite Markov decision processes, finite MDP), 它包括第二章介绍的评估性反馈和关联(associative)—在不同情景下选择不同的状态。

MDP是序贯决策问题的经典形式化表达,它的动作不仅影响到即时奖励,还会影响后续情景或状态以及其未来的奖励。所以MDP涉及到延迟奖励,并且需要权衡即时奖励和延迟奖励。

在赌博机问题中,对每个动作 a a a 估计其价值 q ∗ ( a ) q_*(a) q(a), 在MDP中,我们估计每个动作 a a a在每一个状态 s s s下的价值 q ∗ ( s , a ) q_*(s, a) q(s,a),或者估计给定最优动作选择下的每个状态的价值 v ∗ ( s ) v_*(s) v(s)

3.1 The Agent-Environment Interface

MDP 是通过交互式学习来实现目标的理论框架。这个学习或者进行决策的机器被称为智能体agent,agent之外的所有与其交互的事情都被称为环境environment。agent选择动作,环境对动作做出回应并向agent呈现新的状态,这个交互过程持续的进行,环境也会给一个特定的数值类型的奖励,agent尝试通过其动作的选择实现的最大化的奖励。

在这里插入图片描述

设在每个离散时刻 t = 0 , 1 , 2 , 3 , ⋯ t=0,1,2,3,\cdots t=0,1,2,3,,agent和环境都发生了交互,在每一个时刻 t t t, agent收到所在环境的状态的某种表征: S t ∈ S S_t \in \mathcal{S} StS, 并基于该状态选择一个动作: A t ∈ A ( s ) A_t \in \mathcal{A}(s) AtA(s)。下一个时刻,agent收到了一个数值奖励: R t + 1 ∈ R ⊂ R R_{t+1} \in \mathcal{R} \subset \mathbb{R} Rt+1RR,并发现自己处于环境中的新状态 S t + 1 S_{t+1} St+1中, MDP和agent共同给出了类似如下的一个序列或轨迹:
S 0 , A 0 , R 1 , S 1 , A 1 , R 2 , S 2 , A 2 , R 3 , ⋯ ( 3.1 ) S_0, A_0, R_1, S_1,A_1,R_2,S_2,A_2,R_3,\cdots \qquad (3.1) S0,A0,R1,S1,A1,R2,S2,A2,R3,(3.1)
在有限MDP中,状态、动作、奖励的集合( S \mathcal{S} S A \mathcal{A} A R \mathcal{R} R)都只有有限个元素。当随机变量 R t R_t Rt S t S_t St都只依赖于前一个状态和动作的概率分布,也就是对于所有的 s ′ , s ∈ S , r ∈ R , a ∈ A ( s ) s^{\prime},s \in \mathcal{S}, r\in \mathcal{R}, a \in \mathcal{A}(s) s,sS,rR,aA(s), 给定前一个状态和动作的值时,这些随机变量的特定值 s ′ ∈ S s^{\prime} \in \mathcal{S} sS r ∈ R r \in \mathcal{R} rR t t t时刻出现的概率是(公式中的原点表示这是一个定义):
p ( s ′ , r ∣ s , a )   = ˙   P r { S t = s ′ , R t = r ∣ S t − 1 = s , A t − 1 = a } ( 3.2 ) p(s^{\prime},r \mid s, a)\ \dot{=}\ Pr\{S_t=s^{\prime}, R_t=r \mid S_{t-1}=s, A_{t-1}=a \} \qquad (3.2) p(s,rs,a) =˙ Pr{St=s,Rt=rSt1=s,At1=a}(3.2)
这里 S t S_t St R t R_t Rt的每个可能的值的概率值仅取决于前一个状态 S t − 1 S_{t-1} St1和前一个动作 A t − 1 A_{t-1} At1,与更早之前的状态和动作完全无关的性质,就是马尔科夫性(Markov property),马尔科夫性基本贯穿了本书或者强化学习大部分领域。

式3.2中的动态函数 p : S × R × S × A → [ 0 , 1 ] p:\mathcal{S} \times \mathcal{R} \times \mathcal{S} \times \mathcal{A} \rightarrow[0, 1] p:S×R×S×A[0,1]是有四个参数的普通的确定性函数, |符号是表示条件概率的,在这也只是提醒我们,函数p为每个s和a的选择都指定了一个概率分布,即:
∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) = 1 ,   f o r   a l l   s ∈ S , a ∈ A ( s ) ( 3.3 ) \sum_{s^{\prime} \in \mathcal{S}} \sum_{r \in \mathcal{R}} p(s^{\prime}, r \mid s, a) = 1,\ for\ all\ s\in \mathcal{S}, a \in \mathcal{A}(s) \qquad (3.3) sSrRp(s,rs,a)=1, for all sS,aA(s)(3.3)
从四个参数的动态函数 p p p中,我们计算出关于环境的任何其他信息:

  • 状态转移概率(state-transition probabilities):将其表示为一个三个参数的函数 p : S × S × A → [ 0 , 1 ] p:\mathcal{S} \times \mathcal{S} \times \mathcal{A} \rightarrow[0, 1] p:S×S×A[0,1]:
    p ( s ′ ∣ s , a )   = ˙   P r { S t = s ′ ∣ S t − 1 = s , A t − 1 = a } = ∑ r ∈ R p ( s ′ , r ∣ s , a ) ( 3.4 ) p(s^{\prime} \mid s, a)\ \dot{=}\ Pr\{S_t=s^{\prime} \mid S_{t-1}=s, A_{t-1}=a \} = \sum_{r \in \mathcal{R}} p(s^{\prime}, r \mid s, a) \qquad (3.4) p(ss,a) =˙ Pr{St=sSt1=s,At1=a}=rRp(s,rs,a)(3.4)

  • "状态-动作"对的期望奖励: 将其表示为一个两个参数的函数 r : S × A → R r : \mathcal{S} \times \mathcal{A} \rightarrow \mathbb{R} r:S×AR:

r ( s , a )   = ˙   E [ R t ∣ S t − 1 = s , A t − 1 = a } = ∑ r ∈ R r ∑ s ′ ∈ S p ( s ′ , r ∣ s , a ) ( 3.5 ) r(s, a)\ \dot{=}\ \mathbb{E}[R_t \mid S_{t-1}=s, A_{t-1}=a \} = \sum_{r \in \mathcal{R}} r \sum_{s^{\prime} \in \mathcal{S}} p(s^{\prime}, r \mid s, a) \qquad (3.5) r(s,a) =˙ E[RtSt1=s,At1=a}=rRrsSp(s,rs,a)(3.5)

  • “状态-动作-下一个动作” 三元组的期望奖励:将其表示为一个三个参数的函数 r : S × A × S → R r : \mathcal{S} \times \mathcal{A} \times \mathcal{S} \rightarrow \mathbb{R} r:S×A×SR:
    r ( s , a , s ′ )   = ˙   E [ R t ∣ S t − 1 = s , A t − 1 = a , S t = s ′ } = ∑ r ∈ R r p ( s ′ , r ∣ s , a ) p ( s ′ ∣ s , a ) ( 3.6 ) r(s, a, s^{\prime})\ \dot{=}\ \mathbb{E}[R_t \mid S_{t-1}=s, A_{t-1}=a, S_t=s^{\prime}\} = \sum_{r \in \mathcal{R}} r \frac {p(s^{\prime}, r \mid s, a)}{p(s^{\prime} \mid s, a)} \qquad (3.6) r(s,a,s) =˙ E[RtSt1=s,At1=a,St=s}=rRrp(ss,a)p(s,rs,a)(3.6)

3.2 Goals and Rewards

非正式的说,强化学习的目标是最大化它收到的总奖励,也就是说最大化的不仅仅是即时奖励,而是长期的累积奖励,将这个非正式想法可以表述成下述奖励假设(reward hypothesis):

That all of what we mean by goals and purposes can be well thought of as the maximization of the expected value of the cumulative sum of a received scalar signal (called reward).

因为agent总是学习最大化奖励,所以如果我们想让它为我们做某件事,我们设计的奖励必须使agent最大化奖励的同时实现我们的目标。很重要的一点是,我们设计的奖励的方式要能真正表明我们的目标,比如国际象棋agent只有当最终获胜时才能得到奖励,而不是达到某个子目标,比如吃掉对方的子或者控制中心区域。如果实现这些子目标也能得到收益,那么agent可能会以输掉比赛为代价来吃掉对方的子。 所以要记住:奖励信号是你告诉agent你要实现的目标是什么,而不是你要它如何来实现它。

3.3 Returns and Episodes

一般来说,我们寻求的是最大化期望回报(expectied return), 记为 G t G_t Gt, 它被定义为奖励序列的特定函数,最简单的形式下,回报是奖励的和:

G t = R t + 1 + R t + 2 + R t + 3 + ⋯ + R T ( 3.7 ) G_t = {R_{t+1}} + R_{t+2} + R_{t+3}+ \cdots + R_T \qquad (3.7) Gt=Rt+1+Rt+2+Rt+3++RT(3.7)

上式中的 T T T是最终时刻,当agent与环境的交互被被自然的分成子序列,称为序列(episodes), 比如一局游戏,一次走迷宫的旅程等,每一个episode以一个特殊的被称为最终状态(terminal state)的状态结束,接着又以一个标准开始或起始状态分布中的某个状态开始。 这类任务被称为回合任务(episodic tasks),将不包含最终状态的全部状态集记为 S \mathcal{S} S, 将包含最终状态的全部状态集记为 S + \mathcal{S}^+ S+, 注意每个episode的 T T T 可能是不一样。

而在许多场景下agent与环境的交互不会自然分成可辨识的episode,而是没有限制的一直交互下去,比如一个有很长生命周期的机器人,这类任务被称为连续任务(continuing tasks),这时上面3.7式中的最终时间步 T = ∞ T=\infty T=,而我们试图最大化的回报将会是无穷大。此时我们将引入折扣(discounting)这个概念,也就是选择动作 A t A_t At将最大化期望折扣回报(discounted return):
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 ( 3.8 ) G_t = R_{t+1} + \gamma{R_{t+2}} + \gamma^{2}R_{t+3} + \cdots = \sum_{k=0}^{\infty}\gamma^k R_{t+k+1} \qquad (3.8) Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1(3.8)

上式中的 γ \gamma γ被称为折扣率(discount rate), 它 0 ≤ γ ≤ 1 0 \le \gamma \le 1 0γ1, 决定了未来奖励在当下的价值:在未来k步收到的奖励相比于立马收到只值 γ k − 1 \gamma^{k-1} γk1

回报的相邻时间步互相关联的性质对强化学习很重要:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + γ 3 R t + 4 + ⋯ = R t + 1 + γ ( R t + 2 + γ R t + 3 + γ 2 R t + 4 + … ) = R t + 1 + γ G t + 1 ( 3.9 ) \begin{aligned} G_t & =R_{t+1} + \gamma{R_{t+2}} + \gamma^{2}R_{t+3} + \gamma^{3}R_{t+4} + \cdots \\ & =R_{t+1} + \gamma\left(R_{t+2}+\gamma R_{t+3} + \gamma^{2}R_{t+4} + \ldots \right) \\ & =R_{t+1} + \gamma G_{t+1} \qquad (3.9) \end{aligned} Gt=Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+=Rt+1+γ(Rt+2+γRt+3+γ2Rt+4+)=Rt+1+γGt+1(3.9)
对于式3.8,如果奖励是不为0的常数,并且 γ < 1 \gamma <1 γ<1,那么回报是有限的,比如当奖励始终为1时,回报为:
G t = ∑ k = 0 ∞ γ k = 1 1 − γ ( 3.10 ) G_t = \sum_{k=0}^{\infty}\gamma^{k} = \frac {1} {1-\gamma} \qquad (3.10) Gt=k=0γk=1γ1(3.10)

3.4 Unified Notation for Episodic and Continuing Tasks

在3.3 节提到了2类任务: episodic tasks 和 continuing tasks, 将其统一表示成下式,包括 T = ∞ T=\infty T= γ = 1 \gamma=1 γ=1(但不是全部)的可能性。
G t   = ˙ ∑ k = t + 1 T γ k − t − 1 R k ( 3.11 ) G_t\ \dot {=} \sum_{k=t+1}^{T} \gamma ^{k-t-1} R_k \qquad (3.11) Gt =˙k=t+1Tγkt1Rk(3.11)

3.5 Policies and Value Functions

价值函数(value function):是状态(或状态-动作对)的函数,它是估计agent在给定状态下能有多大期望回报(how good)(或者在给定状态下的给定动作的期望回报)。

策略(policy)是从状态到每个可能动作的选择概率之间的映射。如果agent在时刻t使用策略 π \pi π, 那么 π ( a ∣ s ) \pi(a \mid s) π(as)就是当 S t = s S_t=s St=s A t = a A_t=a At=a的概率,它为每个 s ∈ S s \in \mathcal{S} sS 定义了一个在 a ∈ A ( s ) a \in \mathcal{A}(s) aA(s)上的概率分布。

  1. 将策略 π \pi π下状态 s s s的价值函数(value function)记为 v π ( s ) v_{\pi}(s) vπ(s),我们将函数 v π v_{\pi} vπ称为策略 π \pi π的状态价值函数(state-value function for policy π \pi π)。 它是从状态 s s s开始,agent按照策略 π \pi π决策的期望回报。 对于MDP,可以正式的将 v π v_{\pi} vπ定义为:

v π ( s )   = ˙   E π [ G t ∣ S t = s ]   =   E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] ,   f o r   a l l   s   ∈ S ( 3.12 ) v_{\pi}(s)\ \dot{=} \ \mathbb{E}_{\pi}[G_t \mid S_t=s]\ = \ \mathbb{E}_{\pi} \left[\sum^{\infty}_{k=0} \gamma^k R_{t+k+1} \mid S_t=s \right],\ for\ all\ s\ \in \mathcal{S} \qquad (3.12) vπ(s) =˙ Eπ[GtSt=s] = Eπ[k=0γkRt+k+1St=s], for all s S(3.12)

上式中的 E π [ . ] \mathcal{E}_{\pi}[.] Eπ[.]表示agent按照策略 π \pi π决策时对一个随机变量的期望,t可以是任意时刻。需要注意在终止状态的价值始终为0。

  1. 将策略 π \pi π下在状态 s s s时采取动作 a a a的价值记为 q π ( s , a ) q_{\pi}(s, a) qπ(s,a),我们函数 q π q_{\pi} qπ称为策略 π \pi π的动作价值函数(action-value function for policy π \pi π)。它是从状态 s s s开始,agent按照策略 π \pi π决策,选择动作 a a a的期望回报:
    q π ( s , a )   = ˙   E π [ G t ∣ S t = s , A t = a ]   =   E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] ( 3.13 ) q_{\pi}(s, a)\ \dot{=} \ \mathbb{E}_{\pi}[G_t \mid S_t=s,A_t=a]\ = \ \mathbb{E}_{\pi} \left[\sum^{\infty}_{k=0} \gamma^k R_{t+k+1} \mid S_t=s, A_t=a \right] \qquad (3.13) qπ(s,a) =˙ Eπ[GtSt=s,At=a] = Eπ[k=0γkRt+k+1St=s,At=a](3.13)

  2. 价值函数也有与式3.9类似的递归关系,对于任何策略 π \pi π和任何状态 s s s s s s的价值与其可能的后继状态的价值之间存在以下关系:
    V π ( s ) = ˙ E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] ( b y ( 3.9 ) ) = ∑ a π ( a ∣ s ) ∑ s ′ ∑ r p ( s ′ , r ∣ s , a ) [ r + γ E π [ G t + 1 ∣ S t + 1 = s ′ ] ] = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] ,   f o r   a l l   s ∈ S ( 3.14 ) \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)) \\ &= \sum _{a } \pi(a | s) \sum_{s^{\prime}} \sum_{r} p(s^{\prime}, r | s, a) \left[ r + \gamma \mathbb{E}_{\pi}[G_{t+1}|S_{t+1}=s^{\prime}] \right] \\ &= \sum _{a } \pi(a | s) \sum_{s^{\prime},r} p(s^{\prime}, r | s, a) \left[ r + \gamma v_{\pi}(s^{\prime}) \right] ,\ for \ all \ s\in \mathcal{S} \qquad (3.14) \end{aligned} Vπ(s)=˙Eπ[GtSt=s]=Eπ[Rt+1+γGt+1St=s](by(3.9))=aπ(as)srp(s,rs,a)[r+γEπ[Gt+1St+1=s]]=aπ(as)s,rp(s,rs,a)[r+γvπ(s)], for all sS(3.14)
    式3.14被称作 v π v_{\pi} vπ贝尔曼方程(Bellman equation),他表达状态价值和后继状态价值之间的关系

  3. 回溯图(backup diagrams),下图为 v π v_{\pi} vπ的一个回溯图示意,图中的关系是回溯运算的基础。这里的回溯操作是将后继状态(或状态-动作对)的价值信息回传(back to) 当前时刻的状态(或状态-动作对)。图中的空心圆表示一个状态,而实心圆表示一个“状态-动作”对。从根节点的状态s出发,agent可以基于它的策略 π \pi π,采取动作集合中的任一动作(图中是3个动作)。对于每一个动作,环境会根据其动态特性函数p,以一个后继状态 s ′ s^{\prime} s及其收益r作为响应。公式3.14对所有可能性根据其出现概率进行了加权平均,表明了起始状态的价值一定等于后继状态的(折扣)期望值加上对应的奖励期望值。

    在这里插入图片描述

3.6 Optimal Policies and Optimal Value Functions

最优策略(optimal policy):若对于所有的 s ∈ S s \in \mathcal{S} sS π ≥ π ′ \pi \ge \pi^{\prime} ππ,那么有 v π ( s ) ≥ v π ′ ( s ) v_{\pi}(s) \ge v_{\pi}^{\prime}(s) vπ(s)vπ(s),这个不劣于其他所有策略的策略就是最优策略。 尽管最优策略可能不止一个,还是用 π ∗ \pi_{*} π 来表示所有这些最优策略。它们共享相同的状态价值函数,称之为最优状态价值函数(optimal state-value function),记作 v ∗ v_{*} v
v ∗ ( s )   = ˙   m a x π v π ( s ) ( 3.15 ) v_{*}(s) \ \dot{=} \ max_{\pi} v_{\pi} (s) \qquad (3.15) v(s) =˙ maxπvπ(s)(3.15)
最优的策略也共享相同的最优动作价值函数,记为 q ∗ q_{*} q, 其定义为,对于任意 s ∈ S s \in \mathcal{S} sS a ∈ A a \in \mathcal{A} aA
q ∗ ( s , a )   = ˙   m a x π ( s , a ) ( 3.16 ) q_{*}(s, a)\ \dot{=} \ max_{\pi}(s, a) \qquad (3.16) q(s,a) =˙ maxπ(s,a)(3.16)
对于转态-动作对 ( s , a ) (s, a) (s,a) q ∗ ( s , a ) q_{*}(s, a) q(s,a)给出在状态s下,采取动作a, 之后按照最优策略去决策的期望回报,因此,我们可以用 v ∗ v_{*} v来表示 q ∗ q_{*} q,如下所示:
q ∗ ( s , a )   =   E π [ R t + 1 + γ v ∗ ( S t + 1 ) ∣ S t = s , A t = a ]   ( 3.17 ) q_{*}(s, a)\ = \ \mathbb{E}_{\pi}[R_{t+1} + \gamma v_{*}(S_{t+1}) \mid S_t=s,A_t=a]\ \qquad (3.17) q(s,a) = Eπ[Rt+1+γv(St+1)St=s,At=a] (3.17)

v ∗ v_{*} v是策略的价值函数,那它一定满足式3.14的贝尔曼方程中状态和价值的一致性条件,当然因为它是最优价值函数,所以 v ∗ v_{*} v的一致性条件可以用一种特殊的形式表示,而不拘泥于任何特定的策略,这就是贝尔曼最优方程(Bellman optimality equation),直观上看,贝尔曼方程表达了一个事实:在最优策略下的状态的价值一定等于这个状态下最优动作的期望回报:
v ∗ ( s )   = m a x a ∈ A ( s ) v π ( s )   = m a x a   E π ∗ [ G t ∣ S t = t , A t = a ]   = m a x a   E π ∗ [ R t + 1 + γ G t + 1 ∣ S t = t , A t = a ] ( b y ( 3.9 ) )   = m a x a   E [ R t + 1 + γ v ∗ ( S t + 1 ) ∣ S t = t , A t = a ] ( 3.18 )   = m a x a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v ∗ ( s ′ ) ] ( 3.19 ) \begin{aligned} v_{*}(s) & \ = max_{a \in \mathcal{A}(s)} v_{\pi} (s) \\ & \ = max_a \ \mathbb{E}_{\pi_*}[G_t \mid S_t=t, A_t=a ] \\ & \ = max_a \ \mathbb{E}_{\pi_*}[R_{t+1} + \gamma G_{t+1} \mid S_t=t, A_t=a ] \qquad (by(3.9)) \\ & \ = max_a \ \mathbb{E}[R_{t+1} + \gamma v_*(S_{t+1}) \mid S_t=t, A_t=a ] \qquad (3.18) \\ & \ = max_a \sum_{s^{\prime}, r} p(s^{\prime}, r| s, a)[r + \gamma v_*(s^{\prime})] \qquad (3.19) \end{aligned} v(s) =maxaA(s)vπ(s) =maxa Eπ[GtSt=t,At=a] =maxa Eπ[Rt+1+γGt+1St=t,At=a](by(3.9)) =maxa E[Rt+1+γv(St+1)St=t,At=a](3.18) =maxas,rp(s,rs,a)[r+γv(s)](3.19)
最后的两个方程(3.18)和(3.19)是 v ∗ v_* v的两个形式, q ∗ q_* q的贝尔曼最优方程是:
q ∗ ( s , a )   = E [ R t + 1 + γ m a x a ′ q ∗ ( S t + 1 , a ′ ) ∣ S t = t , A t = a ]   = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ m a x a ′ q ∗ ( s ′ , a ′ ) ] ( 3.20 ) \begin{aligned} q_{*}(s, a) & \ = \mathbb{E}[R_{t+1} + \gamma max_{a^{\prime}} q_*(S_{t+1}, a^{\prime}) \mid S_t=t, A_t=a ] \\ & \ = \sum_{s^{\prime}, r} p(s^{\prime}, r| s, a)[r + \gamma max_{a^{\prime}}q_*(s^{\prime}, a^{\prime})] \qquad (3.20) \end{aligned} q(s,a) =E[Rt+1+γmaxaq(St+1,a)St=t,At=a] =s,rp(s,rs,a)[r+γmaxaq(s,a)](3.20)
下图的左边是式(3.19), v ∗ v_* v的回溯图,下图的右边是式(3.20), q ∗ q_* q的回溯图。与前面的表示除了图上的弧形外,其他是一样的,弧形表示agent的选择是最优的。

在这里插入图片描述

对于有限MDP来说, v π v_{\pi} vπ的贝尔曼方程(式3.19)和 q π q_{\pi} qπ的贝尔曼方程(式3.20)有独立于策略的唯一解。而对于最优价值函数 v ∗ v_* v来说,任何贪心策略都是最优策略。而给定 q ∗ q_* q ,对于任意状态s, agent只要找到使得 q ∗ ( s , a ) q_*(s, a) q(s,a)最大化的动作a就可以了。

3.7 Optimality and Approximation

计算资源和内存是限制了直接生成最优策略,实际上agent只能在不同程度上近似。

强化学习的在线性质使得可以通过在学习中做出更多努力来为经常遇到的状态做出好的决策来做出最优策略,而这是以对不常遇到的状态做很少努力为代价的。该性质是强化学习不同于其他近似求解MDP方法的关键性质。

3.8 Summary

来总结一下本章学到的强化学习的要素:

  • 强化学习是从交互中学习如何采取行动来达到一个目标。
  • 强化学习的agent和它的环境在一系列离散的时间步长上进行交互。
  • agent做出动作的选择;状态是做出选择的基础;奖励是评估这些选择的基础。
  • agent内部的一切是可知和可控的。它的环境,是完全不可控的,可能或不可能完全可知。
  • 策略是一个随机规则,它是状态的函数。agent通过该规则选择动作。
  • agent的目标是在累积时间内最大化收到的奖励。

当强化学习用完备定义的转移概率描述后,就构成了马尔科夫决策过程(Markov decision process(MDP))。一个有限MDP是包含有限的状态、动作、奖励集的MDP。

回报是agent要最大化的未来奖励的函数。它根据不同的任务类型和是否希望对延迟的奖励打折扣,有不同的定义,本书也试图用一组方程适用下面两种不同的任务。

  • 非折扣形式适用于回合式任务(episodic tasks),这类任务中agent和环境的交互可以自然分解成episodes。
  • 折扣形式适用于连续性任务(continuing tasks),这类任务中agent和环境的交互不能被分解成episodes而是一直无限制的持续下去。

关于价值函数:

  • 给定 agent 使用的策略,则策略的值函数可以对每个状态或状态-动作对给出对应的期望回报。
  • 最优价值函数对每个状态或状态-动作对给出了所有策略中最大的期望回报值。
  • 一个价值函数最优的策略叫最优策略。
  • 对于给定的 MDP,状态和状态-动作对对应的最优价值函数是唯一的,但是可以有许多最优策略。
  • 在最优价值函数的基础上,通过贪心算法得到的策略一定是最优策略。
  • Bellman 最优方程是最优价值函数必须满足的特殊一致性条件,原则上最优价值函数是可以通过这个条件相对容易求解得到的。

计算能力和存储资源是一个约束,在大多数实际问题中,环境状态远远不是一个表格能装下的,我们需要近似方法来解决强化学习问题。


参考资料

  1. 《Reinforcement Learning: An Introduction》Sutton, Richard S. and Andrew G. Barto. 第2版, 书籍网站, 笔记中的全部图片都来源于书籍。
  2. https://github.com/ShangtongZhang/reinforcement-learning-an-introduction
  3. https://github.com/YunlianMoon/reinforcement-learning-an-introduction-2nd-edition/tree/master

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

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

相关文章

【玩转Linux操作】硬链接和软连接

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题&#x1f970; 欢迎大家访问“在下小吉.”&#xff08;偷偷告诉你这个是我的大号哦&#…

创客匠人5月活动总结

为了帮助老师做好知识变现、拓客增长&#xff0c;让好老师走进千万家&#xff0c;让知识创造价值&#xff0c;五月&#xff0c;创客匠人组织了一系列线上线下干货满满的赋能活动&#xff01; 一、老蒋商业变现营线上 5月10日-5月14日&#xff0c;在线上举办了首期【老蒋商业变现…

C++作业day1

思维导图 有以下定义&#xff0c;说明哪些量可以改变哪些不可以改变&#xff1f; const char *p; p指向的指向不能修改 const (char *) p; char *const p; p不能改 const char* const p; 都不能修改 …

Python对接亚马逊电商平台SP-API的一些概念理解准备

❝ 除了第三方服务商&#xff0c;其实亚马逊卖家本身也可以通过和SP-API的对接&#xff0c;利用程序来自动化亚马逊店铺销售运营管理中很多环节的工作&#xff0c;简单的应用比如可以利用SP-API的对接&#xff0c;实现亚马逊卖家后台各类报表的定期自动下载以及数据分析整理工…

分享两个小众的办公软件

01 Apache OpenOffice是一款开源办公套件软件&#xff0c;主要用于文档处理、电子表格、演示文稿和数据库管理等方面。它包括Writer、Calc、Impress、Draw和Base五个组件。 Writer是Apache OpenOffice的文本编辑器&#xff0c;可用于创建各种类型的文档&#xff0c;如信函、报…

四、文字到语音模型库之Bark

随着人工智能技术的发展,文本到音频(Text-to-Audio,简称 TTA)转换已经成为一个热门的研究领域,旨在通过深度学习模型将任意文本转换为逼真的音频,包括语音、音乐、声效等。近日,一家名为 Suno 的公司在 GitHub 上开源了一个名为 Bark 的 TTA 模型,引起了广泛关注。Bark…

Java stream多字段分组(groupingBy)

近期的项目里&#xff0c;遇到一个需求&#xff1a;对于含有多个元素的List<Person>&#xff0c;按照其中的某几个属性进行分组&#xff0c;比如Persion::getAge、Persion::getType、Persion::getGender等字段。下面就让我们讨论一下如何比较优雅的按多字段进行分组group…

vue3 使用element plus 打包时 报错

vue3vitetselementPlus中运行正常打包出错 能正常运行&#xff0c;但是打包出错 解决打包时出现导入element plus相关的爆红&#xff0c;导致无法打包的问题 如若出现类似于&#xff1a;Module ‘“element-plus”’ has no exported member ‘ElMessage’. Did you mean to …

使用Fiddler进行Mock测试的原理和方法

叨叨在前&#xff1a;之前工作中&#xff0c;做的纯接口测试&#xff0c;当时公司有自己的Mock平台&#xff0c;可以进行接口Mock测试。后来离开公司后&#xff0c;再想做Mock测试&#xff0c;就只能使用开源工具&#xff0c;或者自己用Flask写Mock了。今儿整理一下&#xff0c…

二、视频换脸

介绍一个优秀的开源项目,DeepFaceLab。开发者是来自俄罗斯的Iperov,同时,他也是曾经应用最广泛的DeepFaceLab的开发者质之一。开源地址:https://github.com/iperov/DeepFaceLab 而这种高质量伪造图像的背后,依托的是“生成对抗网络”(GAN)技术。这类网络由两个 AI 代…

chatgpt赋能python:Python嵌入包:让你的程序更灵活

Python嵌入包&#xff1a;让你的程序更灵活 Python是一种动态、面向对象、高级编程语言&#xff0c;被广泛应用于科学计算、Web开发、大数据、人工智能等领域。Python提供了大量的标准库和第三方库&#xff0c;让开发者能够快速、高效地实现各种功能需求。 但是&#xff0c;在…

ROS EKF 机器人位姿估计功能包:robot_pose_ekf 安装(Ubuntu20.04)

ROS EKF 机器人位姿估计功能包&#xff1a;robot_pose_ekf 安装&#xff08;Ubuntu20.04&#xff09; 功能包简介安装 功能包简介 robot_pose_ekf软件包用于基于来自不同来源的&#xff08;部分&#xff09;位姿测量值来估计机器人的3D姿势。它使用带有6D模型&#xff08;3D位…

想要精通算法和SQL的成长之路 - 两两交换链表中的节点

想要精通算法和SQL的成长之路 - 两两交换链表中的节点 前言一. 两两交换链表中的节点 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 两两交换链表中的节点 原题链接 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改…

1.8w 字的 SQL 优化大全

目录 1、MySQL的基本架构 1&#xff09;MySQL的基础架构图 2&#xff09;查询数据库的引擎 ① show engines; ② show variables like “%storage_engine%”; 3&#xff09;指定数据库对象的存储引擎 2. SQL优化 1&#xff09;为什么需要进行SQL优化&#xff1f; 2&am…

迷你版ChatGPT开源,教你怎么用nanoGPT训练一个写小说的AI机器人!

大家好,我是千与千寻,好久不见,最近太忙了,去医院拔了颗智齿,这不是刚休息一天,就立刻来给大家分享ChatGPT的新奇项目了。 ChatGPT的功能确实是好用,但是我觉得有一个小缺点,就是反应的时间比较慢,原因是GPT-3.5/GPT-4.0的模型体积较大,比较占用内存空间。 同时大模…

MySQL存储引擎介绍、InnoDB和MyISAM的区别

存储引擎是MySQL的核心组件&#xff0c;是存储数据、建立索引、更新/查询数据等技术的实现方式&#xff0c;存储引擎是基于表的&#xff0c;而不是基于库的&#xff0c;所以存储引擎也可被称为表类型。以在创建表的时候&#xff0c;来可以指定选择的存储引擎&#xff0c;如果没…

指针--指针变量的定义和初始化

存放变量的地址需要一种特殊类型的变量&#xff0c;这种特殊的数据类型就是指针&#xff08;Pointer&#xff09;。 具有指针类型的变量&#xff0c;称为指针变量&#xff0c;它时专门用于存储变量的地址值和变量。 其定义形式如下&#xff1a; 类型关键字 * 指针变量名&#x…

【Swift基础语法SnapKit自动布局库的使用】

文章目录 前言playgroundvar 和 let-元组string-字典-数组闭包enum类和对象属性类UI和OC的区别&#xff0c;更简洁懒加载全局文件snap kit的使用top 和 topMargin 总结 前言 最近在学习swift和写项目&#xff0c;给我的感受&#xff0c;语言简洁和安全&#xff0c;在学习了基础…

从GitHub上新拉一个项目并在mac系统下运行遇到的种种问题

如果项目已经被拉下来&#xff0c;现在我们要启动项目。 step1、需要了解该项目是什么&#xff0c;它的作用是什么&#xff0c;以及它可以解决的问题。阅读项目的介绍、文档和示例&#xff0c;确保对项目有一个基本的认识。 step2、设置开发环境&#xff1a;确保您的开发环境…

网络安全系统教程+渗透测试+学习路线(自学笔记)

一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…