强化学习算法种类丰富,可按学习目标 (基于价值 / 基于策略 / 演员 - 评论家)、数据使用方式 (在线 / 离线)、是否依赖环境模型(无模型 / 有模型)等维度分类。以下按核心逻辑梳理常见算法,并补充各算法的权重更新公式:
一、基于价值的算法(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))2L(\theta) = \mathbb{E}(r + \\gamma \\max_{a'} Q_{\\theta\^-}(s',a') - Q_\\theta(s,a))\^2L(θ)=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))2L(\theta) = \mathbb{E}(r + \\gamma Q_{\\theta\^-}(s', \\arg\\max_{a'} Q_\\theta(s',a')) - Q_\\theta(s,a))\^2L(θ)=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),约束EKL(πθold(⋅∣s),πθ(⋅∣s))≤δ\mathbb{E} \\text{KL}(\\pi_{\\theta_{old}}(\\cdot\|s), \\pi_\\theta(\\cdot\|s)) \leq \deltaEKL(πθold(⋅∣s),πθ(⋅∣s))≤δ(δ\deltaδ为信任域半径)。
权重更新:通过共轭梯度法求解带约束优化问题,更新θ\thetaθ。
-
PPO(Proximal Policy Optimization,2017):
TRPO 的简化高效版,用 "剪辑目标函数"(Clip Objective)限制新旧策略差异,训练稳定、实现简单。
目标函数:LCLIP(θ)=Emin(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(θ)=Emin(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))2L(\phi) = \mathbb{E}(G_t - V_\\phi(s_t))\^2L(ϕ)=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))2L(\phi) = \mathbb{E}(r + \\gamma Q_{\\phi\^-}(s', \\mu_{\\theta\^-}(s')) - Q_\\phi(s,a))\^2L(ϕ)=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))2L(\phi_i) = \mathbb{E}(r + \\gamma \\min_{j=1,2} Q_{\\phi_j\^-}(s', \\mu_{\\theta\^-}(s')) - Q_{\\phi_i}(s,a))\^2L(ϕ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))2L(\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)∥2L = \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))2L(\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˚¤±+λElog∑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˚¤±+λElog∑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))2L(\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))2L(\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 生成)