1092 字
5 分钟
[强化学习] 强化学习数学基础

马尔可夫性质#

下一时刻的状态st+1s_{t+1}只取决于当前状态sts_t

P(st+1∣st)=P(st+1∣st,st−1,…,s0)P(s_{t+1}|s_t) = P(s_{t+1}| s_t, s_{t-1}, \ldots, s_0)

st,st−1,…,s0s_t, s_{t-1}, \ldots, s_0为之前所有状态的历史

强化学习基本概念#

状态转移矩阵#

P=[P(s1∣s1)P(s2∣s1)⋯P(sn∣s1)P(s1∣s2)P(s2∣s2)⋯P(sn∣s2)⋮⋮⋱⋮P(s1∣sn)P(s2∣sn)⋯P(sn∣sn)]P = \begin{bmatrix} P(s_1|s_1) & P(s_2|s_1) & \cdots & P(s_n|s_1) \\ P(s_1|s_2) & P(s_2|s_2) & \cdots & P(s_n|s_2) \\ \vdots & \vdots & \ddots & \vdots \\ P(s_1|s_n) & P(s_2|s_n) & \cdots & P(s_n|s_n) \end{bmatrix}

同一行的起始状态相同,表示从该状态转移到其他状态的概率分布

马尔可夫奖励过程#

  • 回合(episode):指从初始状态开始,智能体与环境交互直到终止状态的一个完整过程
  • 时间步:指在某一时刻,智能体与环境交互的一个时间点,比如走一步
  • 奖励:指在某一状态下,智能体采取某一动作后所获得的即时反馈

回报#

某个时间步开始,未来能获得的奖励的累计值

假设时刻tt后获得的奖励序列为rt+1,rt+2,rt+3,…,rTr_{t+1}, r_{t+2}, r_{t+3}, \ldots, r_T,则时刻tt的回报为:

Gt=rt+1+γrt+2+γ2rt+3+⋯+γT−t−1rTG_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \cdots + \gamma^{T-t-1} r_T

其中:

  • γ\gamma为折扣因子,0≤γ≤10 \leq \gamma \leq 1,用来减弱未来奖励的影响,使学习更关注最近的奖励
  • TT为终止状态的时间步

回报由智能体行动完成后才可计算,有了回报后便可计算状态价值函数

策略#

通常用π\pi表示策略,π(a∣s)\pi(a|s)表示在状态ss下采取动作aa的概率分布。策略可以是确定性的,也可以是随机的,也可以是一个函数。

状态价值函数#

状态价值函数V(s)V(s)表示在状态ss下,智能体能够获得的期望回报(未来可能得到多少回报)。对于马尔可夫奖励过程,它定义为回报的期望:

Vπ(s)=Eπ[Gt∣St=s]\boxed{V^\pi(s) = \mathbb{E}_\pi[G_t | S_t = s]}

其中Eπ\mathbb{E}_\pi表示在策略π\pi下的期望值,St=sS_t = s表示在时刻tt处于状态ss。

如果只用这个公式,当计算各个状态的状态价值函数时,必须要知道所有状态的回报序列,这会是一个非常庞大的排列组合问题,为了简化计算,可以使用 贝尔曼方程(Bellman Equation) 来递归地计算状态价值函数。

贝尔曼方程#

Vπ(s)=R(s)⏟即时奖励+γ∑s′∈SP(s′∣s)Vπ(s′)⏟未来奖励的折扣总和V^\pi(s) = \underbrace{R(s)}_{\text{即时奖励}} + \underbrace{\gamma \sum_{s' \in S} P(s'|s)V^\pi(s')}_{\text{未来奖励的折扣总和}}
  • Vπ(s′)V^\pi(s'): 未来状态s′s'的状态价值函数
  • P(s′∣s)P(s'|s): 从状态ss转移到状态s′s'的概率

贝尔曼方程的矩阵形式#

设每个状态s∈Ss \in S的状态价值函数为Vπ(s)V^\pi(s),则可以将所有状态的状态价值函数表示为向量VπV^\pi,所有状态的即时奖励表示为向量RR:

Vπ=[Vπ(s1)Vπ(s2)⋮Vπ(sn)]R=[R(s1)R(s2)⋮R(sn)]V^\pi = \begin{bmatrix} V^\pi(s_1) \\ V^\pi(s_2) \\ \vdots \\ V^\pi(s_n) \end{bmatrix} \qquad R = \begin{bmatrix} R(s_1) \\ R(s_2) \\ \vdots \\ R(s_n) \end{bmatrix}

有了状态转移矩阵PP,贝尔曼方程可以写成矩阵形式:

Vπ=R+γPVπV^\pi = R + \gamma P V^\pi

变形得:

Vπ−γPVπ=R(I−γP)Vπ=RVπ=(I−γP)−1RV^\pi - \gamma P V^\pi = R \\ (I - \gamma P)V^\pi = R \\ V^\pi = (I - \gamma P)^{-1} R

若方程可解,则可以直接求解所有状态的状态价值函数VπV^\pi

贝尔曼方程的迭代形式(自举法)#

属于动态规划的一种方法,利用当前状态的价值函数来更新未来状态的价值函数,直到收敛为止。

1:对于所有状态 s∈S, V′←0, V←∞2:当 ∥V−V′∥>ϵ 执行3:V←V′4:对于所有状态 s∈S:V′(s)←R(s)+γ∑s′∈SP(s′∣s)V(s′)5:结束循环6:返回 V′(s)\boxed{ \begin{array}{rl} 1: & \text{对于所有状态 }s\in S,\ V'\gets \mathbf{0},\ V\gets \mathbf{\infty}\\ 2: & \text{当 }\lVert V-V'\rVert>\epsilon\text{ 执行}\\ 3: & \qquad V\gets V'\\ 4: & \qquad \text{对于所有状态 }s\in S:\\ & \qquad \qquad V'(s)\gets R(s)+\gamma\displaystyle\sum_{s'\in S}P(s'|s)V(s')\\ 5: & \text{结束循环}\\ 6: & \text{返回 }V'(s) \end{array} }

基于新的策略π′\pi',因此是一个off-policy(离线)算法。

值函数(动作价值函数)#

前面介绍的状态价值函数V(s)V(s)是指在状态ss下,智能体能够获得的期望回报。而动作价值函数Q(s,a)Q(s, a)是指在状态ss下,智能体采取具体动作aa后,能够获得的期望回报。

Qπ(s,a)=Eπ[Gt∣st=s,at=a]\boxed{Q^\pi(s, a) = \mathbb{E}_\pi[G_t | s_t = s, a_t = a]}

同时也可以由动作价值函数得到状态价值函数:

Vπ(s)=Eπ[Qπ(s,at)]V^\pi(s) = \mathbb{E}_\pi[Q^\pi(s, a_t)]

动作价值函数对于决策更为重要,当我们有了动作价值函数后,当前最佳动作则为使得当前Q(s,a)Q(s, a)最大的动作aa,即:arg max⁡aQ(st,a)\argmax \limits_a Q(s_t, a)

[强化学习] 强化学习数学基础
https://alkaid114.github.io/posts/rl/foundations/
作者
Alkaid114
发布于
2026-09-08
许可协议
CC BY-NC-SA 4.0