跳至正文
首页 » 贝尔曼方程最简推导

贝尔曼方程最简推导

贝尔曼方程是强化学习中的核心概念,它描述了一个状态的价值与其后续状态价值之间的关系。下面我用一种直观的方式来解释它的推导过程。高中生都能看懂~

关键概念

想象一个智能体在环境中做决策,比如玩一个棋盘游戏。有两个关键概念 回报价值

回报

它从当前时刻 t 开始,直到游戏结束,获得的所有 奖励R 表示 集合起来,形成一个总收益,这就是 ​​回报​ ​, 用 Gt 表示。由于未来的奖励不如眼前的奖励“实在”,我们会用一个 ​折扣因子​ ​( γ ,通常取一个小于1的数,比如0.9 ) 给未来的奖励打折。所以,折扣回报的计算公式是

Gt=Rt+γRt+1+γ2Rt+2+=k=0γkRt+k

可以理解为,每一步都存在一个奖励,当前状态下总回报是所有后续步骤奖励的总和,并且通过折扣因子反应及时奖励最“值钱”,越往后奖励价值越低。

价值函数

一局游戏的胜负有时靠运气,单次游戏的回报(总收益)偶然性很大。要客观衡量一个状态(比如棋盘上的某个局面)的 真正价值,我们需要看很多次游戏,计算这个状态出发所能获得的回报 期望,用高中知识来讲就是 当前状态 下,所有策略中能获得的 平均回报 。这个 期望(平均值) 就是该 状态价值 。用公式表示就是:

V(s)=E[Gt|St=s]

其中:
V(s) :表示价值函数
E :表示期望
Gt|St=s :表示在 s 状态下的回报 Gt

建立状态间的联系

贝尔曼方程的巧妙之处在于,它把一个大问题(计算整个游戏的总价值)分解成了眼前的一步和之后的所有步。这就像把整盘棋的价值,看作是你走下一步棋立刻得到的分数,加上你走完这步棋后新局面的价值(但新局面的价值要打点折)

  1. 分解回报
    我们把总回报 Gt 拆为两部分

Gt=Rt+γRt+1+γ2Rt+2+=Rt+γ(Rt+1+γRt+2+)(Gt+1=Rt+1+γRt+2+γ2Rt+3+)=Rt+γGt+1

  1. 带入价值函数
    价值函数是回报的期望(平均值),所以我们将上面这个关系式代入价值函数的定义中

V(s)=E[Gt|St=s]=E[Rt+1+γGt+1|St=s]

根据期望的运算法则,和的期望等于期望的和,所以上式可以拆开:

V(s)=E[Rt+1+γGt+1|St=s]=E[Rt+1||St=s]+γE[Gt+1|St=s]

  1. 理解等号右边两项
    • 第1项:E[Rt||St=s] 这是在状态 s 下,能获得的​​即时奖励的期望​​,即时奖励的期望正是奖励函数的输出,即 R(s)
    • 第2项:γE[Gt+1|St=s],这一项有点 tricky。它的意思是:​​在当前状态是 s 的前提下,下一个状态 s 的价值是多少?​​ 这需要考虑从 s 出发,所有可能到达的下一个状态 s,以及到达每个 s 的概率。然后,对每个可能的 s,乘以它本身的价值 V(s),最后再求平均。这个过程可以借助 ​​全概率公式​ ​来理解。
  2. 利用马尔可夫性质
    为了简化计算,我们假设环境具有“马尔可夫性”,即​​未来只取决于现在,与过去无关​​。这意味着,从 s 转移到 s 的概率只取决于 s 本身,和我们之前是怎么走到 s 的没关系。这个假设使得第二项可以清晰地写成

γsP(s|s)V(s)

即对所有可能的下一个状态,用转移概率加权其价值

最终结论:贝尔曼方程

将上面的分析组合起来,我们就得到了著名的贝尔曼方程:

V(s)=R(s)+γsP(s|s)V(s)

这个公式非常直观地告诉我们:

​任何一个状态 s 的价值,都由两部分组成 :​
1. ​​即时奖励​​:离开这个状态时立刻能获得的平均收益 R(s)
2. ​​未来奖励的折扣价值​​:考虑所有可能到达的下一个状态 s,用到达 s 的概率 P(s|s) 进行加权,再乘以 s 本身的价值 V(s)。因为这是未来的收益,所以整体要乘以一个折扣因子 γ

矩阵形式

若一个马尔可夫奖励过程一共有 n 个状态,即 S=s1,s2,,当我们考虑所有状态

{V(s1)=R(s1)+γ[P(s1|s1)V(s1)+P(s2|s2)V(s2)++P(sn|s1)V(sn)],V(s2)=R(s2)+γ[P(s1|s2)V(s1)+P(s2|s2)V(s2)++P(sn|s2)V(sn)],V(sn)=R(sn)+γ[P(s1|sn)V(s1)+P(s2|sn)V(s2)++P(sn|sn)V(sn)]

我们将所有状态的价值表示成一个列向量V=[V(s1),V(s2),]T ,同理,将奖励函数写成一个列向量R=[R(s1),R(s2),]T 。于是我们可以将贝尔曼方程写成矩阵的形式:

V=R+γPV

展开矩阵形式

{V(s1)V(s2)V(sn)}={R(s1)R(s2)R(sn)}+γ{P(s1|s1)P(s2|s1)P(sn|s1)P(s2|s1)P(s2|s2)P(sn|s2)P(sn)P(s2|sn)P(sn|sn)}{P(s1|s1)P(s2|s1)P(sn|s1)P(s2|s1)P(s2|s2)P(sn|s2)P(sn)P(s2|sn)P(sn|sn)}

得到

VγPV=R(IγP)V=R

其中 I 是 n×n 的单位矩阵。如果 (IγP) 可逆,则价值向量的解析解为:

V=(IγP)1R

以上解析解的计算复杂度是 O(n)3,其中是状态个数,因此这种方法只适用很小的马尔可夫奖励过程
求解较大规模的马尔可夫奖励过程中的价值函数时,可以使用动态规划(dynamic programming)算法、蒙特卡洛方法(Monte-Carlo method)和时序差分(temporal difference)

一个简单例子

假设一个状态 s 的即时奖励是 2(R(s)=2),折扣因子 γ=0.9 。从 s 出发,有 70% 的概率去到一个价值为 10 的状态 s1,有 30% 的概率去到一个价值为 1 的状态 s2

那么状态 s的价值计算如下:

V(s)=2+0.9(0.710+0.31)=2+0.9(7+0.3)=2+0.97.3=2+6.57=8.57

标签:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注