

论文标题:Can We Extract Physics-like Energies from Generative Protein Diffusion Models? 作者:Sudeep Sarma, Harrison Truscott, Da Xu, Kendall Reid, Lee-Shin Chu, Jacky Chen, Jeffrey J. Gray 机构:约翰·霍普金斯大学化学与生物分子工程系 / 匹兹堡大学 发布平台:bioRxiv 预印本(2025年11月提交,2026年6月修订) 代码:github.com/Graylab/DiffEnergy
本文的核心问题是:扩散模型(diffusion model)在生成蛋白质结构 / 蛋白质对接构型时,是否隐式学到了一个类似物理自由能的函数? 作者从统计热力学出发,建立了一套将扩散模型的得分函数(score function)转换为负对数似然(negative log-likelihood, NLL)、进而映射为热力学能量的理论框架,并提出两种数值积分方案——沿扩散轨迹积分(DiffLikelihood)与沿概率流ODE积分(FlowLikelihood)——来实际计算这个"学习能量"。该方法先在一个可解析求解的1D高斯混合玩具模型上验证,再应用到蛋白质-蛋白质对接扩散模型 DFMDock 上,并与基于物理的 Rosetta 能量函数进行系统对比。
结论是双重的:在 DFMDock 采样质量好的目标上,学习能量能复现出类似 Rosetta 的"能量漏斗"(energy funnel);但在采样质量差的目标上,学习能量的排序能力会失效,甚至将错误结构判定为全局能量最小值。在25个标准对接测试靶点上,学习能量(flow 积分)在9个靶点上与 Rosetta 打平或更优,diffusion 积分在8个靶点上打平或更优,两者结合可覆盖13个靶点。
扩散模型最初由 Sohl-Dickstein 等人(2015)在非平衡热力学的类比下提出,如今已成为图像生成(DALL-E、Stable Diffusion、Midjourney)、视频生成(Sora)、蛋白质设计(RFDiffusion、Chroma)和蛋白质结构预测(AlphaFold3 及其衍生模型 Chai-1、Boltz-2、OpenFold3)领域的主流范式。
一个值得注意的现象是:这些深度学习方法在蛋白质结构预测任务上的表现,已经超过了 Rosetta ——后者是基于数十年构象采样与物理启发能量函数研究而建立的生物分子建模套件。这引出一个根本性问题:这些高性能深度学习方法是否隐式学到了一个类似自然界自由能函数的潜在势函数?
作者指出,这个问题并不能想当然地回答"是"。生成模型的训练目标只是要求采样概率在真实蛋白质结构处最大化(对应安芬森假说 Anfinsen's dogma:天然折叠的蛋白质结构处于其自由能最低状态)。但存在无数种泛函形式,可以在同一组(折叠)状态处取得相同的极小值 ——也就是说,AI学到的能量函数,在数学上完全没有必要与自然的能量函数一致。此外,扩散模型通常不允许直接访问某一状态的概率值,这进一步增加了"提取"这一隐式能量的难度。
因此,本文的研究目标被明确为:建立一套通用方法,从扩散模型中提取其隐式学到的"势函数",并将其与基于物理的能量函数进行对比,以此探讨AI方法与物理方法是否可以相互融合、相互改进。
为使问题可控,作者选择了一个可解释、低维的具体场景:刚体蛋白质-蛋白质对接(rigid-body protein-protein docking)问题,使用此前由同一团队开发的扩散对接模型 DFMDock(Denoising Force Matching Dock)。该模型通过向实验测定的结合复合物添加平移和旋转噪声进行训练,推理时输入两个未结合的单体,生成结合复合物的结构。本文为了让数学推导成立,只保留了平移自由度的扩散过程,从而也可以与一个1D平移扩散的高斯混合玩具模型做对照。
为提取蛋白质深度学习模型中隐含的"能量"信息,此前的研究大致可分为三条路线,本文在理论与方法上分别与之有交集和区别。
这类方法的局限在于:辅助网络是在下游任务上单独训练的,因此无法回答原始生成模型本身从结构生成任务中学到了什么物理信息。
EBM 直接学习一个标量能量函数 E_t(x) = −log p(x_t,t) − log Z,而非score-based扩散模型学习的能量梯度 ∇x log p(x_t,t)。代表工作包括:
这类方法虽然原理上更贴近"直接学能量",但标准 EBM 在稀疏数据区域难以确定相对归一化常数,且 t=0 时刻的能量估计往往噪声较大——这恰恰是本文要绕开、转而从score-based模型直接积分恢复似然的原因之一。
将物理力 F(x)=∇xE(x) 与扩散模型在 t→0 处学到的得分函数 ∇x log p(x_t,t) 联系起来的研究包括:
此外,Song et al. (2020) 最早提出通过概率流ODE(probability flow ODE)与瞬时变量替换公式(instantaneous change-of-variables formula)从score-based扩散模型中恢复似然——这正是本文 FlowLikelihood 方法的理论起点,但本文将其推广为基于 Fokker-Planck 方程的、适用于任意(分段可微)路径的更一般表述,概率流ODE只是其中的一个特例。
作者将本文对现有文献的扩展总结为三点:

扩散模型分两个阶段工作:
dx_t = f(x_t, t) dt + g(t) dw_t
其中 f(x_t,t) 是漂移函数,g(t) 是扩散系数,w_t 是维纳过程(布朗运动)。dx_t = [f(x_t,t) − g(t)² ∇x log p(x_t,t)] dt + g(t)dw̄_t
式中 ∇x log p(x_t,t) 即"得分函数"(score),是边缘概率分布对空间的对数梯度,由神经网络 s_θ(x_t,t) 学习近似。模型训练使用去噪得分匹配目标(denoising score matching,Vincent, 2011):
L(θ,t) = E[ ½‖s_θ(x_t,t) − ∇x log q(x_t,t|x₀)‖² ]
其中 q(x_t,t|x₀) 是给定单个数据点 x₀ 时到达 x_t 的条件概率——这一目标在数据集规模增大时被证明收敛到真实的边缘得分函数。
本文的1D玩具模型和DFMDock均采用"方差爆炸型"(variance exploding)前向过程,即 f(x_t,t)=0,扩散系数采用指数型噪声调度:
g(t) = σ₀ (σ₁/σ₀)^t · √(2 log(σ₁/σ₀))
由此可解析地求出整个扩散过程累积的噪声方差 σ²_noise = σ₁² − σ₀²,进而确定先验分布的均值与方差。DFMDock 使用 σ₀=0.1Å(约为晶体结构原子坐标的不确定度)、σ₁=30Å;本文的1D模型基于超参数实验(详见原文补充材料)选用 σ₀=30、σ₁=70。
本文专门构建了一张术语对照表,用以厘清扩散模型数学语言与统计物理语言之间的对应关系,这也是论文一个具有实用价值的副产品:
数学符号 | AI 视角解释 | 物理学对应解释 | 量纲 |
|---|---|---|---|
t | 扩散时间 | "炼金术"式的转换变量(类似自由能扰动法中的耦合参数) | [τ] |
x_t | 状态 | 位置 | [L] |
β = 1/kT | 缩放常数 | 逆温度 | [T]²[M]⁻¹[L]⁻² |
E_t(x_t) | 时变能量 | 能量 | [M][L]²[T]⁻² |
∇x log p(x_t,t) | 得分(score) | 无直接物理对应 | [L]⁻¹ |
β⁻¹∇x log p(x_t,t) | — | 力 | [M][L][T]⁻² |
g(t) | 扩散系数(AI惯例) | — | [L][τ]⁻¹ᐟ² |
½g(t)² | — | 扩散系数(物理学惯例定义) | [L]²[τ]⁻¹ |
w_t ~ N(0,I) | 扰动核 | 热涨落 | [τ]¹ᐟ² |
f(x_t,t) | 漂移项 | 外部势 | [L][τ]⁻¹ |
−log p₀(x₀) | 负对数似然(NLL) | 无量纲数值 | [1] |
−β⁻¹ log p₀(x₀) | — | 热力学自由能 | [M][L]²[T]⁻² |
值得指出的是,扩散时间 t 在物理上并不对应真实的时间演化,而更接近自由能扰动法(alchemical free energy methods)中用于在两个分子间做非物理过渡、计算化学势的耦合变量——这也是为什么作者特意区分了"炼金时间维度 [τ]"与"物理时间维度 [T]"。
对于处于热力学平衡态的蛋白质对接/折叠系统,数据分布 p₀ 可以通过玻尔兹曼关系定义一个能量 E₀(x₀):
p₀(x₀) = e^(−βE₀(x₀)) / Z₀,其中 Z₀ = ∫_Ω e^(−βE₀(x₀)) dx₀
由于扩散过程中间时刻 t 的边缘分布 p(x_t,t) 在准静态假设下也可视为一种"伪平衡态"(只要扩散过程满足Fokker-Planck方程即保证准静态),可将上式推广为时变能量 E_t:
p(x_t,t) = e^(−β_t E_t(x_t)) / Z_t
由于 E_t 在 t>0 时并不对应任何真实物理系统,β_t 和 Z_t 的取值本质上是任意的——但关键在于,这一选择不影响 t=0 处能量的计算结果。因此本文统一假设常数 β_t=β、Z_t=Z₀=Z,对两边取对数并求空间梯度,即可把得分函数完全用能量表示:
∇x log p(x_t,t) = −β∇x E_t(x_t) = βF_t(x_t)
这意味着:score-based扩散模型的输出,在数学上可以理解为一个按 β 缩放的、无量纲化的"力",描述了时刻 t 处的学习能量函数 E_t(x_t)。这正是本文整套理论的基石。
一个直觉性的想法是:既然得分对应"力",能否直接套用经典力学的工作积分公式
ΔE = −∫_S F_t(x_t) · dx_t ≈ −β⁻¹ ∫_S s_θ(x_t,t) · dx_t
来计算能量变化?作者证明这个做法在理论和数值上都是错误的——因为该工作积分公式的推导隐含假设了能量函数 E_t 只是空间 x 的函数、与时间 t 无关。但本文定义的学习能量 E_t 显式依赖于扩散时间(对应"炼金"转换过程中,即使系统内部不做功,自由能本身也会随转换变量变化)。
正确做法必须同时考虑 E_t 的空间梯度与时间偏导:
dE_t = ∇x E_t(x)·dx_t + (∂E_t/∂t) dt = −F_t(x)·dx_t + (∂E_t/∂t) dt
由此得到完整的能量积分式:
ΔE = ∫₀¹ [ −F_t(x_t)·(∂x_t/∂t) + ∂E_t(x)/∂t ] dt
这一修正是本文方法论的核心转折点:它说明仅凭"score=力"的物理类比是不够的,必须额外处理一个纯粹源于扩散过程本身、与空间路径无关的时间项。
把上式中的能量替换为对数似然(并约去 β⁻¹),可写出对数似然沿任意时空路径 x_t 的线积分:
Δlog p = ∫₀¹ [ ∇x log p(x_t,t)·(∂x/∂t) + ∂log p(x_t,t)/∂t ] dt
其中第一项可直接用学习得分 s_θ(x_t,t) 近似;第二项(时间偏导)则借助Fokker-Planck方程求解(假设漂移项 f=0):
∂log p(x_t,t)/∂t = ½g(t)²[∇x·∇x log p(x_t,t)] + ½g(t)²‖∇x log p(x_t,t)‖²
第一项中的 ∇x·∇x log p(x_t,t) 是得分函数的散度,等价于其雅可比矩阵的迹(trace),可以借助现代深度学习框架(本文使用 PyTorch)的自动微分功能高效计算。将这些近似代入,最终给出本文的核心似然恢复公式:
log p₀(x₀) = log p₁(x₁) − ∫₀¹ [ s_θ(x_t,t)·(dx_t/dt) + ½g(t)²Tr(∇x s_θ(x_t,t)) + ½g(t)²‖s_θ(x_t,t)‖² ] dt
这一公式的意义在于:它把似然恢复问题,转化为对得分函数及其散度沿任意路径的积分问题——而 Song et al. (2020) 提出的概率流ODE瞬时变量替换公式,恰好是这一更一般公式在"路径取概率流ODE"这一特殊情形下的退化形式。
最自然的积分路径,就是模型推理时实际采样得到的反向扩散轨迹本身。由于该轨迹只在离散时间步上有采样点,本文采用梯形积分法则逐段近似上述积分:
∫ₐᵇ f(x)dx ≈ (b−a)·[f(b)+f(a)]/2
这样做的优点是可以直接复用推理时已经计算过的score,无需额外前向计算。数学上,梯形法则还可解释为对该似然积分量做Stratonovich积分的离散实现(而非标准的Itô积分)——这正是使链式法则、从而使本文积分公式成立的必要条件。
作者也测试了更高精度的方案:对每段轨迹插值采样更多点(插值梯形积分),或用黑箱ODE求解器逐段精细积分(分段ODE积分)。结果显示:对1D高斯玩具模型,额外精度并未显著改变结果;但对DFMDock轨迹,分段ODE积分明显降低了噪声,因此本文最终结果采用分段ODE积分版本的扩散轨迹似然。
不过,由于反向SDE中的噪声项会带来较大的位移波动,DiffLikelihood 计算出的似然天生带有较高噪声。
一种更平滑的替代方案,是沿 Song et al. (2020) 提出的概率流ODE(probability flow ODE)积分——该ODE与原扩散过程共享相同的边缘分布,但完全去除了随机性:
dx_t = −½g(t)²∇x log p(x_t,t) dt ≈ −½g(t)² s_θ(x_t,t) dt
将这一显式路径代入似然积分公式后,原式中的第一项与第三项恰好相互抵消(详见原文补充材料推导),最终简化为:
log p₀(x₀) = log p₁(x₁) − ∫₀¹ ½g(t)² Tr(∇x s_θ(x_t,t)) dt
这一简化并非偶然:由于概率流ODE轨迹本身就是一个连续归一化流模型(Continuous Normalizing Flow, CNF),沿其自身边缘分布演化的轨迹天然满足瞬时变量替换公式(即沿向量场散度积分即可得到似然变化)。
FlowLikelihood 相比 DiffLikelihood 有两个明显优势:可用黑箱ODE求解器精确求解,且不依赖某次具体的扩散推理过程——这意味着可以对任意给定的数据点(包括从未被模型生成过的实验结构本身)计算其学习似然。代价是每个样本都需要单独求解一次完整路径,计算成本更高。
ODE积分统一使用 TorchDiffeq 库的 RK4方法(四阶Runge-Kutta、3/8法则),步长与对应扩散推理的步数保持一致(1D模型用1000步训练但以100步采样测试,步长1/100;DFMDock用40步,步长1/40)。
为了在已知解析解的前提下检验方法是否可靠,作者训练了一个简单的1D扩散模型,目标分布为三组分高斯混合:
p₀(x) = 0.4·N(x; −30, 8.0²) + 0.3·N(x; 0, 5.0²) + 0.3·N(x; 40, 10.0²)
训练数据为60,000个采样点,模型用1000步反向扩散生成10,000个测试样本。


这一结果验证了本文整套理论推导和数值积分方法的有效性,为将其应用到更复杂的蛋白质对接系统提供了基础信心。
docking_local_refine 局部精修,再用 REF15 能量函数打分;成功案例:2SIC(枯草杆菌蛋白酶BPN'与抑制剂复合物) DFMDock生成的样本最高可达 DockQ = 0.96(高质量)。在该靶点上,无论沿flow还是diffusion积分得到的学习能量,都呈现出类似Rosetta的"能量漏斗"——全局能量最小值出现在近天然结构附近。但与Rosetta相比,DFMDock的能量地形呈现尖锐的漏斗+扁平的外围分布:许多样本(包括一些DockQ或iRMSD排名中等的样本)聚集在几乎相同的非最小能量值附近(flow积分约 βE₀≈4,diffusion积分约0)。作者推测,这可能意味着DFMDock并未学到能引导蛋白质趋向正确取向的长程物理相互作用,而只是学会了"缺乏正确短程接触的结构大概率不是天然结构"这一较弱的判别规则。

失败案例:2A1A(PKR激酶结构域-eIF2α复合物) DFMDock生成的最佳结构DockQ仅0.72(中等质量)。在该靶点上,学习能量完全未能捕捉正确的结合能学:flow积分给出的能量地形,其全局最小值竟落在一个错误结构附近(iRMSD≈20Å,DockQ≈0);diffusion积分则没有表现出这一错误最小值(作者认为这可能源于随机路径积分本身方差更大,也可能反映flow路径存在系统性偏差)。无论哪种积分方式,两者都未能将近天然结构排在比非天然结构更低的能量位置——而Rosetta能量则正确地将近天然结构排在最低能量处。
真实结构(ground truth)的学习能量:借助FlowLikelihood可以直接计算实验测定的天然结构本身的学习能量(无需对应的扩散轨迹)。结果显示,真实结构的学习能量常常高于DFMDock生成的最佳对接结构,且落在低质量结构能量分布的两个标准差范围内——这进一步说明,DFMDock在这些目标上尚未充分学到反映真实蛋白质相互作用的能量地形。

将上述分析推广到全部25个DB5.5靶点(图6a):
排序方法 | 与/优于Rosetta的靶点数(满分25) |
|---|---|
学习能量(Flow积分) | 9 |
学习能量(Diffusion积分) | 8 |
Flow + Diffusion 综合 | 13 |

一个有意思的发现是:Flow积分与Diffusion积分擅长的靶点呈现出某种正交性——两者表现优异的目标集合并不完全重叠,合并后能覆盖的靶点数(13/25)明显超过任意单一方法。这提示沿不同路径计算的学习能量可能捕捉到了模型不同侧面的信息,具备互补、集成使用的潜力(详见第七节讨论)。但作者也提醒,Diffusion积分在部分低质量结构上的"意外优秀"表现,有多少归因于随机噪声本身仍不完全清楚。
从数学结构上看,本文的似然恢复积分,本质上是在数据空间与时间组成的扩展空间 ℝⁿ⁺¹ 上,对一个保守向量场(梯度场)做线积分。保守场的核心性质是:积分结果只取决于路径的两个端点,与具体走哪条路径无关。既然先验 p₁ 有解析表达式,那么无论用哪条路径(flow或diffusion、或不同的diffusion轨迹)计算同一个 x₀ 的 log p₀,理论上应该得到完全相同的数值。
但作者坦诚地报告:实际计算中并非如此——flow轨迹与diffusion轨迹给出的似然值存在系统性差异,甚至终点几乎重合的不同diffusion轨迹,也可能给出显著不同的似然估计。这一不一致性被归结为两个主要误差来源。
扩散模型的一个关键假设是:t=1时刻的边缘分布已收敛为一个均值方差已知的高斯分布。但现实中,真正达到这一理想需要添加无限噪声,且需要精确估计数据分布的均值与方差——前者原则上不可能,后者在数据稀缺的条件式扩散任务(如蛋白质对接)中尤为困难。
这一问题并非本文独有:图像生成领域已有研究指出类似扩散调度与采样步数设计上的先验偏差问题(Lin et al., 2024;Franzese et al., 2023),作者推测这一问题很可能同样存在于AlphaFold3等表现优异的结构预测模型中,只是尚未被系统检验。
有趣的是,作者通过补充实验发现:先验不精确性对两类积分路径的影响方式不同——它会给确定性的flow积分带来系统性偏差(bias),而对随机的diffusion轨迹积分,主要表现为增加噪声,但终点相同的多条随机轨迹的似然均值仍能保持较高准确度。这一发现启发作者提出:对多条终点相同的路径计算学习能量并取平均,原则上可能是一种比单一flow或diffusion路径更准确的估计方式——这一思路与 He et al. (2026) FEAT方法中使用的路径集成(ensembling)技术在原理上高度一致,可能是未来值得正式化、系统化的研究方向。
第二个误差来源更深层:已有研究表明,深度学习训练出的score函数往往并不严格满足空间上的保守性(Salimans & Ho, 2021),也不完全满足Fokker-Planck方程所要求的一致性(Lai et al., 2023,FP-Diffusion)。换言之,神经网络近似的"力场"本身可能存在内部矛盾,这会直接引入路径依赖性。
作者进一步推测:这种保守性偏差很可能在扩散空间和扩散时间的不同区域表现出不同程度——训练和推理过程中被采样得更密集的高概率区域(即更接近真实数据分布的区域),其得分函数的保守性/一致性可能更好。这意味着,选择与扩散过程边缘分布本身匹配的SDE/ODE路径(而非随意构造的路径),在理论上更有依据;但同时也暗示,精心设计的替代路径(例如更贴近高概率区域的路径)有可能给出更准确的似然估计——这是留给后续研究的开放问题。
作者将这项工作定位为第一次尝试从生物分子score-based扩散模型中提取势函数、并直接与物理能量函数做对比的研究,其意义可以从三个层面理解:
具体的后续研究方向包括:
作者明确指出了本研究的几点局限:
扩散模型确实学到了一些与物理能量景观相关的信息,在采样质量较高的目标上表现出与Rosetta相似的能量漏斗结构;但这种"物理直觉"并不稳健,在采样质量较差的目标上会出现排序失效甚至方向性错误,且不同积分路径给出的能量估计本身就存在尚未完全理解的系统性差异——这恰恰说明,用可控的数学工具去检验AI模型的隐式知识,比直接断言"AI学会了物理"更有价值。