5.2 最佳Bellman方程
为了解释Bellman方程,最好稍微抽象一点。不要害怕,稍后我将提供具体示例供大家学习!我们先从确定性示例(即所有的动作都具有100%确定的结果)开始介绍。假设智能体观察到状态s0和N个可用动作。每个动作都会导致进入另一个状态s1…sN,并带有相应的奖励r1…rN(见图5.3)。同样,假设已知连接到状态s0的所有状态的价值Vi。在这种状态下,智能体可以采取的最佳动作方案是怎样的?
图5.3 初始状态可到达N个状态的抽象环境
如果我们选择具体动作ai,并计算此动作的价值,则价值为V0 (a=ai)=ri+Vi。所以,要选择最佳动作方案,智能体需要计算每个动作的结果价值并选择最大可能结果。换句话说,V0=maxa∈1…N (ra+Va)。如果使用折扣因子γ,则需要将下一个状态的价值乘以γ:
V0=maxa∈1…N (ra+γVa)
这看起来与上一节中贪婪的示例非常相似,实际上,确实如此!但是,有一个区别:当我们贪婪地采取行动时,不仅会考虑动作的立即奖励,而且会考虑立即奖励加上状态的长期价值。
Bellman证明,通过以上扩展我们的行动会获得最佳结果。换句话说,它可能是最优解。因此,前面的方程式称为价值的Bellman方程(对于确定性情况)。
当我们的行动可能以不同的状态结束时,将这个想法扩展到随机的情况并不复杂。我们需要做的是计算每个动作的期望价值,而不是获取下一个状态的价值。为了说明这一点,假设状态s0对应一个动作,该动作有三个可能的结果(见图5.4)。
图5.4 随机情况下状态转移示例
本例中,一个动作会以不同的概率导致三种不同的结果状态。以概率p1到达状态s1,以概率p2到达状态s2,以概率p3到达状态s3(p1+p2+p3=1)。每个目标状态有它自己的奖励值(r1、r2或r3)。为了计算执行动作1后的期望价值,需要将各个状态的价值乘以它们的概率并相加:
或者,更正式地表示为:
通过将确定性情况下的Bellman方程与随机动作的价值组合,可以得到一般情况下的Bellman最优性方程:
注意,Pa, i→j表示从状态i,执行动作a到达状态j的概率。
同样可以解释为:状态的最优价值等于动作所获得最大预期的立即奖励,再加上下一状态的长期折扣奖励。你可能还会注意到,这个定义是递归的:状态的价值是通过立即可到达状态的价值来定义的。这种递归可能看起来像作弊:我们定义一些值,并假装它们是已知的。但是,这却是计算机科学甚至数学中非常强大且通用的技术(归纳证明也是基于这样的技巧)。Bellman方程不仅是RL的基础,还是更通用的动态规划(解决实际优化问题的广泛使用的方法)的基础。
这些值不仅提供了可获得的最佳奖励,并且提供了获取奖励的最佳策略:如果智能体知道每个状态的价值,那么它也将知道如何获得所有这些奖励。得益于Bellman的最优性证明,智能体在每个状态都选择能获得最佳奖励的动作,该奖励就是立即奖励与单步折扣长期奖励之和。因此,了解这些值是非常有价值的。在熟悉计算它们的方法之前,我需要再引入一些数学符号。它不像状态的价值那样基础,但为了方便,我们需要它。