
第 13 讲讲的是“控制作为变分推断”这是伯克利 2026 春季深度强化学习课程中的一个很有意思的理论分支。这一讲不是教一个新的网络结构也不是给一个新的优化器等而是把经典最优控制、概率图模型和变分推断放到同一张桌子上重新回答一个问题当我们要设计一个控制器时到底是在“优化一个目标函数”还是在“逼近一个分布”。这个视角一旦打通后面看最大熵强化学习、软 Actor-Critic、引导策略搜索GPS、变分策略搜索VPS这类算法会明显觉得它们的数学来源是统一的。简单说轨迹是有分布的奖励可以定义出一个“理想分布”控制就是在做概率分布匹配。本文会把这一讲的推导思路、数学符号、与策略梯度类算法的联系用中文整理出来并给出一套可以在 CPU 上跑通的玩具验证流程方便 CSDN 读者对照学习。这篇博客适合这几类读者正在跟伯克利深度强化学习课程、但英文推导跟得比较吃力的人已经把 PPO、DQN 跑熟却总感觉“变分推断和强化学习”关系说不清的人以及想从机器人控制、运动规划转向学习法控制的研究者。这一讲不要求高端显卡纯 CPU 也能完成全部符号推导和简单实验。1. 第 13 讲核心内容速览维度说明课程归属伯克利 2026 春季深度强化学习课程第 13 讲主题定位控制 / 策略搜索的变分推断解释前置知识概率图模型、KL 散度、ELBO、最优控制基础核心目标把“轨迹优化”改写为“分布匹配”关键技术变分推断、KL 最小化、最大熵 RL、轨迹分布建模代表算法方向奖赏加权回归、变分策略搜索、引导策略搜索、最大熵策略硬件要求CPU 即可完成理论推导与玩具实验不依赖 GPU适合读者RL 进阶学习者、机器人控制方向研究生、算法工程师这一讲的价值不在“跑分”在于数学解释力。理解它之后你会明白为什么很多 RL 算法里会出现“熵正则项”为什么策略梯度可以被改写成“奖赏加权最大似然”为什么搜索策略时要限制策略分布和旧策略分布之间的距离。这些都是变分推断视角下很自然的结果。2. 为什么控制问题可以写成变分推断2.1 经典控制视角 vs 概率视角传统控制里我们写一个状态空间模型[ x_{t1} f(x_t, u_t) ]然后定义代价函数[ J \sum_{t0}^{T} c(x_t, u_t) ]控制的目标是找一组控制序列 (u_{0:T})让代价最小。这是确定性最优控制核心工具是动态规划、LQR、MPC。到了随机控制和强化学习里模型往往不唯一动态可能带有随机噪声奖励函数也可能不是一步显式可得的。这时候与其找一个“唯一的、最优的”控制序列不如把一个完整轨迹看成随机变量[ \tau (s_0, a_0, s_1, a_1, \dots, s_T) ]控制器的任务变成让“控制器产生的轨迹分布”尽量集中在“奖励高的轨迹”上。这就天然形成了分布匹配结构。2.2 奖励定义“愿望分布”给定一条轨迹奖励总和为[ R(\tau) \sum_{t0}^{T} r(s_t, a_t) ]奖励越高的轨迹越是我们“希望出现的”。可以把这种愿望写成非归一化分布[ p(\tau) \propto p_{\text{prior}}(\tau) \exp\left(\frac{R(\tau)}{\alpha}\right) ]其中 (\alpha) 是温度参数控制分布对奖励高低的敏感程度。这个式子说明在没有先验偏置时轨迹好不好完全由指数奖励决定。(\alpha) 越小分布越尖锐只有最高奖励的轨迹才能保留概率(\alpha) 越大分布越平坦低奖励轨迹也有一定出现概率。2.3 控制策略就是另一个轨迹分布策略 (\pi(a_t | s_t)) 和动力学 (p(s_{t1} | s_t, a_t)) 合起来定义出一个轨迹分布[ q(\tau) p(s_0) \prod_{t0}^{T} \pi(a_t | s_t) p(s_{t1} | s_t, a_t) ]注意这里的动力学部分固定不变我们能改变的只有策略。因此“找到最优策略”等价于“找到一个可用的轨迹分布 (q(\tau))让它尽可能靠近理想分布 (p(\tau))”。衡量两个分布靠近程度的默认工具就是 KL 散度[ \min_q KL(q(\tau) | p(\tau)) \min_q \mathbb{E}_{q(\tau)}\left[ \log \frac{q(\tau)}{p(\tau)} \right] ]把 (p(\tau)) 的表达式代入做一下展开会发现这个 KL 最小化目标自动包含“最大化奖励期望”和“最大化策略熵”两项。也就是说变分推断不是重新发明了一个强化学习算法而是在数学上解释了为什么带熵正则的策略优化会自然出现。3. 变分推断与强化学习共用的数学底座这一讲用到的数学量不多但每一个都很关键。先把它们整理清楚。3.1 KL 散度KL 散度定义[ KL(q | p) \int q(x) \log \frac{q(x)}{p(x)} dx ]它的直观含义是如果用 (p) 作为真实分布却用 (q) 去近似会损失多少信息。注意 KL 不对称(KL(q | p) \neq KL(p | q))方向不同行为差异很大。在控制问题里(q) 是策略生成的轨迹分布(p) 是理想分布。我们做的是反向 KL即 (KL(q | p))。反向 KL 会强迫 (q) 在 (p) 概率极低的地方也尽量低所以策略不会过度探索毫无奖励的区域。3.2 证据下界 ELBO如果理想分布带有归一化常数 (Z)[ p(\tau) \frac{1}{Z} \tilde p(\tau) ]直接算 (KL(q | p)) 会遇到未知的 (Z)。变分推断的处理方式是把问题改写成最大化 ELBO[ \log Z \geq \mathbb{E}{q(\tau)}[\log \tilde p(\tau)] - \mathbb{E}{q(\tau)}[\log q(\tau)] ]把这个式子搬到控制问题上(\tilde p(\tau)) 就是带指数奖励的轨迹权重第二项就是策略熵。因此[ \text{ELBO} \mathbb{E}_{q}[\text{奖励}] \text{熵项} - \text{与先验的 KL} ]强化学习里常见的“奖励 熵”目标本质就是最大化控制问题的变分下界。3.3 从推断式写法到奖赏加权回归如果固定策略分布形式为高斯分布只更新均值参数那么变分推断的更新可以写成[ \theta \leftarrow \arg\max_\theta \sum_{i1}^{N} w_i \log q_\theta(\tau_i) ]其中权重[ w_i \frac{\exp(R(\tau_i) / \alpha)}{\sum_j \exp(R(\tau_j) / \alpha)} ]这就是奖赏加权回归。它不是一个具体的“新算法”而是变分推断在“轨迹分布为指数族、策略分布被参数化”这个假设下的自然产物。4. 控制作为变分推断的推导路线图这一节把整体推导拆成五步跟着走一遍比死记公式要牢靠得多。第 1 步定义轨迹分布。先写出带策略参数的 (q_\theta(\tau))写出动力学和策略是如何乘起来组成轨迹概率的。第 2 步定义理想分布。用奖励定义非归一化分布 (\tilde p(\tau) p_{\text{prior}}(\tau) \exp(R(\tau)/\alpha))。这里先验一般取参考控制分布如果没有任何先验可以直接把它归一化掉。第 3 步建立变分目标。写成最大化 ELBO而不是直接最小化未知的 KL。这一步的好处是所有项都可以用样本估计。第 4 步展开熵项。把 (\mathbb{E}{q\theta}[\log q_\theta(\tau)]) 展开成动力学熵和策略熵之和。动力学与参数无关因此优化时可以丢弃。第 5 步得到策略更新律。最终策略参数更新服从“高奖励轨迹概率提高、低奖励轨迹概率降低”的加权最大似然法则。对高斯策略更新就是计算加权均值和加权方差。整个过程可以用下面这个伪代码表达# 控制作为变分推断的最小结构示意 tau sample_trajectory(pi_theta) score sum(reward for s, a in tau) weight exp(score / alpha) / normalize(...) # 更新策略参数最大化加权对数似然 theta theta lr * weight * gradient_log_pi_theta(tau)这个流程看着很像 REINFORCE但区别在于权重是归一化的 softmax 奖励而不是原始累计奖励。正是这种归一化让更新变得像“分布匹配”而不像“纯粹的梯度上升”。5. 变分推断视角下的一整族强化学习算法5.1 奖赏加权回归与 EM 式策略更新奖赏加权回归把策略搜索当成“加权最大似然估计”来做。每轮采样一批轨迹计算 softmax 权重然后用加权平均更新高斯策略均值。从变分推断角度看这就是坐标下降法E 步固定策略估算轨迹权重。M 步固定权重更新策略分布。这种思路实现简单、方差小但缺点是如果策略分布形式太简单表达能力不足就很难拟合多模态的奖励分布。5.2 引导策略搜索引导策略搜索GPS的核心想法也是变分推断。它在策略之外维护一个“示范轨迹分布”先用轨迹优化方法更新这个分布再用变分推断约束策略去逼近它。这样做的好处是轨迹优化阶段可以不受策略参数化限制而策略拟合阶段又能保证最终控制器可以部署。GPS 和变分推断的关系非常直接本质就是带约束的分布匹配。5.3 最大熵强化学习与软最优控制最大熵 RL 的目标函数写成[ J(\pi) \sum_t \mathbb{E}_{(s_t, a_t) \sim \pi} [r(s_t, a_t) \mathcal{H}(\pi(\cdot | s_t))] ]从变分推断视角看熵项来自 KL 展开时“让策略不偏离参考分布太远”的约束。温度参数 (\alpha) 控制熵项强度等价于控制理想分布中的温度。理解了第 13 讲再看 Soft Actor-Critic 里的熵系数调节就不会觉得它只是一个启发式技巧而是变分推断目标里本来就有的超参数。5.4 算法对照表算法或框架变分推断含义更新目标中的关键项奖赏加权回归指数族轨迹分布的加权 MLE加权对数似然变分策略搜索显式维护轨迹分布并匹配ELBO 策略约束引导策略搜索轨迹优化与策略拟合分离KL 约束的策略更新Soft Actor-Critic最大熵策略迭代奖励 熵MPO 等算子风格方法在旧策略邻域内做分布更新KL 约束的策略改善这张表不需要背重点是建立“变分推断是数学骨架不同 RL 算法是不同骨架实例”的认知。6. 最小验证实验CPU 上观察“分布匹配”发生本讲没有部署题但可以写一个最小实验来验证核心思想。实验目标让一个参数化轨迹分布通过“奖励加权更新”逐步靠近理想分布同时观察 ELBO 和平均回报的变化。实验环境要求很低普通台式机即可操作系统Windows / Linux 均可 Python3.8 依赖numpy, matplotlib 是否需要 GPU不需要6.1 定义玩具问题假设动作是一维实数轨迹长度只取一步奖励函数为[ r(a) - (a - 1)^2 ]理想情况下动作应该集中在 1 附近。策略分布初始化为均值为 5、方差为 1 的高斯分布。6.2 核心更新代码import numpy as np alpha 1.0 lr 0.1 mean 5.0 log_std 0.0 num_samples 100 def reward(a): return -(a - 1.0) ** 2 for iteration in range(50): samples mean np.exp(log_std) * np.random.randn(num_samples) rewards np.array([reward(a) for a in samples]) weights np.exp(rewards / alpha) weights weights / weights.sum() # 加权最大似然更新 new_mean (weights * samples).sum() new_std np.sqrt((weights * (samples - new_mean) ** 2).sum()) # 平滑更新 mean (1 - lr) * mean lr * new_mean log_std (1 - lr) * log_std lr * np.log(new_std 1e-6) if iteration % 10 0: print(fiter {iteration}, mean{mean:.3f}, std{np.exp(log_std):.3f})6.3 预期实验结果与判断标准正常更新 10 到 20 轮后均值会从 5 向 1 移动标准差会逐渐缩小最后策略分布集中在奖励峰值附近。判断实验是否成功的标准均值收敛到最优动作附近。标准差从初始值下降到一个较小范围。加权的平均奖励逐步提高到后期不再明显波动。如果均值不移动或波动剧烈优先检查温度参数 (\alpha)。(\alpha) 太小权重会退化成 one-hot更新方差大(\alpha) 太大权重接近均匀分布收敛会变慢。这个实验虽然和伯克利第 13 讲的完整推导相比非常简单但它抓住了最核心的机制控制策略不是直接被奖励梯度推着走而是作为分布在反复采样和加权拟合的过程中渐渐覆盖高奖励区域。7. 从概率控制回看经典控制工具网上经常能看到 PID、FOC、电机控制一类关键词它们属于确定性的反馈控制方法。第 13 讲的“控制作为变分推断”和这些工具有什么关系这里做个快速对照。维度经典控制PID / 状态反馈变分推断式控制核心对象设定点偏差、增益参数轨迹分布、策略分布模型需求通常需要明确的被控对象模型可以是 Model-based也可以是 Model-free不确定性处理依赖鲁棒性或抗扰设计通过分布概率显式建模多解情况难以表示“多种可行轨迹”分布天然支持多模态候选调参方式整定 PID 增益温度、KL 约束、分布族选择不是说 PID、FOC 会被取代而是说在复杂机器人系统里当任务变成“走到目标区域并避开障碍同时保留多种可行路径”时分布式的控制描述比单点反馈描述更自然。变分推断把策略当成分布来搜索等于保留了多种解决方案而不是强行选出一条唯一轨迹。8. 常见理解误区与思考问题的排查方法8.1 KL 散度方向看反很多人容易把 KL 方向搞混。这里使用的是反向 KL(KL(q | p))。反向 KL 对分布模式的选择倾向是“覆盖单个高概率区域”适合控制因为控制器不需要把低奖励区域也铺满。如果换成正向 KL (KL(p | q))优化的行为会变成“处处不遗漏”结果策略会浪费很多概率质量在没有奖励的区域。8.2 把 ELBO 当成奖励函数来调参ELBO 是一个训练指标不是环境奖励。调参时不要只盯着 ELBO 数字变大而要看策略分布在采样空间里的实际覆盖情况。ELBO 上升但平均回报下降很可能是温度参数设置不当导致熵项权重反常地大。8.3 认为“理想分布已知就能直接采样”理想分布包含未知的归一化常数直接采样不可行。变分推断的意义在于绕开这个归一化常数用策略分布去逼近它。如果跳过了推导直接尝试从 (p(\tau)) 采样会陷入高维积分难题。8.4 忽略策略参数化对分布族的约束变分推断的最终质量受限于策略分布的表达能力。高斯策略只能表示单峰分布遇到多模态奖励环境必然有偏。此时与其硬调温度不如改用混合高斯策略或在迭代中引入密度模型。8.5 排查表现象可能原因排查方法解决方向策略均值不收敛温度设置太大或学习率太大打印权重分布检查 softmax 权重的熵降低温度或降低学习率训练早期 ELBO 快速上升但后续停滞策略分布表达能力不足观察采样轨迹分布是否为多模态改用混合分布或更复杂策略采样方差过大样本数太少权重集中在少数轨迹统计有效样本数增加每轮采样数降低温度收益提高但测试部署时失败训练分布与部署分布不一致检查初始状态分布和噪声水平加 KL 约束控制策略更新步长与策略梯度算法结果差异大变分推断更新是加权 MLE非梯度上升对比两种更新公式的方差明确当前目标最大似然还是最大化奖励9. 对这一讲的整体掌握建议第 13 讲的价值适合用“学数学结构”的方式吸收而不是“跑一个项目”的方式吸收。先从控制问题写出轨迹分布 (q_\theta(\tau))再从奖励构造理想分布 (\tilde p(\tau))然后最大化 ELBO最后把 ELBO 展开成奖励期望加熵项。这一条主线走通了后面看任何“熵正则”类方法都会觉得顺理成章。建议按这个顺序做动作手推一遍 KL 展开确认熵项的来源。在最小一维动作环境中跑通奖赏加权回归代码。把温度参数从 0.1 调到 10观察权重分布和收敛趋势。阅读引导策略搜索原始论文里的推导结构对比这里的五步。回到 Soft Actor-Critic 原文把熵项解释和变分推断解释对照看。这一讲最值得记住的结论强化学习策略搜索并不一定只能理解为“奖励最大化”它完全可以被理解为“用可控的轨迹分布去逼近奖励定义的理想分布”。下一步你可以带着这个视角去读带 KL 约束的策略优化方法也可以去实现一个简单的变分策略搜索。把公式手推一遍会比看十遍别人整理的笔记更有效。