跳到主要内容

时间上一直跑下去为什么不炸

1. 这一章讲什么

三件事: 时间预测为什么也该换成概率的(书给了一个「没什么可失去」的论证); 条件化的正确做法——它反直觉,而且书说是关键; 以及全书最有实操价值的一组对照实验:自回归跑二十万步不发散,到底靠哪一样。

它在全书链条里的位置:这一章还三笔账。 第 08 章埋的「展开越多越难学」、第 09 章埋的「展开几步才够」、 第 10 章埋的「很难用别的方法打败一个好的展开设置」—— 三处伏笔的答案全在这一章的消融实验里。

2. 顶层全景

问题:让网络自己接自己的输出往下跑,跑很多步

x_t ──网络──▶ x_{t+1} ──网络──▶ x_{t+2} ──▶ …… ──▶ 第 200,000 步

常见的两种结局:① 数值炸掉 ② 退化成一个没有涡的、平的均值流

┌──────────── 这一章问:靠什么才不出这两种结局 ────────────┐
│ │
│ 候选甲:展开训练 梯度穿过多个时间步反传 │
│ 候选乙:单步 + 训练噪声 加噪模拟推理时累积的误差 │
│ 候选丙:扩散式的预测 每一步用去噪产生下一状态 │
│ │
│ 三种各训 3 次,每次 rollout 200,000 步 │
└────────────────────────────────────────────────────────┘


简单任务(周期性的圆柱绕流):三种全稳 —— 说明不了什么
难任务(带激波的跨音速尾流):乙有一个退化成均值流,甲和丙全稳


把丙剔出去,只在甲上做消融,得到一条分水岭

展开 ≤ 4 步:一致地拿不到稳定的 rollout
展开 ≥ 8 步:够了

不要紧的三样:只吐增量还是吐全量 · 数据减到 1/8 · 换骨干架构

这张图在讲什么: 上半是现象,中间是三个候选,下半是结论。 注意书的实验设计:先用一个简单任务证明「简单任务上分不出高下」, 再换难任务才开始有信息——这是一处值得学的实验安排。

3. 时间序列为什么也要概率化

结论先行:书给的论证不是「概率更强」,是「概率没什么可失去」。

先看现象。 大多数传统求解器和学习方法,把一条仿真轨迹当成确定的、 一阶马尔可夫的——一个状态完全决定下一个状态1

书说更现实的视角不是这样: 我们观测到的只是系统的一部分,同时还有一个「没被观测、也没被仿真」的部分 在影响它随时间的演化。 书把这个视角挂在一个已有的形式体系名下(Mori-Zwanzig),但没有展开数学。

为什么这一点在时间上特别要命,书给了理由1: 即使空间平均之后的状态里只有极微小的歧义,随着时间也会导向截然不同的结果。

读法:第 01 章那盆冷水在时间轴上被放大了。 空间上一点点说不清,跑一万步之后就是两条完全不同的轨迹。

然后是那句「没什么可失去」的论证1:

一个概率式的仿真器能学着把那个未观测部分的影响考虑进来。 最坏情况下,如果这个未观测状态的影响可以忽略,我们会看到一个均值状态、 方差实际上为零。所以没什么可失去的!

这个论证的形状值得记:它不主张收益,只主张下界。 「最坏也就退化回你原来那个确定性的答案」—— 这类论证在选技术方案时比「我们更强」有用得多,因为它是可验证的。

4. 条件化:一条反直觉、但书说是关键的做法

结论先行:所有当条件用的输入,都要和输出被同样对待。

先说清楚什么叫条件。 生成一个东西的时候,你手上通常已经有一些已知信息: 上一个时刻的流场、雷诺数、边界条件。这些已知的部分叫条件, 要生成的那部分叫目标。 时间预测里,条件就是当前这一步的状态,目标就是下一步的状态。

直觉的做法是:条件当输入喂进去,目标当输出去噪。 书说不对。它给的中心结论是2:

所有用于条件化的输入,都应该和扩散过程的输出被同样对待。

也就是说:条件也要被加噪、也要被去噪,和目标一起进同一条链。

书自己承认这乍看反直觉(条件明明更像输入而不是输出),然后给了两条理由2:

理由具体说的是什么
① 逼网络真的用上条件训练时「强迫」网络把条件和目标一起去噪,会迫使它充分考虑条件变量,让输出的特征和条件紧紧缠在一起
② 减少误差累积反向过程最初几步的条件很噪,那几步基本上是无条件的;所以条件里累积的误差不会立刻进入预测

第二条要多想一层才明白,它是这一节最精妙的地方: 自回归跑的时候,上一步的输出会成为下一步的条件; 如果上一步有误差,这个误差就跟着条件进来了。 而「最初几步条件被噪声淹掉」这件事,恰好给了误差一个衰减的机会。 把条件加噪,不是弄脏它,是给它加一道保险丝。

5. 推理时怎么保证零漂移

上一节那套做法有一个便宜可以捡,而书捡得很干净。

训练时条件被加噪,是为了那两条好处。 但推理时我们知道条件的真值——上一步的状态就在手里,不用猜。 而噪声也完全在我们掌控中。

所以做法是3:每一个去噪步之后,不用网络预测出来的那个条件, 而是拿已知的真值条件、加上这一步该有的噪声量,重新算一遍。

书用的词是:保证零漂移。

摊开讲这一步为什么值钱:去噪过程会同时吐出「条件的估计」和「目标的估计」, 而条件那一半我们根本不需要它去估——它是已知的。 每一步都用真值把它盖回去,等于把这条链上一半的误差源直接掐断, 让网络专心去产生准确的那另一半。

6. 一处记号的坑:这里有两个时间

⚠️ 这一章有两个「时间」,而且它们完全正交。

哪个时间指什么走多少步
去噪时间从纯噪声走到干净样本的那根人造轴(第 13 章那根)每生成一个状态走一遍
物理时间流体真正往前演化的那个时间一步一步往下推,可以推二十万步

书明说:物理时间和去噪时间完全正交—— 去噪过程除了「被要求产生一个遵守系统动力学的输出」之外, 不以任何别的方式和物理时间打交道4

读法:每往前推一个物理时间步,内部就要完整跑一遍去噪链。 两根轴是嵌套的,不是并列的。这也解释了这套做法为什么贵。

7. 现代 U-Net:兑现第 04 章那笔账

第 04 章讲选架构时提过一句「现代化的 U-Net」,答案在这里。

和第 05 章那个翼型任务用的老 U-Net 比,这个版本改了三处5:

改动换成了什么
skip 连接换成了注意力机制(让每个位置去看别的位置、按相关程度加权取信息)
激活函数GELU 取代 ReLU
归一化每一层都加组归一化(把一层里的通道分成几组,每组各自把数值拉回一个统一的量级)

另外还接了一样东西,而它要解决的问题很具体:网络得知道自己现在处在去噪链的第几步。 可「第几步」只是一个数,而网络的各层吃的是一整排数。 把一个数摊成一排数、好让网络能用,这个动作在这一行里叫嵌入。

书用的具体做法来自 Transformer 那一系,叫正弦位置嵌入: 用一组不同频率的正弦、余弦函数把那个步数摊成一排数, 再通过一个小网络送进 U-Net 的各层5

书对这套架构的定位:它是许多流行扩散做法的骨干, 通常比更简单的架构好几个百分点,有些情况下好得多5

注意力放在哪儿是一处很实际的工程细节,书讲得很清楚6:

位置用哪种注意力为什么
U-Net 的瓶颈层(中间最窄那一层)常规注意力常规注意力的代价对输入尺寸是二次的;瓶颈层尺寸最小,用得起
skip 连接上线性注意力它对输入尺寸是线性的,只对内部的一个维度是二次的——而那个维度可以随便选

这一条是「二次代价怎么绕开」的一个标准答案,可以直接拿去用。

8. 无条件稳定:这一章真正的题目

结论先行:先把这个词讲清楚,它是接下来所有实验的靶心。

无条件稳定 = 一个网络可以被自回归地调用任意多次,而不炸掉。

「炸掉」有两种样子,书都点了名7:

失败方式长什么样
数值发散数值越滚越大,最后变成一堆无意义的值
退化成平凡的稳态不炸,但把输入变成一个死气沉沉的均值流——涡全没了

第二种更阴险:它不报错,画出来还挺光滑,但物理上是错的。 这正是第 10 章那条度量学警告的另一个例子——L2 误差可能并不难看。

书对扩散式做法的观察是这一章的起点7:

看起来扩散过程迫使网络学会处理状态里的扰动和累积误差,而不会轻易脱轨。 这对无条件稳定至关重要。

但书接着做的事才是这一章的价值:它不满足于「扩散好」,而是去问 「到底哪一样成分在起作用」。

它先给了一个总的判断,而这个判断很干8:

无条件稳定对基于神经网络的预测器来说「没什么特别的」。 它不需要特殊的损失函数、也不需要超出正常学习设置的技巧 ——合适的超参、足够大的网络,加上足够的数据就行。 有意思的是,网络架构似乎真的不太要紧:只要足够大,几乎「任何」架构都能得到稳定的 rollout。

9. 主走查:带激波的跨音速尾流

走查之前先把两个物理词讲清,不然后面每个数字都读不懂。

马赫数 = 流速除以声速。 马赫数 0.5 就是「跑到声速的一半」。 跨音速指的是马赫数接近 1 的那一段—— 这时候流场里局部会出现超过声速的区域,于是产生激波 (第 03 章讲过:物理量在极窄的一层里几乎跳变的那种结构)。 激波会和流动互相作用,这是让这个任务变难的全部原因。

主走查第 1 步(两个任务):

任务训练范围测试范围(全是外推)
较容易的:不可压的圆柱绕流雷诺数 200–900960 / 980 / 1000
难的:跨音速尾流,雷诺数 10,000马赫数 0.53–0.90.50 / 0.51 / 0.52

书特意说明:那三个测试马赫数很难,因为含有大量与流动交互的激波9

主走查第 2 步(三个候选,骨干完全相同):展开训练——梯度在训练时穿过多个时间步反传(第 09 章那套); ② 单步预测 + 训练噪声——加噪来减少数据漂移,噪声模拟的是推理时累积的误差; ③ 扩散式的自回归预测——用上一步的状态当条件,靠去噪产生下一步10

主走查第 3 步(怎么跑): 每个架构在每条测试序列上训 3 次, 每次 rollout 展开 200,000 步9⚠️ 书自己写了免责声明:这个长度不能证明它们能给出无限长的稳定 rollout, 但发散的概率极小。

「200,000 步」要有参照物:第 10 章那个混合求解器的 rollout 是 100 步。 这里长了两千倍。

主走查第 4 步(简单任务的结果): 三种方法、所有训练轮次,全部无条件稳定11书自己解释了为什么这说明不了什么:这个流动虽然不定常但完全周期, 所有网络的结果都是简单的周期轨迹,从而防止了误差累积。 结论:对较简单的任务,长期稳定性不太是个问题。

主走查第 5 步(难任务的结果,这一步才有信息): 三个「单步 + 训练噪声」的网络里,有一个在头几千步内就出了稳定性问题—— 它退化成了一个没有涡的、简单的均值流预测11而展开训练和扩散式的,在所有序列和所有训练轮次上完全稳定。

主走查第 6 步(一个实验设计上的决定): 因为扩散式的全面无条件稳定,书把它从后续消融里剔除了, 专注在稳定性更难达到的 U-Net 上11读法:天花板上的选手测不出差别,要研究「靠什么」就得挑一个会失败的对象。

10. 分水岭只有一个:展开步数

结论先行:所有消融跑完,只有一个因素说了算。

书的原话12:

不同马赫数上的泛化测试没有区别。最重要的稳定性判据是展开步数: 展开 4 步以内的网络一致地拿不到稳定的 rollout, 而 8 步以上就足以在不同的马赫数上都稳定。

主走查第 7 步(这条分水岭): 展开 ≤ 4 → 一致地不稳;展开 ≥ 8 → 够。 衡量的方式不是单次结果,而是「每种配置各训 3 个,数一数有几个稳」的百分比12

这一条把第 08、09、10 三章的账一起还了:

谁欠的欠的是什么这里怎么还
第 09 章展开几步才够8 步
第 08 章「展开越多越难学」的代价有多大第 12 节那张批大小的账
第 10 章「很难用别的方法打败一个好的展开设置」单步 + 训练噪声那一组真的输了

11. 三样几乎不影响的因素

书特意列了三个「不要紧」的因素,而这类结果往往比正面结论更有用13:

换掉什么稳定性受影响吗
预测范式:让网络只吐「和上一步差多少」这个增量,而不是完整的下一状态不影响
训练数据量:每个马赫数从 1000 个时间步减到 125 步(减到八分之一),同时训练 8 倍多的轮次以求公平不影响
骨干架构:换成带空洞的 ResNet不影响,配上展开训练照样全稳

第二条有一个不能漏掉的前提,书写在同一句里: 这样减完之后,数据仍然保留了完整的物理行为,也就是完整的涡脱落周期13

读法:重要的不是「有多少数据」,是「数据里有没有把该发生的行为演完一遍」。 砍掉八分之七的重复周期不损失任何信息;砍掉半个周期就会。

第三条有一处例外值得记:不带空洞的普通 ResNet 只有一个训出来的网络稳定, 书的归因是它的感受野变小了13这一句把第 04 章那把「一个点的变化会牵动多远」的尺子,接到了稳定性上。

12. 批大小和展开长度,该往哪边投

结论先行:批大小能帮忙,但免不掉展开;而更长的展开更划算。

先说批大小为什么有影响。 书说这和图像那边一样: 小批次已知能改善泛化——这本来就是用小批量而不是全数据集梯度的动机14

然后是三条实测14:

观察具体说的是什么
小批次能救一部分网络只在大批次下勉强够到理想展开长度的网络,可以靠更小的批次稳定下来
免不掉展开不做展开的网络,在所有测试过的批大小上都不稳定
大批次更慢在两个数据集上都让训练时间更长(计算的内存效率变差)

而更长的展开为什么不一定更慢,书给了一个很具体的算法14:

可以用更少的每轮更新次数去补偿。例如:250 个批次配展开 4 步, 或者 125 个批次配展开 8 步——两种配法下,每个网络在训练过程中 见到的仿真状态总数保持不变。

这个换算是这一节的关键:展开翻倍、批次数减半,总工作量不变。 所以「更长的展开」不是花钱买来的,是换来的。

书的裁决15:

要拿到无条件稳定的网络和神经算子,一致地更划算的做法是: 大的展开长度,配一个足够占满可用显存的批大小。 也就是说,靠更长的训练展开,比靠更小的批次更高效地达成稳定。

13. 什么时候扩散不划算

书在这一部分收尾时给了边界,而且讲得毫不含糊16:

扩散那一套在预测均值解上,一般并不比经典方法更好。 因此,如果你数据里的输入-输出关系是唯一的,它不会划算,只会带来更高的推理计算量。

书接着说了它划算的场合: 对大多数非平凡的数据集, 数据里的歧义不会被平均掉,而是被当成一个分布来处理和再现16

再加上无条件稳定这一条16:

给定合适的学习任务,训练出的网络不会随时间炸掉,也不会把输入变成平凡的稳态。 这两种情况在用其他训练方法训出的模型里都很常见。 相反,它能在任意长的 rollout 上保持参考数据的统计特性。 很难证明它们永远不发散,但在我们的测试里,稳定的网络在几十万个 rollout 步的过程中都没有发散。

⚠️ 最后那半句是书自己的坦白,必须一起传达:这不构成证明。

14. 主走查合起来看

发生了什么具体的数
1难任务跨音速尾流,雷诺数 10,000;训练马赫数 0.53–0.9,测试 0.50/0.51/0.52(含大量激波)
2对照任务圆柱绕流,训练雷诺数 200–900,测试 960/980/1000
3三个候选展开训练 / 单步+训练噪声 / 扩散式自回归,骨干完全相同
4怎么跑每种各训 3 次,每次 rollout 200,000 步(第 10 章那次是 100 步)
5简单任务结果三种全稳——但那是因为流动完全周期,说明不了什么
6难任务结果单步+训练噪声三个里有一个退化成没有涡的均值流,而且发生在头几千步内
7展开训练与扩散所有序列、所有训练轮次全稳
8实验设计的决定扩散全面稳定,所以把它剔出后续消融,专注在会失败的 U-Net 上
9分水岭展开 ≤ 4 一致不稳;≥ 8 就够
10三样不要紧只吐增量 vs 吐全量 · 数据减到 1/8(1000 → 125 步) · 换骨干
11一个例外不带空洞的 ResNet 只有 1/3 稳定,书归因于感受野变小
12批大小的账250 批 × 展开 4 = 125 批 × 展开 8,见到的状态总数不变
13裁决长展开 + 占满显存的批大小;更长的展开比更小的批次更高效

每个数都是书里那组实验的真实设置与结果(逐条见脚注); 「长了两千倍」这个比值是我们拿它和第 10 章那 100 步算的。

15. 作者的判断与证据

书里给了证据的:

说法证据
展开步数是最重要的判据一张「每种配置的稳定百分比」表,每格 3 次训练12
简单任务上分不出高下三种方法在圆柱绕流上全稳11
单步+训练噪声会失败三个里有一个在头几千步内退化成均值流11
数据减到八分之一不影响同一组消融,并且补足了训练轮次以求公平13
大批次训练更慢两个数据集上的训练时间表14

作者的判断:

说法为什么算判断
「无条件稳定没什么特别的」归纳自前面几章的成功案例,不是这一章的实验结论8
「架构似乎不太要紧,只要足够大」只试了三种骨干,而且其中一种(普通 ResNet)其实失败了813
「条件也要被去噪」的两条理由书说「已经被证明」,但这一章没有做「不去噪条件」的对照2
「200,000 步不发散」书自己声明这不构成证明916
扩散在均值预测上不比经典方法好指向另一篇基准论文,这一章没有给对照数字16

判断(我们的,不是书里的): 这一章最该被带走的不是「8 步」这个数, 是那条「250 批 × 展开 4 = 125 批 × 展开 8」的换算。 它说明展开长度和批次数是可以互换的两个旋钮,而不是一个要花钱、一个免费; 既然总工作量不变,那就应该把预算全押在展开上。 如果错,会错在: 这条换算假定「见到的仿真状态总数」是决定训练效果的量。 如果真正起作用的是「参数更新的次数」,那么减半批次数就等于减半更新次数, 这笔账不成立。判据是:把批次数减半、但把训练轮次加倍,结果一样吗? 书在数据量那一项上做过这个补偿,但在批次数这一项上没有。

16. 边界与局限

  • 8 步这个分水岭只在一个任务上量过(跨音速尾流),换任务是不是还是 8,书没有说; 书自己也提了一句「每种架构理想的展开步数可能不一样」17;
  • 200,000 步不是证明,书两次声明了这一点;
  • 条件化那个反直觉的做法没有对照实验。 「不去噪条件会差多少」,这一章没有量;
  • 零漂移那个技巧也没有消融,去掉它会怎样没有数据;
  • 现代 U-Net 那三处改动是打包给出的,没有逐项拆开看各自贡献多少;
  • 「好几个百分点」是唯一给出的收益数字,而且没有说是在什么指标上5;
  • 扩散式做法被剔出消融之后,就没有再回来。 所以「扩散和长展开哪个更划算」这个最实际的问题,书没有正面回答;
  • 整章没有物理约束。 这里的稳定性完全来自训练方式, 没有任何求解器参与——和第 14 章那条路是分开的两件事。

17. 可带走的

  1. 时间序列该概率化的理由是「没什么可失去」: 最坏情况下方差为零, 你拿回的就是原来那个确定性答案;
  2. 微小的歧义在时间上会被放大成完全不同的轨迹—— 第 01 章那盆冷水在时间轴上的样子;
  3. 条件化的正确做法反直觉:所有当条件用的输入,都要和输出一样被加噪、一起去噪;
  4. 两条理由:逼网络真的用上条件;让最初几步基本无条件,于是条件里的误差不会立刻进入预测;
  5. 推理时每步之后用真值把条件盖回去,保证零漂移——因为条件的真值我们本来就知道;
  6. 这里有两个正交的时间:去噪时间和物理时间。 每推进一个物理步,内部要跑完一整条去噪链;
  7. 现代 U-Net 的三处改动:skip 换成注意力、激活换 GELU、每层加组归一化; 外加正弦位置嵌入把「去噪第几步」送进各层;
  8. 注意力的代价对输入尺寸是二次的,所以只放在瓶颈层;skip 上用线性注意力;
  9. 无条件稳定 = 自回归调用任意多次不炸。 失败有两种样子: 数值发散,和退化成没有涡的均值流——后者更阴险,因为它不报错;
  10. 书的总判断很干:稳定性「没什么特别的」,不需要特殊损失或技巧, 合适的超参 + 足够大的网络 + 足够的数据就行;
  11. 唯一的分水岭是展开步数:4 步以内一致地拿不到稳定的 rollout,8 步以上就够;
  12. 三样几乎不影响:网络只吐增量还是吐全量、数据减到八分之一、换骨干架构;
  13. 数据能减是因为「完整的涡脱落周期还在」。 重要的是行为演完了,不是样本多;
  14. 小批次能帮忙,但免不掉展开——不做展开的网络在所有批大小上都不稳;
  15. 更长的展开不一定更慢: 展开翻倍、每轮批次数减半,见到的状态总数不变;
  16. 裁决:长展开 + 占满显存的批大小。 把预算押在展开上,不是押在小批次上;
  17. 输入输出关系唯一时,扩散那一套不划算——它不更准,只更贵。

18. 原文地图

主题原书章原文位置
一阶马尔可夫的假设、未观测的那部分29 Diffusion-based Time Predictiontext/15-p281-300.txt:637(搜「first-order Markovian」) · text/15-p281-300.txt:638(搜「Mori-Zwanzig」)
「没什么可失去」的论证29 同上text/15-p281-300.txt:644(搜「negligible influence」)
无条件稳定的定义与扩散为什么帮得上29 同上的 Note 框text/15-p281-300.txt:663(搜「unconditional stability」)
条件化的中心结论与两条理由29.1 Conditioningtext/15-p281-300.txt:676(搜「treated in the same way as the outputs」) · text/15-p281-300.txt:681(搜「reducing error accumulation」)
推理时重算条件、零漂移29.1 同上text/15-p281-300.txt:693(搜「zero drift」)
两个时间完全正交29.1 同上text/15-p281-300.txt:706(搜「completely orthogonal」)
现代 U-Net 的三处改动与正弦位置嵌入29.3 Backbone Network Definitiontext/15-p281-300.txt:770(搜「GELU activations replace ReLU」) · text/15-p281-300.txt:774(搜「sinusoidal position embeddings」)
注意力放哪儿29.3 同上text/16-p301-320.txt:46(搜「quadratic scaling」) · text/16-p301-320.txt:48(搜「linear attention is used instead」)
什么时候扩散不划算、二十万步的坦白29.10 Summarizing Time Predictionstext/16-p301-320.txt:983(搜「not better at predicting the mean solution」) · text/16-p301-320.txt:993(搜「did not diverge over the course」)
这一章的中心问题30 Unconditional Stabilitytext/17-p321-340.txt:8(搜「which ingredients are necessary」)
「没什么特别的」那个总判断30 同上text/17-p321-340.txt:12(搜「nothing」) · text/17-p321-340.txt:16(搜「architecture doesn」)
两个任务、训练与测试范围、20 万步30.1 Main Considerationstext/17-p321-340.txt:39(搜「transonic wake flow」) · text/17-p321-340.txt:44(搜「no proof that these networks yield infinitely long」)
三种稳定化手段30.2 Comparing Architecturestext/17-p321-340.txt:52(搜「Unrolled training」)
简单任务全稳、难任务上的失败30.2 同上text/17-p321-340.txt:62(搜「remain unconditionally stable over the」) · text/17-p321-340.txt:67(搜「stability issues within the first few」)
把扩散剔出后续消融30.2 同上text/17-p321-340.txt:70(搜「unconditionally stable across the board」)
m ≤ 4 不稳、m ≥ 8 够30.3 Stability Criteriatext/17-p321-340.txt:89(搜「most important criterion for stability」)
三个不要紧的因素30.3 同上text/17-p321-340.txt:92(搜「Negligible Aspects」) · text/17-p321-340.txt:96(搜「factor of 8」) · text/17-p321-340.txt:99(搜「reduced receptive field」)
批大小的影响与那条换算30.4 Batch Size vs Rollouttext/17-p321-340.txt:105(搜「batch size turns out to be an important factor」) · text/17-p321-340.txt:123(搜「250 batches with」)
裁决30.4 同上text/17-p321-340.txt:129(搜「consistently beneficial」)
收尾清单30.5 Summarytext/17-p321-340.txt:145(搜「Long rollouts at training time」) · text/17-p321-340.txt:151(搜「Prediction paradigm during training」)

Footnotes

  1. 出处:第 29 章开头(p.287)第 636 段(text/15-p281-300.txt:636,搜「minor ambiguities」)、 第 638 段(text/15-p281-300.txt:638,搜「Mori-Zwanzig」) 与第 644 段(text/15-p281-300.txt:644,搜「negligible influence」)。 书只提到 Mori-Zwanzig 这个名字和它给出的视角,没有展开数学,我们也不展开。 2 3

  2. 出处:第 29.1 节 Conditioning(p.288)第 676 段 (text/15-p281-300.txt:676,搜「treated in the same way as the outputs」) 与第 681 段(text/15-p281-300.txt:681,搜「reducing error accumulation」)。 原文用「it was shown that」引出第一条理由,但没有给引用编号, 这一章也没有做「不去噪条件」的对照实验。 2 3

  3. 出处:第 29.1 节(p.289)第 693 段(text/15-p281-300.txt:693,搜「zero drift」)。 原文:因为我们知道条件的确切值、噪声也完全在掌控中, 所以可以保证任一去噪时刻的条件恰好有正确的内容。

  4. 出处:第 29.1 节(p.289)第 706 段 (text/15-p281-300.txt:706,搜「completely orthogonal」)。 书用 r 表示去噪时间、t 表示物理时间; 我们正文里不用这两个字母,只说「去噪时间」和「物理时间」。

  5. 出处:第 29.3 节 Backbone Network Definition(p.289–290)第 770 段 (text/15-p281-300.txt:770,搜「GELU activations replace ReLU」) 与第 774 段(text/15-p281-300.txt:774,搜「sinusoidal position embeddings」)。 原文说这套架构是许多流行扩散做法的骨干,通常比更简单的架构好至少几个百分点 ——但没有说是在什么指标上。 「组归一化 = 把一层里的通道分成几组、每组各自把数值拉回统一量级」这个解释是我们补的 (补充,不在书里,来自通用知识)。 2 3 4

  6. 出处:第 29.3 节(p.291)第 46 段(text/16-p301-320.txt:46,搜「quadratic scaling」) 与第 48 段(text/16-p301-320.txt:48,搜「linear attention is used instead」)。 组归一化加在上采样和下采样之前 (text/16-p301-320.txt:108,搜「group normalization」)。

  7. 出处:第 29 章的 Note 框(p.288)第 663 段 (text/15-p281-300.txt:663,搜「unconditional stability」)。 两种失败方式见第 29.10 节(p.309)第 990 段 (text/16-p301-320.txt:990,搜「Given an appropriate learning task」)。 2

  8. 出处:第 30 章开头(p.311)第 12 段(text/17-p321-340.txt:12,搜「nothing」) 与第 16 段(text/17-p321-340.txt:16,搜「architecture doesn」)。 书自己说这是从前面几章的「成功案例」归纳出来的,不是这一章测出来的。 2 3

  9. 出处:第 30.1 节 Main Considerations for an Evaluation(p.311–312)第 39 段 (text/17-p321-340.txt:39,搜「transonic wake flow」) 与第 44 段(text/17-p321-340.txt:44,搜「no proof that these networks yield infinitely long」)。 「马赫数 = 流速除以声速」这个解释是我们补的(补充,不在书里,来自通用知识); 「激波是物理量在极窄一层里几乎跳变」的解释第 03 章已经给过。 2 3

  10. 出处:第 30.2 节 Comparing Architectures(p.312)第 52 段 (text/17-p321-340.txt:52,搜「Unrolled training」)。 三种做法在书里的记号是 U-Net-ut、U-Net-tn 和 ACDM; 我们正文里用中文说法,不用这三个缩写。

  11. 出处:第 30.2 节(p.312)第 62 段 (text/17-p321-340.txt:62,搜「remain unconditionally stable over the」)、 第 67 段(text/17-p321-340.txt:67,搜「stability issues within the first few」) 与第 70 段(text/17-p321-340.txt:70,搜「unconditionally stable across the board」)。 2 3 4 5

  12. 出处:第 30.3 节 Stability Criteria(p.313)第 89 段 (text/17-p321-340.txt:89,搜「most important criterion for stability」)。 统计方式见同节第 80 段(text/17-p321-340.txt:80,搜「3 each time」): 每种配置训 3 个,报告稳定的百分比。 2 3

  13. 出处:第 30.3 节(p.313)第 92 段(text/17-p321-340.txt:92,搜「Negligible Aspects」)、 第 96 段(text/17-p321-340.txt:96,搜「factor of 8」) 与第 99 段(text/17-p321-340.txt:99,搜「reduced receptive field」)。 原文明写数据缩减之后「仍然保留了完整的物理行为,即完整的涡脱落周期」。 2 3 4 5

  14. 出处:第 30.4 节 Batch Size vs Rollout(p.313–314)第 105 段 (text/17-p321-340.txt:105,搜「batch size turns out to be an important factor」) 与第 123 段(text/17-p321-340.txt:123,搜「250 batches with」)。 原文那句换算是:250 个批次配展开 4,或者 125 个批次配展开 8, 每个网络在训练过程中见到的仿真状态总数保持不变。 2 3 4

  15. 出处:第 30.4 节(p.314)第 129 段(text/17-p321-340.txt:129,搜「consistently beneficial」)。 书配的图只保留了「稳定率不低于 89%」的配置。

  16. 出处:第 29.10 节(p.308–309)第 983 段 (text/16-p301-320.txt:983,搜「not better at predicting the mean solution」) 与第 993 段(text/16-p301-320.txt:993,搜「did not diverge over the course」)。 ⚠️ 原文原话是「很难证明它们永远不发散」,书两次声明了这一点。 2 3 4 5

  17. 出处:第 30.5 节 Summary(p.315)第 151 段 (text/17-p321-340.txt:151,搜「Prediction paradigm during training」)。 原文那条清单的最后一项写着「不同的网络架构——尽管每种架构理想的展开步数可能不一样」。