Skip to content

Disentangling Physical Dynamics from Unknown Factors for Unsupervised Video Prediction

Status: completed

Authors: Vincent Le Guen, Nicolas Thome

Venue / Year: CVPR 2020, pp. 11474–11484

Affiliations: EDF R&D;CEDRIC, Conservatoire National des Arts et Métiers

Version checked: arXiv:2003.01460v2,2020-03-16;这是当前最新版

Links: arXiv v2 · PDF · CVF · DOI · Supplement · Code

Tags: [[video-prediction]] [[physics-informed-ML]] [[PDE-Net]] [[data-assimilation]] [[ConvLSTM]] [[disentanglement]]

One-Sentence Summary

PhyDNet 把视频潜状态拆成 PhyCell 物理分支与 ConvLSTM 残差分支;PhyCell 在 forward 中执行 Euler-like 的微分算子预测和观测校正,同时用 moment loss 软约束卷积核近似有限差分导数,因此它确实不只是“普通网络加 physics loss”,但也不是具有守恒、边界、稳定性和真实物理变量保证的 PDE 求解器。

1. 论文故事与贡献边界

1.1 论文要解决什么

通用视频的像素变化通常不能由一条已知 PDE 完整描述。运动可能近似服从平流、扩散或刚体动力学,但纹理、遮挡、光照、人体外观等因素并不服从同一简单方程。

PhyDNet 的核心假设是:存在一个学习到的潜空间 H\mathcal H,其中可把动力学线性拆成

h=hp+hr, \mathbf h = \mathbf h^{p} +\mathbf h^{r},

其中 hp\mathbf h^p 承担 PDE-like dynamics,hr\mathbf h^r 承担未知残差。最终两个状态相加后解码为下一帧。

1.2 三项主要贡献

  1. 双分支解耦。 物理分支使用 PhyCell,残差分支使用 ConvLSTM。
  2. PhyCell。 把广义空间微分算子、Euler-like 状态更新与 prediction–correction 数据同化结构组合成 recurrent cell。
  3. 跨数据集经验结果。 在 Moving MNIST、Traffic BJ、Sea Surface Temperature 和 Human 3.6 上比较多种视频预测模型,并测试长时滚动和缺测输入。

1.3 它不是什么

  • 不是从视频中识别出唯一真实 PDE;
  • 不是对质量、动量或能量的守恒求解;
  • 不是带 CFL、收敛阶或误差界的数值分析工作;
  • 不是天气雷达降水临近预报模型;
  • 不是概率预报或不确定性校准方法。

2. 完整架构

2.1 输入到输出

对视频帧

utRH×W×C, \mathbf u_t \in \mathbb R^{H\times W\times C},

共享编码器产生潜表示,随后进入两路 recurrent dynamics:

utEE(ut){PhyCellht+1p,ConvLSTMht+1r. \mathbf u_t \xrightarrow{\mathbf E} \mathbf E \left( \mathbf u_t \right) \begin{cases} \xrightarrow{\mathrm{PhyCell}} \mathbf h^p_{t+1},\\ \xrightarrow{\mathrm{ConvLSTM}} \mathbf h^r_{t+1}. \end{cases}

两路相加并解码:

ht+1=ht+1p+ht+1r, \mathbf h_{t+1} = \mathbf h^p_{t+1} +\mathbf h^r_{t+1},
u^t+1=D(ht+1). \widehat{\mathbf u}_{t+1} = \mathbf D \left( \mathbf h_{t+1} \right).

这个加法分解是架构约定,不是由独立性、正交性或可识别性定理推出。

2.2 潜空间连续模型

论文写成

h(t,x)t=hpt+hrt:=Mp(hp,u)+Mr(hr,u), \frac{\partial\mathbf h(t,\mathbf x)}{\partial t} = \frac{\partial\mathbf h^p}{\partial t} +\frac{\partial\mathbf h^r}{\partial t} := \mathcal M_p \left( \mathbf h^p,\mathbf u \right) +\mathcal M_r \left( \mathbf h^r,\mathbf u \right),

其中二维空间坐标

x=(x,y). \mathbf x = \left( x,y \right).

所谓 physical 与 residual 的含义由网络分工和训练结果决定。由于 decoder 只看两者之和,存在变换自由度:

hphp+g,hrhrg, \mathbf h^p \mapsto \mathbf h^p+\mathbf g, \qquad \mathbf h^r \mapsto \mathbf h^r-\mathbf g,

两者仍给出相同总状态。没有额外独立性约束时,解耦不唯一。

3. PhyCell 的完整数学链

3.1 Prediction–correction 分解

PhyCell 定义

Mp(h,u):=Φ(h)+C(h,u). \mathcal M_p \left( \mathbf h,\mathbf u \right) := \Phi \left( \mathbf h \right) +\mathcal C \left( \mathbf h,\mathbf u \right).

其中 Φ\Phi 只根据旧状态预测动力演化,C\mathcal C 用新观测纠正预测。

物理预测器写为广义线性空间微分算子:

Φ(h(t,x))=i,j:i+jqci,ji+jhxiyj(t,x). \Phi \left( \mathbf h(t,\mathbf x) \right) = \sum_{i,j:\,i+j\leq q} c_{i,j} \frac{\partial^{i+j}\mathbf h} {\partial x^i\partial y^j} \left( t,\mathbf x \right).

这个函数族可包含:

  • 零阶 reaction;
  • 一阶 advection;
  • 二阶 diffusion;
  • 更高阶空间导数。

但模型并未预先选择某个具体物理方程。ci,jc_{i,j} 与卷积核均通过数据学习,所以更准确地说,它学习一个 PDE-like basis expansion。

观测校正为

C(h,u):=K(t,x)[E(u(t,x))(h(t,x)+Φ(h(t,x)))]. \mathcal C \left( \mathbf h,\mathbf u \right) := \mathbf K(t,\mathbf x) \odot \left[ \mathbf E \left( \mathbf u(t,\mathbf x) \right) - \left( \mathbf h(t,\mathbf x) +\Phi \left( \mathbf h(t,\mathbf x) \right) \right) \right].

3.2 Forward Euler 离散

htht+1ht \frac{\partial\mathbf h}{\partial t} \approx \mathbf h_{t+1}-\mathbf h_t

离散,可得

ht+1=(1Kt)(ht+Φ(ht))+KtE(ut). \mathbf h_{t+1} = \left( 1-\mathbf K_t \right) \odot \left( \mathbf h_t+\Phi \left( \mathbf h_t \right) \right) +\mathbf K_t \odot \mathbf E \left( \mathbf u_t \right).

也可写成两个明确进入 forward pass 的步骤:

h~t+1=ht+Φ(ht), \widetilde{\mathbf h}_{t+1} = \mathbf h_t +\Phi \left( \mathbf h_t \right),
ht+1=h~t+1+Kt[E(ut)h~t+1]. \mathbf h_{t+1} = \widetilde{\mathbf h}_{t+1} +\mathbf K_t \odot \left[ \mathbf E \left( \mathbf u_t \right) -\widetilde{\mathbf h}_{t+1} \right].

所以“物理只存在于 loss”显然不正确:不经过第一步,就没有 PhyCell 的下一状态。

不过式中没有显式 Δt\Delta t。时间步长被吸收到 Φ\Phi 的参数尺度,因而模型无法在不重新标定的情况下自然改变物理时间间隔。

3.3 类 Kalman gain

论文写

Kt=tanh(Whh~t+1+WuE(ut)+bk). \mathbf K_t = \tanh \left( \mathbf W_h * \widetilde{\mathbf h}_{t+1} +\mathbf W_u * \mathbf E \left( \mathbf u_t \right) +\mathbf b_k \right).

它把 Kt\mathbf K_t 类比为 Kalman gain:

  • Kt=0\mathbf K_t=\mathbf 0 时完全相信动力预测;
  • Kt=1\mathbf K_t=\mathbf 1 时完全相信观测编码。

但这里没有状态协方差、观测协方差和 Kalman optimality;它只是学习门控。论文使用 tanh\tanh,范围为 (1,1)(-1,1),并不保证凸组合;官方代码改用 sigmoid,范围为 (0,1)(0,1),反而更符合门控解释。

4. 卷积核为什么能近似导数

4.1 Moment matrix

k×kk\times k 卷积核 w\mathbf w,补充材料定义

M(w)i,j=1i!j!u=(k1)/2(k1)/2v=(k1)/2(k1)/2uivjw[u,v], \mathbf M \left( \mathbf w \right)_{i,j} = \frac{1}{i!j!} \sum_{u=-(k-1)/2}^{(k-1)/2} \sum_{v=-(k-1)/2}^{(k-1)/2} u^iv^j \mathbf w[u,v],

其中

i,j{0,,k1}. i,j \in \left\{ 0,\ldots,k-1 \right\}.

对光滑函数 h\mathbf h,卷积作 Taylor 展开:

u,vw[u,v]h(x+δxu,y+δyv) \sum_{u,v} \mathbf w[u,v] \mathbf h \left( x+\delta x\,u, y+\delta y\,v \right)
=i,jM(w)i,jδxiδyji+jhxiyj(x,y)+Rk. \qquad = \sum_{i,j} \mathbf M \left( \mathbf w \right)_{i,j} \delta x^i\delta y^j \frac{\partial^{i+j}\mathbf h} {\partial x^i\partial y^j} \left( x,y \right) +\mathcal R_k.

若希望第 (a,b)(a,b) 个核近似

a+bxayb, \frac{\partial^{a+b}} {\partial x^a\partial y^b},

就让

M(wa,b)Δa,bk, \mathbf M \left( \mathbf w_{a,b} \right) \approx \boldsymbol\Delta^k_{a,b},

其中 Kronecker target 为

(Δa,bk)i,j={1,(i,j)=(a,b),0,otherwise. \left( \boldsymbol\Delta^k_{a,b} \right)_{i,j} = \begin{cases} 1, & \left( i,j \right) = \left( a,b \right), \\ 0, & \mathrm{otherwise}. \end{cases}

这是一种 derivative-consistent stencil 正则,不是对真实物理系数的监督。

4.2 Moment loss

总训练目标为

L(D,w)=Limage(D,w)+λLmoment(wp), \mathcal L \left( \mathcal D,\mathbf w \right) = \mathcal L_{\mathrm{image}} \left( \mathcal D,\mathbf w \right) +\lambda \mathcal L_{\mathrm{moment}} \left( \mathbf w_p \right),

其中论文使用图像 L2L^2,并报告 λ=1\lambda=1。矩损失写成

Lmoment=i,jM(wp,i,jk)Δi,jkF. \mathcal L_{\mathrm{moment}} = \sum_{i,j} \left\| \mathbf M \left( \mathbf w^k_{p,i,j} \right) -\boldsymbol\Delta^k_{i,j} \right\|_F.

这部分确实只在 loss 中起作用,而且是软约束:

  • 推理时不计算 moment loss;
  • 没有 projected gradient 或硬投影;
  • 最终滤波器不保证精确满足目标矩;
  • λ\lambda 与图像损失可以发生折衷。

因此 PhyDNet 同时拥有两类物理先验:

位置机制强度
forward architectureh+Φ(h)\mathbf h+\Phi(\mathbf h) 和 prediction–correction结构性硬偏置
training objectivefilter moment matching软正则
latent decompositionPhyCell + ConvLSTM 两分支架构约定,但不可识别

5. 论文公式与官方代码

5.1 实际张量与模块

公开 Moving MNIST 配置中:

[B,1,64,64]encoder[B,64,16,16]. \left[ B,1,64,64 \right] \xrightarrow{\mathrm{encoder}} \left[ B,64,16,16 \right].

PhyCell 物理预测器为

[B,64,16,16]Conv7×7[B,49,16,16]GroupNorm[B,49,16,16]Conv1×1[B,64,16,16]. \left[ B,64,16,16 \right] \xrightarrow{\mathrm{Conv}_{7\times7}} \left[ B,49,16,16 \right] \xrightarrow{\mathrm{GroupNorm}} \left[ B,49,16,16 \right] \xrightarrow{\mathrm{Conv}_{1\times1}} \left[ B,64,16,16 \right].

论文某处把它写成 49 个 PhyCells;严格按代码应理解为一个 PhyCell 层内部有 49 个 7×77\times7 derivative filters。

残差分支是三层 ConvLSTM,通道为

[128,128,64]. \left[ 128,128,64 \right].

5.2 代码中的更新

官方代码实际执行

h~t+1=ht+F(ht), \widetilde{\mathbf h}_{t+1} = \mathbf h_t +F \left( \mathbf h_t \right),
Kt=σ(Conv3×3[E(ut),ht]), \mathbf K_t = \sigma \left( \mathrm{Conv}_{3\times3} \left[ \mathbf E \left( \mathbf u_t \right), \mathbf h_t \right] \right),
ht+1=h~t+1+Kt(E(ut)h~t+1). \mathbf h_{t+1} = \widetilde{\mathbf h}_{t+1} +\mathbf K_t \odot \left( \mathbf E \left( \mathbf u_t \right) -\widetilde{\mathbf h}_{t+1} \right).

门控公式的 sigmoid / tanh 差异是明确的 paper–code mismatch。

5.3 “线性 PDE”在代码中并不严格线性

论文把 Φ\Phi 写成线性微分项之和。但代码在 7×77\times71×11\times1 卷积之间加入 GroupNorm。GroupNorm 依赖当前样本的均值和方差,所以一般有

F(ah1+bh2)aF(h1)+bF(h2). F \left( a\mathbf h_1+b\mathbf h_2 \right) \neq aF \left( \mathbf h_1 \right) +bF \left( \mathbf h_2 \right).

真正受到 moment constraint 的是第一层空间卷积核,不是整个 FF。因此“线性 PDE 离散器”应降格为“第一层核具有导数矩正则的非线性 latent operator”。

5.4 代码中的 moment objective

代码建立

CR49×7×7, \mathbf C \in \mathbb R^{49\times7\times7},

r=7i+jr=7i+j 个 target 在 (i,j)(i,j) 位置取 1。对每个输入通道 bb,取

WbR49×7×7, \mathbf W_b \in \mathbb R^{49\times7\times7},

并计算

b=164MSE(K2M(Wb),C). \sum_{b=1}^{64} \mathrm{MSE} \left( \mathrm{K2M} \left( \mathbf W_b \right), \mathbf C \right).

它与论文有两个差异:

  1. 论文写 Frobenius norm,代码使用归一化 squared Frobenius / MSE;
  2. 代码直接把这一项加到逐时间步图像损失,没有独立 lambda 变量。虽然名义上对应 λ=1\lambda=1,有效相对权重仍依赖时间长度和 loss reduction。

5.5 Prediction-only 的复现问题

论文图示称预测帧只重新注入 ConvLSTM,不重新注入 PhyCell;缺测或长时滚动时令

Kt=0 \mathbf K_t = \mathbf 0

使物理分支完全依赖自身状态。

但公开 Moving MNIST 脚本的自由 rollout 会把上一帧预测同时送入两个分支。另一个 decoding flag 会把物理输入设为 None,而 PhyCell 随后仍读取输入张量并拼接,静态上不能形成清晰可运行的 K=0K=0 路径。

因此论文中的 prediction-only 机制在数学上明确,公开代码却没有给出与其完全一致、可直接核验的实现。

6. 实验与证据

6.1 数据集

数据集输入 → 输出场景与物理 claim 的关系
Moving MNIST10 → 10,64×6464\times64两个反弹数字,测试 10,000 序列一阶平移最清楚,但非常理想化
Traffic BJ4 → 4,32×32×232\times32\times2北京出租车流入 / 流出有 transport/diffusion 直觉,不是守恒交通 PDE 验证
SST4 → 4,64×6464\times64NEMO 模拟的日海温最接近连续物理场,但仍只用图像指标
Human 3.64 → 4,128×128×3128\times128\times3walking 子集物理含义最弱,主要检验通用视频能力

6.2 主结果

方法Moving MNIST MSE / SSIMTraffic BJ MSE×100 / SSIMSST MSE×10 / SSIMHuman MSE÷10 / SSIM
ConvLSTM103.3 / 0.70748.5 / 0.97845.6 / 0.94950.4 / 0.776
PredRNN56.8 / 0.86746.4 / 0.97141.9 / 0.95548.4 / 0.781
Causal LSTM46.5 / 0.89844.8 / 0.97739.1 / 0.92945.8 / 0.851
MIM44.2 / 0.91042.9 / 0.97142.1 / 0.95542.9 / 0.790
E3D-LSTM41.3 / 0.92043.2 / 0.97934.7 / 0.96946.4 / 0.869
PhyDNet24.4 / 0.94741.9 / 0.98231.9 / 0.97236.9 / 0.901

论文还在 Moving MNIST 比较 DDPAE,在 SST 比较专用 advection–diffusion model。PhyDNet 在论文设置中分别得到更低 MSE。

但没有多随机种子方差、置信区间或显著性检验;部分 baseline 数值来自原论文,部分由作者运行公开代码获得,训练预算和调参公平性不完全透明。

6.3 最重要的物理消融

只列 MSE:

模型Moving MNISTTraffic BJ×100SST×10Human÷10
PhyCell50.848.938.242.5
PhyCell without moment loss43.443.635.439.6
PhyDNet24.441.931.936.9
PhyDNet without moment loss29.043.932.336.7

这是理解论文最关键的表:

  1. 只有 PhyCell 时,去掉物理 moment loss 在四个数据集都更好。 软物理约束限制了单分支拟合能力。
  2. 完整双分支时,moment loss 明显改善 Moving MNIST,改善 Traffic,SST 几乎持平,Human 指标混合。
  3. 物理正则的收益依赖 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 losslatent 无单位,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 的 h\mathbf h 是潜变量,不是质量、动量或能量密度。moment constraint 只约束局部卷积核,不约束

xhtorΩh(t,x)dx. \sum_{\mathbf x} \mathbf h_t \quad \mathrm{or} \quad \int_\Omega \mathbf h(t,\mathbf x) \mathrm d\mathbf x.

模型没有 conservative flux、finite-volume update、边界通量或离散散度定理。因此不能从 derivative filters 推出守恒。

8.2 没有稳定性保证

Euler-like 更新

ht+1=ht+Φ(ht) \mathbf h_{t+1} = \mathbf h_t+\Phi \left( \mathbf h_t \right)

需要时间步、谱半径和微分项系数满足稳定条件。论文没有报告:

  • Δt\Delta t
  • CFL 条件;
  • von Neumann stability;
  • Lipschitz 或 energy estimate;
  • ci,jc_{i,j} 的范围;
  • rollout error bound。

门控能用观测纠偏,但不是对 prediction-only dynamics 的稳定性证明。

8.3 边界条件缺失

代码的 7×77\times7 Conv2d 使用 zero padding。内部网格的 moment argument 基于对称 stencil,到了边界就会读取补零值,无法自动保持同一 Taylor 一致性。

论文没有定义 Dirichlet、Neumann、周期或通量边界,也没有量化边界误差。

8.4 Residual branch 可以绕开物理

最终输出是

u^t+1=D(ht+1p+ht+1r). \widehat{\mathbf u}_{t+1} = \mathbf D \left( \mathbf h^p_{t+1} +\mathbf h^r_{t+1} \right).

只要 ConvLSTM 足够强,它可以补偿甚至覆盖 PhyCell 的偏差。最终像素预测并不严格满足 Φ\Phi 对应的任何 PDE。这是 gray-box 灵活性的来源,也是物理保证变弱的原因。

9. PhyDNet 与 Nowcast3D

详细的 Nowcast3D 物理 claim 再审见 Nowcast3D

维度PhyDNetNowcast3D
状态二维学习潜状态 h\mathbf h原生三维雷达反射率 RR
物理形式学习的广义线性导数基指定 advection–diffusion–source
forwardEuler-like h+Φ(h)\mathbf h+\Phi(\mathbf h) + gatesemi-Lagrangian + Brownian diffusion + source
lossimage loss + moment lossadvection / diffusion / final state 的 L1 深监督
物理量语义弱,无单位较强,解释为 v,κ,s\mathbf v,\boldsymbol\kappa,s
residualConvLSTM latent branch2D 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

  1. 潜空间的 physical / residual 分解不可识别。
  2. 代码中的 GroupNorm 使论文声称的线性 PDE operator 不再严格线性。
  3. 物理约束的收益不一致,单独 PhyCell 上甚至稳定变差。
  4. 没有真实 PDE 系数、守恒量、边界和稳定性验证。
  5. 长时预测和缺测只在 Moving MNIST 对单一 baseline。
  6. 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 上的核心机制,但不足以完整复现四数据集、长时外推和缺测实验。最值得警惕的不是代码是否“有物理层”,而是论文公式、公开实现和业务解释之间仍有距离。

Static research notes built with VitePress and KaTeX.