马尔可夫决策过程#
马尔可夫性质#
当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质(Markov property)
马尔可夫性的出发点是 St−1 就包括了 t 时刻之前的历史信息,因此可以直接通过 t−1 时刻的状态来预测 t 时刻的状态。这个假设可以简化大量的计算。
P(St∣S1,…,St−1)=P(St∣St−1)马尔可夫过程(MP)#
马尔可夫过程(Markov process)指具有马尔可夫性质的随机过程,也被称为马尔可夫链(Markov chain)。
使用马尔可夫转移矩阵 P 来描述马尔可夫过程 <S,P>:
P=P(s1∣s1)⋮P(s1∣sn)⋯⋱⋯P(sn∣s1)⋮P(sn∣sn)马尔可夫奖励过程(MRP)#
在马尔可夫过程的基础上加入奖励函数 r 和折扣因子 γ ,就可以得到马尔可夫奖励过程(Markov reward process, MRP)。
马尔可夫过程通过概率建模了一条样本的表达形式,而马尔可夫奖励过程 <S,P,r,γ> 则描述了一条样本的价值。
计算一条样本的回报(Return):
Gt=Rt+γRt+1+γ2Rt+2+⋯=k=0∑∞γkRt+k在马尔可夫奖励过程中,一个状态的期望回报(即从这个状态出发的未来累积奖励的期望)被称为这个状态的价值(value)。
V(s)=E[Gt∣St=s]=E[Rt+γRt+1+γ2Rt+2+…∣St=s]=E[Rt+γ(Rt+1+γRt+2+…)∣St=s]=E[Rt+γGt+1∣St=s]=E[Rt+γV(St+1)∣St=s]一个状态的”价值”是这个其未来可能状态的期望。
上式进一步化简,当前时刻的奖励就是奖励函数本身:E[Rt∣St=s]=r(s);下一状态的价值,可以由当前状态的转移求得(马尔可夫性):γE[V(St+1)∣St=s]=γ∑s′∈Sp(s′∣St)V(s′)(见条件期望)。由此可以得到贝尔曼方程(Bellman equation):
V(s)=r(s)+γs′∈S∑p(s′∣s)V(s′)贝尔曼方程的矩阵形式:
V=R+γPV其中V=[V(s1),⋯]T,R=[R(s1),⋯]T,P为状态转移矩阵。
通过移项:
V=(I−γP)−1R(V(si)对应V第i行的数据)
马尔可夫决策过程(MDP)#
马尔可夫过程和马尔可夫奖励过程都是自发改变的随机过程;如果给这个过程添加某种“自发性”,就有了马尔可夫决策过程(Markov decision process,MDP)
“自发性”根据当前过程的状态s输出动作a来驱动MDP的状态改变。这种“自发性”就是一种策略(Policy),数学表示为π(a∣s),指导马尔可夫过程的状态转移。策略可以是一个状态机,也可以是一个概率模型。
总的来说,我们可以将MDP建模为<S,A,P,R,γ>,将“规则”表示条件概率模型π(A∣S)。
整个过程的价值需要从两个方面来看:状态价值与动作价值。
状态价值(state-value function),为从状态s出发,遵循策略π获得的期望回报:
Vπ(s)=Eπ[Gt∣St=s]动作价值(action-calue function),为当前状态s执行动作a得到的期望回报:
Qπ(s,a)=E[Gt∣St=s,At=a]取得的状态价值与动作价值是相关联的:
在使用策略π中,状态s的价值等于在该状态下基于策略π采取所有动作的概率与相应的价值相乘再求和的结果:
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)使用策略π时,状态s下采取动作a的价值等于即时奖励加上经过衰减后的所有可能的下一个状态的状态转移概率与相应的价值的乘积:
Qπ(s,a)=r(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)将两者的期望方程展开,可以得到两个价值函数的贝尔曼期望方程:
状态价值:
Vπ(s)=Eπ[Rt+γVπ(St+1)∣St=s]=a∈A∑π(a∣s)(r(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′))动作价值:
Qπ(s,a)=Eπ[Rt+γQπ(St+1,At+1)∣St=s,At=a]=r(s,a)+γs′∈S∑p(s′∣s,a)a′∈A∑π(a′∣s′)Qπ(s′,a′)状态访问分布(state visitation distribution)#
状态访问概率表示一个策略和 MDP 交互会访问到的状态的分布。
νπ(s)=(1−γ)t=0∑∞γtPtπ(s)Ptπ(s)表示采取策略π使得智能体在t时刻状态为s的概率,因此有Ptπ(s)=ν0(s)
价值优化#
价值优化是强化学习中的一类优化范式。尽可能精确地估计马尔可夫决策过程状态空间的未来回报,在通过贪心规则:
π(s)=argamaxQ(s,a)派生出最优策略。
已有的优化方法包括Q-learning, DQN以及DQN的改进算法。
策略梯度(Policy Gradient,PG)#
一种基于策略的优化方式。定义了策略学习的目标函数:
J(θ)=Es0[Vπθ(s0)]其中,s0表示初始状态。θ是随机策略π的参数。表示从初始状态s0出发,计算价值V,然后对所有可能的初始状态求平均。而价值Vπθ是这一个完整状态序列的轨迹:s0→a0→s1→…(奖励过程)。在某个策略下,智能体访问某个状态的概率分布在状态访问分布这一步已经给出——νπ(s),又因为价值函数可以被展开为:
Vπθ(s0)=Ea0∼πθ[Qπθ(s0,a0)]用数理统计的方法来处理,可以得到目标函数:
J(θ)=s∑νπθ(s)a∑Qπθ(s,a)πθ(a∣s)NOTE
从这一步开始,目标函数期望的下标就可以从s0写成πθ了。因为当我们取梯度并应用策略梯度定理时,状态s0的分布会沿着策略的轨迹传播。所以整个表达式变成了关于由策略πθ诱导出的轨迹的期望。
当对策略进行优化时,需要对θ进行求导,而这个求导会沿着轨迹向后传播。直接求导基本上没办法计算:
∇θJ(θ)=s∑∇θνπθ(s)⋅(a∑Qπθ(s,a)πθ(a∣s))+s∑νπθ(s)a∑[∇θQπθ(s,a)]πθ(a∣s)+s∑νπθ(s)a∑Qπθ(s,a)∇θπθ(a∣s)逐项分析:
- 第一项:状态分布随策略的变化
- 状态的访问概率取决于环境的状态转移概率(马尔可夫决策过程)P(s′∣s,a),但智能体无法观测环境内部的物理规律,因此无法求导。
- 第二项:动作价值随策略的变化
- Q中包含了未来所有时刻的奖励,展开也需要用到环境模型P,无法求导。
策略梯度定理:
对于折扣回报(折扣因子γ),有:
\nabla_\theta J(\theta) = \frac{1}{1-\gamma} \sum_{s\in S}\nu^{\pi}(s) \sum_{a \in A}\nabla_\theta \pi_\theta(a|s)\cdot Q^{\pi_\theta}(s,a)
策略梯度定理揭示了,因为ν和Q本质上都是与环境的状态转移P相关的,而与真实策略参数θ无关,所以梯度直接消失。
由策略梯度定理进一步化简(求导的链式法则),可以得到梯度的期望表达式:
∇θJ(θ)∝Eπθ[Qπθ(s,a)∇θlogπθ(a∣s)]Actor Critic#
Actor Critic则是当前(2026)最主流的一种训练范式。根据迭代方式的不同,在Actor Critic的框架下,还诞生了TRPO,PPO等主流强化学习算法。
Actor Critic的思想是训练策略的网络(Actor)的同时,训练价值网络(Critic)指导策略网络输出价值更高的动作。
强化学习的三大范式
马尔可夫决策过程(MDP)给定了一个随机过程基础建模。之后的强化学习算法都是基于这个假设本身进行构建的。
在MDP中,我们的最终目的是给出一个最优的策略π,能够在任何状态下,给出价值最高的操作(因为马尔可夫性,每个时刻的状态只与上一时刻的状态有关,因此可以保证能满足这个条件的策略就是整个过程的最优策略)。
强化学习的第一种范式就是基于这个朴素的思想——只训练策略函数。核心代表是蒙特卡洛策略梯度。通过大量的枚举策略,计算价值,最终迭代出最优策略。
第二种范式稍微有点反直觉,通过训练价值函数得到整个状态空间中状态最优的一条路径,策略只需要通过贪心算法,得到π(s)=argmaxQ(s,a)。这种方式将策略优化问题转化为了价值回归模型。在离散动作空间表现比较优秀。
第三种范式就是Actor Critic这种既训练策略网络Actor,还要训练价值网络Critic。
训练策略网络Actor的目标自然是最大化策略获取的价值。而在训练的方式上,诞生了不同的算法,例如可信域优化(Trust Region Policy Optimization, TRPO),近端策略优化(Proximal Policy Optimization, PPO),旨在提高策略输出的质量。
训练价值网络Critic的目标是预测当前状态的价值。通过贝尔曼期望方程,我们知道一个MDP在某个状态采取某个动作的价值是一定的,但方程本身是一个无穷级数,计算机难以计算,或者说无法计算。因此我们需要一个回归模型用更少计算量,预测当前动作的价值。
可信域优化(Trust Region Policy Optimization, TRPO)#
TRPO在PG的基础上,提出了优势函数的概念。通过优势函数直接评价当前策略的价值函数J(θ)与新策略价值函数J(θ′)之间的关系。
优化目标#
旧策略的价值函数可以写成关于新参数的期望:
J(θ)=Es0[Vπθ(s0)]=Eπθ′[t=0∑∞γtVπθ(st)−t=1∑∞γtVπθ(st)]=−Eπθ′[t=0∑∞γt(γVπθ(st+1)−Vπθ(st))]NOTE
这里的下标变化来自于裂项相消。对于任意一条轨迹,总成立:
Vπθ(s0)=t=0∑∞γtVπθ(st)−t=1∑∞γtVπθ(st)而最开始的状态s0的价值函数与策略是无关的,因此可以直接将下标写为πθ′
基于上述等式,可以写出J(θ′)−J(θ):
J(θ′)−J(θ)=Es0[Vπθ′(s0)]−Es0[Vπθ(s0)]=Eπθ′[t=0∑∞γtr(st,at)]+Eπθ′[t=0∑∞γt(γVπθ(st+1)−Vπθ(st))]=Eπθ′[t=0∑∞γt[r(st,at)+γVπθ(st+1)−Vπθ(st)]]将上述的时序差分残差定义为优势函数,可以得到下式:
Eπθ′[t=0∑∞γtAπθ(st,at)]==t=0∑∞γtEst∼Ptπθ′Eat∼πθ′(⋅∣st)[Aπθ(st,at)]1−γ1Es∼νπθ′Ea∼πθ′(⋅∣s)[Aπθ(s,a)]优势函数本身描述的是在某个策略下,未来所有相邻时刻获得价值的差分的总和。有了优势函数之后,只需要保证Es∼νπθ′Ea∼πθ′(⋅∣s)[Aπθ(s,a)]≥0就能保证策略单调递增。
但是直接求解该式是非常困难的,因为πθ′是需要求解的策略,但我们又要用它来收集样本。把所有可能的新策略都拿来收集数据,然后判断哪个策略满足上述条件的做法显然是不现实的。于是 TRPO 做了一步近似操作,对状态访问分布进行了相应处理。具体而言,忽略两个策略之间的状态访问分布变化,直接采用旧的策略πθ的状态分布,定义如下替代优化目标:
Lθ(θ′)=J(θ)+1−γ1Es∼νπθ′Ea∼πθ′(⋅∣s)[Aπθ(s,a)]用重要性采样对动作分布进行处理,得到式子:
Lθ(θ′)=J(θ)+Es∼νπθ′Ea∼πθ′(⋅∣s)[πθ(a∣s)πθ′(a∣s)Aπθ(s,a)]这样就可以依据当前策略πθ采样的数据优化新策略。为了保证新旧策略足够接近,TRPO 使用了库尔贝克-莱布勒(Kullback-Leibler,KL)散度来衡量策略之间的距离,并给出了整体的优化公式:
θ′max Lθ(θ′)s.t.Es∼νπθk[DKL(πθk(⋅∣s),πθ′(⋅∣s))]≤δTRPO的”Region”就来自于KL散度约束的区域。数学上,KL散度使用黑塞矩阵(Hessian matrix)来表示。
求解方式#
给定了优化函数与约束条件,TRPO的求解仍然是一个困难。重点在于采样,以及如何进行优化函数的求解。
广义优势估计(Generalized Advantage Estimation, GAE)#
每一步进行优势估计:
At(1)=δtAt(2)=δt+γδt+1At(3)=δt+γδt+1+γ2δt+2⋮At(k)=∑l=0k−1γlδt+l====−V(st)+rt+γV(st+1)−V(st)+rt+γrt+1+γ2V(st+2)−V(st)+rt+γrt+1+γ2rt+2+γ3V(st+3)⋮−V(st)+rt+γrt+1+…+γk−1rt+k−1+γkV(st+k)GAE为不同步数的优势估计的指数加权平均:
AtGAE=(1−λ)(At(1)+λAt(2)+λ2At(3)+⋯)=(1−λ)(δt+λ(δt+γδt+1)+λ2(δt+γδt+1+γ2δt+2)+⋯)=(1−λ)(δ(1+λ+λ2+⋯)+γδt+1(λ+λ2+λ3+⋯)+γ2δt+2(λ2+λ3+λ4+…)+⋯)=(1−λ)(δt1−λ1+γδt+11−λλ+γ2δt+21−λλ2+⋯)=l=0∑∞(γλ)lδt+l近端优化(Proximl Policy Optimization, PPO)#
PPO算法与TRPO算法的区别在于对于参数 θ 的约束。为了模型能从示范分布 θ′ 中学习参数,就必须让我们学习的参数 θ 与示范数据中的 θ′ (未知)的分布差距不大。TRPO使用KL散度作为约束项来约束优化目标。而PPO算法直接将约束放在优化目标函数上。目前的PPO算法有两种实现方式:近端策略优化惩罚(PPO-penalty)与近端策略优化裁剪(PPO-clip)
PPO-penalty#
JPPOθ′(θ)=Jθ′(θ)−βKL(θ,θ′)通过KL散度动态调整惩罚参数 β ,更像是使用惩罚法去求解TRPO算法。