本讲目录
综合项目 01 · 从冷却后的温度倒推初始热场
本项目使用按公开协议构造的模拟数据,不是真实材料测温记录。一根杆已经冷却了 1 秒。你现在能读到 16 个传感器的温度,但真正想知道的是:刚开始时哪里最热?这不是把热方程“倒放”那么简单。扩散会优先抹掉细小、快速起伏的结构;测量噪声却会在逆运算中被放大。本项目把这个物理反问题变成一个可审计的机器学习任务,并要求你说明模型何时失效,而不只是在一张测试表上争夺最低误差。
先明确任务:预测未来准确,不等于还原过去正确
一个反直觉的验收问题
假设两个方法都能准确预测 0.5 秒后的温度。你能否据此断言,它们都正确还原了初始热场?
先写下你的判断与理由,再展开解释。
核对这个判断
高频温度起伏衰减得最快;即使初始时猜错了尖锐热斑,过一会儿以后,两条温度曲线也可能已经被扩散磨得十分相似。因此,“未来预测好”是有价值的证据,却不是“过去细节正确”的证明。这个差别将决定我们为什么同时报告三种指标。
1. 把物理实验翻译成监督学习
我们研究长度为 \(L=1\,\mathrm m\) 的细棒。\(u(x,t)\) 表示相对恒温热浴的超额温度,单位是 K;\(u<0\) 只表示比热浴冷,不是负的绝对温度。两端始终满足 \(u(0,t)=u(L,t)=0\),没有持续热源,也暂不考虑对流和辐射。棒内扩散率固定为
16 个内部传感器位于 \(x_j=jL/17\)。项目只保留前 8 个正弦模态:
这些列满足 \(Q^\top Q=I\)。初始温度向量写成 \(u_0=Qa\),其中 \(a\in\mathbb R^8\) 是我们要恢复的模态系数。这个八模态空间是明确的建模限制,不等于完整的无限维热方程。
经过时间 \(t\) 后,第 \(k\) 个模态乘上衰减因子
令 \(S(t)=\operatorname{diag}(s_1,\ldots,s_8)\),传感器数据为
左乘 \(Q^\top\) 得到模态观测
因为 \(Q\) 的列正交归一,投影不会改变这 8 个方向上的噪声方差。现在可以逐项对应机器学习术语:
| 项目对象 | 机器学习角色 | 形状 | 单位 |
|---|---|---|---|
| 一整条模拟轨迹 | 一个样本 | 1 | — |
| 模态观测 \(b=Q^\top y\) | 输入特征 | 8 | K |
| 初始模态 \(a\) | 监督标签 | 8 | K |
| 对角权重 \(w\) | 待学习参数 | 8 | 无量纲 |
| \(\hat u_0=Q\hat a\) | 最终输出 | 16 | K |
这里“学到”的只有八个数
模型对每个模态分别使用
它没有隐藏层、非线性激活或跨模态连接,因此是监督训练的对角线性逆滤波器,不是神经网络。它的好处是每个参数都能解释;代价是它无法学习模态之间的相互作用,也没有截距项。
2. 数据切分的单位必须是整条轨迹
每一种测试情景都共享同一组 128 条训练、32 条验证轨迹,再配 32 条测试轨迹,共 192 条。完整导出同时包含三个测试情景,因此总共保存 256 条轨迹记录:
| 切分 | 轨迹数 | 起始种子 | 可以做什么 |
|---|---|---|---|
| 训练集 | 128 | 101 | 拟合八个 \(w_k\) |
| 验证集 | 32 | 202 | 从固定网格选择 Tikhonov 的 \(\lambda\) |
| 测试集 | 32 | 303 | 冻结所有选择后,只做最终评估 |
每条轨迹的 16 个传感器读数、真实初始场和独立的未来观测必须留在同一切分。若把传感器行随机拆开,同一根棒、同一个 \(a\) 的局部信息就会同时出现在训练与测试中;这会把“记住同一轨迹”伪装成“推广到新轨迹”。
轨迹 \(i\) 使用 \((\text{split seed}+104729i)\bmod 2^{32}\) 初始化独立伪随机流。即使 \(\sigma=0\),生成器仍抽取全部噪声随机数,使不同噪声设置保持同一条可比较的数据轨迹。改变 \(t\) 或 \(\sigma\) 会按相同种子重新生成全部切分,并重新拟合线性滤波器;改变测试情景只会修改测试轨迹,不能反向改变训练或验证。
3. 八参数线性逆滤波器怎样训练
对固定模态 \(k\),训练目标是 128 条训练轨迹上的平方误差:
逐步求导:
令导数为零,在 \(\sum_i b_{ik}^2>0\) 时得到
八个模态各算一次,训练便结束了。由于 \(Q^\top Q=I\),最小化系数平方误差与最小化 16 个传感器位置上的初始场平方误差只差一个固定比例,不会改变最优 \(w\)。若某模态在全部训练样本中都有 \(b_{ik}=0\),分母为零,数据不能识别这个权重;默认生成数据不会出现这一退化情形,但公式的适用条件必须说清。
一行公式里的“训练分布偏好”
把训练样本数想象成无限多,并令 \(m_{2,k}=\mathbb E[a_k^2]\)。由 \(b_k=s_ka_k+\eta_k\) 且噪声与信号独立可得
无噪声时它趋近 \(1/s_k\),像直接求逆;噪声显著或训练分布中的该模态本来就很弱时,它会把该模态压小。换句话说,平滑训练分布隐含地告诉模型:“高频通常不重要。”这在同分布测试上可能有利,在突然出现尖锐热斑时却可能成为错误的归纳偏置。
上式是无限样本的总体最优值,不是有限训练结果必须严格满足的公式。实际八个权重没有非负约束;弱信号模态的有限样本相关可能为负。例如默认数据的第 8 权重约为 −0.048746,而总体公式约为 0.004231。负权重来自有限样本波动,不能被解释成热扩散的真实逆增益。
三个估计器必须在同一协议下比较
- 无正则最小二乘:\(\hat a_k=b_k/s_k\)。它忠实地逆转衰减,也会把高频噪声乘以很大的 \(1/s_k\)。
- 零阶 Tikhonov:\(\hat a_k=s_kb_k/(s_k^2+\lambda)\)。这里 \(\lambda\) 直接惩罚 \(\|a\|^2\),没有暗中乘入 \(\sigma^2\),也不是导数平滑惩罚。
- 学习的对角滤波器:\(\hat a_k=w_kb_k\)。八个 \(w_k\) 只由训练集监督标签拟合;验证集和测试集标签都不参与拟合。
线性学习基线并不必然优于解析正则化。它只是把“所有模态共享一个 \(\lambda\)”换成“每个模态从训练分布学习一个缩放”。当部署分布改变时,这份灵活性也会成为脆弱性。
4. 验证集只选择 \(\lambda\),测试集禁止调参
Tikhonov 候选网格固定为
对每个候选 \(\lambda\),用 32 条验证轨迹的合成真值计算初始场 MSE:
选择平均 MSE 最小的 \(\lambda\);完全并列时取较小者。合成实验允许我们查看验证真值,真实材料实验通常没有这种权限。验证轨迹在 \(t+0.5\,\mathrm s\) 的独立带噪观测不参与逆滤波器拟合或 \(\lambda\) 选择,只保留作预测诊断。
选定 \(\lambda\) 后立即冻结。不得查看测试 RMSE 再换 \(\lambda\),不得根据高频或错误扩散率测试结果重新训练 \(w\),也不得只报告最好看的测试情景。否则“测试集”已经变成第二个验证集。
5. 交互实验:先下注,再看三重压力测试
在操作前写下三条预测
- 当 \(t\) 增大时,哪个估计器最容易放大高频噪声?
- 在高频分布外测试中,哪一个训练假设会首先暴露?
- 为什么错误扩散率可能让未来预测和初始场重建同时出现系统偏差?
无 JavaScript 时的静态读法:默认设置为 \(t=1\,\mathrm s\)、\(\sigma=0.02\,\mathrm K\)、手动探索 \(\lambda=0.001\)。共享实验使用同一组 128/32/32 轨迹、同一八模态前向模型和同一组估计器;可以切换 \(t\in\{0.5,1,1.5\}\)、\(\sigma\in\{0,0.02,0.05\}\)、测试情景与测试轨迹编号 0–31。基准表始终使用验证集选出的 \(\lambda\),手动 \(\lambda\) 只用于观察滤波强弱,不能改写正式测试结果。
默认验证集选择 \(\lambda=0.01\)。以下为默认平滑测试集 32 条轨迹的已计算结果,全部单位为 K;手动探索的默认 \(0.001\) 不用于此表。
| 方法 | 初态 RMSE | 观测残差 RMS | 独立晚时刻 RMSE |
|---|---|---|---|
| 无正则最小二乘 | 3.254382 | 0.014445 | 0.022268 |
| Tikhonov,验证 \(\lambda=0.01\) | 0.052893 | 0.024608 | 0.028316 |
| 学习的八参数逆 | 0.043310 | 0.017826 | 0.022202 |
可见最小残差不对应最小初态误差。第 7 节给出指标定义,第 10 节的完整数据可离线核对全部三种测试场景。
读图时同时检查四件事:当前观测圆点与晚时刻独立观测空心方点分别对应哪个时间;每个方法保留或压掉了哪些模态;初始场 RMSE 是否和未来预测 RMSE 给出相同排序;切换情景后训练得到的八个 \(w_k\) 是否保持不变。
6. 三种测试情景分别在问什么
| 情景 | 只改变什么 | 要诊断的能力 | 不允许的结论 |
|---|---|---|---|
| 平滑同分布 | 测试轨迹来自与训练相同的平滑系数族 | 在协议匹配且模型正确时的基线表现;噪声与逆放大的权衡 | 一次同分布胜出不能证明普遍最优 |
| 高频 OOD | 偶数测试轨迹令 \(a_6\leftarrow a_6+6\,\mathrm K\),奇数轨迹令 \(a_6\leftarrow a_6-6\,\mathrm K\) | 训练分布很少出现强高频时,学习滤波器能否外推 | 不能用该测试标签回头扩充训练后仍称为同一次测试 |
| 错误扩散率 | 测试数据真值改为 \(\kappa=0.016\,\mathrm{m^2/s}\),估计器仍假设 0.01 | 前向物理模型失配时,数据驱动缩放和解析求逆如何一起偏离 | 不能把系统误差全归因于随机噪声或“模型容量不足” |
平滑同分布不是一种灾难性失效;它是必要的对照条件。高频 OOD 改变的是系数分布,错误扩散率改变的是前向机制。把两者分开,才能知道失败来自“训练数据没见过”还是“物理方程本身用错了”。
7. 三个指标回答三个不同的问题
对 32 条测试轨迹和 16 个传感器位置,统一先汇总平方误差再开根号:
还要报告当前观测残差
以及对独立未来带噪观测 \(y_i^+\) 的预测 RMSE:
不要先算每条轨迹的 RMSE 再取平均;那是另一个聚合量。未来指标的目标含有新噪声,因此即使前向模型和初始场都完美,它也仍有噪声底。当前观测残差小可能只是过度追随噪声,未来预测好也可能是扩散隐藏了高频错误,只有三项并列才形成完整诊断。
8. 实验报告模板
按下面顺序提交。表格中三种估计器、三种情景都必须出现,不得只展示赢家。
A. 问题与预测
- 用一句话写清要恢复的量、可观测量和为什么问题不稳定。
- 在运行前预测 \(t\)、\(\sigma\) 与测试情景会怎样改变三种估计器。
B. 可复现配置
| 字段 | 你的记录 |
|---|---|
| 协议版本 | heat-inverse-v1 |
| \(t\)、\(\sigma\) | |
| 训练/验证/测试轨迹数 | 128 / 32 / 32 |
| 切分种子 | 101 / 202 / 303 |
| 候选 \(\lambda\) 网格 | |
| 验证选中的 \(\lambda\) | |
| 测试情景 | smooth / high-frequency / wrong-diffusivity |
| 代码与数据文件校验 | 文件名、版本或提交号 |
C. 验证选择证据
列出六个候选 \(\lambda\) 的验证初始场 MSE,标出胜者和并列规则。单独声明:测试标签未参与选择;学习滤波器只在训练集拟合。
D. 冻结后的测试结果
| 情景 | 估计器 | 初始场 RMSE / K | 当前观测残差 RMS / K | 未来预测 RMSE / K |
|---|---|---|---|---|
| smooth | 无正则 / Tikhonov / 学习滤波 | |||
| high-frequency | 无正则 / Tikhonov / 学习滤波 | |||
| wrong-diffusivity | 无正则 / Tikhonov / 学习滤波 |
E. 机制解释与失败审计
- 用 \(s_k\)、\(1/s_k\)、Tikhonov 滤波因子和学得的 \(w_k\) 解释结果,不用“模型更聪明”代替机制。
- 指出高频 OOD 与错误扩散率失配的证据分别是什么。
- 找出至少一个“当前或未来拟合不错,但初始重建仍不可信”的例子。
- 写出八模态限制、独立高斯噪声、已知边界和无持续热源这些假设中,哪一条最可能妨碍真实部署。
F. 结论边界
只允许写“在本协议、这些种子、这个候选网格和这些测试情景下”的比较。真实实验没有隐藏的初始真值,必须依靠额外传感器、独立成像、重复实验或物理先验获得证据。
9. 迁移题:预测得准,却还原错了
一个部署系统在平滑验证集上选择了 \(\lambda\),未来 0.5 秒预测误差也很低。后来生产线上改用更窄的局部加热器,但扩散率没有改变。系统仍能较好预测稍后的温度,却把初始热斑重建得过宽。
- 这更接近哪一种测试情景?
- 为什么未来预测没有及时暴露问题?
- 应怎样修订验证方案,而不是直接把测试样本拿去调参?
展开参考答案
这更接近高频 OOD:窄热斑需要较强的高频模态,而平滑训练分布会让学习滤波器把这些模态视为低信号、高风险方向。热扩散继续衰减高频,所以过宽的初始估计与真实尖锐热斑在未来可能变得相似;低未来误差不能证明初始细节正确。
应先保留这批生产样本作为一次诚实的分布外评估,记录失效,再另外收集或模拟代表窄加热器的新训练与验证轨迹;扩展验证情景、检查八模态分辨率是否足够,并在独立的新测试集上重新评估。若真实初始场不可见,还需要独立物理测量,而不是把未来预测误差当作替代真值。
10. 项目文件与跨学科入口
- 实验协议:物理假设、随机流、切分、估计器和指标的唯一约定。
- NumPy 参考实现:独立生成默认数据并复算基准。
- 默认基准数据:用于核对实现,不用于偷偷选择超参数。
- 数学入口:衰减谱、SVD 与 Tikhonov 推导
- 物理入口:热方程、传感器链与模型误差
这个项目以后会在图像去模糊、地球物理反演、医学成像、系统辨识和科学机器学习中再次出现。对象会变,纪律不会变:先写清前向机制和数据单位,再隔离训练、验证与测试,最后用刻意设计的分布外与模型失配情景检验结论。
项目速查
| 环节 | 冻结协议 |
|---|---|
| 监督学习任务 | 输入 \(b=Q^\top y\),标签 \(a\),输出 \(Q\widehat a\);只保留 8 个模态 |
| 学习模型 | \(\widehat a_k=w_kb_k\),\(w_k=\sum_{\rm train}b_{ik}a_{ik}/\sum_{\rm train}b_{ik}^2\);无截距、无隐藏层 |
| 数据划分 | 128 条训练、32 条验证、每个场景 32 条测试;按完整轨迹划分 |
| 参数选择 | 验证集初态 MSE 选择 Tikhonov 的 \(\lambda\);测试标签不参与选择 |
| 三个测试条件 | 平滑同分布、高频增强、实际扩散率与假设不符 |
| 报告指标 | 初态 RMSE、当前残差 RMS、独立晚时刻预测 RMSE,均为 K |