任务:提交一个共同版本的完整证据链
毕业验收的对象是第七章训练出的同一个二维速度网络,而不是从不同模型各取一个最好指标拼成“成功”。先冻结检查点与源码指纹,再为每个采样种子建立初始噪声和独立目标参考样本。评价同时保留学习场、解析教师、真实对真实基线及故意退化的生成器。这里的PASS只用于明确的程序测试,分布质量报告保留原始数字和不足,不把“代码能运行”写成“分布已完全正确”。
项目默认三组采样种子一百零一、一百零二、一百零三,每组两千零四十八个初始二维噪声。参考数据种子分别加一千,另一份真实基线种子分别加两千。方向投影固定种子三百一十四。三组输出共享一个训练种子七的检查点,所以评估单位是三组采样,不是三次独立训练。若要研究训练稳定性,必须另跑初始化与训练随机性,不能把更多输出点误当更多独立模型。
一、用互补指标阻止退化解冒充成功
均值和协方差先与解析目标零向量、对角四点零九比较。项目用总体形式经验协方差,即除以样本数,而不是除以样本数减一;这是为了把经验分布作为一个整体,和代码中的统计定义一致。理论协方差与有限样本估计有随机差异。它们不能单独识别多模态形状,因此还需要按照最近中心划分的四类质量和簇内距离。
最近中心平方距离的目标均值约为零点一八;我们还记录距离最近中心超过零点九的比例。对单簇二维各向同性高斯,半径大于三倍标准差的概率是指数负四点五,约百分之一点一一;混合中最近中心分区带来极小修正。这不是一维三西格玛规则。若把二维半径事件误用为一维双侧尾概率,会设置完全不同的参考标准。
算例一:多个好看的矩也能同时说谎
第一种退化输出均匀选择四个中心,不加簇内噪声。它的模式质量恰好各四分之一,均值零,协方差四乘单位阵,与四点零九只差一点点;最近中心距离和离群率却都为零。目标本应有非零簇内宽度,所以这不是比目标更好的生成器。第二种退化输出是协方差四点零九的单高斯,均值和协方差都对,但大部分点不在四个簇附近,形状错误十分明显。
本次实际评价中,四中心原子基线的多方向投影距离平均约零点二五五四,尽管模式质量差为零。矩匹配单高斯的对应距离约零点五二二三,超过半径零点九的比例约百分之八十四点六八。它们是故意构造的失败记录,不应被删去。若指标只保留“模式覆盖”和“到中心越近越好”,原子基线会获高分,证明评价规则本身不够完整。
二、投影距离的定义、能力与边界
二维分布难以只用一条直方图表示,项目固定三十二个随机单位方向。对每个方向,把两组样本投影为一维标量,分别排序,再计算对应排序位置的绝对差平均。样本数相同且权重相等时,这是该一维经验分布的Wasserstein一阶距离;最后对方向再平均,得到有限方向的切片距离估计。它有位置单位,不是无量纲准确率,更不是图像任务中的FID。
排序是对每个方向分别进行,不是先把二维点按某个坐标排序,再把同一索引的点强行配对。真实数据没有提供与生成噪声逐点对应的答案,不能直接计算生成点与任意真实点的欧氏距离并叫作生成误差。相同初始噪声可以用于比较两个求解器的数值轨迹,却不创造生成样本与真实样本之间不存在的配对关系。
算例二:真实对真实不是零误差下界
若投影后两组排序值分别为负二、零、二,以及负一点五、零点五、二点五,则经验一维距离为三个零点五的平均,即零点五。两组样本即使来自同一真实分布,也不必逐项相同。只有把同一组样本复制给自己时,距离才精确为零;项目用这一点做算法单元检查,但使用另一份独立真实样本作实际噪声基线。这两个检查回答不同问题,不能互相替换。
本次三组独立真实对真实的投影距离平均约零点零九三四六,解析教师Heun四十步约零点零七九五零。后者偶然小于前者不意味着它比真实分布“更真实”,只是有限样本及参考耦合造成的波动。因此真实对真实是帮助理解量级的基线,不是任何估计都不能跨越的理论地板。比较时应保留每个种子的原始值,不仅给一个最小数。
三、当前冻结网络的实际终端分布
对同一个一千五百步检查点,用Heun四十步、每步两次场调用,三组采样的切片距离均值约零点一四八五九,模式分区质量差约零点零四一九九,最近中心平方距离约零点二二六八九,离群比例约百分之五点二九。与目标约零点一八的簇内平方距离和约百分之一点一一的尾部相比,网络仍有分布偏差。训练损失下降确实发生,但没有消除全部学习与积分误差。
同模型Euler四十步的切片距离约零点一五一七七,簇内平方距离约零点二四六九二,离群比例约百分之六点三三。这两个四十步比较没有相同场调用预算,Euler四十次、Heun八十次;报告不能据此宣称同算力优势。评价命令加入二十步网格后,还能读取Heun二十步与Euler四十步的同调用观察,所有记录都保留在JSON中,不从中只挑支持某种方法的单个局部指标。
精确解析教师的一步Euler输出几乎都在原点,平均最近中心平方距离为八、离群比例为一,这是第六章预言的失败。单精度舍入可能把微小残差随机分进几个最近中心区域,让模式标签看起来未必全部相同;这更说明硬分区质量不能独立作为成功判据。距离与协方差仍会暴露该数值坍塌,测试中的双精度解析检查则直接验证其零点极限。
四、怎样提交可复跑的验收包
提交包括模型配置、训练与验证随机种子、目标分布定义、全部网络权重、训练损失记录、每组采样的步数和场调用次数、样本张量、统计JSON、测试结果和源码指纹。检查点前后哈希应一致,评价不重新更新网络。若进一步试验更长训练或不同架构,必须作为新版本单独报告,不能把新的训练曲线与旧的样本质量拼在一起。这个要求比一个写着“效果很好”的总结更能支持复核。
本项目没有实现图像编码器、UNet、Diffusion Transformer、文本条件、分类器自由引导或真实图像评价;也没有训练DDPM噪声网络或实现它的随机反向链。前面DDPM与score章节提供闭合原理推导和独立算例,实际端到端实现明确是二维条件Flow Matching。扩展到图像不仅是把输出维度改大,还涉及数据许可、架构、计算资源与评价协议;这些未完成内容不会在本课结果中伪装成已经集成。
python -m tests.run_tests
python -m flow2d.evaluate --checkpoint evidence/run/checkpoint.pt --n 2048 --seeds 101 102 103 --steps 1 10 20 40 --output-dir evidence/evaluation练习与完整解答
TRY IT YOURSELF
练习一|有限分区的距离
观测四类质量为0.4、0.1、0.3、0.2,求对均匀目标的分区总变差。这个数为零能否证明每个簇内高斯正确?
提示 1
提示 2
对照参考解答
TRY IT YOURSELF
练习二|识别伪配对误差
甲用相同初始噪声比较Euler和Heun输出差;乙将生成第i点与随机真实第i点算距离。哪一个适合检查数值收敛?乙应怎样改?
提示 1
提示 2
对照参考解答
TRY IT YOURSELF
练习三|给结果写准确结论
网络训练MSE下降,四模式均被覆盖,但离群率约5.3%,高于目标约1.1%。请写一段不夸大也不否认实际进展的结论。