强化学习算法种类丰富,可按学习目标(基于价值 / 基于策略 / 演员 - 评论家)、数据使用方式(在线 / 离线)、是否依赖环境模型(无模型 / 有模型)等维度分类。以下按核心逻辑梳理常见算法,并补充各算法的权重更新公式:
一、基于价值的算法(Value-Based)
目标是学习 “状态 - 动作价值函数”(Q 函数),通过 Q 值指导动作选择(如选 Q 值最大的动作)。
-
Q-Learning(表格型,1989):
经典无模型离线(Off-policy)算法,用贝尔曼方程更新 Q 表格:Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)]Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]
其中,α\alphaα为学习率,γ\gammaγ为折扣因子,rrr为即时奖励,s′s's′为下一状态。
适合状态 / 动作空间小的场景(如网格世界)。
-
SARSA(表格型,1994):
在线(On-policy)算法,更新 Q 值时依赖实际选择的下一个动作(而非最大 Q 值):Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s',a') - Q(s,a)]Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]
其中,a′a'a′为实际执行的下一动作,更注重 “当前策略的一致性”,适合需要探索安全性的场景。
-
DQN(Deep Q-Network,2013):
深度强化学习里程碑,用神经网络近似 Q 函数(深度 Q 网络),解决高维状态空间问题(如 Atari 游戏)。
核心改进:经验回放(Experience Replay,打破样本相关性)、目标网络(Target Network,稳定训练)。
损失函数(更新 Q 网络权重θ\thetaθ):L(θ)=E[(r+γmaxa′Qθ−(s′,a′)−Qθ(s,a))2]L(\theta) = \mathbb{E}[(r + \gamma \max_{a'} Q_{\theta^-}(s',a') - Q_\theta(s,a))^2]L(θ)=E[(r+γmaxa′Qθ−(s′,a′)−Qθ(s,a))2]
权重更新:θ←θ−β∇θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ−β∇θL(θ)(β\betaβ为 Q 网络学习率,θ−\theta^-θ−为目标网络权重,定期从θ\thetaθ复制)。
-
Double DQN(DDQN,2015):
解决 DQN 的 “过度估计 Q 值” 问题:用当前网络选动作,目标网络算 Q 值,避免单一网络既选又评的偏差。
损失函数:L(θ)=E[(r+γQθ−(s′,argmaxa′Qθ(s′,a′))−Qθ(s,a))2]L(\theta) = \mathbb{E}[(r + \gamma Q_{\theta^-}(s', \arg\max_{a'} Q_\theta(s',a')) - Q_\theta(s,a))^2]L(θ)=E[(r+γQθ−(s′,argmaxa′Qθ(s′,a′))−Qθ(s,a))2]
权重更新同 DQN。
-
Dueling DQN(2015):
将 Q 网络拆分为 “状态价值 V (s)” 和 “优势函数 A (s,a)”,输出 Q(s,a)=V(s)+A(s,a)−1∣A∣∑aA(s,a)Q(s,a) = V(s) + A(s,a) - \frac{1}{|A|}\sum_a A(s,a)Q(s,a)=V(s)+A(s,a)−∣A∣1∑aA(s,a)(减去均值避免歧义)。
损失函数同 DQN(用拆分后的 Q 值计算),权重更新:θ←θ−β∇θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ−β∇θL(θ)。
-
Prioritized Experience Replay(PER,2016):
改进 DQN 的经验回放,给 “误差大的样本” 更高采样优先级(如 TD 误差δ=r+γmaxQ(s′,a′)−Q(s,a)\delta = r + \gamma \max Q(s',a') - Q(s,a)δ=r+γmaxQ(s′,a′)−Q(s,a))。
损失函数:L(θ)=∑iwi(ri+γmaxa′Qθ−(si′,a′)−Qθ(si,ai))2L(\theta) = \sum_i w_i (r_i + \gamma \max_{a'} Q_{\theta^-}(s'_i,a') - Q_\theta(s_i,a_i))^2L(θ)=∑iwi(ri+γmaxa′Qθ−(si′,a′)−Qθ(si,ai))2
其中,wi=(1N⋅1P(i))ηw_i = (\frac{1}{N} \cdot \frac{1}{P(i)})^\etawi=(N1⋅P(i)1)η为优先级权重(P(i)P(i)P(i)为样本iii的优先级,η\etaη为调整因子),权重更新同 DQN。
-
Rainbow(2017):
集成 DQN 的 6 种改进(Double DQN、Dueling DQN、PER、多步回报、C51、噪声网络),损失函数为集成后的综合损失,权重更新结合各组件优化逻辑。
-
分布型价值算法:
-
C51(Categorical DQN,2017):学习 Q 值的概率分布p(z∣s,a)p(z|s,a)p(z∣s,a)(zzz为离散回报值),目标分布为p′(z)=∑r+γz′=zp(r,s′∣s,a)pθ(z′∣s′,a′)p'(z) = \sum_{r + \gamma z' = z} p(r,s'|s,a) p_\theta(z'|s',a')p′(z)=∑r+γz′=zp(r,s′∣s,a)pθ(z′∣s′,a′)。
损失函数(交叉熵):L(θ)=−E[∑zp′(z)logpθ(z∣s,a)]L(\theta) = -\mathbb{E}[\sum_z p'(z) \log p_\theta(z|s,a)]L(θ)=−E[∑zp′(z)logpθ(z∣s,a)],权重更新:θ←θ−β∇θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ−β∇θL(θ)。
-
QR-DQN(Quantile Regression DQN,2017):用分位数回归估计 Q 值分布,损失函数为分位数 Huber 损失,权重更新同 C51。
二、基于策略的算法(Policy-Based)
直接学习策略函数 π(a∣s;θ)\pi(a|s;\theta)π(a∣s;θ)(动作的概率分布),通过优化策略梯度最大化累积回报,适合连续动作空间。
-
REINFORCE(1992):
蒙特卡洛策略梯度算法,用完整轨迹的回报作为梯度更新权重,公式:∇θJ(θ)≈∑t=0T∇θlogπθ(at∣st)⋅Gt\nabla_\theta J(\theta) \approx \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t∇θJ(θ)≈∑t=0T∇θlogπθ(at∣st)⋅Gt
其中,Gt=∑k=tTγk−trkG_t = \sum_{k=t}^T \gamma^{k-t} r_kGt=∑k=tTγk−trk为从时刻ttt开始的累积回报。
权重更新:θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)(α\alphaα为策略学习率)。
缺点:方差大(依赖完整轨迹)。
-
Vanilla Policy Gradient(VPG,基础策略梯度):
REINFORCE 的简化版,用累积回报直接更新策略,是多数策略算法的基础。
梯度公式同 REINFORCE,权重更新:θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。
-
TRPO(Trust Region Policy Optimization,2015):
解决策略梯度 “更新步长难控制” 的问题,通过 “信任域” 限制策略更新幅度,保证性能单调提升。
优化目标:maxθE[πθ(a∣s)πθold(a∣s)Aθold(s,a)]\max_\theta \mathbb{E}[ \frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)} A_{\theta_{old}}(s,a) ]maxθE[πθold(a∣s)πθ(a∣s)Aθold(s,a)],约束E[KL(πθold(⋅∣s),πθ(⋅∣s))]≤δ\mathbb{E}[ \text{KL}(\pi_{\theta_{old}}(\cdot|s), \pi_\theta(\cdot|s)) ] \leq \deltaE[KL(πθold(⋅∣s),πθ(⋅∣s))]≤δ(δ\deltaδ为信任域半径)。
权重更新:通过共轭梯度法求解带约束优化问题,更新θ\thetaθ。
-
PPO(Proximal Policy Optimization,2017):
TRPO 的简化高效版,用 “剪辑目标函数”(Clip Objective)限制新旧策略差异,训练稳定、实现简单。
目标函数:LCLIP(θ)=E[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]L_{CLIP}(\theta) = \mathbb{E}[ \min(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t) ]LCLIP(θ)=E[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]
其中,rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}rt(θ)=πθold(at∣st)πθ(at∣st)为策略比率,ϵ\epsilonϵ为剪辑系数(通常取 0.2),AtA_tAt为优势函数。
权重更新:θ←θ+α∇θLCLIP(θ)\theta \leftarrow \theta + \alpha \nabla_\theta L_{CLIP}(\theta)θ←θ+α∇θLCLIP(θ)(多轮小批量更新)。
-
DPG(Deterministic Policy Gradient,2014):
针对连续动作空间,学习确定性策略 a=μ(s;θ)a = \mu(s;\theta)a=μ(s;θ)(而非概率分布),梯度计算更高效。
策略梯度:∇θJ(θ)=E[∇θμ(s;θ)∇aQ(s,a;ϕ)∣a=μ(s;θ)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \mu(s;\theta) \nabla_a Q(s,a;\phi) |_{a=\mu(s;\theta)} ]∇θJ(θ)=E[∇θμ(s;θ)∇aQ(s,a;ϕ)∣a=μ(s;θ)](ϕ\phiϕ为 Q 函数权重)。
权重更新:θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。
三、演员 - 评论家算法(Actor-Critic,AC)
结合 “策略(Actor)” 和 “价值函数(Critic)”:Actor 负责输出动作,Critic 评估动作好坏(用 TD 误差替代蒙特卡洛回报),降低方差,提升效率。
- 基础 AC:
-
Critic(V 函数,权重ϕ\phiϕ)更新:L(ϕ)=E[(Gt−Vϕ(st))2]L(\phi) = \mathbb{E}[(G_t - V_\phi(s_t))^2]L(ϕ)=E[(Gt−Vϕ(st))2],ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。
-
Actor(策略π\piπ,权重θ\thetaθ)更新:∇θJ(θ)=E[∇θlogπθ(at∣st)(Gt−Vϕ(st))]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \log \pi_\theta(a_t|s_t) (G_t - V_\phi(s_t)) ]∇θJ(θ)=E[∇θlogπθ(at∣st)(Gt−Vϕ(st))],θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。
-
A2C(Advantage Actor-Critic,2016):
用 “优势函数 A(s,a)=Q(s,a)−V(s)A(s,a) = Q(s,a) - V(s)A(s,a)=Q(s,a)−V(s)” 替代 Critic 的原始回报,进一步降低方差。
-
Critic(V 函数)更新:同基础 AC,ϕ←ϕ−β∇ϕE[(r+γVϕ(s′)−Vϕ(s))2]\phi \leftarrow \phi - \beta \nabla_\phi \mathbb{E}[(r + \gamma V_\phi(s') - V_\phi(s))^2]ϕ←ϕ−β∇ϕE[(r+γVϕ(s′)−Vϕ(s))2]。
-
Actor 更新:∇θJ(θ)=E[∇θlogπθ(a∣s)A(s,a)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \log \pi_\theta(a|s) A(s,a) ]∇θJ(θ)=E[∇θlogπθ(a∣s)A(s,a)],θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。
-
A3C(Asynchronous Advantage Actor-Critic,2016):
A2C 的异步版本,多个线程并行探索,本地更新后同步到全局参数,更新公式同 A2C(异步执行)。
-
DDPG(Deep Deterministic Policy Gradient,2015):
结合 DQN 和 DPG,用于连续动作空间:
-
Critic(Q 网络,权重ϕ\phiϕ)更新:L(ϕ)=E[(r+γQϕ−(s′,μθ−(s′))−Qϕ(s,a))2]L(\phi) = \mathbb{E}[(r + \gamma Q_{\phi^-}(s', \mu_{\theta^-}(s')) - Q_\phi(s,a))^2]L(ϕ)=E[(r+γQϕ−(s′,μθ−(s′))−Qϕ(s,a))2],ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)(ϕ−\phi^-ϕ−、θ−\theta^-θ−为目标网络权重)。
-
Actor(策略μ\muμ,权重θ\thetaθ)更新:∇θJ(θ)=E[∇aQϕ(s,a)∣a=μθ(s)∇θμθ(s)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_a Q_\phi(s,a) |_{a=\mu_\theta(s)} \nabla_\theta \mu_\theta(s) ]∇θJ(θ)=E[∇aQϕ(s,a)∣a=μθ(s)∇θμθ(s)],θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。
-
TD3(Twin Delayed DDPG,2018):
改进 DDPG 的 “过度估计” 问题,双 Critic 网络取最小值:
-
Critic 更新:L(ϕi)=E[(r+γminj=1,2Qϕj−(s′,μθ−(s′))−Qϕi(s,a))2]L(\phi_i) = \mathbb{E}[(r + \gamma \min_{j=1,2} Q_{\phi_j^-}(s', \mu_{\theta^-}(s')) - Q_{\phi_i}(s,a))^2]L(ϕi)=E[(r+γminj=1,2Qϕj−(s′,μθ−(s′))−Qϕi(s,a))2],ϕi←ϕi−β∇ϕiL(ϕi)\phi_i \leftarrow \phi_i - \beta \nabla_{\phi_i} L(\phi_i)ϕi←ϕi−β∇ϕiL(ϕi)(i=1,2i=1,2i=1,2)。
-
Actor 延迟更新(每 2 次 Critic 更新后):同 DDPG 的 Actor 更新。
-
SAC(Soft Actor-Critic,2018):
最大熵强化学习代表,目标是 “最大化累积回报 + 策略熵”:
-
Critic(双 Q 网络)更新:L(ϕi)=E[(r+γ(minj=1,2Qϕj−(s′,a′)−αlogπθ−(a′∣s′))−Qϕi(s,a))2]L(\phi_i) = \mathbb{E}[ (r + \gamma (\min_{j=1,2} Q_{\phi_j^-}(s',a') - \alpha \log \pi_{\theta^-}(a'|s')) - Q_{\phi_i}(s,a))^2 ]L(ϕi)=E[(r+γ(minj=1,2Qϕj−(s′,a′)−αlogπθ−(a′∣s′))−Qϕi(s,a))2],ϕi←ϕi−β∇ϕiL(ϕi)\phi_i \leftarrow \phi_i - \beta \nabla_{\phi_i} L(\phi_i)ϕi←ϕi−β∇ϕiL(ϕi)。
-
Actor 更新:∇θJ(θ)=E[αlogπθ(a∣s)−Qϕ1(s,a)]\nabla_\theta J(\theta) = \mathbb{E}[ \alpha \log \pi_\theta(a|s) - Q_{\phi_1}(s,a) ]∇θJ(θ)=E[αlogπθ(a∣s)−Qϕ1(s,a)](α\alphaα为温度参数),θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。
四、基于模型的强化学习(Model-Based)
先学习环境模型(状态转移概率 p(s′∣s,a)p(s'|s,a)p(s′∣s,a) 和奖励函数 r(s,a)r(s,a)r(s,a)),再用模型指导策略学习,数据效率更高。
- Dyna-Q(1991):
-
模型参数更新:用真实数据学习p^(s′∣s,a)\hat{p}(s'|s,a)p^(s′∣s,a)和r^(s,a)\hat{r}(s,a)r^(s,a)(如最小二乘拟合)。
-
Q 值更新:结合真实经验(同 Q-Learning)和模型生成的虚拟经验(s′∼p^(⋅∣s,a)s' \sim \hat{p}(\cdot|s,a)s′∼p^(⋅∣s,a),r=r^(s,a)r = \hat{r}(s,a)r=r^(s,a))。
- MBPO(Model-Based Policy Optimization,2019):
-
模型更新:用神经网络拟合p(s′∣s,a)p(s'|s,a)p(s′∣s,a),损失为预测误差L=E[∥s′−p^(s′∣s,a)∥2]L = \mathbb{E}[ \|s' - \hat{p}(s'|s,a)\|^2 ]L=E[∥s′−p^(s′∣s,a)∥2]。
-
策略更新:用模型生成虚拟轨迹,通过 PPO 优化策略(同 PPO 公式)。
五、离线强化学习(Offine RL)
仅利用固定数据集训练策略,解决实际场景中 “交互成本高 / 危险” 的问题。
- BCQ(Batch-Constrained Q-Learning,2018):
-
Q 网络更新:L(ϕ)=E(s,a,r,s′)∼D[(r+γmaxa′∈Aϵ(s′)Qϕ−(s′,a′)−Qϕ(s,a))2]L(\phi) = \mathbb{E}_{(s,a,r,s') \sim D}[ (r + \gamma \max_{a' \in \mathcal{A}_\epsilon(s')} Q_{\phi^-}(s',a') - Q_\phi(s,a))^2 ]L(ϕ)=E(s,a,r,s′)∼D[(r+γmaxa′∈Aϵ(s′)Qϕ−(s′,a′)−Qϕ(s,a))2](Aϵ(s′)\mathcal{A}_\epsilon(s')Aϵ(s′)为数据集动作附近的安全动作集)。
-
权重更新:ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。
- CQL(Conservative Q-Learning,2020):
- Q 网络更新:L(ϕ)=DQNæY¨a˚¤±+λE[log∑aexp(Qϕ(s,a))−Qϕ(s,a)]L(\phi) = \text{DQNæŸå¤±} + \lambda \mathbb{E}[ \log \sum_a \exp(Q_\phi(s,a)) - Q_\phi(s,a) ]L(ϕ)=DQNæY¨a˚¤±+λE[log∑aexp(Qϕ(s,a))−Qϕ(s,a)](第二项为保守项,压低未见过的动作 Q 值),ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。
六、多智能体强化学习(MARL)
多个智能体在同一环境中交互,需考虑智能体间的协作 / 竞争关系。
- MADDPG(Multi-Agent DDPG,2017):
-
智能体iii的 Actor 更新:同 DDPG,梯度依赖全局 Critic 对联合动作的评估。
-
全局 Critic 更新:L(ϕ)=E[(r+γQϕ−(s′,a1′,...,aN′)−Qϕ(s,a1,...,aN))2]L(\phi) = \mathbb{E}[ (r + \gamma Q_{\phi^-}(s',a'_1,...,a'_N) - Q_\phi(s,a_1,...,a_N))^2 ]L(ϕ)=E[(r+γQϕ−(s′,a1′,...,aN′)−Qϕ(s,a1,...,aN))2],ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。
-
QMIX(2018):
全局 Q 值Qtotal(s,a1,...,aN)=MIX(q1(s,a1),...,qN(s,aN);ω)Q_{total}(s,a_1,...,a_N) = \text{MIX}(q_1(s,a_1),...,q_N(s,a_N); \omega)Qtotal(s,a1,...,aN)=MIX(q1(s,a1),...,qN(s,aN);ω)(MIX\text{MIX}MIX为混合网络,ω\omegaω为权重)。
- 混合网络更新:L(ω)=E[(r+γmaxa′Qtotal(s′,a′)−Qtotal(s,a))2]L(\omega) = \mathbb{E}[ (r + \gamma \max_{a'} Q_{total}(s',a') - Q_{total}(s,a))^2 ]L(ω)=E[(r+γmaxa′Qtotal(s′,a′)−Qtotal(s,a))2],ω←ω−β∇ωL(ω)\omega \leftarrow \omega - \beta \nabla_\omega L(\omega)ω←ω−β∇ωL(ω)。
其他重要算法
-
N-step TD:用 N 步回报更新,如 V 函数更新:V(st)←V(st)+α[Gt:t+n−V(st)]V(s_t) \leftarrow V(s_t) + \alpha [G_{t:t+n} - V(s_t)]V(st)←V(st)+α[Gt:t+n−V(st)],其中Gt:t+n=∑k=tt+n−1γk−trk+γnV(st+n)G_{t:t+n} = \sum_{k=t}^{t+n-1} \gamma^{k-t} r_k + \gamma^n V(s_{t+n})Gt:t+n=∑k=tt+n−1γk−trk+γnV(st+n)。
-
H-DQN(分层):高层策略选子目标,低层策略更新同 DQN,高层策略梯度依赖低层目标达成的回报。
这些算法的权重更新公式体现了各自的优化逻辑,从简单的表格更新到深度网络的梯度下降,从单步更新到多步规划,共同推动强化学习在复杂场景中的应用。
(注:文档部分内容可能由 AI 生成)