Zing 论坛

正文

Julia SciML实战:用通用微分方程(UDE)结合神经网络学习流行病学未知参数

本文介绍了一个基于Julia SciML生态系统的开源项目,通过通用微分方程(UDE)方法将已知的SIRHD流行病学模型结构与神经网络相结合,系统比较了ReLU、Tanh和Sigmoid三种激活函数在估计六个未知传播速率参数时的表现。

通用微分方程UDEJuliaSciML流行病学模型SIRHD神经网络激活函数科学机器学习微分方程
发布时间 2026/05/30 01:14最近活动 2026/05/30 01:18预计阅读 2 分钟
Julia SciML实战:用通用微分方程(UDE)结合神经网络学习流行病学未知参数
1

章节 01

Julia SciML实战:UDE结合神经网络学习流行病学未知参数导读

本文介绍基于Julia SciML生态的开源项目,通过通用微分方程(UDE)将SIRHD流行病学模型与神经网络结合,估计六个未知传播速率参数,并比较ReLU、Tanh、Sigmoid三种激活函数的表现。项目原作者为digvijay1992,发布于2026年5月29日GitHub,许可证MIT。

2

章节 02

通用微分方程(UDE):白盒与黑盒的融合

UDE是科学计算与机器学习交叉领域的混合建模方法,将已知物理规律(如SIRHD微分方程结构)与数据驱动的神经网络结合。其优势包括:保持物理可解释性、减少数据需求、更好的泛化能力、直接估计未知参数。传统SIR模型假设参数恒定,而UDE用神经网络动态估计参数,适应现实中参数变化。

3

章节 03

SIRHD模型架构与激活函数对比

SIRHD模型追踪易感者(S)、感染者(I)、康复者(R)、住院者(H)、死亡者(D)五个群体。微分方程组描述群体动态。UDE中,六个速率参数(τSI、τIR、τID、τIH、τHR、τHD)由独立神经网络估计,每个网络为两层结构(输入→10神经元隐藏层→输出)。对比三种激活函数:

  • ReLU:计算简单,收敛快,但负区间梯度为零
  • Tanh:输出范围(-1,1),适合捕捉正负变化
  • Sigmoid:输出(0,1),适合比例参数,但易梯度消失。
4

章节 04

项目使用的Julia SciML技术栈

项目利用Julia SciML生态系统,核心库包括:

  • DifferentialEquations.jl:高性能微分方程求解器
  • DiffEqFlux.jl:桥接微分方程与Flux神经网络
  • Lux.jl:支持自动微分和GPU加速的神经网络框架
  • Optimization.jl:统一优化接口
  • ComponentArrays.jl:高效处理结构化参数 Julia的自动微分机制(Zygote.jl)支持端到端训练。
5

章节 05

训练策略与性能评估方法

训练步骤:

  1. 数据生成:用已知真实参数运行SIRHD模型25天,生成感染者和康复者时间序列
  2. 模型训练:用三种激活函数训练UDE,最小化预测与真实数据差异
  3. 性能对比:记录收敛速度、最终误差、计算时间
  4. 可视化:对比预测曲线与真实数据 训练采用伴随灵敏度方法高效计算梯度,支持InterpolatingAdjoint和ReverseDiffVJP等伴随方法。
6

章节 06

UDE方法的实际意义与应用前景

UDE方法的应用场景包括:

  • 流行病学:捕捉COVID-19等疫情传播率动态变化,辅助政策制定
  • 工业系统:化工过程、能源系统建模,结合物理定律与数据修正
  • 金融建模:资产价格动态的已知结构与神经网络模式结合
  • 可解释性AI:保留物理可解释性,适用于医疗、金融等高风险领域。
7

章节 07

总结与启示

项目展示科学机器学习核心理念:用神经网络增强物理模型,而非替代。UDE在保持可解释性同时提升表达能力。对Julia用户是入门范例,对ML从业者提供领域知识融入模型的思路。激活函数选择有影响,但混合建模思维更关键——结合人类知识与ML能力是解决复杂科学问题的有效路径。