封面
返回上一级

RL学习笔记-西湖大学赵世钰版(更新中)

2026.06.30
54
📂 Research
# RL

视频链接:【强化学习的数学原理】课程:从零开始到透彻理解

贝尔曼方程

考虑这样的一个轨迹:

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

对应的return GtG_t 如下所示:

Gt=Rt+1+γRt+2+γ2Rt+2+,=Rt+1+γ(Rt+2+γRt+3+),=Rt+1+γGt+1\begin{aligned} G_t &= R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+2} + \dots, \\ &= R_{t+1} + \gamma(R_{t+2} + \gamma R_{t+3} +\dots), \\ &= R_{t+1} + \gamma G_{t+1} \end{aligned}

定义状态价值state value:

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

分别计算两部分的内容:

E[Rt+1St=s]=aπ(as)E[Rt+1St=s,At=a]=aπ(as)rp(rs,a)r\begin{aligned} \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)r \end{aligned} E[Gt+1St=s]=sE[Gt+1St=s,St+1=s]p(ss)=sE[Gt+1St+1=s]p(ss)=svπ(s)p(ss)=svπ(s)ap(ss,a)π(as)\begin{aligned} \mathbb{E}[G_{t+1}|S_t=s] &= \sum_{s'}\mathbb{E}[G_{t+1}|S_t=s, S_{t+1} = s']p(s'|s) \\ &= \sum_{s'}\mathbb{E}[G_{t+1}|S_{t+1} = s']p(s'|s) \\ &= \sum_{s'}v_\pi(s')p(s'|s) \\ &= \sum_{s'}v_\pi(s')\sum_a p(s'|s, a)\pi(a|s) \end{aligned}

其中,第一步到第二步忽略 St=sS_t=s的原因:一旦你已经知道下一时刻状态是St+1=sS_{t+1}=s'那么从t+1之后的未来回报Gt+1G_{t+1}只依赖于当前状态ss',不在依赖于ss了。

那么现在state value公式如下所示:

vπ(s)=E[Rt+1St=s]+γE[Gt+1St=s],=aπ(as)rp(rs,a)rmean of immediate rewards+γaπ(as)sp(ss,a)vπ(s)mean of future rewards,=aπ(as)[rp(rs,a)r+γsp(ss,a)vπ(s)],sS.\begin{aligned} v_\pi(s) &= \mathbb{E}[R_{t+1}|S_t = s] + \gamma\mathbb{E}[G_{t+1}|S_t = s], \\ &= \underbrace{\sum_a \pi(a|s) \sum_r p(r|s, a)r}_{\text{mean of immediate rewards}} + \gamma \underbrace{\sum_a \pi(a|s) \sum_{s'} p(s'|s, a)v_\pi(s')}_{\text{mean of future rewards}}, \\ &= \sum_a \pi(a|s) \left[ \sum_r p(r|s, a)r + \gamma \sum_{s'} p(s'|s, a)v_\pi(s') \right], \quad \forall s \in \mathcal{S}. \end{aligned}

这就是给定策略 π\pi下,状态价值函数的贝尔曼期望方程,他表达的是:

当前的状态价值=一步即使奖励的期望+γ下一状态价值的期望当前的状态价值 = 一步即使奖励的期望 + \gamma下一状态价值的期望

定义动作价值action value:

qπ(s,a)=E[GtSt=s,At=a]E[GtSt=s]vπ(s)=aE[GtSt=t,At=a]qπ(s,a)π(as)\displaystyle q_\pi(s, a) = \mathbb{E}[G_t|S_t = s, A_t = a] \\ \underbrace{\mathbb{E}[G_t|S_t = s]}_{v_\pi(s)}= \sum_a \underbrace{\mathbb{E}[G_t | S_t = t,A_t = a]}_{q_\pi(s,a)} \pi(a|s)

因此, vπ(s)=aπ(as)qπ(s,a)v_\pi(s) = \sum\limits_a \pi(a|s) q_\pi(s,a)

贝尔曼最优公式