2024-08-10
笔记
00

目录

1. 为什么要关注回报?
2. 如何计算回报?
2.1 直接按定义计算
2.2 基于自举法计算
3. 状态值
4. 贝尔曼方程
4.1 贝尔曼方程的例子
例1:确定性策略
例2:随机策略
5. 贝尔曼方程的矩阵-向量形式
6. 从贝尔曼方程求解状态值
6.1 闭式解
6.2 迭代解法
7. 从状态值到动作值
7.1 动作值的贝尔曼方程
8. 总结

在强化学习中,评估一个策略的好坏是至关重要的。本章将介绍两个核心概念:状态值贝尔曼方程,它们是评估策略的基础工具。状态值被定义为智能体遵循给定策略时能够获得的平均奖励。状态值越大,相应的策略就越好。因此,状态值可以作为衡量策略好坏的指标。

然而,仅仅知道状态值的重要性是不够的,我们还需要知道如何分析它们。这就是贝尔曼方程发挥作用的地方。贝尔曼方程是分析状态值的重要工具,它描述了所有状态值之间的关系。通过求解贝尔曼方程,我们可以获得状态值。这个过程被称为策略评估,是强化学习中的一个基本概念。

本章将深入探讨这些概念,从简单的例子开始,逐步引入更复杂的数学表达。我们将学习如何构建贝尔曼方程,如何求解它,以及如何解释结果。此外,本章还将介绍另一个重要概念:动作值,并探讨它与状态值之间的关系。

1. 为什么要关注回报?

首先我们来看一个简单的例子,说明回报(return)的重要性:

考虑下面三种不同的策略:

图1: 三种不同的策略示意图

直观上看,左边的策略是最好的,因为从s1开始的智能体可以避开禁区。中间的策略看起来最差,因为从s1开始会直接进入禁区。右边的策略介于两者之间,有0.5的概率进入禁区。

那么如何用数学的方式来描述这种直观判断呢?答案就是使用回报的概念。

假设智能体从s1开始,折扣率为γ\gamma (0<γ<1)(0 < \gamma < 1)

  • 按照第一个策略,轨迹为 s1s3s4s4...s_1 \rightarrow s_3 \rightarrow s_4 \rightarrow s_4 ...,折扣回报为:
return1=0+γ1+γ21+...=γ1γreturn_1 = 0 + \gamma1 + \gamma^2 1 + ... = \frac{\gamma}{1-\gamma}
  • 按照第二个策略,轨迹为 s1s2s4s4...s_1 \rightarrow s_2 \rightarrow s_4 \rightarrow s_4 ...,折扣回报为:
return2=1+γ1+γ21+...=1+γ1γreturn_2 = -1 + \gamma1 + \gamma^2 1 + ... = -1 + \frac{\gamma}{1-\gamma}
  • 按照第三个策略,有两种可能的轨迹,各自概率为0.5: s1s3s4s4...s_1 \rightarrow s_3 \rightarrow s_4 \rightarrow s_4 ... s1s2s4s4...s_1 \rightarrow s_2 \rightarrow s_4 \rightarrow s_4 ...

平均折扣回报为:

return3=0.5(1+γ1γ)+0.5(γ1γ)=0.5+γ1γreturn_3 = 0.5(-1 + \frac{\gamma}{1-\gamma}) + 0.5(\frac{\gamma}{1-\gamma}) = -0.5 + \frac{\gamma}{1-\gamma}

比较三个策略的回报,我们可以发现:

return1>return3>return2return_1 > return_3 > return_2

这个数学结论与我们之前的直观判断是一致的:第一个策略最好,因为可以避开禁区;第二个策略最差,因为会直接进入禁区。

这个例子说明,回报可以用来评估策略的好坏:回报越高,策略越好。

2. 如何计算回报?

既然回报如此重要,那么如何计算回报呢?有两种方法:

2.1 直接按定义计算

回报等于沿着轨迹收集到的所有奖励的折扣和。考虑下面的例子:

图2: 计算回报的例子

假设viv_i表示从sis_i开始获得的回报,则:

v1=r1+γr2+γ2r3+...v2=r2+γr3+γ2r4+...v3=r3+γr4+γ2r1+...v4=r4+γr1+γ2r2+...\begin{align*} v_1 &= r_1 + \gamma r_2 + \gamma^2 r_3 + ... \\ v_2 &= r_2 + \gamma r_3 + \gamma^2 r_4 + ... \\ v_3 &= r_3 + \gamma r_4 + \gamma^2 r_1 + ... \\ v_4 &= r_4 + \gamma r_1 + \gamma^2 r_2 + ... \end{align*}

2.2 基于自举法计算

观察上面的表达式,我们可以重写为:

v1=r1+γ(r2+γr3+...)=r1+γv2v2=r2+γ(r3+γr4+...)=r2+γv3v3=r3+γ(r4+γr1+...)=r3+γv4v4=r4+γ(r1+γr2+...)=r4+γv1\begin{align*} v_1 &= r_1 + \gamma(r_2 + \gamma r_3 + ...) = r_1 + \gamma v_2 \\ v_2 &= r_2 + \gamma(r_3 + \gamma r_4 + ...) = r_2 + \gamma v_3 \\ v_3 &= r_3 + \gamma(r_4 + \gamma r_1 + ...) = r_3 + \gamma v_4 \\ v_4 &= r_4 + \gamma(r_1 + \gamma r_2 + ...) = r_4 + \gamma v_1 \end{align*}

这些方程表明回报值之间存在相互依赖关系,这反映了自举法的思想:从自身获取某些量的值。

从数学角度看,这些方程可以改写成一个线性矩阵-向量方程:

[v1v2v3v4]=[r1r2r3r4]+γ[0100001000011000][v1v2v3v4]\begin{bmatrix} v_1 \\ v_2 \\ v_3 \\ v_4 \end{bmatrix} = \begin{bmatrix} r_1 \\ r_2 \\ r_3 \\ r_4 \end{bmatrix} + \gamma \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \\ v_3 \\ v_4 \end{bmatrix}

简洁表示为:

v=r+γPvv = r + \gamma P v

其中vv可以通过求解:v=(IγP)1rv = (I - \gamma P)^{-1} r 得到。

这个简单的例子展示了贝尔曼方程的核心思想:从一个状态开始获得的回报取决于从其他状态开始获得的回报。

3. 状态值

虽然回报可以用来评估策略,但它在随机系统中并不适用,因为从一个状态开始可能导致不同的回报。为了解决这个问题,我们引入状态值的概念。

首先引入一些必要的符号。考虑一系列时间步t=0,1,2,...t = 0, 1, 2, ...。在时间tt,智能体处于状态StS_t,按照策略π\pi采取动作AtA_t。下一个状态是St+1S_{t+1},获得的即时奖励是Rt+1R_{t+1}。这个过程可以简洁地表示为:

StAtSt+1,Rt+1S_t \xrightarrow{A_t} S_{t+1}, R_{t+1}

注意StS_t, St+1S_{t+1}, AtA_t, Rt+1R_{t+1}都是随机变量。

tt开始,我们可以得到一个状态-动作-奖励轨迹:

StAtSt+1,Rt+1At+1St+2,Rt+2At+2St+3,Rt+3...S_t \xrightarrow{A_t} S_{t+1}, R_{t+1} \xrightarrow{A_{t+1}} S_{t+2}, R_{t+2} \xrightarrow{A_{t+2}} S_{t+3}, R_{t+3} ...

根据定义,沿着这个轨迹的折扣回报是:

GtRt+1+γRt+2+γ2Rt+3+...G_t \doteq R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ...

其中γ(0,1)\gamma \in (0,1)是折扣率。注意GtG_t是一个随机变量,因为Rt+1,Rt+2,...R_{t+1}, R_{t+2}, ...都是随机变量。

由于GtG_t是一个随机变量,我们可以计算它的期望值:

vπ(s)E[GtSt=s]v_\pi(s) \doteq E[G_t|S_t = s]

这里,vπ(s)v_\pi(s)被称为状态值函数,或简称为状态ss的状态值。

关于状态值,有以下几个重要的说明:

  1. vπ(s)v_\pi(s)依赖于ss。这是因为它的定义是一个条件期望,条件是智能体从St=sS_t = s开始。

  2. vπ(s)v_\pi(s)依赖于π\pi。这是因为轨迹是通过遵循策略π\pi生成的。对于不同的策略,状态值可能不同。

  3. vπ(s)v_\pi(s)不依赖于tt。如果智能体在状态空间中移动,tt表示当前的时间步。一旦给定策略,vπ(s)v_\pi(s)的值就确定了。

状态值与回报的关系可以进一步说明如下:当策略和系统模型都是确定性的时候,从一个状态开始总是会导致相同的轨迹。在这种情况下,从一个状态开始获得的回报等于该状态的值。相比之下,当策略或系统模型是随机的时候,从同一个状态开始可能会生成不同的轨迹。在这种情况下,不同轨迹的回报是不同的,而状态值是这些回报的平均值。

虽然回报可以用来评估策略,但使用状态值来评估策略更加正式:产生更大状态值的策略更好。因此,状态值构成了强化学习中的一个核心概念。

4. 贝尔曼方程

既然状态值如此重要,那么如何计算它们呢?这个问题的答案就是贝尔曼方程,它是分析状态值的数学工具。简而言之,贝尔曼方程是一组描述所有状态值之间关系的线性方程。

我们现在来推导贝尔曼方程。首先,注意到GtG_t可以重写为:

Gt=Rt+1+γRt+2+γ2Rt+3+...=Rt+1+γ(Rt+2+γRt+3+...)=Rt+1+γGt+1\begin{align*} G_t &= R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... \\ &= R_{t+1} + \gamma(R_{t+2} + \gamma R_{t+3} + ...) \\ &= R_{t+1} + \gamma G_{t+1} \end{align*}

其中Gt+1=Rt+2+γRt+3+...G_{t+1} = R_{t+2} + \gamma R_{t+3} + ...。这个方程建立了GtG_tGt+1G_{t+1}之间的关系。然后,状态值可以写为:

vπ(s)=E[GtSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1St=s]+γE[Gt+1St=s]\begin{align*} v_\pi(s) &= E[G_t|S_t = s] \\ &= E[R_{t+1} + \gamma G_{t+1}|S_t = s] \\ &= E[R_{t+1}|S_t = s] + \gamma E[G_{t+1}|S_t = s] \end{align*}

方程中的两项可以分别分析:

  1. 第一项E[Rt+1St=s]E[R_{t+1}|S_t = s]是即时奖励的期望。使用全期望定律,它可以计算为:

    E[Rt+1St=s]=aAπ(as)E[Rt+1St=s,At=a]=aAπ(as)rRp(rs,a)rE[R_{t+1}|S_t = s] = \sum_{a\in A} \pi(a|s) E[R_{t+1}|S_t = s, A_t = a] = \sum_{a\in A} \pi(a|s) \sum_{r\in R} p(r|s, a)r

    这里,AARR分别是可能的动作和奖励的集合。

  2. 第二项E[Gt+1St=s]E[G_{t+1}|S_t = s]是未来奖励的期望。它可以计算为:

    E[Gt+1St=s]=sSE[Gt+1St=s,St+1=s]p(ss)=sSE[Gt+1St+1=s]p(ss)(由于马尔可夫性质)=sSvπ(s)p(ss)=sSvπ(s)aAp(ss,a)π(as)\begin{align*} E[G_{t+1}|S_t = s] &= \sum_{s'\in S} E[G_{t+1}|S_t = s, S_{t+1} = s'] p(s'|s) \\ &= \sum_{s'\in S} E[G_{t+1}|S_{t+1} = s'] p(s'|s) \quad \text{(由于马尔可夫性质)} \\ &= \sum_{s'\in S} v_\pi(s') p(s'|s) \\ &= \sum_{s'\in S} v_\pi(s') \sum_{a\in A} p(s'|s, a)\pi(a|s) \end{align*}

将这两项代入原方程,我们得到贝尔曼方程:

vπ(s)=aAπ(as)[rRp(rs,a)r+γsSp(ss,a)vπ(s)],sSv_\pi(s) = \sum_{a\in A} \pi(a|s) \left[\sum_{r\in R} p(r|s, a)r + \gamma \sum_{s'\in S} p(s'|s, a)v_\pi(s')\right], \quad \forall s \in S

这个方程看起来很复杂,但实际上它有清晰的结构。以下是一些说明:

  • vπ(s)v_\pi(s)vπ(s)v_\pi(s')是要计算的未知状态值。初学者可能会感到困惑,如何计算未知的vπ(s)v_\pi(s),因为它依赖于另一个未知的vπ(s)v_\pi(s')。必须注意的是,贝尔曼方程指的是对所有状态的一组线性方程,而不是单个方程。如果我们把这些方程放在一起,就清楚如何计算所有的状态值了。

  • π(as)\pi(a|s)是给定的策略。由于状态值可以用来评估策略,从贝尔曼方程求解状态值是一个策略评估过程,这是许多强化学习算法中的重要过程。

  • p(rs,a)p(r|s, a)p(ss,a)p(s'|s, a)表示系统模型。

除了上面的表达式,贝尔曼方程还有其他等价的表达形式。例如:

vπ(s)=aAπ(as)sSrRp(s,rs,a)[r+γvπ(s)]v_\pi(s) = \sum_{a\in A} \pi(a|s) \sum_{s'\in S} \sum_{r\in R} p(s', r|s, a) [r + \gamma v_\pi(s')]

或者,如果奖励只依赖于下一个状态ss',我们可以写成:

vπ(s)=aAπ(as)sSp(ss,a)[r(s)+γvπ(s)]v_\pi(s) = \sum_{a\in A} \pi(a|s) \sum_{s'\in S} p(s'|s, a) [r(s') + \gamma v_\pi(s')]

4.1 贝尔曼方程的例子

让我们通过两个例子来演示如何写出贝尔曼方程并逐步计算状态值。

例1:确定性策略

考虑图4.1中的确定性策略。

图4.1: 确定性策略示例

对于状态s1s_1,在该策略下,采取动作的概率为π(a=a3s1)=1\pi(a = a_3|s_1) = 1π(aa3s1)=0\pi(a \neq a_3|s_1) = 0。状态转移概率为p(s=s3s1,a3)=1p(s' = s_3|s_1, a_3) = 1p(ss3s1,a3)=0p(s' \neq s_3|s_1, a_3) = 0。奖励概率为p(r=0s1,a3)=1p(r = 0|s_1, a_3) = 1p(r0s1,a3)=0p(r \neq 0|s_1, a_3) = 0

将这些值代入贝尔曼方程,我们得到:

vπ(s1)=0+γvπ(s3)v_\pi(s_1) = 0 + \gamma v_\pi(s_3)

类似地,我们可以得到:

vπ(s2)=1+γvπ(s4)vπ(s3)=1+γvπ(s4)vπ(s4)=1+γvπ(s4)\begin{align*} v_\pi(s_2) &= 1 + \gamma v_\pi(s_4) \\ v_\pi(s_3) &= 1 + \gamma v_\pi(s_4) \\ v_\pi(s_4) &= 1 + \gamma v_\pi(s_4) \end{align*}

解这些方程,我们可以得到:

vπ(s4)=11γvπ(s3)=11γvπ(s2)=11γvπ(s1)=γ1γ\begin{align*} v_\pi(s_4) &= \frac{1}{1-\gamma} \\ v_\pi(s_3) &= \frac{1}{1-\gamma} \\ v_\pi(s_2) &= \frac{1}{1-\gamma} \\ v_\pi(s_1) &= \frac{\gamma}{1-\gamma} \end{align*}

如果我们设γ=0.9\gamma = 0.9,那么:

vπ(s4)=10vπ(s3)=10vπ(s2)=10vπ(s1)=9\begin{align*} v_\pi(s_4) &= 10 \\ v_\pi(s_3) &= 10 \\ v_\pi(s_2) &= 10 \\ v_\pi(s_1) &= 9 \end{align*}

例2:随机策略

现在考虑图4.2中的随机策略。

图4.2: 随机策略示例

在状态s1s_1,向右和向下的概率都是0.5。数学上,我们有π(a=a2s1)=0.5\pi(a = a_2|s_1) = 0.5π(a=a3s1)=0.5\pi(a = a_3|s_1) = 0.5。状态转移概率是确定的,因为p(s=s3s1,a3)=1p(s' = s_3|s_1, a_3) = 1p(s=s2s1,a2)=1p(s' = s_2|s_1, a_2) = 1。奖励概率也是确定的,因为p(r=0s1,a3)=1p(r = 0|s_1, a_3) = 1p(r=1s1,a2)=1p(r = -1|s_1, a_2) = 1

将这些值代入贝尔曼方程,我们得到:

vπ(s1)=0.5[0+γvπ(s3)]+0.5[1+γvπ(s2)]v_\pi(s_1) = 0.5[0 + \gamma v_\pi(s_3)] + 0.5[-1 + \gamma v_\pi(s_2)]

类似地,我们可以得到:

vπ(s2)=1+γvπ(s4)vπ(s3)=1+γvπ(s4)vπ(s4)=1+γvπ(s4)\begin{align*} v_\pi(s_2) &= 1 + \gamma v_\pi(s_4) \\ v_\pi(s_3) &= 1 + \gamma v_\pi(s_4) \\ v_\pi(s_4) &= 1 + \gamma v_\pi(s_4) \end{align*}

解这些方程,我们可以得到:

vπ(s4)=11γvπ(s3)=11γvπ(s2)=11γvπ(s1)=0.5+γ1γ\begin{align*} v_\pi(s_4) &= \frac{1}{1-\gamma} \\ v_\pi(s_3) &= \frac{1}{1-\gamma} \\ v_\pi(s_2) &= \frac{1}{1-\gamma} \\ v_\pi(s_1) &= -0.5 + \frac{\gamma}{1-\gamma} \end{align*}

如果我们设γ=0.9\gamma = 0.9,那么:

vπ(s4)=10vπ(s3)=10vπ(s2)=10vπ(s1)=8.5\begin{align*} v_\pi(s_4) &= 10 \\ v_\pi(s_3) &= 10 \\ v_\pi(s_2) &= 10 \\ v_\pi(s_1) &= 8.5 \end{align*}

如果我们比较这两个策略的状态值,可以看到:

vπ1(si)vπ2(si),i=1,2,3,4v_{\pi_1}(s_i) \geq v_{\pi_2}(s_i), \quad i = 1, 2, 3, 4

这表明图4.1中的策略更好,因为它有更大的状态值。这个数学结论与我们的直觉一致:第一个策略更好,因为当智能体从s1s_1开始时,它可以避免进入禁区。

这两个例子展示了如何使用贝尔曼方程来计算状态值,并且说明了状态值如何可以用来评估策略的好坏。在接下来的章节中,我们将看到如何利用这些概念来开发和分析各种强化学习算法。

5. 贝尔曼方程的矩阵-向量形式

贝尔曼方程的元素形式对于每个状态都是有效的,我们可以将所有这些方程组合起来,以矩阵-向量形式简洁地表示:

vπ=rπ+γPπvπv_\pi = r_\pi + \gamma P_\pi v_\pi

其中:

  • vπ=[vπ(s1),...,vπ(sn)]TRnv_\pi = [v_\pi(s_1), ..., v_\pi(s_n)]^T \in \mathbb{R}^n
  • rπ=[rπ(s1),...,rπ(sn)]TRnr_\pi = [r_\pi(s_1), ..., r_\pi(s_n)]^T \in \mathbb{R}^n
  • PπRn×nP_\pi \in \mathbb{R}^{n \times n},其中 [Pπ]ij=pπ(sjsi)[P_\pi]_{ij} = p_\pi(s_j|s_i)

矩阵PπP_\pi有一些有趣的性质:

  1. 它是一个非负矩阵,即所有元素都大于或等于零。
  2. 它是一个随机矩阵,即每行的和等于1。

6. 从贝尔曼方程求解状态值

计算给定策略的状态值是强化学习中的一个基本问题,通常被称为策略评估。我们有两种方法可以从贝尔曼方程计算状态值。

6.1 闭式解

由于vπ=rπ+γPπvπv_\pi = r_\pi + \gamma P_\pi v_\pi是一个简单的线性方程,其闭式解可以很容易地得到:

vπ=(IγPπ)1rπv_\pi = (I - \gamma P_\pi)^{-1} r_\pi

(IγPπ)1(I - \gamma P_\pi)^{-1}有一些重要的性质:

  • IγPπI - \gamma P_\pi总是可逆的。
  • (IγPπ)1I(I - \gamma P_\pi)^{-1} \geq I,意味着(IγPπ)1(I - \gamma P_\pi)^{-1}的每个元素都是非负的,且不小于单位矩阵的相应元素。
  • 对于任何非负向量rr,都有(IγPπ)1rr0(I - \gamma P_\pi)^{-1}r \geq r \geq 0

6.2 迭代解法

尽管闭式解对理论分析很有用,但在实践中并不适用,因为它涉及矩阵求逆运算,这仍然需要通过其他数值算法来计算。实际上,我们可以直接使用以下迭代算法求解贝尔曼方程:

vk+1=rπ+γPπvk,k=0,1,2,...v_{k+1} = r_\pi + \gamma P_\pi v_k, \quad k = 0, 1, 2, ...

这个算法生成一个值序列{v0,v1,v2,...}\{v_0, v_1, v_2, ...\},其中v0Rnv_0 \in \mathbb{R}^nvπv_\pi的初始猜测。可以证明:

vkvπ=(IγPπ)1rπ,as kv_k \to v_\pi = (I - \gamma P_\pi)^{-1} r_\pi, \quad \text{as } k \to \infty

7. 从状态值到动作值

到目前为止,我们一直在讨论状态值,现在我们来看看动作值,它表示在一个状态下采取一个动作的"价值"。动作值的概念虽然重要,但它在很大程度上依赖于状态值的概念。

状态-动作对(s,a)(s,a)的动作值定义为:

qπ(s,a)E[GtSt=s,At=a]q_\pi(s,a) \doteq E[G_t|S_t = s, A_t = a]

动作值和状态值之间有什么关系呢?

  1. 首先,根据条件期望的性质,我们有:

    vπ(s)=aAπ(as)qπ(s,a)v_\pi(s) = \sum_{a\in A} \pi(a|s) q_\pi(s,a)

    因此,一个状态的值是与该状态相关的动作值的期望。

  2. 其次,由于状态值由下式给出:

    vπ(s)=aAπ(as)[rRp(rs,a)r+γsSp(ss,a)vπ(s)]v_\pi(s) = \sum_{a\in A} \pi(a|s) \left[\sum_{r\in R} p(r|s,a)r + \gamma \sum_{s'\in S} p(s'|s,a)v_\pi(s')\right]

    将其与上面的等式比较,我们得到:

    qπ(s,a)=rRp(rs,a)r+γsSp(ss,a)vπ(s)q_\pi(s,a) = \sum_{r\in R} p(r|s,a)r + \gamma \sum_{s'\in S} p(s'|s,a)v_\pi(s')

    可以看出,动作值由两部分组成:即时奖励的平均值和未来奖励的平均值。

这两个等式描述了状态值和动作值之间的关系。它们是同一枚硬币的两面:第一个等式显示了如何从动作值获得状态值,而第二个等式显示了如何从状态值获得动作值。

7.1 动作值的贝尔曼方程

我们之前介绍的贝尔曼方程是基于状态值定义的。实际上,它也可以用动作值来表示。

特别地,将vπ(s)=aAπ(as)qπ(s,a)v_\pi(s) = \sum_{a\in A} \pi(a|s) q_\pi(s,a)代入qπ(s,a)q_\pi(s,a)的表达式,我们得到:

qπ(s,a)=rRp(rs,a)r+γsSp(ss,a)aA(s)π(as)qπ(s,a)q_\pi(s,a) = \sum_{r\in R} p(r|s,a)r + \gamma \sum_{s'\in S} p(s'|s,a) \sum_{a'\in A(s')} \pi(a'|s') q_\pi(s',a')

这是一个关于动作值的方程。上面的方程对每个状态-动作对都是有效的。如果我们把所有这些方程放在一起,它们的矩阵-向量形式是:

qπ=r~+γPΠqπq_\pi = \tilde{r} + \gamma P \Pi q_\pi

其中:

  • qπq_\pi是由状态-动作对索引的动作值向量:其(s,a)(s,a)th元素是[qπ](s,a)=qπ(s,a)[q_\pi]_{(s,a)} = q_\pi(s,a)
  • r~\tilde{r}是由状态-动作对索引的即时奖励向量:[r~](s,a)=rRp(rs,a)r[\tilde{r}]_{(s,a)} = \sum_{r\in R} p(r|s,a)r
  • 矩阵PP是概率转移矩阵,其行由状态-动作对索引,列由状态索引:[P](s,a),s=p(ss,a)[P]_{(s,a),s'} = p(s'|s,a)
  • Π\Pi是一个分块对角矩阵,其中每个块是一个1×A1 \times |A|向量:Πs,(s,a)=π(as)\Pi_{s',(s',a')} = \pi(a'|s')Π\Pi的其他条目为零。

与基于状态值定义的贝尔曼方程相比,基于动作值定义的方程有一些独特的特征。例如,r~\tilde{r}PP独立于策略,仅由系统模型决定。策略嵌入在Π\Pi中。可以验证,这个方程也是一个压缩映射,有一个唯一的解,可以通过迭代求解。

8. 总结

本章介绍的最重要的概念是状态值。从数学上讲,状态值是智能体从一个状态开始可以获得的期望回报。不同状态的值是相互关联的,即状态ss的值依赖于其他一些状态的值,而这些状态的值可能又依赖于状态ss本身的值。这种现象可能是本章中最让初学者困惑的部分。它与一个重要的概念"自举"有关,自举涉及从自身计算某些东西。尽管自举在直观上可能令人困惑,但如果我们检查贝尔曼方程的矩阵-向量形式,就会发现它是清晰的。特别地,贝尔曼方程是一组描述所有状态值之间关系的线性方程。

由于状态值可以用来评估策略的好坏,从贝尔曼方程求解策略的状态值的过程被称为策略评估。正如我们将在本书后面看到的,策略评估是许多强化学习算法中的一个重要步骤。

另一个重要的概念,动作值,被引入来描述在一个状态下采取一个动作的价值。正如我们将在本书后面看到的,当我们试图找到最优策略时,动作值比状态值起着更直接的作用。

最后,贝尔曼方程并不局限于强化学习领域。相反,它广泛存在于许多领域,如控制理论和运筹学。在不同的领域,贝尔曼方程可能有不同的表达式。在本书中,贝尔曼方程是在离散马尔可夫决策过程下研究的。

通过理解这些基本概念和工具,我们为深入研究强化学习奠定了坚实的基础。在接下来的章节中,我们将看到如何利用这些概念来开发和分析各种强化学习算法。

本文作者:YI HE

本文链接:

版权声明:该笔记内容来源于西湖大学智能无人系统实验室[Shiyu Zhao](https://www.shiyuzhao.net/)老师的强化学习课程:[Mathematical Foundations of Reinforcement Learning](https://www.shiyuzhao.net/opencourse) 。有兴趣的同学可以自行查看老师的课程。