新闻详情

新闻详情

首页 / 资讯中心 / 详情

控制作为推断:从最优控制到概率图模型的统一视角

发布时间:2026/10/2 4:54:48来源:尧图网络
控制作为推断:从最优控制到概率图模型的统一视角
1. 为什么要把控制问题当成推断问题在强化学习和最优控制这个圈子里大家平时聊得最多的是策略梯度、Q-learning、MPC这些工具。每个工具背后都有一套自己的数学假设和推导逻辑但很少有人退一步问这些方法之间有没有一个统一的视角我第一次接触Control as Inference这个概念是在读Sergey Levine那篇把控制问题重新形式化为概率推断的论文时。核心想法一句话就能概括与其把控制问题看作在这个状态选这个动作能拿多少奖励的优化问题不如把它看作给定观测到最优行为反推状态和动作的后验分布的推断问题。这个视角转换看着只是换个说法实际上带来了一连串有趣的结果。传统最优控制把奖励函数当作客观指标目标是最大化累计奖励概率推断则把表现得好当作一个观测事件比如O_t1表示在t时刻这一步是好的然后通过贝叶斯公式反推什么样的轨迹更可能是好轨迹。两类问题在数学上等价但推断视角允许我们借用概率图模型里成熟的前向后向算法、变分推断工具还能直观地解释熵正则化、探索与利用的平衡这些强化学习里的经典概念。这篇博文面向两类读者一类是已经在跑强化学习算法、想深入理解SAC这类算法背后原理的研究者和工程师另一类是刚从最优控制转过来、想建立概率视角的机器人方向同学。我会从零开始搭建这套框架不预设你已经熟悉图模型推断但过程中会涉及一些必要的基础推导尽量把每一步的来龙去脉讲清楚。2. 从最优化到推断核心思路拆解2.1 传统控制问题的本质先看经典的最优控制问题。给定一个动态系统状态s_t通过状态转移分布p(s_{t1}|s_t, a_t)演化我们在每个时刻选择动作a_t目标是找到一条轨迹τ(s_0, a_0, s_1, a_1, ..., s_T)使得累加奖励最大。写成标准形式是max E_{p(τ)}[Σ_{t0}^{T} r(s_t, a_t)]这是一种典型的求最大值的逻辑。所有优化方法都围绕这个目标展开动态规划从后往前传值函数策略梯度对策略参数求梯度MPC在滚动时域里反复求解子问题。这个框架本身没什么问题但它有一个隐性假设缺乏讨论我们相信奖励函数已经完美地编码了我们想要的行为。这个假设在实际系统里经常不成立。奖励函数是人为设计的稀疏奖励、伪奖励、局部最优陷阱都是常见问题。更重要的是最优化框架给出的是一个最优解而真实世界中我们往往需要的是一组合理的行为分布特别是面对不确定性时我们想知道哪些行为是稳健的、哪些行为可能失败而不只是一个点估计。2.2 概率图模型引入的视角转变Control as Inference把问题放到了一个概率图模型里。我们定义一个最优性变量O_t它是个二值变量O_t1表示当前这一步对应的状态和动作是好的。条件概率定义为p(O_t1|s_t, a_t) exp(r(s_t, a_t))注意这里奖励函数变成了概率的指数权重它的值域可以是任意实数exp之后变成(0, ∞)之间的正数不需要归一化。这个设计让表现好的概率与奖励单调对应——奖励越大这一步被判定为好的概率越高。有了这个变量之后整个控制问题就变成给定所有时刻的最优性观测O_{1:T}1推断状态和动作的后验分布p(τ|O_{1:T})。这就是一个标准的条件推断问题。我们不再直接最大化某个目标而是推断一个后验分布。最优策略可以从后验分布中提取在每一个状态s_t下后验分布中动作的边缘分布或者说条件分布π(a_t|s_t)就是最优策略。2.3 为什么后验比最优更有信息量从优化到推断的转变表面上只是数学形式的变化实际含义差异很大。优化问题只输出一个最优解序列而推断问题的输出是完整的后验分布。后验分布里包含了不确定性信息哪些轨迹同样合理哪些轨迹有风险但偶尔也会出现这些信息对于后续的信任区域更新、模型集成、多任务迁移都很有用。另一个角度是软性程度。传统最优控制里一条轨迹如果不是最优的就完全没价值但在推断框架里次优轨迹只是概率稍低依然被保留在后验分布中。这种软性属性直接引出了对探索行为的解释次优动作也会有一定概率被采样到这就是探索的来源。强化学习中探索与利用的平衡由此获得了优雅的概率解释而不是靠人工给epsilon-greedy调参那种工程凑合。注意这里我刻意没有纠结归一化常数的问题。p(O_t1|s_t, a_t)exp(r(s_t,a_t))里的指数在构建整个图模型时会产生全局归一化常数Z后面做推断时需要处理但现在先不展开后面变分推断部分会看到它是怎么自然出现的。3. 最优性变量与软价值函数核心细节解析3.1 图模型结构与变量定义整个概率图模型由三部分构成状态的动态转移p(s_{t1}|s_t, a_t)策略的先验分布可以简单设为均匀分布或者任何合理的动作分布以及最优性观测节点O_t。轨迹上的联合分布写出来是p(s_{0:T}, a_{0:T}, O_{1:T}) p(s_0) Π_{t0}^{T-1} p(s_{t1}|s_t, a_t) Π_{t0}^{T-1} π(a_t|s_t) Π_{t1}^{T} p(O_t|s_t, a_t)仔细看这个结构可以发现它和隐马尔可夫模型HMM非常像。状态转移是隐藏状态的演化动作是隐藏状态下的观测或决策变量最优性变量O_t则像HMM里的可观测发射。这个类比不是随便说说的——后面推断算法直接借鉴了HMM的前向后向算法只是把发射概率换成了奖励的指数形式。3.2 软价值函数的推导过程现在要回答核心问题给定最优性变量全部为1状态和动作的后验分布是什么我们从后向消息传递开始推导。定义后向消息贝叶斯平滑项为β_t(s_t, a_t) p(O_{t1:T}1|s_t, a_t)它的含义是如果当前处于状态s_t并执行动作a_t那么从t1时刻开始一直到终止时刻每一步都被判定为最优的概率是多少。注意这不只是一个标量概率它还要考虑未来所有时刻的最优性。根据概率图模型的消息传递后向消息满足递推关系β_t(s_t, a_t) p(O_t1|s_t, a_t) * E_{p(s_{t1}|s_t,a_t)}[ β_{t1}(s_{t1}) ]这里β_{t1}(s_{t1})是下一步状态层面的后向消息把动作平均掉之后的版本。定义V_t(s_t) log β_t(s_t)对数空间的后向消息并假设状态转移是确定性的s_{t1}f(s_t, a_t)于是得到一个极其简洁的递推式V_t(s_t) log E_{π(a_t|s_t)}[ exp(r(s_t, a_t) V_{t1}(f(s_t, a_t))) ]这里V_t的含义就变成了软价值函数。当策略π是均匀分布时它退化为标准的软贝尔曼备份。这个log-sum-exp结构在控制领域很重要——它把传统的max操作替换成了softmax允许所有动作按概率贡献价值而不是只取最高分。3.3 软策略与软Q的闭式表达接下来我们可以定义软Q函数Q_t(s_t, a_t) r(s_t, a_t) V_{t1}(s_{t1})它度量的是先执行a_t之后都按照软价值函数行事的期望回报。有了软Q之后最优策略也有闭式解π(a_t|s_t) exp(Q_t(s_t, a_t) - V_t(s_t))这个表达式告诉我们在推断框架下最优策略不是一个硬性规则而是一个玻尔兹曼分布——动作概率与软Q值指数正比。收入对数配分函数V_t刚好起到归一化的作用。这种软策略与后面SAC算法Soft Actor-Critic里用熵正则化推出来的策略形式完全一致这不是巧合。如果系统是线性高斯、奖励是二次型那么V_t和Q_t都可以用解析形式表达整个推断过程变成卡尔曼滤波一类的问题非常优雅。这也是LQR线性二次调节器的软版本。非线性情况则要用到函数逼近这为神经网络做值函数拟合留了接口。实操心得我开始学这部分的时候卡在为什么软价值函数要用log-sum-exp而不是直接用max。后来想通了log-sum-exp是对max的平滑近似而且它在概率框架里有严格的贝叶斯解释。当你想要确定性最优控制时把温度参数温度调到0log-sum-exp就逐渐逼近max相当于从概率推断退化为经典最优控制。这个数学上的连续性让人很舒服。4. 推断算法的落地前向后向与软迭代4.1 前向消息与后验轨迹分布上一节推导了后向消息描述了从现在看未来的最优性概率。前向消息则刚好相反描述从过去看现在的最优性概率。定义前向消息α_t(s_t)实际中通常用其对数形式它表示走到状态s_t且到目前为止所有最优性观测都成立的概率。前向递推式为α_t(s_t) p(s_t, O_{1:t}1) E_{s_{t-1}, a_{t-1}}[ α_{t-1}(s_{t-1}) p(s_t|s_{t-1}, a_{t-1}) p(O_t1|s_t, a_t) ]前向和后向消息都算出来之后通过贝叶斯公式组合就得到完整的后验轨迹分布p(τ|O_{1:T}1) ∝ α_T(s_T) * β_T(s_T)如果你熟悉HMM的Baum-Welch算法会发现几乎一模一样的结构。区别只在于这里的发射概率是奖励的指数而转移概率是系统的动力学。这种结构上的相似性让实现变得简单很多概率编程库已经内置了消息传递接口。4.2 软策略迭代算法实际应用中很少显式计算完整的后验轨迹分布维度太高而是利用策略/动作层面的后验做迭代。软策略迭代算法是经典策略迭代的软版本每一轮交替做两步第一步是策略评估。给定当前策略π计算软价值函数V_t。这一步通过软贝尔曼备份迭代完成类似于动态规划里把值函数反复打磨。第二步是策略改进。利用上一步得到的软Q函数更新策略π_new(a_t|s_t) ∝ exp(Q_t(s_t, a_t))这个更新相当于朝软Q大的方向移动概率质量但保持动作的多样性。有意思的是与标准策略迭代每次改进都变得更贪心不同软策略改进是往熵正则化方向靠拢它在提升Q值的同时限制了策略与旧策略的KL散度保证了更新不剧烈。从这个角度看软策略迭代和TRPOTrust Region Policy Optimization有异曲同工之妙TRPO通过KL散度约束控制更新幅度软策略迭代通过熵正则化自然产生类似的效果。理解了这一步再看SAC算法就特别顺畅——SAC本质上就是用神经网络参数化V、Q和π然后用随机梯度下降实现软策略迭代的连续空间版本。4.3 轨迹分布视角下的行动采样除了逐时刻条件推断还有一条路径是直接对后验轨迹分布做采样。上面已经提到后验分布p(τ|O_{1:T}1)正比于p(τ) * exp(Σr_t)其中p(τ)是动力学和先验策略定义的先验轨迹分布。这个形式让采样方法变得天然可行我们可以用马尔可夫链蒙特卡洛MCMC或者重要性采样近似这个后验。我最喜欢的一个解释是把奖励函数看作对轨迹的一种观测证据后验轨迹分布就是把先验分布向高奖励区域重新加权。在机器人系统中动力学模型通常可以精确评估MCMC方法可以处理非平滑奖励或离散动作空间价值函数方法处理不了的问题轨迹采样法反而行。代价是采样效率低需要大量样本才能覆盖高概率区域。5. 与强化学习、SAC和模仿学习的连接5.1 从推断视角看策略梯度打开任意一本强化学习教材策略梯度定理告诉我们要最大化期望奖励对策略参数求梯度。但从推断视角看这个操作有点绕——先构建一个轨迹分布p_θ(τ)再把奖励作为权重去做蒙特卡洛估计。推断视角直接给出一个替代方案与其把奖励理解为采样的权重不如把它理解为观测到的证据直接推断后验策略。这个视角能清晰解释为什么策略梯度方法总被诟病样本效率低它在利用奖励信息时抛弃了后验分布的结构信息只通过梯度这一个足够统计量传递信息。反观软策略迭代它通过值函数把奖励信息沿着时间维度传播每一步都能用到全局信息。这也是SAC等基于值函数的算法在样本效率上显著优于原始策略梯度的原因之一。5.2 SAC算法的概率血缘Soft Actor-CriticSAC是目前无模型强化学习领域最主流的算法之一我接触的不少实际项目里它都比PPO表现稳定。SAC的目标函数是J(π) Σ_t E_{(s_t,a_t)~ρ_π}[r(s_t,a_t) α H(π(·|s_t))]这里H是熵项α是温度系数负责调节探索与利用的平衡。看这个式子再回看前一节的推导很容易发现它就是软策略迭代在变分推断框架下的对偶形式——熵正则化项就是KL散度的倒数温度系数α扮演着最优性变量强度的角色。这层血缘关系不是我硬凑的。在Control as Inference原文里作者推导了变分分布q(τ)与目标后验p(τ|O)的KL距离最小化问题得出的下界恰好就是期望奖励熵。换句话说SAC看着像是给奖励加了熵惩罚本质上是在做一个变分推断近似推断最优后验。搞懂这套理论之后你再看SAC源码里那些温度系数调整逻辑会有一种原来如此的透彻感。注意SAC的温度系数α在实践里如果调得太小策略就会变得太贪心崩溃成确定性策略调得太大策略又会过分保守奖励信号根本传不进去。在Control as Inference框架中α对应的是最优性变量O_t的置信度你可以把它理解为我们对奖励的相信程度。这个解释有助于直觉上判断如何调节α。5.3 模仿学习中的潜在应用Control as Inference在模仿学习里也很有用。标准的模仿学习是行为克隆直接把专家数据当监督标签监督训练策略。但专家的演示本身不是最优轨迹只是一个表现不错的样本。用推断视角来看专家演示就是给定最优性变量O1条件下的采样我们想推断的是后验策略而不是简单复制演示的状态-动作对。这就解释了为什么简单的行为克隆在专家数据不够多样时容易学出很怪的行为——它没有把给定观察推断行为分布这件事做对。如果把推断目标改成最小化策略与后验分布的KL散度或者用对数条件概率做最大似然往往会稳不少。我在实际做机器人示教数据训练时就经常把行为克隆改造成软策略更新效果显著更稳。6. 实操中的弯路与排查经验6.1 数值稳定性log空间必须用到底这部分是血泪教训。在实现软价值函数递推时log-sum-exp看起来人畜无害实际数值坑非常深。奖励函数取值范围稍大exp之后立刻爆float的上限如果奖励很小且为负log-sum-exp又会把概率压到0梯度消失。我的做法是全程在对数空间操作用log-sum-exp的稳定版本logsumexp(x) max(x) log(Σ exp(x - max(x)))消息传递的所有中间量都存log域只在最后做归一化时才转换到概率空间。类似Kalman滤波里协方差矩阵要保持半正定一样log域是一个你容易忽略但极其关键的工程细节。6.2 状态转移的随机性会改变递推形式前面推导的时候我默认了确定性转移s_{t1}f(s_t,a_t)这是为了推导简洁。实际系统里动力学会经常有噪声比如机器人控制里的摩擦、延迟、执行器噪声。如果转移是随机的软贝尔曼递推里那个期望不是简单地把V_{t1}塞进预测的s_{t1}而是要对未来的状态分布求期望V_t(s_t) log E_{a_t~π}[ exp(r E_{s_{t1}|s_t,a_t}[V_{t1}(s_{t1})]) ]注意期望和exp的顺序不能交换。很多刚实现的新手在这里掉坑直接把V_{t1}的输入从预测状态改成了实际下一状态推导全错了。如果系统复杂到需要函数逼近这个期望通常用采样来估计这一步的方差控制就直接决定了整个算法的稳定性。6.3 后验轨迹分布的高方差与长度限制轨迹层面的后验分布p(τ|O)直接采样会遇到高方差问题这在长时域任务中尤其明显。原因在于先验p(τ)与后验之间的重叠区域很小重要性权重容易爆炸。缩短时域、加tempering温度退火、用变分分布做中间桥梁这些手段都能缓解问题。我在实验里最常用的一种务实方案是分段接地气把长轨迹切成一段段短片段分别做推断用值函数把片段之间的边界串起来。6.4 常见问题速查表问题现象可能原因排查方向软价值函数训练发散温度系数过大或过小先固定温度观察奖励幅度再调整α的对数域尺度策略采样动作太集中软策略温度偏低检查Q的scale确认奖励没有膨胀到让exp饱和log-sum-exp返回NaN输入包含inf或0概率排查奖励函数是否有无穷值转移概率是否有0项模仿学习输出抖振后验策略熵过大调低熵正则或者缩短短片段长度降低近似误差长轨迹后验采样不收敛重要性权重方差爆炸改用片段策略或加温度退火6.5 一个收敛性实践检验如果你在实现软策略迭代我建议先在一个线性高斯环境上做验证比如二维线性系统加二次型奖励。这种环境下软价值函数有解析解你可以精确对照程序结果和解析结果误差应该在小数点后几位。这个环境大概只花半天时间就能搭好但是调试价值无比巨大。我每次怀疑自己的实现哪里出错了第一件事就是回到这个环境上跑一圈归零测试。实践下来靠这种单元验证整轮算法流程比直接在MuJoCo里调参高效太多。7. 写在最后的工具心得算起来从第一次接触这个框架到现在已经有两年多我越来越觉得Control as Inference的价值不在它给出的算法本身而在于它训练人把最优控制问题翻译成概率语言的思维能力。当你习惯用给定证据的后验分布去理解强化学习很多算法之间的边界变得模糊很多看似需要硬调的超参数也有了概率方向的直觉解释。一个小技巧收尾实际在用这个框架分析问题时我习惯先在白板上画出概率图模型把每个变量的条件依赖关系标注清楚再在图上走一遍消息传递。这个看起来笨拙的习惯帮我避开了大量想当然带来的推导错误。把控制当作推断来理解真正的好处是让问题结构自己浮出水面而不是靠记忆公式硬套。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

提示词工程五步框架:从玄学调参到可复用工程资产 2026/10/2 5:43:54

提示词工程五步框架:从玄学调参到可复用工程资产

提示词工程这件事,我见过太多人把它做成了“玄学调参”。同一个模型,有人写出来的提示词能让输出质量翻三倍,有人折腾一下午还在抱怨“AI不懂我”。差距不在模型,在于你有没有一套可复用的框架。我前后带过十几个项目,…

阅读更多 →
AI写作全流程指南:从选题到润色的5个提示词模板 2026/10/2 5:43:53

AI写作全流程指南:从选题到润色的5个提示词模板

写作这件事,最怕的不是没灵感,而是灵感来了却不知道怎么把它变成一篇完整的文章。我见过太多人对着空白文档发呆两小时,最后憋出三百字废话;也见过有人一天产出五篇稿子,质量还稳得一批。差距在哪?不在天赋…

阅读更多 →
Seedance提示词生成器:模板+案例+Agent Skill自动化实战 2026/10/2 5:43:52

Seedance提示词生成器:模板+案例+Agent Skill自动化实战

1. 这套提示词工具到底解决了什么问题做AI视频生成这行的朋友应该都有体会,Seedance这类工具真正卡脖子的地方从来不是模型本身,而是提示词。你脑子里有个画面,但落到输入框里就变成了干巴巴的几句话,生成出来的东西跟想象差了十万…

阅读更多 →
Qt Designer 从入门到实战:布局、信号槽与VS Code最佳实践 2026/10/2 5:43:52

Qt Designer 从入门到实战:布局、信号槽与VS Code最佳实践

1. 为什么我坚持让团队用 Qt Designer,而不是纯代码写界面先说结论:如果你只是做个只有三五个控件的工具窗口,那手写布局代码完全没问题;但只要界面稍微复杂一点,比如有分组框、多级布局、若干个需要对齐的表单&#x…

阅读更多 →
AI工程实战:从零搭建RAG问答系统的完整技术栈与踩坑指南 2026/10/2 5:43:52

AI工程实战:从零搭建RAG问答系统的完整技术栈与踩坑指南

AI工程这个词最近被反复提,但很多人理解成了“用AI写代码”或者“写几个Prompt调通接口”。我见过太多团队,Demo做得风生水起,一上生产环境就各种翻车:模型输出不稳定、数据质量一团糟、成本直线上升、出了问题不知道怎么排查。真…

阅读更多 →
CSS Flex横向自动换行的底层原理与避坑指南 2026/10/2 5:43:45

CSS Flex横向自动换行的底层原理与避坑指南

1. 这个需求背后的真实场景:不是“怎么排”,而是“怎么不崩”“CSS div 横向排列自动换行”——光看标题,很多人第一反应是“哦,flex-wrap: wrap 就完事了”。但我在带前端新人做电商商品卡片、后台数据标签栏、多端适配的导航菜…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉