强化学习的数学原理 赵世钰 笔记 第二节 Bellman Equation 贝尔曼公式
上一章[[强化学习入门]]
Bellman Equation
上一章[[强化学习入门]]
例子
- 如何选择最好的策略?如何描述?使用平均的return来表示
- 如何计算return?可以使用递归计算方式,即当前state得到的return依赖于其他state的return
- Bootstrapping:从自己出发不断迭代得到的结果
- v=r+γPv\pmb{v}=\pmb{r}+\gamma \pmb{Pv}v=r+γPv,将该述公式求解可以得到deterministic的bellman公式
状态价值State Value
- 状态价值:vπ(s)=E[Gt∣St=s]v_\pi(s) = \mathbb{E}[G_t|S_t = s]vπ(s)=E[Gt∣St=s]这是基于某个具体状态s得到的value,并且是由策略π\piπ决定的,其中GtG_tGt是每个路径的return
- return是在某一状态s下针对单个trajectory所求,state value是从某状态s出发的多个trajectory(若存在)得到的return的期望。
推导Bellman Equation
贝尔曼公式是用于计算状态价值的。
以下是比较简化的推导,可以不看,只看结论
针对一个随机的trajectory,可以求GtG_tGt,Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}Gt=Rt+1+γGt+1
所以状态价值可以推导为
vπ(s)=E[Gt∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s] \begin{aligned} v_\pi(s) &= \mathbb{E}[G_t|S_t = s] \\ &= \mathbb{E}[R_{t+1}|S_t = s] + \gamma \mathbb{E}[G_{t+1}|S_t = s] \end{aligned} vπ(s)=E[Gt∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]
下面分析两个expectation,
第一个expectation代表immediate rewards的均值E[Rt+1∣St=s]=∑aπ(a∣s)E[Rt+1∣St=s,At=a]=∑aπ(a∣s)∑rp(r∣s,a)r\mathbb{E}[R_{t+1}|S_t = s] = \sum_a \pi(a|s) \mathbb{E}[R_{t+1}|S_t = s, A_t =a] = \sum_a \pi(a|s) \sum_r p(r|s,a)rE[Rt+1∣St=s]=a∑π(a∣s)E[Rt+1∣St=s,At=a]=a∑π(a∣s)r∑p(r∣s,a)r 第二个expectation代表future rewards的均值E[Gt+1∣St=s]=∑s′E[Gt+1∣St=s,St+1=s′]p(s′∣s)=∑s′E[Gt+1∣St+1=s′]p(s′∣s)=∑s′vπ(s′)p(s′∣s)=∑s′vπ(s′)∑ap(s′∣s,a)π(a∣s)\begin{aligned}\mathbb{E}[G_{t+1}|S_t = s] &= \sum_{s^\prime} \mathbb{E}[G_{t+1}|S_t = s, S_{t+1} = s^\prime]p(s^\prime | s) \\ &= \sum_{s^\prime} \mathbb{E}[G_{t+1}|S_{t+1} = s^\prime]p(s^\prime | s) \\ &= \sum_{s^\prime} v_\pi(s^\prime) p(s^\prime | s) \\ &= \sum_{s^\prime} v_\pi(s^\prime) \sum_a p(s^\prime|s,a)\pi(a|s) \end{aligned}E[Gt+1∣St=s]=s′∑E[Gt+1∣St=s,St+1=s′]p(s′∣s)=s′∑E[Gt+1∣St+1=s′]p(s′∣s)=s′∑vπ(s′)p(s′∣s)=s′∑vπ(s′)a∑p(s′∣s,a)π(a∣s)第二行用到了Markov的无记忆性
最终可推导出bellman公式为vπ(s)=∑aπ(a∣s)∑rp(r∣s,a)r+γ∑s′vπ(s′)∑ap(s′∣s,a)π(a∣s)=∑aπ(a∣s)∑rp(r∣s,a)r+γ∑aπ(a∣s)∑s′vπ(s′)p(s′∣s,a)=∑aπ(a∣s)[∑rp(r∣s,a)r+γ∑s′vπ(s′)p(s′∣s,a)],∀s∈S\begin{aligned} {\color{red}v_\pi(s)} &= \sum_a \pi(a|s) \sum_r p(r|s,a)r + \gamma \sum_{s^\prime} v_\pi(s^\prime) \sum_a p(s^\prime|s,a)\pi(a|s) \\ &= \sum_a \pi(a|s) \sum_r p(r|s,a)r + \gamma \sum_a \pi(a|s) \sum_{s^\prime} v_\pi(s^\prime) p(s^\prime|s,a) \\ &= \sum_a \pi(a|s) [\sum_r p(r|s,a)r + \gamma \sum_{s^\prime} {\color{red}v_\pi(s^\prime)} p(s^\prime|s,a)], \forall s \in S\end{aligned}vπ(s)=a∑π(a∣s)r∑p(r∣s,a)r+γs′∑vπ(s′)a∑p(s′∣s,a)π(a∣s)=a∑π(a∣s)r∑p(r∣s,a)r+γa∑π(a∣s)s′∑vπ(s′)p(s′∣s,a)=a∑π(a∣s)[r∑p(r∣s,a)r+γs′∑vπ(s′)p(s′∣s,a)],∀s∈Sbellman公式是一个公式集合(最后的∀\forall∀表示对状态空间的所有状态成立),表达了每个vπ(s)v_\pi(s)vπ(s)和所有其他states′s^\primes′的vπ(s′)v_\pi(s^\prime)vπ(s′)之间的关系,可以使 用线性方程组求解得到每个state的状态价值。
Bellman Equation的矩阵-向量形式
实际就是对bellman公式的扩展改写为vπ=rπ+γPπvπv_\pi = r_\pi +\gamma P_\pi v_\pivπ=rπ+γPπvπ的形式,再将每个状态都列出则得到一个线性方程组的矩阵形式。
Bellman Equation的求解
基于一个既定的policy,评价其state value称为policy evaluation,即评价一个policy的好坏。
- 很明显可以直接得到闭式解vπ=(I−γPπ)−1rπv_\pi = (I - \gamma P_\pi )^{-1}r_\pivπ=(I−γPπ)−1rπ,但是计算消耗大,在state space较大时不适用
- 迭代求解:先随机初始化一个v0v_0v0,使用vk+1=rπ+γPπvkv_{k+1} = r_\pi +\gamma P_\pi v_kvk+1=rπ+γPπvk的形式进行迭代,当k→∞k \to \inftyk→∞时,vkv_kvk将收敛到定值vπv_\pivπ。
Action Value
概念
在某状态下采取某action时得到的return的期望qπ(s,a)=E[Gt∣St=s,At=a]q_\pi(s,a)=\mathbb{E}[G_t|S_t=s,A_t=a]qπ(s,a)=E[Gt∣St=s,At=a].
- 由此可以推出state value为vπ(s)=∑aπ(a∣s)qπ(s,a)v_\pi(s)=\sum_a \pi(a|s)q_\pi(s,a)vπ(s)=∑aπ(a∣s)qπ(s,a)。从这一公式可以看出知道某一状态的action value可以求平均得到该状态的state value。
- 与上面推导出的bellman 公式比较可以得出qπ(s,a)=∑rp(r∣s,a)r+γ∑s′vπ(s′)p(s′∣s,a)q_\pi(s,a) = \sum_r p(r|s,a)r + \gamma \sum_{s^\prime} {\color{red}v_\pi(s^\prime)} p(s^\prime|s,a)qπ(s,a)=r∑p(r∣s,a)r+γs′∑vπ(s′)p(s′∣s,a)从公式中可以看出只要知道每个状态的state value,就可以求出相应state下采取某一action的action value。
用途
action value的用处就是判断某一状态下采取哪个action最优。
计算
先计算state value,再计算action value;或者直接计算action value
下一章[[贝尔曼最优公式]]
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐

所有评论(0)