Theme
Disentangling Physical Dynamics from Unknown Factors for Unsupervised Video Prediction
One-Sentence Summary
PhyDNet 把视频潜状态拆成 PhyCell 物理分支与 ConvLSTM 残差分支;PhyCell 在 forward 中执行 Euler-like 的微分算子预测和观测校正,同时用 moment loss 软约束卷积核近似有限差分导数,因此它确实不只是“普通网络加 physics loss”,但也不是具有守恒、边界、稳定性和真实物理变量保证的 PDE 求解器。
1. 论文故事与贡献边界
1.1 论文要解决什么
通用视频的像素变化通常不能由一条已知 PDE 完整描述。运动可能近似服从平流、扩散或刚体动力学,但纹理、遮挡、光照、人体外观等因素并不服从同一简单方程。
PhyDNet 的核心假设是:存在一个学习到的潜空间
其中
1.2 三项主要贡献
- 双分支解耦。 物理分支使用 PhyCell,残差分支使用 ConvLSTM。
- PhyCell。 把广义空间微分算子、Euler-like 状态更新与 prediction–correction 数据同化结构组合成 recurrent cell。
- 跨数据集经验结果。 在 Moving MNIST、Traffic BJ、Sea Surface Temperature 和 Human 3.6 上比较多种视频预测模型,并测试长时滚动和缺测输入。
1.3 它不是什么
- 不是从视频中识别出唯一真实 PDE;
- 不是对质量、动量或能量的守恒求解;
- 不是带 CFL、收敛阶或误差界的数值分析工作;
- 不是天气雷达降水临近预报模型;
- 不是概率预报或不确定性校准方法。
2. 完整架构
2.1 输入到输出
对视频帧
共享编码器产生潜表示,随后进入两路 recurrent dynamics:
两路相加并解码:
这个加法分解是架构约定,不是由独立性、正交性或可识别性定理推出。
2.2 潜空间连续模型
论文写成
其中二维空间坐标
所谓 physical 与 residual 的含义由网络分工和训练结果决定。由于 decoder 只看两者之和,存在变换自由度:
两者仍给出相同总状态。没有额外独立性约束时,解耦不唯一。
3. PhyCell 的完整数学链
3.1 Prediction–correction 分解
PhyCell 定义
其中
物理预测器写为广义线性空间微分算子:
这个函数族可包含:
- 零阶 reaction;
- 一阶 advection;
- 二阶 diffusion;
- 更高阶空间导数。
但模型并未预先选择某个具体物理方程。
观测校正为
3.2 Forward Euler 离散
用
离散,可得
也可写成两个明确进入 forward pass 的步骤:
所以“物理只存在于 loss”显然不正确:不经过第一步,就没有 PhyCell 的下一状态。
不过式中没有显式
3.3 类 Kalman gain
论文写
它把
时完全相信动力预测; 时完全相信观测编码。
但这里没有状态协方差、观测协方差和 Kalman optimality;它只是学习门控。论文使用
4. 卷积核为什么能近似导数
4.1 Moment matrix
对
其中
对光滑函数
若希望第
就让
其中 Kronecker target 为
这是一种 derivative-consistent stencil 正则,不是对真实物理系数的监督。
4.2 Moment loss
总训练目标为
其中论文使用图像
这部分确实只在 loss 中起作用,而且是软约束:
- 推理时不计算 moment loss;
- 没有 projected gradient 或硬投影;
- 最终滤波器不保证精确满足目标矩;
与图像损失可以发生折衷。
因此 PhyDNet 同时拥有两类物理先验:
| 位置 | 机制 | 强度 |
|---|---|---|
| forward architecture | 结构性硬偏置 | |
| training objective | filter moment matching | 软正则 |
| latent decomposition | PhyCell + ConvLSTM 两分支 | 架构约定,但不可识别 |
5. 论文公式与官方代码
5.1 实际张量与模块
公开 Moving MNIST 配置中:
PhyCell 物理预测器为
论文某处把它写成 49 个 PhyCells;严格按代码应理解为一个 PhyCell 层内部有 49 个
残差分支是三层 ConvLSTM,通道为
5.2 代码中的更新
官方代码实际执行
门控公式的 sigmoid / tanh 差异是明确的 paper–code mismatch。
5.3 “线性 PDE”在代码中并不严格线性
论文把
真正受到 moment constraint 的是第一层空间卷积核,不是整个
5.4 代码中的 moment objective
代码建立
第
并计算
它与论文有两个差异:
- 论文写 Frobenius norm,代码使用归一化 squared Frobenius / MSE;
- 代码直接把这一项加到逐时间步图像损失,没有独立 lambda 变量。虽然名义上对应
,有效相对权重仍依赖时间长度和 loss reduction。
5.5 Prediction-only 的复现问题
论文图示称预测帧只重新注入 ConvLSTM,不重新注入 PhyCell;缺测或长时滚动时令
使物理分支完全依赖自身状态。
但公开 Moving MNIST 脚本的自由 rollout 会把上一帧预测同时送入两个分支。另一个 decoding flag 会把物理输入设为 None,而 PhyCell 随后仍读取输入张量并拼接,静态上不能形成清晰可运行的
因此论文中的 prediction-only 机制在数学上明确,公开代码却没有给出与其完全一致、可直接核验的实现。
6. 实验与证据
6.1 数据集
| 数据集 | 输入 → 输出 | 场景 | 与物理 claim 的关系 |
|---|---|---|---|
| Moving MNIST | 10 → 10, | 两个反弹数字,测试 10,000 序列 | 一阶平移最清楚,但非常理想化 |
| Traffic BJ | 4 → 4, | 北京出租车流入 / 流出 | 有 transport/diffusion 直觉,不是守恒交通 PDE 验证 |
| SST | 4 → 4, | NEMO 模拟的日海温 | 最接近连续物理场,但仍只用图像指标 |
| Human 3.6 | 4 → 4, | walking 子集 | 物理含义最弱,主要检验通用视频能力 |
6.2 主结果
| 方法 | Moving MNIST MSE / SSIM | Traffic BJ MSE×100 / SSIM | SST MSE×10 / SSIM | Human MSE÷10 / SSIM |
|---|---|---|---|---|
| ConvLSTM | 103.3 / 0.707 | 48.5 / 0.978 | 45.6 / 0.949 | 50.4 / 0.776 |
| PredRNN | 56.8 / 0.867 | 46.4 / 0.971 | 41.9 / 0.955 | 48.4 / 0.781 |
| Causal LSTM | 46.5 / 0.898 | 44.8 / 0.977 | 39.1 / 0.929 | 45.8 / 0.851 |
| MIM | 44.2 / 0.910 | 42.9 / 0.971 | 42.1 / 0.955 | 42.9 / 0.790 |
| E3D-LSTM | 41.3 / 0.920 | 43.2 / 0.979 | 34.7 / 0.969 | 46.4 / 0.869 |
| PhyDNet | 24.4 / 0.947 | 41.9 / 0.982 | 31.9 / 0.972 | 36.9 / 0.901 |
论文还在 Moving MNIST 比较 DDPAE,在 SST 比较专用 advection–diffusion model。PhyDNet 在论文设置中分别得到更低 MSE。
但没有多随机种子方差、置信区间或显著性检验;部分 baseline 数值来自原论文,部分由作者运行公开代码获得,训练预算和调参公平性不完全透明。
6.3 最重要的物理消融
只列 MSE:
| 模型 | Moving MNIST | Traffic BJ×100 | SST×10 | Human÷10 |
|---|---|---|---|---|
| PhyCell | 50.8 | 48.9 | 38.2 | 42.5 |
| PhyCell without moment loss | 43.4 | 43.6 | 35.4 | 39.6 |
| PhyDNet | 24.4 | 41.9 | 31.9 | 36.9 |
| PhyDNet without moment loss | 29.0 | 43.9 | 32.3 | 36.7 |
这是理解论文最关键的表:
- 只有 PhyCell 时,去掉物理 moment loss 在四个数据集都更好。 软物理约束限制了单分支拟合能力。
- 完整双分支时,moment loss 明显改善 Moving MNIST,改善 Traffic,SST 几乎持平,Human 指标混合。
- 物理正则的收益依赖 residual branch 提供补偿,并不是“物理越强越好”。
论文把 SST 与 Human 上小于 0.5 MSE 的差异视为基本等价,这是合理的克制表述;不能把它改写成四个数据集都显著受益。
6.4 Learned derivative coefficients
Figure 6 显示不同阶导数系数的平均幅度:
- Moving MNIST 由零阶和一阶项主导,符合平移直觉;
- Traffic 与 SST 总体随阶数升高而减弱,但仍有较高阶项;
- Human 3.6 的系数更分散。
这只是事后可解释性诊断。它没有验证导数系数对应真实速度、扩散率或物理单位,也没有和 ground-truth PDE 系数比较。
6.5 长时效和缺测
论文把预测长度外推到 80 帧,并把输入随机缺测率提高到 50%。PhyDNet 的 MSE/SSIM 随难度恶化得比 DDPAE 慢。
证据的范围是:
- 单一 Moving MNIST 数据集;
- 单一 DDPAE baseline;
- 训练和测试都注入相同类型的随机缺测;
- 没有自然图像、SST 或业务传感器故障实验;
- 没有 uncertainty 或 failure detection。
因此能支持“prediction–correction 结构对合成缺测有潜力”,不能支持一般业务鲁棒性。
7. Claims → Evidence
| Claim | 类型 | 证据 | 强度 | 风险 |
|---|---|---|---|---|
| 物理与残差能解耦 | 架构 / 经验 | 双分支设计、partial reconstruction | 中偏弱 | 加法分解不可识别,无独立性指标 |
| PhyCell 在 latent space 表达广义 PDE | 方法 | derivative basis、Euler update、moment loss | 中 | latent 无单位,GroupNorm 破坏严格线性 |
| 物理约束提升预测 | 经验 | ablation tables | 中 | 单独 PhyCell 中约束反而变差;完整模型收益不一致 |
| 优于 SOTA | 经验 | 四数据集 MSE/MAE/SSIM | 中 | 无方差,baseline 来源混合,后续 SOTA 已变化 |
| 适合长时预测 | 经验 | Moving MNIST 10–80 帧曲线 | 中偏弱 | 只对 DDPAE,代码路径与论文不完全一致 |
| 对缺测鲁棒 | 经验 | Moving MNIST 10%–50% 缺测 | 中偏弱 | 合成缺测,未覆盖真实故障 |
| 学到真实物理 | 解释 | coefficient-order 图 | 弱 | 无真实 PDE 系数或守恒诊断 |
8. 数学与物理严谨性
8.1 没有质量守恒保证
PhyDNet 的
模型没有 conservative flux、finite-volume update、边界通量或离散散度定理。因此不能从 derivative filters 推出守恒。
8.2 没有稳定性保证
Euler-like 更新
需要时间步、谱半径和微分项系数满足稳定条件。论文没有报告:
; - CFL 条件;
- von Neumann stability;
- Lipschitz 或 energy estimate;
的范围; - rollout error bound。
门控能用观测纠偏,但不是对 prediction-only dynamics 的稳定性证明。
8.3 边界条件缺失
代码的
论文没有定义 Dirichlet、Neumann、周期或通量边界,也没有量化边界误差。
8.4 Residual branch 可以绕开物理
最终输出是
只要 ConvLSTM 足够强,它可以补偿甚至覆盖 PhyCell 的偏差。最终像素预测并不严格满足
9. PhyDNet 与 Nowcast3D
详细的 Nowcast3D 物理 claim 再审见 Nowcast3D。
| 维度 | PhyDNet | Nowcast3D |
|---|---|---|
| 状态 | 二维学习潜状态 | 原生三维雷达反射率 |
| 物理形式 | 学习的广义线性导数基 | 指定 advection–diffusion–source |
| forward | Euler-like | semi-Lagrangian + Brownian diffusion + source |
| loss | image loss + moment loss | advection / diffusion / final state 的 L1 深监督 |
| 物理量语义 | 弱,无单位 | 较强,解释为 |
| residual | ConvLSTM latent branch | 2D conditional diffusion refinement |
| 物理硬度 | derivative architecture 硬,导数身份软 | operator chain 硬,预测物理场和实现约束软 |
| 守恒 | 无 | 无严格保证 |
| 稳定性 | 未证明 | 未完整证明 |
| 业务证据 | 通用视频 benchmark | 跨区域雷达、专家偏好、有限 operational 证据 |
谱系上的关键差别是:
PhyDNet 学习“潜空间中哪个微分算子有用”;Nowcast3D 先指定“反射率按平流、扩散、源项演化”,再学习每一步的速度、扩散和源场。
因此 Nowcast3D 的物理变量语义更强,也承担更高的责任:必须解释单位、边界、守恒形式、扩散协方差、数值一致性和变量可识别性。
10. 审稿结论
Strengths
- 在 2020 年把 PDE-Net 式导数核、data assimilation 和视频 latent disentanglement 组合得很有原创性。
- Forward graph 的物理结构清楚,易于与普通 ConvLSTM 区分。
- 物理分支、残差分支和 moment loss 都有消融。
- 四个性质不同的数据集说明架构具有一定通用性。
- 补充材料给出 moment matrix 和 Taylor 展开,数学动机可检查。
Major concerns
- 潜空间的 physical / residual 分解不可识别。
- 代码中的 GroupNorm 使论文声称的线性 PDE operator 不再严格线性。
- 物理约束的收益不一致,单独 PhyCell 上甚至稳定变差。
- 没有真实 PDE 系数、守恒量、边界和稳定性验证。
- 长时预测和缺测只在 Moving MNIST 对单一 baseline。
- paper–code 存在 sigmoid / tanh 和 prediction-only 路径差异。
评价
以 CVPR 2020 的历史语境看,这是 Accept / 7.5 out of 10 的方法创新。它最重要的价值不是“把真实物理恢复出来”,而是证明 generic video prediction 可以用“structured dynamics + flexible residual”组织。
- Novelty: 4/5
- Rigor: 3/5
- Impact: 4/5
今天复用时,应把它称为 physically structured latent dynamics,而不是 physics solver。
Code Verification
核验仓库:作者官方 GitHub,commit 23a992d(2022-03-01)。
可核验内容
- Moving MNIST 的数据、训练和评估脚本;
- PhyCell、ConvLSTM、encoder / decoder;
- K2M moment transform;
- 一个预训练 encoder;
- MIT license。
主要缺口
- 没有 Traffic BJ、SST、Human 3.6 的训练配置或数据流水线;
- 没有 requirements 或环境锁定;
- 没有自动测试和多 seed 脚本;
- 使用已弃用的 scikit-image compare_ssim 接口;
- README 的正文引用链接误指向另一篇 Shape and Time Distortion Loss 论文;
- prediction-only / missing-data 实验没有完整公开入口。
公开 main.py 还每 10 个 epoch 在 test loader 上评估,并把 test MSE 交给 ReduceLROnPlateau 调整学习率,同时保存模型;它没有独立 validation split。至少对公开 Moving MNIST 示例,这构成 test set 参与训练决策的风险,不能把该脚本视为严格的 train / validation / test protocol。
静态 Python 语法检查通过,但没有安装旧版 PyTorch / torchvision / scikit-image 环境,也没有重新训练或复跑论文表格。
最终代码判断
公开代码足以展示 Moving MNIST 上的核心机制,但不足以完整复现四数据集、长时外推和缺测实验。最值得警惕的不是代码是否“有物理层”,而是论文公式、公开实现和业务解释之间仍有距离。