强化学习现在已经是大模型后训练的标配了,随着强化学习算法的成熟以及大模型能力的提升,今后会出现越来越多使用强化学习思路打造的"智能产品"。原因说明:大模型(LLM、多模态模型)的能力增强后,价值评价和策略评价变得更加容易,大模型可以直接替代人工或者传统目标规则进行评价,同时生成模型/世界模型可以逼真地创造模拟环境,几者结合,强化学习的学习周期会快速缩短。
今天整理下基础的强化学习算法,其实了解之后会发现,强化学习基础原理并不难,本质就是基于反馈经验来决定下一步该走什么动作。
强化学习(Reinforcement Learning, RL)是一种机器学习范式,代理(Agent)通过与环境(Environment)交互来学习最优策略(Policy),以最大化累积奖励(Reward)。其核心是试错学习:代理执行动作(Action),观察状态(State)变化和奖励反馈,并据此调整行为。RL 的数学基础是马尔可夫决策过程(Markov Decision Process, MDP),包括状态集 S、动作集 A、转移概率 P、奖励函数 R 和折扣因子 γ。
RL 算法可大致分类为:
- 基于值函数(Value-based):估计状态或状态-动作对的价值(如 Q 值),然后选择价值最高的动作。
- 基于策略(Policy-based):直接优化策略函数,通常使用梯度下降。
- Actor-Critic:结合上述两者,Actor 优化策略,Critic 评估价值。
- 模型-based vs 模型-free:前者学习环境模型,后者直接从经验中学习。
- On-policy vs Off-policy:前者使用当前策略生成数据,后者可使用历史数据。
下面梳理了常见的 RL 算法,并分类比较,便于清晰呈现。
值函数方法(Value-based Methods)
这些方法通过学习值函数(如 V(s) 或 Q(s,a))来间接优化策略。
| 算法名称 | 本质 | 实现方法 | 优缺点 |
|---|---|---|---|
| Monte Carlo Methods | 通过完整轨迹(Episode)采样计算平均回报来估计值函数。适用于无模型环境,不依赖即时转移。 | 1. 生成完整轨迹:从初始状态采样动作直到结束。 2. 计算回报 G_t = ∑ γ^{k} r_{t+k+1}。 3. 更新值函数 V(s) ← (1-α) V(s) + α G_t(First-visit 或 Every-visit)。 伪代码:for each episode: collect trajectory, compute G, update V. | 优点:简单,无偏估计。 缺点:高方差,需要完整轨迹,不适用于连续任务。 |
| Temporal Difference (TD) Learning | 结合 Monte Carlo 和动态规划,使用 bootstrapping(用后续估计更新当前估计)来学习值函数。 | 1. 初始化 V(s)。 2. 对于每个步:δ = r + γ V(s') - V(s)(TD 误差)。 3. 更新 V(s) ← V(s) + α δ。 伪代码:while not converged: sample s,a,r,s', compute TD error, update V. | 优点:在线学习,低方差。 缺点:有偏估计,需要调参 α 和 γ。 |
| SARSA (State-Action-Reward-State-Action) | On-policy TD 方法,学习 Q 值函数,选择 ε-greedy 动作。 | 1. 初始化 Q(s,a)。 2. 采样 s,a,r,s',a'(a' 来自当前策略)。 3. 更新 Q(s,a) ← Q(s,a) + α [r + γ Q(s',a') - Q(s,a)]。 伪代码:for each step: choose a (ε-greedy), observe r,s', choose a' (ε-greedy), update Q. | 优点:安全(考虑探索)。 缺点:收敛慢,不如 off-policy 高效。 |
| Q-Learning | Off-policy TD 方法,使用最大 Q 值 bootstrapping,学习最优 Q 值。 | 1. 初始化 Q(s,a)。 2. 采样 s,a,r,s'。 3. 更新 Q(s,a) ← Q(s,a) + α [r + γ max_{a'} Q(s',a') - Q(s,a)]。 伪代码:for each step: choose a (ε-greedy), observe r,s', update Q using max Q(s',a'). | 优点:高效,可重用经验。 缺点:过估计问题,在连续空间需函数逼近。 |
| Deep Q-Network (DQN) | Q-Learning 的深度版本,使用神经网络逼近 Q 值,处理高维状态(如图像)。 | 1. 使用 CNN/MLP 作为 Q 网络,目标网络稳定训练。 2. 经验回放(Replay Buffer):存储 (s,a,r,s'),随机采样 mini-batch。 3. 更新:loss = [r + γ max Q_target(s',a') - Q(s,a)]^2。 伪代码:initialize replay buffer, for each step: act ε-greedy, store transition, sample batch, update network via Adam. | 优点:处理复杂环境(如 Atari 游戏)。 缺点:样本效率低,过估计(用 Double DQN 缓解)。 |
策略梯度方法(Policy-based Methods)
直接优化策略参数 θ,使预期回报最大化。适用于连续动作空间。
| 算法名称 | 本质 | 实现方法 | 优缺点 |
|---|---|---|---|
| REINFORCE (Monte Carlo Policy Gradient) | 使用策略梯度定理 ∇J(θ) = E[∇log π(a | s) G_t] 更新策略。 | 1. 参数化策略 π_θ (e.g., softmax)。 2. 生成轨迹,计算 G_t。 3. 更新 θ ← θ + α ∇log π(a |
| Proximal Policy Optimization (PPO) | 改进的策略梯度,使用 clipped 比率限制更新,避免大步破坏策略。 | 1. 收集轨迹,使用 GAE(Generalized Advantage Estimation)计算优势 A。 2. 比率 r(θ) = π_θ(a | s) / π_old(a |
Actor-Critic 方法
结合值函数和策略优化,Critic 评估 Actor 的动作。
| 算法名称 | 本质 | 实现方法 | 优缺点 |
|---|---|---|---|
| Actor-Critic (AC) | Actor 更新策略,Critic 更新值函数,提供优势估计减方差。 | 1. Actor: π_θ, Critic: V_ω。 2. 优势 A = r + γ V(s') - V(s)。 3. 更新 Actor: θ ← θ + α ∇log π(a | s) A;Critic: ω ← ω + β ∇[A]^2。 伪代码:for each step: act from π, observe r,s', compute A, update both. |
| Advantage Actor-Critic (A2C) | 同步多代理版本,使用优势函数。 | 与 AC 类似,但多线程并行收集数据,共享参数。伪代码:multiple workers collect trajectories synchronously, aggregate gradients, update. | 优点:加速训练。 缺点:同步开销大。 |
| Asynchronous Advantage Actor-Critic (A3C) | 异步版本,多代理独立更新全局模型。 | 每个 worker 异步运行:收集轨迹,计算梯度,更新全局 Actor/Critic。伪代码:workers run in parallel, each: collect data, compute grads, async update global params. | 优点:高效,利用多核。 缺点:噪声大,收敛不稳定。 |
| Soft Actor-Critic (SAC) | 最大化回报 + 熵,鼓励探索。适用于连续动作。 | 1. Actor: 随机策略 π。 2. Critic: 双 Q 网络。 3. loss_actor = E[α log π - Q(s,a)];loss_critic = [r + γ (min Q' + α H) - Q]^2。 伪代码:sample from replay, update Q with entropy, update π to maximize Q + entropy. | 优点:鲁棒探索,样本高效。 缺点:超参数敏感(如温度 α)。 |
模型-based 方法
学习环境模型,用于规划或增强模型-free 方法。
| 算法名称 | 本质 | 实现方法 | 优缺点 |
|---|---|---|---|
| Dyna-Q | 结合 Q-Learning 和模型学习,使用模拟经验加速学习。 | 1. 学习模型:P(s' | s,a), R(s,a)。 2. 真实更新 Q(如 Q-Learning)。 3. 模拟 k 次:从 buffer 采样 s,a,模拟 s',r 更新 Q。 伪代码:real step: update Q and model; then for k times: sample from model, update Q. |
| Model-based Policy Optimization (MBPO) | 使用学得模型生成额外数据,训练模型-free 策略。 | 1. 训练动态模型 f(s,a) → (s',r)。 2. 从真实 buffer rollout 模拟轨迹。 3. 用混合数据训练 SAC/PPO 等。 伪代码:train model on real data, generate synthetic rollouts, train policy on combined data. | 优点:样本效率高。 缺点:模型不准时性能差。 |
结语
RL 算法的本质在于平衡探索(Exploration)和利用(Exploitation),如 ε-greedy 或 entropy 正则化。实现上,深度 RL(如 DQN, PPO)依赖神经网络和优化器(Adam),经验回放和目标网络是稳定训练的关键。挑战包括稀疏奖励(用 Hindsight Experience Replay 缓解)、部分可观测(用 LSTM 处理)和多代理(MARL 如 QMIX)。
在实践中,选择算法取决于环境:离散动作用 Q-Learning 变体,连续用 PPO/SAC;样本效率优先用模型-based。未来趋势包括结合 Transformer(如 Decision Transformer)和元学习(快速适应新任务)。