从微分方程到神经网络:模型凭什么可靠
我高中数学学得还不错,本科数学学得一般。这次想聊微分方程,我希望先从熟悉的速度、加速度和自由落体出发,把它到底在描述什么弄明白,再去看它怎样和现实发生联系。
聊着聊着,问题就变了:现实里的方程究竟怎么建出来?如果建模依赖人的假设,为什么不用表达能力更强的神经网络?模型漏掉一个因素时,我们还能相信它估计出来的误差吗?再往后,我开始对一种组合方式感兴趣:保留已经知道的机制,把不好建模的部分交给神经网络。
这篇记录沿着这些问题展开。第一人称保留原对话中的提问与感受,知识说明经过核验和必要补全;对话里的实质错误在文末列出。
Ⅰ. 从速度开始:方程给出变化规则
假设一个物体沿直线运动,位置记为 ,时间是 。速度和加速度分别是:
速度描述位置变化得多快,加速度描述速度变化得多快。这里的导数都相对于时间;以后遇到空间上的变化,也可以对空间坐标求导。
从自由落体开始,先把前提放清楚:取竖直向下为正方向,质量 不变,近地面重力加速度 视为常数,暂时忽略空气阻力。牛顿第二定律给出:
这就是一条二阶常微分方程。“二阶”指最高出现二阶导数;“常微分”指未知函数这里只有时间这一个自变量。它规定了位置函数应当满足什么变化规律,位置与时间的完整关系还需要求出来。1
积分一次得到速度,再积分一次得到位置:
如果初始速度是 ,初始位置是 ,两个常数便确定下来:
高中熟悉的 和 ,对应的是从静止开始、把出发点选为位置零点的情况。一般写“速度等于加速度乘时间”,还需要补上恒定加速度与零初速度这些条件。
看到这里,我大概明白微分方程在表达什么了:它把一个量的变化与其他量联系起来。已知变化规则,再加上起始状态,才能进一步求出整个过程。
这个例子可以直接积分得到解析式。更复杂的微分方程未必能写出漂亮的闭式解,常常需要数值求解。还要区分两件事:方程可以表达因果机制,但仅仅写出一个带导数的关系,并不能自动证明现实中的因果。
Ⅱ. 一条现实的方程,是怎么写出来的
理解公式之后,我卡住的地方转到了建模:现实那么复杂,怎么就知道该写成这条方程?感觉它线性,就设一个线性项;觉得有资源限制,就乘上一个修正项——这听起来也太依赖 intuition 了。
建模里确实包含判断与假设,不同部分的依据也并不相同。
仍然看下落。牛顿第二定律约束合力与加速度的关系;忽略阻力是一次简化;如果加上阻力,还需要选择阻力怎样随速度变化,并估计其中的参数。写成线性阻力模型时:
这里, 表示阻力与速度方向相反、大小和速度成正比。这是指定条件下的模型,并非一切物体在空气中下落都遵循它。1
另一种模型采用平方阻力。下落速度 时,可以写成:
在常见空气动力学表达里,阻力大小为 : 是流体密度, 是参考面积, 是阻力系数。只有在这些量可近似视为常量时,才能把它们并为上式的 ;阻力系数本身往往还要通过实验确定。2
两种假设导出不同的终端速度。让加速度为零,即阻力与重力平衡,可直接得到:
和 的单位也不相同,不能把两种模型的公式混用。一个看起来只是符号的小差别,背后可能已经换了一套物理假设。
种群增长也一样。设数量为 ,若每个个体对应的平均净增长率为常数 ,就有 。如果进一步假设这个“人均增长率”随数量增加而线性下降,到 时降为零,便得到:
这里的 表示模型中的环境容纳量。把括号展开就能看到 项,因此这已经是非线性方程;乘上 的理由来自所选假设,也需要观察检验。现实中的资源限制完全可能采取别的形式。
建模包含三件不同的工作:提出有依据的关系,在这些关系下推导结果,再检验它是否适合现实。 能够把方程解出来,只完成了其中一部分。
Ⅲ. 既然要建模,为什么不用神经网络
我是学计算机的,也在做人工智能。我的第一反应很直接:如果数据足够多,计算量也足够,神经网络的非线性表达能力这么强,为什么还要自己猜这些项?
这里要先分清两个概念。微分方程是一种描述变化关系的数学形式,既可以线性,也可以高度非线性;神经网络是一种表示和学习函数的工具。两者可以组合,因此单纯把它们排列成“粗糙模型”和“精细模型”,会遮住真正的区别。3
更值得比较的是:这个预测任务里,我们掌握了什么信息?有多少可信的机制知识,又有多少能覆盖实际使用场景的数据?
如果输入高维、规律难以手工写清,数据学习的灵活性就很有吸引力。若一个系统已有可信的守恒关系、动力学结构或实验规律,这些信息也有价值,不必要求模型全部从样本里重新发现。但机制知识只有在使用条件下仍成立,才可能帮助预测;参数有物理含义,也不代表换一个环境就能直接套用。
对我来说,“外推”是原先没有充分考虑的问题。数据很多,并不等于未来要遇到的情况都已经被覆盖。
可以用一个简单的数学例子看清这件事。下面两个函数在 上完全一样:
即使在这个区间里采集再密集、再准确的数据,也无法仅凭这些观测区分它们;一旦走到 ,二者就开始分开。这是一个说明问题的构造:观测范围内的拟合,不能独自决定观测范围外的规律。
因此,“数据足够多,神经网络就一定最优”还缺少任务、覆盖范围、噪声、训练方式和评价标准等条件。机制模型也没有天然的外推保证;如果原先的假设在新场景里失效,它同样会错。
Ⅳ. 简化会带来多大误差
接着我想知道:即使承认模型需要简化,误差究竟会落在什么量级?能不能在建模时就大概知道它偏得有多远?
首先得明确比较对象。位置误差、速度误差、到达时间误差是不同的量;相对误差要说明分母,预测还要指定时间范围。只说“从一百米落下,忽略阻力会差百分之十”,缺少物体质量、形状和阻力条件,无法成立为一般结论。
线性阻力模型提供了一个可以算清楚的例子。仍然从静止开始,令:
的单位是时间。原方程变为:
两边乘上 ,左边可以合成一个乘积的导数:
从 积分到 ,利用 ,得到:
速度会随着时间渐近趋于 。再对速度积分,并取 ,可得:
这些式子可以直接代回原方程与初始条件检查。在短时间 下,把指数函数展开:
第一项正是无阻力公式,后面是由阻力带来的修正。以无阻力位移 为比较基准,首阶相对差为:
例如,在这个指定模型里,若 ,首阶估计约为 ;代入精确解得到约 。这个数字来自上面的方程计算,不是某类真实物体的实测结论。
这也说明了无量纲化的作用:需要比较的是 这样的无单位比例,单独说一个带单位的阻力系数“很小”,还不够。选定观察时长 后, 才能帮助判断这一段过程里阻力是否适合被忽略。
当 不再很小时,只保留前几项的近似就需要重新检验,不能把首阶结果直接外推。长时间下,线性阻力模型的位置近似按时间线性增长,无阻力模型的位置却按时间平方增长。同一次简化,在不同时间范围里的可靠性可能完全不同。
Ⅴ. 如果有因素根本没被考虑进去呢
我随后想到一个问题:这些误差分析,不也依赖我们对系统的理解吗?如果漏掉了一项重要因素,连算出来的误差范围,可能都只是在一个不完整的模型里成立。
这个担心触到了建模的边界。上面的计算回答的是“线性阻力模型与无阻力模型相差多少”,尚未证明线性阻力模型完整描述了现实。
至少需要区分几类误差。模型结构误差来自遗漏或误写机制;参数与初始条件误差来自已选模型里的量估得不准;数值误差来自计算机近似求解方程。把积分步长调得很小,可以减少一部分数值误差,却不会自动补回模型中没有写出的机制。
无量纲分析比较的是已经列出来的量;摄动分析研究的是明确指定的微小变化。它们有用,但结论总有前提。一个没有进入模型、也没有大小约束的未知作用,无法仅凭现有方程被自动换算成可靠的总误差界。
不过,建模也不需要先穷尽现实的一切因素才能开始。可以先明确目标与使用范围,再用观测、残差、不同条件下的比较去检查简化是否合理。对于无法完全确定、但能假设变化范围的因素,还可以研究输出对这些变化有多敏感。
我当时把这种能力和工程鲁棒性联系起来。这里需要补充一个限定:敏感性分析揭示脆弱点,鲁棒性则要进一步说明系统在哪一类扰动、什么幅度、什么时间范围内仍能维持目标。能够分析扰动,与已经证明对任意未知情况都安全,是不同的结论。
Ⅵ. 把机制放进神经网络,到底放在哪里
聊到这里,我开始对机制和学习的结合感兴趣。我熟悉的训练方式,是给模型 input 和 output,让它根据损失去更新参数。那么,一条微分方程怎么进入这个过程?
最容易理解的入口是训练损失。假设某个浓度场 满足一个简化的一维扩散与衰减模型:
这里, 是空间位置, 是扩散系数, 是衰减系数,本例把二者视为已知常数。浓度同时依赖位置和时间,所以这里出现了偏导数;确定具体问题还需要初始条件与边界条件。
扩散可以理解为由浓度不均引起的摊平过程。例如在一个平滑的局部峰顶,若空间二阶导数为负,扩散项就会使该处浓度下降; 则表示浓度越高,单位时间衰减的量越大。
让网络输出 ,再利用自动微分计算它相对于输入的导数。这个构造需要可用的二阶空间导数,可以采用 tanh 等光滑激活函数。把网络输出代回方程,定义残差:
训练时,除了要求预测贴近观测,还可以要求在选定采样点上,这个残差尽量小:
其中, 可以取方程残差的均方值;其余各项分别衡量观测、初始条件和边界条件的误差。各个 控制权重,并需要结合变量尺度处理。这是典型连续时间 PINN,也就是物理信息神经网络的一种构造。4
它让“符合给定变化规律”成为训练目标的一部分。采用有限权重的残差惩罚时,得到的是软约束;残差小到什么程度、是否足以保证目标量准确,还需要检查。
再往下一步,网络可以直接表示变化率:
是状态, 是神经网络。给定初始状态后,微分方程求解器通过这条变化规律推进状态,这就是 Neural ODE 的基本思路。代表性论文发表于 2018 年。仅采用这种形式,并不自动意味着已经加入某条已知物理定律;其中的连续变量也可以表示网络深度。5
让我更感兴趣的是另一种具体用法:保留已经知道的部分,只把不好写的部分交给网络。当时我的反应很直接:这东西听起来很牛逼。把这个想法写成一个例子,就是:
是系统状态, 是已知模型中的参数, 表示待学习的未知作用。这里学到的可以是一个复杂函数,并不只是把某个固定常数估得更准确。把机制模型与通用函数逼近器组合进微分方程,是 Universal Differential Equations(UDE)框架的一类典型用法。3
这个最简训练例子先假设 和初始状态已知,观测值可以直接与状态各分量对应。给定网络参数后,求解方程得到整条预测轨迹 ,再把轨迹与观测 比较:
随后,通过求解过程计算损失对参数的梯度,再更新网络。这样,在合适的训练设定下,可以直接利用状态观测学习未知动力学,不必把每个时刻的真实导数都作为标签提供。
这几种方法的区别,可以压缩到一张表里:
| 方法 | 网络主要表示什么 | 方程怎样参与 |
|---|---|---|
| 典型 PINN | 解函数,如浓度或温度场 | 通过残差、初边值条件等约束训练 |
| Neural ODE | 状态的变化率 | 求解器沿着网络给出的变化规律推进 |
| UDE 的混合形式 | 已知方程里的未知函数 | 已知结构与可学习项共同构成方程 |
这些概念存在交叉,UDE 的范围也比表里这一种混合形式更广。用它们时,先说明“网络究竟在学什么”,往往比先记名字更有效。
我喜欢这种思路,是因为它保留了已经建立起来的大框架,又给复杂的未知部分留下学习空间。公开研究已探索生物动力学识别、流体模型中的闭合关系等任务,但具体效果仍取决于模型和数据条件。3 网络学出的未知项,也可能同时吸收测量噪声、参数偏差和结构遗漏;拟合得好,还不足以把它直接认定为唯一真实机制。
Ⅶ. 如果先验错了,会不会把模型带偏
紧接着,我就开始担心:如果过早把微分方程加进去,或者大量使用它生成的数据,会不会把模型推到一个不好的地方?
这个担心有明确的技术含义。假设方程漏掉了真实的重要作用,而训练又强烈要求网络服从它,那么网络会受到错误先验的限制。这里可能出现模型失配和系统性偏差,不能全部笼统称为过拟合。
仍以损失里的 为例。它越大,训练通常越重视满足给定方程;但“更符合方程”与“更符合现实”能否同时成立,要看方程本身。在数据与机制明显冲突时,继续增大权重,并不能证明数据错了。
训练困难也不只来自权重大小。不同损失项的尺度、梯度之间的相互影响、采样位置和求解器精度,都可能影响结果。已有研究展示,PINN 即使面对一些不算复杂的方程,也可能因优化问题而失败;网络的函数表达能力足够,并不等于训练一定能找到好解。6
因此,逐步调整权重、改变采样、重新缩放变量、放宽不可靠的机制项,都是需要结合问题验证的办法。不能把“先把机制权重设为零,再慢慢调高”写成普遍适用的训练定律。
用模拟数据也有同样的限制。模拟器可以在其假设下生成更多情景,但这些样本会继承它的偏差。再多的模拟轨迹,也不能自动提供模型假设之外的真实证据。
已知机制的价值,在于提供有依据的限制;这个限制本身仍然需要接受检验。 把规则与学习组合起来,增加的是建模手段,也增加了需要判断哪些信息可信的工作。
Ⅷ. 到了金融尾部,模型能兜住什么
最后,我把问题转到了量化交易:这类方法是否能用于金融?特别是极端行情出现时,机制框架加上神经网络,能不能比原来的模型更好地防范风险?
公开研究确实使用神经网络处理金融任务。例如,Deep Hedging 研究在交易成本等市场摩擦下学习衍生品对冲策略;Neural SDE 相关研究则用网络表示随机动力学,并探索期权市场建模。7、8 这些资料能确认具体研究方向的存在。行业普及程度、不同交易频率下的优劣与实际收益幅度,则需要各自的证据。
先看随机微分方程的一种一般形式:
是状态, 描述漂移, 描述随机扰动的强度, 是布朗运动。这里的漂移和扰动强度本来就可以依赖时间与状态。经典 Heston 模型也已经把波动率作为随机过程处理,因此不能把“传统 SDE”整体描述成只会使用固定波动率。9
为了理解两个增量的区别,可以把一个很短时间步内的变化近似写成:
这里的 是标准正态随机数。第一项给出这一小步的平均趋势,第二项给出随机波动;波动的典型幅度随 缩放。这是说明含义的局部近似,两项的系数仍可随时间与状态变化。
Neural SDE 可以把其中的函数换成神经网络:
它增加了函数表示的灵活性,仍然属于随机动力学建模。学习效果依赖数据、目标与训练条件;相关理论中的无限数据结论,不能直接换成有限金融样本下的极端风险保证。10
尾部风险关注的是低概率、严重损失的那部分结果。如果把某个明确持有期内的损失记为 ,数值越大表示亏损越严重,那么损失分布的右尾就是这里关心的区域。
两个常见指标分别回答不同的问题。 VaR 给出损失分布的 分位门槛;Expected Shortfall(采用一致定义时也称 CVaR)则看最坏 概率质量上的平均损失。前者不告诉我们跨过门槛后会有多严重,后者也不是最大损失的封顶值。11
因此,“ CVaR 降到 ”至少还要说明持有期、损失单位、百分比的分母、基准模型和评价数据。没有这些信息,这个数字无法用来判断某种方法是否可靠。
更关键的是无套利。已有工作专门构造状态空间与网络约束,让相应的 Neural SDE 模型满足指定的无套利条件。这里的约束需要推导和实现,静态与动态无套利也各有条件,并非网络一放进 SDE,就自动获得了保证。8
即使满足无套利,资产仍然可以大跌,持有的组合仍然可能遭受严重损失。价格之间的关系是否一致,与未知极端情景下的实际损失是否被封顶,是两个问题。
因为模型既有机制又能学习,就进一步认为它能够“兜住”没见过的极端情况,这个结论仍然缺少依据。更灵活的函数可以帮助表示复杂波动,却无法凭空提供未被观测、未被假设的风险机制。
从信息上看,只要额外允许一种概率很小、损失很大的情景,有限历史样本就可能完全没有出现过它。模型如果没有相应信息或限制,就不能从这些样本里推出一个可信的确定损失上限。生成更多路径,依然是在现有假设内部做计算。
我在对话里最后追问的是:为什么这种组合能够比原来的模型更好地防范风险?要回答这个问题,仍然需要回到具体任务——它增加了什么有效信息,修正了什么已知缺陷,在哪些场景下经过了验证,又留下了哪些无法覆盖的变化。
整理说明
本文保留原对话的主要提问顺序、作者明确表达的直觉与兴趣,并补齐必要定义和推导。线性阻力与平方阻力的终端速度混用、将微分方程等同于线性或粗糙模型、将 Neural ODE 与机制混合模型完全等同,以及“Neural SDE 天然无套利并保证极端损失上限”等说法,已在知识说明中纠正。这些纠正不代表作者在原对话中已经完成相应认知转变。
原AI回复中的天气预测提升、疫情误差下降、电池寿命改善、固定训练成本倍数和量化 CVaR 数字,没有提供可核对的实验上下文,本文不予采用。保留经核验的方法含义与适用边界。
参考资料
- MIT:Modeling Vertical Motion。
- NASA Glenn:Drag Equation。
- Rackauckas 等:Universal Differential Equations for Scientific Machine Learning,首次提交于 2020 年。
- Raissi、Perdikaris、Karniadakis:Physics Informed Deep Learning,作者项目页。
- Chen 等:Neural Ordinary Differential Equations,2018。
- Krishnapriyan 等:Characterizing Possible Failure Modes in Physics-Informed Neural Networks,2021。
- Bühler 等:Deep Hedging,2018。
- Cohen、Reisinger、Wang:Arbitrage-free Neural-SDE Market Models,2021 年预印本。
- Heston:A Closed-Form Solution for Options with Stochastic Volatility with Applications to Bond and Currency Options,1993。
- Kidger 等:Neural SDEs as Infinite-Dimensional GANs,ICML 2021。
- Rockafellar、Uryasev:Conditional Value-at-Risk for General Loss Distributions,作者托管稿为 2001 年版本,期刊发表于 2002 年。