David Silver-强化学习笔记【2. Markov决策过程】

通过MP、MRP进一步引出MDP,主要过程是:通过求解贝尔曼方程来寻找最优价值函数,进而找到各个状态的最优策略。
涉及到的比较重要的知识点:markov性、状态转移概率 - P s s ′ \mathcal{P}_{s s^{\prime}} Pss、折扣因子 - γ \gamma γ、return - G t G_{t} Gt、策略 - π ( a ∣ s ) \pi(a | s) π(as)、状态动作对 - ( s , a ) (s,a) (s,a)、各种形式的value function和贝尔曼方程

2.1 马尔科夫过程  <铺垫>

在强化学习中,马尔科夫决策过程(Markov decision process, MDP)描述了一个完全可观测的环境,即传递给agent的state特征化了环境展开的过程。即便是partially observable也可以转化为MDP,因此几乎所有的RL问题都可以转化为MDP模型

2.1.1 马尔科夫性

  • 关于马尔科夫性(Markov Property),在前面的1.2.3.3 information state(Markov state)中已经提到过。可以用下面这个式子表示: P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , … , S t ] \mathbb{P}\left[S_{t+1} | S_{t}\right]=\mathbb{P}\left[S_{t+1} | S_{1}, \ldots, S_{t}\right] P[St+1St]=P[St+1S1,,St]下一时刻的状态,仅由当前state决定,与过去的history没有太大关系。我们需要做的是定义这样的一个state,使得它具有markov性,这样就可以丢弃history了。并且如果身处markov状态,就会一直在markov状态。
  • 对于任何马尔科夫过程(Markov Process),如果能够通过当前状态 s s s得到下一时刻状态 s ′ s^{\prime} s,就可以定义状态转移概率(state transition probability) P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} | S_{t}=s\right] Pss=P[St+1=sSt=s]下面状态转移矩阵 P \mathcal{P} P,定义了状态之间的转移概率(每一行的概率之和为1): P = [ P 11 ⋯ P 1 n ⋮ P n 1 ⋯ P n n ] \mathcal{P}=\left[\begin{array}{ccc} \mathcal{P}_{11} & \cdots & \mathcal{P}_{1 n} \\ \vdots \\ \mathcal{P}_{n 1} & \cdots & \mathcal{P}_{n n} \end{array}\right] P=P11Pn1P1nPnn

2.1.2 马尔科夫链

在这里插入图片描述
马尔科夫过程又叫马尔科夫链(Markov Chains),是一个无记忆的随机过程,由一系列具有markov性的随机状态 S 1 , S 2 , … S_{1}, S_{2}, \ldots S1,S2,构成(没有action和reward),可以用一个元组 ⟨ S , P ⟩ \langle\mathcal{S}, \mathcal{P}\rangle S,P表示。其中状态空间 S \mathcal{S} S是有限的state的集合, P \mathcal{P} P是状态转移矩阵,描述如何从一个状态到另一个状态。完整的定义了系统的动态变化过程,如:机器人的行走过程、交易agent在环境中的表现、agent遵循游戏中的规则。

2.1.2.1 示例

在这里插入图片描述
在这里插入图片描述

  • 圆圈表示学生所处的状态,方格Sleep是一个终止状态,或者可以描述成自循环的状态,也就是Sleep状态的下一个状态100%的几率还是自己。箭头表示状态之间的转移,箭头上的数字表示当前转移的概率
  • 流程:当学生处在第一节课(Class1)时,有50%的几率会参加第2节课(Class2),同时在也有50%的几率进入到浏览facebook这个状态中;在浏览facebook这个状态时,有90%的几率在下一时刻继续浏览,也有10%的几率返回到课堂内容上来;当学生进入到第二节课(Class2)时,会有80%的几率继续参加第三节课(Class3),也有20%的几率觉得成功在望去睡觉了(Sleep);当学生处于第三节课这个状态时,他有60%的几率通过考试,继而100%的退出该课程,也有40%的可能性去酒吧(pub)玩,又分别有20%、40%、40%的几率返回值第一、二、三节课重新继续学习。
  • 一个可能的process从状态Class1开始,最终结束于Sleep,其间的过程根据状态转化图可以有很多种可能性,这些都称为Sample Episodes。每一个episode都可以看做一个随机序列,该序列来自动态图的随机采样(以一定的概率分布进行状态转移)。图中展示了四个可能的episode以及状态转移矩阵。
  • 有学生提问,如何应对随着时间的流逝,转移概率可能发生变化的情况。David提出的解决方案思路是动态的演变转移图,但并不改变Markov的结构。一种方法是使用稳定的MDP算法,并不断调整自身;或者作为一个不稳定的动态过程,使其变为更复杂的markov过程,比如随着在状态上停留的次数改变转移概率,这依然具有markov性。

2.2 马尔科夫奖励过程  <铺垫>

上一部分其实不算是RL,因为没有reward、action这些东西,这一部分将引入reward(对应于state的reward)。马尔科夫奖励过程(Markov Reward Process,MRP)对各个state进行评估,没有涉及决策。
在这里插入图片描述
在这里插入图片描述

  • 可以看做是增加了value判断的Markov Process,这些value会告诉我们某个状态有多好,即对于从Markov Process中取样得到的一个序列已经取得了多少reward。
  • MRP可以用元组 ⟨ S , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma\rangle S,P,R,γ来表示。元组中增加了两个元素。其一是奖励函数(reward function) R \mathcal{R} R,代表的是当前状态的即时奖励(表示为 R t + 1 R_{t+1} Rt+1只是一种约定,本质上表示“当进入某个状态会获得相应的奖励”,即reward与state直接挂钩)(另外:这里的 R s \mathcal{R}_{s} Rs表示为期望,是要乘上到达该状态的概率吗?)
  • 还有一个是折扣因子(discount factor) γ ∈ [ 0 , 1 ] \gamma \in[0,1] γ[0,1],它的大小表明我们有多关心当前时刻的奖励(折扣因子越大,代表着侧重于exploration,越小代表着侧重于 Exploitation)。David列举了不少原因来解释为什么引入折扣因子,很重要的一点是为了数学表达的方便,(模型)更容易训练成功;对于连续性的动作,为了避免reward无穷大或者无穷小引入discount;远期利益具有一定的不确定性,符合人类对于眼前利益的追求;符合金融学上获得的利益能够产生新的利益,因而近期reward更有价值等等。
  • 同时还多了一个优化目标,即收获(return) G t G_{t} Gt,它是一个累积折损奖励,这个累积奖励是由当前时刻的reward以及后续所有时刻的reward乘上相应折扣因子的累加。其中折扣因子体现了未来的奖励在当前时刻的价值比例, γ \gamma γ接近0,则表明趋向于“近视”性评估,关注当前时刻的reward而不太在乎未来的奖励; γ \gamma γ接近1则表明偏重考虑远期的利益。
    G t = R t + 1 + γ R t + 2 + … = ∑ k = 0 ∞ γ k R t + k + 1 G_{t}=R_{t+1}+\gamma R_{t+2}+\ldots=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} Gt=Rt+1+γRt+2+=k=0γkRt+k+1注:这里的 R R R指的是某状态的即时reward,不是期望值,因为return G t G_{t} Gt只是来自MRP的一个样本,一个状态序列

下图是一个MRP的例子,在Markov Process基础上增加了针对每一个状态的奖励,由于不涉及衰减系数相关的计算,这张图并没有特殊交代衰减系数值的大小。

在这里插入图片描述

2.2.1 价值函数

在这里插入图片描述

  • 价值函数(Value Function) v ( s ) v(s) v(s)表示某一状态 s s s的长期价值,或者说当前状态好的程度。从公式 v ( s ) = E [ G t ∣ S t = s ] v(s)=\mathbb{E}\left[G_{t} | S_{t}=s\right] v(s)=E[GtSt=s]可以看出, v ( s ) v(s) v(s)是return G t G_{t} Gt的期望一种可能的形式是:对 G 1 G_{1} G1进行多次采样,计算出多个 G 1 G_{1} G1,对这些 G 1 G_{1} G1求平均即得到 v ( 1 ) v(1) v(1),即状态1下的Value Function,因为这些return值是随机采样的

2.2.1.1 rerutn值与value值的计算

  • γ = 1 / 2 \gamma= 1/2 γ=1/2时,在t=1时刻( S 1 = C 1 S_1 = C_1 S1=C1)时状态 S 1 S_1 S1return值如下表所示(这样的 G 1 G_1 G1可以有很多个):
    在这里插入图片描述
  • γ = 0 \gamma= 0 γ=0时,各状态的value值=各状态的即时奖励R。当 γ ≠ 0 \gamma \neq 0 γ=0时,各状态的value需要通过计算得到,下面给出 γ \gamma γ分别为0、0.9以及1的三种情况下各状态的value(各状态圈内的数字表示该状态的value,圈外的R=-2等表示的是该状态的即时奖励)我也不知道后两种情况咋算出来的value值,采样然后求平均吗?还是根据后文的贝尔曼方程计算出来的?
    在这里插入图片描述
    在这里插入图片描述
    各状态value值的确定是很重要的,RL的许多问题可以归结为求状态的价值问题。因此如何求解各状态的value,也就是寻找一个价值函数(从状态到价值的映射)就变得很重要了

2.2.2 贝尔曼方程

对value function进行递归分解,即得到贝尔曼方程(Bellman Equation),推导过程如下:
在这里插入图片描述
这个推导过程在最后一行时,将 G t + 1 G_{t+1} Gt+1变成了 v ( S t + 1 ) v(S_{t+1}) v(St+1),原因是return的期望等于return的期望的期望。

  • 综上所述,MRP的Bellman方程为: v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] v(s)=\mathbb{E}\left[R_{t+1}+\gamma v\left(S_{t+1}\right) | S_{t}=s\right] v(s)=E[Rt+1+γv(St+1)St=s] v ( s ) v(s) v(s)由两部分组成,一部分是该状态的即时奖励的期望,即时奖励的期望 E ( R t + 1 ) \mathbb{E}\left(R_{t+1}\right) E(Rt+1) = 即时奖励 R t + 1 R_{t+1} Rt+1,因为根据即时奖励的定义,它与下一个状态无关;另一部分是下一时刻状态的价值期望 γ ⋅ E [ v ( S t + 1 ) ] \gamma \cdot\mathbb{E}\left[v\left(S_{t+1}\right)\right] γE[v(St+1)],可以根据下一时刻状态的概率分布求得。如果用 s ′ s' s表示 s s s状态下一时刻的任一可能的状态,那么Bellman方程可以写成: v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=\mathcal{R}_{s}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}} v\left(s^{\prime}\right) v(s)=Rs+γsSPssv(s)其中 P s s ′ \mathcal{P}_{s s^{\prime}} Pss是状态转移概率,表示从状态 s s s到状态 s ′ s' s的概率。
  • 下图给出的是 γ = 1 \gamma= 1 γ=1时各状态的价值,状态 C 3 C_3 C3的value可以通过状态 P u b Pub Pub P a s s Pass Pass的value以及他们之间的状态转移概率来计算,计算过程如图中红色字体所示。这个例子中,各个state的value值可以通过贝尔曼方程(矩阵形式)直接计算出来,不需要迭代、采样什么的,但好像有点误差
    在这里插入图片描述

2.2.2.1 矩阵形式

在这里插入图片描述
上图为贝尔曼方程的矩阵形式,理论上可以根据表达式直接计算 v v v v = R + γ P v ( E − γ P ) v = R v = ( E − γ P ) − 1 R \begin{aligned} v &=\mathcal{R}+\gamma \mathcal{P} v \\ (E-\gamma \mathcal{P}) v &=\mathcal{R} \\ v &=(E-\gamma \mathcal{P})^{-1} \mathcal{R} \end{aligned} v(EγP)vv=R+γPv=R=(EγP)1R实际上,计算复杂度是 O ( n 3 ) O(n^3) O(n3) n n n是状态的数量。因此直接求解仅适用于小规模的MRP,大规模MRP的求解通常使用迭代法。常用的迭代方法有:动态规划Dynamic Programming、蒙特卡洛评估Monte-Carlo evaluation、时序差分学习Temporal-Difference learning,后文会逐步讲解这些方法。

2.3 马尔科夫决策过程

在这里插入图片描述

  • 马尔科夫决策过程(Markov Decision Process,MDP)可以用元组 ⟨ S , A , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{A},\mathcal{P}, \mathcal{R}, \gamma\rangle S,A,P,R,γ来表示,相较于马尔科夫奖励过程(MRP),元组中多了一个有限的行为集合A(区别于连续的行为集合),对于每一个可能选择的action,都有一个状态转移矩阵。这里的 P \mathcal{P} P R \mathcal{R} R都与具体的行为 a a a对应,而不像马尔科夫奖励过程那样仅对应于某个状态 S \mathcal{S} S,表达式略有改变: P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{s s^{\prime}}^{a}=\mathbb{P}\left[S_{t+1}=s^{\prime} | S_{t}=s, A_{t}=a\right] Pssa=P[St+1=sSt=s,At=a] R s a = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal{R}_{s}^{a}=\mathbb{E}\left[R_{t+1} | S_{t}=s, A_{t}=a\right] Rsa=E[Rt+1St=s,At=a]注:在状态 s s s下采取动作 a a a,下一个状态 s ′ s^{\prime} s不一定是唯一的,比如饿了的状态下,采取吃饭的动作,下一个状态可能饿也可能饱。另外还看到一个说法: P s s ′ a \mathcal{P}_{s s^{\prime}}^{a} Pssa表示根据当前状态和接收到的动作,预测下一个状态的概率。
  • 下面是一个MDP的示例,在每一个状态下有很多动作可以选择,这些动作就是图中标红的部分,每当选择一个动作之后,就会决定下一个状态是什么。现在的目标就是在决策的过程中,找到一条最佳路径,可以最大化得到的reward。注意:图中的小黑点不是一个状态,这个地方表示采取pub的动作后下一个状态有三种可能,不是唯一的
    在这里插入图片描述

2.3.1 策略

在这里插入图片描述

  • 策略(policy)表现为一个概率分布,用 π ( a ∣ s ) \pi(a | s) π(as)表示,描述在某一状态 s s s下采取可能的行为 a a a的概率。像这样的一个概率(随机)的形式,agent就能够进行探索(exploration) π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a | s)=\mathbb{P}\left[A_{t}=a | S_{t}=s\right] π(as)=P[At=aSt=s]
  • 一个策略完整定义了agent的行为方式,即定义了agent在各个状态下的各种可能的行为方式以及其概率的大小。
  • 从公式中可以看出,policy仅与当前state有关而与history无关(markov性意味着state完全特征化了从当前状态开始以后的演化过程,需要找到的是给定state后的policy,需要找到一个可以最大化未来奖励的action,需要查看当前状态并决定采取什么样的action。我们关心的是从现在开始,能够从未来得到多少reward,不在乎已经得到多少reward)。
  • 注意策略是静态的、关于整体的概念,不随状态改变而改变;变化的是在某一个状态时,依据策略可能产生的具体行为,因为具体的行为是有一定的概率的,策略就是用来描述各个不同状态下执行各个不同行为的概率。

2.3.2 基于策略π的价值函数

在这里插入图片描述

  • 状态价值函数(State-Value function) v π ( s ) v_{\pi}(s) vπ(s),表示从状态s开始,遵循策略 π \pi π时所获得的return的期望。数学表示如下: v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right] vπ(s)=Eπ[GtSt=s]
  • 考虑到每个状态之后都有多种动作可以选择,每个动作之下的状态又多不一样,我们更关心在某个状态下的不同动作的估值。显然。如果知道了每个动作的估值,那么就可以选择估值最好的一个动作去执行了。这就是动作价值函数(Action-Value function) q π ( s , a ) q_\pi(s,a) qπ(s,a),表示在执行策略 π \pi π时,当前状态 s s s下执行某一具体行为 a a a所能的到的return的期望: q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s, a) =\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s,A_{t}=a\right] qπ(s,a)=Eπ[GtSt=s,At=a]
  • State-Value function衡量的是agent在各个状态的价值(有多好),Action-Value function衡量的则是agent在某个状态下采取某个行动的价值(有多好),一个是对状态的评价,一个是对动作的评价

2.3.3 Bellman期望方程——进行策略评估

  • MDP下的State-Value函数和Action-Value函数与MRP下的value函数类似,可以用下一时刻State-Value函数或Action-Value函数来表达,具体方程如下: v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_{\pi}(s)=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{\pi}\left(S_{t+1}\right) | S_{t}=s\right] vπ(s)=Eπ[Rt+1+γvπ(St+1)St=s] q π ( s , a ) = E π [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_{\pi}(s, a)=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma q_{\pi}\left(S_{t+1}, A_{t+1}\right) | S_{t}=s, A_{t}=a\right] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)St=s,At=a]
  • 用动作价值函数表示状态价值函数: v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_{\pi}(s)=\sum_{a \in \mathcal{A}} \pi(a | s) q_{\pi}(s, a) vπ(s)=aAπ(as)qπ(s,a)即:在状态 s s s下,发生各个动作的概率 π \pi π与执行动作所对应的价值 q q q的乘积的累加。可以用下图表示,空心圆圈代表状态,实心圆圈表示状态-动作的组合 ( s , a ) (s,a) (s,a)在这里插入图片描述
  • 用状态价值函数表示动作价值函数: q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) q_{\pi}(s, a)=\mathcal{R}_{s}^{a}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v_{\pi}\left(s^{\prime}\right) qπ(s,a)=Rsa+γsSPssavπ(s)即:在状态 s s s下执行动作 a a a所对应的奖励,加上状态转移概率 P \mathcal{P} P与下一个状态所对应的价值 v v v的乘积的累加。可以用下图表示,空心圆圈代表状态,实心圆圈表示状态-动作的组合 ( s , a ) (s,a) (s,a)在这里插入图片描述注:状态 s s s下执行动作 a a a所对应的奖励 R s a \mathcal{R}_{s}^{a} Rsa可能不唯一,因为执行动作 a a a之后可能有多个状态,也就有多个奖励。此时每个奖励都要乘以一个权重(即状态转移概率),求和得到的最终结果才是 R s a \mathcal{R}_{s}^{a} Rsa
  • 有一个比较直观的感受:当前的value等于下一步value的加权求和,这个权值(概率)在不同情况下分别表现为 π ( a ∣ s ) \pi(a | s) π(as) P s s ′ a \mathcal{P}_{s s^{\prime}}^{a} Pssa
  • 将上面两个式子组合起来,用代入法消去其中一种价值,就得到了贝尔曼期望方程(Bellman Expectation Equation)的两种形式,即递归表达式在这里插入图片描述在这里插入图片描述
  • 贝尔曼期望方程是和策略相挂钩的,常用来进行策略评估。通过贝尔曼期望方程可以直接求解出在策略 π \pi π下,各个state的价值函数以及各个 ( s , a ) (s,a) (s,a)的价值函数。进而和别的策略下的价值函数相比,判断策略的好坏。
  • 下图解释了红色空心圆圈状态的state-value是如何计算的(依据bellman期望方程的第一种形式),遵循随机策略,即所有可能的行为有相同的几率被选择执行。等式两边的7.4一开始应该是未知数,通过解方程得到。其实其他圆圈中的数字一开始也是未知数,每个圆圈可以列一个方程,联立起来一起解出,这里不过是假设事先已知了,这个式子只是用于验证在随机策略下此处状态的value确实是7.4。另外说明一点,最下面的小红点不是状态,是一个 ( s , a ) (s,a) (s,a)在这里插入图片描述

2.3.4 最优价值函数

  • 最优状态价值函数(optimal state value function) v ∗ ( s ) = max ⁡ π v π ( s ) v_{*}(s)=\max _{\pi} v_{\pi}(s) v(s)=πmaxvπ(s)即遍历所有的policy,取最大的 v π ( s ) v_{\pi}(s) vπ(s)即最优状态价值。
  • 最优动作价值函数(optimal actionvalue function) q ∗ ( s , a ) = max ⁡ π q π ( s , a ) q_{*}(s, a)=\max _{\pi} q_{\pi}(s, a) q(s,a)=πmaxqπ(s,a)即遍历所有的policy,取最大的 q π ( s , a ) q_{\pi}(s, a) qπ(s,a)即最优动作价值。
  • 最优策略:对于两个策略 π \pi π π ′ \pi^{\prime} π,如果对于任意 s ∈ S s\in \mathcal{S} sS都满足 v π ( s ) ⩽ v_\pi(s) \leqslant vπ(s) v π ′ ( s ) v_{\pi^{\prime}}(s) vπ(s),则称策略 π \pi π小于等于 π ′ \pi^{\prime} π,即策略 π ′ \pi^{\prime} π优于 π \pi π,我们就是基于这个偏序关系来定义最优策略的。
  • 只要求得了最优价值函数,就可以直接得到一个最优策略,其中一种选取方法是选择这样的确定性策略 π ∗ ( s ) = arg max ⁡ a ∈ A q ∗ ( s , a ) \pi_{*}(s)=\argmax _{a\in\mathcal{A}} q_{*}(s, a) π(s)=aAargmaxq(s,a)

2.3.5 Bellman最优方程——寻找最优策略

  • 最优策略的性质 π ∗ ( a ∣ s ) = { 1  if  a = argmax ⁡ a ′ ∈ A q ∗ ( s , a ′ ) 0  其他  \pi_{*}(a | s)=\left\{\begin{array}{cc} 1 & \text { if } a=\underset{a^{\prime} \in \mathcal{A}}{\operatorname{argmax}} q_{*}(s, a^{\prime}) \\ 0 & \text { 其他 } \end{array}\right. π(as)={10 if a=aAargmaxq(s,a) 其他 当动作 a a a是最优动作时, π ∗ ( a ∣ s ) \pi_{*}(a | s) π(as)取1,否则取0。
  • 将上面这个表达式,代入2.3.3里面的两个基于策略 π \pi π的价值函数,即用最优策略代替一般性策略,得到:用最优动作价值函数表示最优状态价值函数: v ∗ ( s ) = max ⁡ a q ∗ ( s , a ) v_{*}(s)=\max _{a} q_{*}(s, a) v(s)=amaxq(s,a)以及用最优状态价值函数表示最优动作价值函数: q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) q_{*}(s, a)=\mathcal{R}_{s}^{a}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v_{*}\left(s^{\prime}\right) q(s,a)=Rsa+γsSPssav(s)注意:这里的 R s a \mathcal{R}_{s}^{a} Rsa也可能不唯一,参照2.3.3。
  • 进一步的,整合上面两个式子,得到贝尔曼最优方程(Bellman Optimality Equation)的两种形式,即递归表达式在这里插入图片描述在这里插入图片描述
  • 一个示例如下图,求解某个state的最优状态价值函数,用的就是上面①中的公式。在这里插入图片描述
  • 通过列出各个状态的Bellman方程或者各个动作的Bellman方程,联立起来就能解出来。但是最优方程有 m a x ( ) max() max()运算,可以通过分类讨论转化为多个线性方程组求解理论上,通过求解Bellman最优方程,可以找到最优价值函数,进而轻易找到最优策略:对于每个状态 s ∈ S s\in\mathcal{S} sS,总是选择让 q ∗ ( s , a ) q_{*}(s, a) q(s,a)最大的动作 a a a
  • Bellman最优方程是非线性的,没有固定的解决方案,可以通过一些迭代方法来解决:价值迭代、策略迭代、Q学习、Sarsa等。实际上,使用Bellman最优方程求解最优策略会遇到一些困难。主要是实际问题环境复杂,很难周全地用概率模型完全建模,导致难以列出Bellman最优方程。还有就是实际问题的状态空间非常大,没有足够的计算资源来求解方程,这时可以考虑间接的方法求解甚至用近似值。

2.4 MDP延伸(Extensions to MDPs)

  • 这里所描述的MDP是离散的、有限动作的一种情况,还有其他的一些MDP,有兴趣可以去了解。
  • 简要提及:1)无限状态或连续MDP;2)部分可观测MDP(POMDP);3)无折扣因子的平均奖励MDP
    详细内容可参考10.MDP扩展
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值