type
status
password
date
slug
summary
category
URL
tags
icon
本章介绍了一个核心概念和一个重要工具。核心概念是状态价值,其定义为智能体遵循给定策略时所能获得的平均奖励。状态价值越大,相应的策略就越好。状态价值可用作评估一项策略优劣的度量标准。然而,虽然状态价值很重要,但我们该如何对其进行分析呢?答案是贝尔曼方程,它是用于分析状态价值的重要工具。简而言之,贝尔曼方程描述了所有状态价值之间的关系。通过求解贝尔曼方程,我们能够获得状态价值。这一过程被称为策略评估,是强化学习中的一个基础概念。最后,本章还介绍了另一个重要概念,称为动作价值。
从贝尔曼方程中求解一个策略的状态价值的过程被称为策略评估。
return(回报)
return的意义
我们使用return来评估策略。return由即时奖励和未来奖励组成。在此,即时奖励是在初始状态采取一个行动后所获得的奖励;未来奖励指的是离开初始状态之后所获得的奖励。有可能即时奖励是负的,而未来奖励是正的。因此,应该依据return(即总奖励)而非仅仅是即时奖励来决定采取哪些行动,以避免做出短视的决策。
举例说明
考虑图 2.2 中所示的三种策略。可以看出这三种策略在 处是不同的。哪一个是最好的,哪一个是最差的呢?凭直觉来看,最左边的策略是最好的,因为从 出发的智能体能够避开禁区。中间的策略凭直觉来说更差,因为从 出发的智能体移动到了禁区。最右边的策略介于其他两者之间,因为它有 0.5 的概率进入禁区。

- 第一种策略对应的trajectory是,其响应的折扣回报是
- 第二种策略对应的trajectory是,其响应的折扣回报是
- 第三种策略对应的Trajectory分别为、,两条边Trajectory的概率都是0.5;其响应的折扣回报是
综上,左边的策略>右边的策略>中间的策略
计算return

- 第一种方法:return等于沿着一条trajectory所收集到的所有奖励的折扣总和。考虑图 2.3 中的例子。设 表示从状态 开始所获得的return。那么,从图 2.3 中的四个状态开始时所获得的回报可以计算如下:
- 第二种方法:基于bootstrapping思想; 依赖于 , 依赖于 , 依赖于 ,而 又依赖于 ,这反映了自举的思想。
矩阵形式
状态价值
在时刻,智能体处于状态,按照策略所采取的行动是。下一个状态是,所获得的即时奖励是。这个过程可以简洁地表示为。从 时刻开始,我们能够得到一条状态-动作-奖励的trajectory
根据定义,沿着这条trajectory的discount return是
其中是折扣率。注意到是一个随机变量,因为全都是随机变量。所以,我们使用它的期望值作为状态价值
被称为策略的状态价值函数,或者简单地称为的状态价值。以下给出一些重要的说明:
- 依赖于。这是因为它是一条以智能体从开始的trajectory。
- 依赖于。这是因为轨迹是按照策略生成的。对于不同的策略,状态价值可能不同。
- 不依赖于。仅仅代表当前的时间步长。一旦给定策略,的值就确定了。
return与状态价值的区别
当策略和系统模型均为确定性的时候,从一个状态开始总是会导向相同的轨迹。在这种情况下,从一个状态开始所获得的回报就等于那个状态的价值。相比之下,当策略或者系统模型任意一方具有随机性时,从相同的状态开始可能会生成不同的轨迹。在这种情况下,不同轨迹的回报是不同的,而状态价值就是这些回报的均值。
贝尔曼方程
贝尔曼方程是一组描述所有状态的值之间关系的线性方程。
其中。这个等式建立起了与之间的关系。
式中,和分别是可能的动作集合和奖励集合。需要注意的是,对于不同的状态,可能是不同的。在这种情况下,应该写成。类似地,也可能依赖于。上述推导利用了这一事实,而这是源于马尔可夫性质,即未来的奖励仅仅取决于当前状态而非之前的状态。
矩阵形式
为了推导出矩阵向量形式,我们首先将式(2.7)中的贝尔曼方程重写为。
- 矩阵形式:为状态价值,最终收敛之后的状态价值。

求解状态价值
计算给定策略的状态价值是强化学习中的一个基本问题。这个问题通常被称为策略评估。在本节中,我们将介绍两种基于贝尔曼方程来计算状态价值的方法。
解析解
接下来我们用两个示例来演示如何一步一步地写出贝尔曼方程并计算状态价值。


策略一
首先,在状态 ,采取动作的概率,而采取其他行动的概率为 0。状态转移概率为。奖励概率为 。将这些值代入(2.7)式可得。
同理可得
- 求解方程
策略二
- 求解方程
对比上两种策略的状态价值,可以发现。
迭代求解
该算法生成一个值序列,其中 是 的初始猜测值;是策略 的即时奖励,是策略对应的系统模型,是策略的状态价值。
一个可能令人困惑的问题是(4.1)中的是否是状态价值。答案是否定的。尽管最终会收敛到最优状态价值,但不能保证它满足任何策略的贝尔曼方程。例如,一般情况下,它不满足或。它仅仅是算法生成的一个中间值。此外,由于不是状态价值,所以也不是动作价值。

迭代 直到状态值收敛

为什么能够收敛
一个可能令人困惑的问题是(4.1)中的是否是状态价值。答案是否定的。尽管最终会收敛到最优状态价值,但不能保证它满足任何策略的贝尔曼方程。例如,一般情况下,它不满足或。它仅仅是算法生成的一个中间值。此外,由于不是状态价值,所以也不是动作价值。
设策略的最终状态价值为,第次迭代后的值是,此时的误差值为 ;同样第次迭代的值是,对应的误差值为。此时可以得到
这段内容的中文翻译为:由于矩阵的每个元素都是非负的且不大于 1,所以对于任意的,有。也就是说,的每个元素都不大于 1。另一方面,由于,我们知道趋于 0,因此当时,。
动作价值
动作值表示在某个状态下采取一个动作的“价值”。动作价值在很大程度上依赖于状态价值的概念。在研究动作价值之前,首先很好地理解状态价值是很重要的。如我们所见,动作价值被定义为在某个状态下采取一个动作后可以获得的return期望:
取决于一个状态-动作对,而不仅仅是一个动作。
动作价值与状态价值的联系
因此,状态价值是与该状态相关的动作价值的期望。
求解动作价值

在这个例子中,尽管策略 在状态 下不会采取动作 a1,但我们仍然可以计算它的动作价值。具体来说,采取动作 后,智能体被反弹回 (因此,即时奖励是 -1)
为什么我们要关心给定策略不会选择的那些动作呢?
虽然某些动作不可能被给定的策略选中,但这并不意味着这些动作不好。有可能给定的策略并不好,所以它不能选择出最佳动作。强化学习的目的是找到最优策略。为此,我们必须不断探索所有的动作,以便为每个状态确定更好的动作。
最后,在计算出动作价值之后,我们也可以根据下式来计算状态价值。
贝尔曼方程
我们之前介绍的贝尔曼方程是基于状态价值来定义的。实际上,它也可以用动作价值来表示。