单篇论文体 · SIGGRAPH 2026 Conference Papers 全文精读 · 署名浅墨(qianmo)

同一份训练预算怎么花:把实例数当探索、把批大小当收口,让紧凑网络每次都训得出来

SIGGRAPH 2026 Conference Papers · Bitterli、Clarberg、Cummings、Lefohn、Marschner、Novák、Rousselle、Weidlich、Zeltner(NVIDIA)· 从「彩票假说在小容量上失效」,到多实例淘汰 + 批大小退火、以及参数化 / 损失 / 激活三处改进

出处:SIGGRAPH Conference Papers '26 · DOI 10.1145/3799902.3811231 · 9 页 12 件证据(Fig. 1–9 + Table 1–3)· 10 位图 + 2 矢量表 许可:CC BY 4.0 · 逐图署名 · 未修改 精读执笔 · 浅墨(qianmo)
14 章一级章节按拆解点切
12 图E 类证据 · Fig.1–9 + Table1–3
5 式逐步重推 + 两处数据复算
6 条边界与待核单列成节

图-段配对表 · 本稿 12 件(全部 E 类 · 无自绘)

图角色档归属支撑的论断层次状态
图 1E§c164 次初始化:容量够就稳、紧就散、多实例买回稳定定位:全篇论点的图证引用 Fig.1
图 2E§c6损失曲线按最终名次着色 + 渐进淘汰关键:1/64 求值仍找对(原文读数)引用 Fig.2
图 3E§c6最好/最差实例的名次分布演化关键:热身后名次稳定(100 次重复统计)引用 Fig.3
图 4E§c8两组测试对象:达芬奇 9 件 + 多层 6 件定位:材质难度谱系与难点说明引用 Fig.4
图 5E§c9四种材质 × 四种预算分配的损失曲线关键:多实例有收益,小批量噪声拖住收敛引用 Fig.5
图 6E§c10保留概率(最优 / 前5% / 前10% / 前20%)关键:九成以上落前 5%;含待核口径引用 Table1
图 7E§c11损失值分析:Lo/Lb 与 Lr/Lb关键:存活 1.010 vs 随机 1.946引用 Table2
图 8E§c11优化耗时(秒),单张 RTX 5090关键:复算 28%–32% 与 3.01× 数据量引用 Table3
图 9E§c12差向量三分量假彩图:奇点 vs 最短弧关键:上排断裂、下排平滑引用 Fig.6
图 10E§c13对数/幂映射曲线与梯度幅值关键:S 形梯度 vs 全范围有梯度引用 Fig.7
图 11E§c13损失映射的视觉影响(含 HDR-FLIP)关键:对数映射丢低幅值细节引用 Fig.8
图 12E§c14极坐标图与渲染:ReLU 刻面 vs SmeLU关键:换激活与加容量等效,前者不加推理成本引用 Fig.9
12 件证据取自原文的 9 条 Figure 与 3 张 Table(原文用 Fig. 前缀,工具普查的 Figure 模式认不出,属已知盲区)。图号按文档顺序重排:正文按拆解点组织后 Table 1–3 出现在 Fig. 6–9 之前,故表在前、后段图在后,文件序号 f00N 固定不变(映射见台账)。
提取方式:论文为双栏排版且图与图注同栏,自动带状定位会跨栏取到整页并集(实测三处撞车),改用实测包围盒手工裁取;表格因 find_tables() 未检出,改用行模式匹配定位。区域正确性以「区域内文字摘要」逐件反查(agent 无法目视图片时的替代判据),12 件与原文图注逐条对上。
载体:10 件整区栅格化(含 4 张曲线图,其 SVG 达 3.07/3.07/5.85 MB,内联会把单页撑到 15 MB 以上,超产物预算);2 张表保留矢量轨道(所在页无位图对象,SVG 干净且仅 151 KB,以 data URI 内联)。
许可:本论文为 CC BY 4.0(首页明示),允许署名前提下再分发;另有第三方层,图 1/4/8(原文编号)的材质测试球由 Robin Marin 制作并以 CC BY 3.0 发布,已在对应图注并列署名。批次:2026-siggraph-batch-01 第 2 件,篇目号 25。
开篇要接住的那个问题 小网络的训练方差,能不能在不加成本的前提下压下去

“这篇论文处理的是一个产线问题:同一个紧凑网络、同一份数据,换一个随机种子重训,结果可能差很多;而一个场景往往要训练成百上千个着色网络。作者的解法是把训练预算重新分配,并行训 64 个实例、按名次早早淘汰、再把省下的数据预算分给幸存者,同时让批大小随阶段退火。总求值次数与单实例基线完全相同,失败概率却从「看运气」变成「几乎必然」。此外还改了三处:方向参数化的奇点、损失映射在暗处的梯度消失、以及 ReLU 在小模型高光上的刻面。”

这一篇要讲清的五件事
  • 看清问题的概率结构:彩票假说在容量刚够用时失效,小网络的损失地形更「敌意」,于是同一份代码换种子就换结果;而产线要训成百上千个网络,方差直接变成良率。
  • 看懂成本口径:作者用网络求值次数记账,基线是 N×B;「多训几个实例」与「每个少训几步 / 用小批」之间因此可以互相换算,这便是全部调度空间。
  • 看懂两步方法:早期淘汰(名次在热身之后就稳定,实测可省 64 倍求值仍找对)× 批大小退火(把固定数据预算在活跃实例间均分,被淘汰者的份额转给幸存者,总求值次数与基线相同)。
  • 看懂它对既有方法的修正点:successive halving 分配的是训练步数,会淘汰过早在名次未分开时误杀;本文分配的是批大小,迭代次数不变。
  • 带走三处正交改进与六条边界:方向参数化换最短弧旋转消奇点、损失换幂映射补回暗处梯度、激活换 LeakySmeLU 消高光刻面;边界含两处统计口径待核。

01开场:把小网络的训练方差,当成一个产线问题

这篇论文要解决的是一个不太像论文的问题:同样的网络、同样的数据,换一个随机种子重训一次,结果可能差很多。作者全部来自 NVIDIA(另有 Steve Marschner 兼属 Cornell),场景是实时神经着色里的紧凑网络,神经外观模型、神经纹理、以及把材质压成小网络的烘焙与压缩流程。在他们看来,这类模型的训练方差与其说是学术趣味,不如说是产线上每天都要面对的麻烦:一个场景动辄要训练成百上千个着色网络,而每一次训练都必须可靠地产出可用结果。

论文的第一张图就是全篇的论点。它把同一个材质的 64 次独立初始化训练结果并排摆开,用四个面板回答同一句话:方差究竟来自哪里。

E图 1
原文 Figure 1:同一材质的 64 次初始化训练,(a) 参考 (b) 大网络 (c) 小网络 (d) 小网络 + 本文训练(原文第 1 页)
四个面板讲完一篇论文:容量够就稳,容量紧就散,而多余实例可以买回稳定怎么读:这一页按 (a)→(d) 的顺序读,四格是同一件事的四种情形。横轴是训练进度(0–100%),纵轴是损失(0.0–1.0),三条曲线分别是最差 / 中位 / 最好实例。(a) 参考是目标材质(原文说明它是一个多层、偏难的参考材质)。(b) 大网络(54k 参数)容量过剩,64 次训练几乎收敛到同一水平,三条曲线贴在一起。(c) 小网络(947 参数)容量刚刚够用,方差骤然放大,许多实例漏掉了重要特征,最差与最好的差距一眼可见。(d) 小网络 + 本文训练:网络没变大、训练成本没增加,但 64 次的结果重新收拢到一起。读这一页要抓住原文那句对照:(d) 的损失确实比 (b) 高(这是小容量的应有代价),但训练结果的一致性与那个大得多的网络相当。换句话说,论文买的不是更低的损失:它买的是可预测性。来源:图 1(原文 Fig. 1)· 原文第 1 页 · © 2026 作者(Bitterli 等)· 本文档以 CC BY 4.0 许可转载,未修改 · 图中材质测试球由 Robin Marin 制作(CC BY 3.0)

把这张图与摘要对读,这篇论文的定位就清楚了。它的目标并不落在让网络变小(小是前提,因为推理要快),也不落在让损失更低:目标是让「跑一次能出好结果」这件事从概率变成近乎必然。作者在摘要里给出的说法是「以显著更高的可能性得到一个表现良好的模型」,并且强调这个提升不伴随训练成本的增加:这一点是后文技术方案的硬约束,也是整篇论文最值得学的地方。

论文的第二个贡献不在训练调度里,而在被调度的那件事本身。作者顺手把神经反射率模型的三个基础选择重新审视了一遍:输入参数化(入射与出射方向怎么喂给网络)、损失函数(高动态范围的 BRDF 值怎么度量误差)、以及激活函数(ReLU 在高光上留下的刻面)。这三处与多实例训练是正交的改进,第 13、14 章会逐一展开。

02为什么小网络更难:彩票假说在小容量上失效,损失地形也更敌意

第 2 章要解释的是「为什么小网络的训练方差天生比大网络大」,而原文给的第一个答案是概率论意义上的。作者先交代了一个观察作为前提:神经着色的大多数落地场景(烘焙、压缩)是刻意让网络专门拟合训练数据的,不需要泛化到未见数据:在这些场景里,重要的是稳定地找到对已有数据的好拟合。这条前提把问题的性质改了:它不要求网络「学得对」,而要求训练过程「每次都学到位」。

在这个前提下,作者引用了 Frankle 与 Carbin 2019 年的彩票假说。对深度、过参数化的模型,该假说认为存在一个「中奖彩票」,一个训练后能达到良好性能的子网络,的概率很高;因为在巨大的参数空间里,能胜任任务的子网络数量极多。但在容量刚刚够用的小网络里,这类子网络的数量迅速变少,中奖彩票越来越难找。这就把大网络与小网络的差别从「好不好训」变成了「有没有得挑」:大网络是可选解太多,随机初始化几乎总能落进某一个;小网络是可选解本就稀少,随机初始化落不进去就一批批地失败。

第二个答案来自损失地形本身。原文的措辞是:紧凑模型的损失地形天生更「敌意」、更不平滑,结果是模型经常收敛到不同的局部极小值,优化结果对模型初始化与训练数据顺序高度敏感。这条敏感性有两层含义,值得分开看。一层是它解释了为什么换种子结果就变;另一层是它解释了为什么「注意初始化」这类常规建议不够用,即便初始化策略更讲究,数据顺序带来的扰动仍会把模型推向不同的坑,而小网络的坑之间性能差距很大。

这里可以顺带交代一下这个问题的产业分量。原文说这种「混沌的训练表现」会妨碍小网络的实验、开发与部署,因为产线上在资产开发期间可能需要反复、可靠地训练成千上万个着色网络。这句话把训练方差从「研究者的复现烦恼」提升为「生产系统的良率问题」:如果单次训练有 20% 的失败率,那么一个需要 1000 个网络的场景就几乎必然出现大量返工,而每次返工的成本是完整的训练时间。作者的目标也正是按这个口径设的,让任意一次训练都有很高的概率得到好性能。

第 2 章末尾列了几条被前人提过、但作者认为单独使用不足以解决问题的方向:更讲究的初始化、以及激活函数的选择。原文的判断是「就它们本身而言并不足够」。这句话为第 3 章的方法留了位置,也划出了一条边界,这篇论文不声称这些方向错,而是主张方差是多因素的(涉及架构、损失、数据与优化调度),需要一个能同时处理调度与预算的安排。

03相关工作里的位置:三条线,和一处与 successive halving 的关键区别

作者把自己的方法放进三条既有的研究线索里做定位,这三条线索各自解决了一半的问题,而剩下的一半正是本文的位置。

第一条是并行训练。群体式训练(population-based training)会维护一批实例,周期性用表现更好的实例的权重与超参去覆盖表现差的实例;这与本文一样会淘汰差实例,但差别在于它用优秀实例的变异副本替换掉差实例,从而保持群体规模不变。深度集成(deep ensembles)则反过来:保留全部实例并合并它们的输出,但原文明确指出,在实时应用里用很多个网络去推断反射率是不可行的:这一条否掉的是「保留」这一侧,也解释了为什么本文必须做淘汰而不是集成。第二条是蒸馏与剪枝:先训一个大模型(享受过参数化的稳定性),再用它训一个小模型;或者训大模型后剪掉贡献小的神经元。作者承认自己的方法在「调整批大小」这一点上与剪枝派相似,但他们操作的是一个实例集合,而不是单个网络。第三条是批大小调整:有工作证明增大批大小可以复现学习率衰减的效果(Smith 等 2018),也有工作引入梯度噪声尺度来指导自适应批大小计划。本文与这条线的关系最直接:它的调度本质就是一条批大小计划。

最接近本文的是 successive halving(以及其后的 Hyperband 系列):它淘汰表现最差的运行、让群体随时间缩小,而逐步变少的幸存者获得更多计算预算。但作者点明了一处关键区别,而这处区别恰好是本文方法的立足点:这些工作分配的是「训练步数」的预算,而本文分配的是「批大小」的预算,迭代次数保持不变。作者解释了为什么这个差别在他们的问题上是决定性的:如果按步数分配,淘汰会开始得太早,从而在好实例与差实例的名次还没有分开之前就把潜在的好实例剔掉。

作者接着给出了方法的两条自述式定位。第一条在第 2 章末尾已经出现、第 4 章会展开:他们对批大小的影响做了利用,批大小在探索(小批量、噪声梯度)与利用(大批量、收敛的梯度)之间权衡,因此可以从固定批大小换成一条「先小后大」的计划,早期用小批量逃出坏的局部极小值,后期用大批量落进损失谷底。第二条是全文最值得记住的设计原则:这篇论文的新意不在于它的任何单个积木(这些积木前人都探索过),而在于批大小与实例调度的「协同设计」:在每一个训练步上,把一个恒定的批大小在活着的实例之间均分;随着差实例被淘汰,它们占用的数据预算被重新分配给留下的实例。这句话是第 7 章的技术核心,也是「不增加成本」这个承诺能兑现的原因。

04先把账记清:用「网络求值次数」当成本口径,基线是 N×B

第 3 章开头做了一件很关键的事:把「训练成本」定义成一个可数的量。作者选择的口径是网络求值次数(number of network evaluations),也就是训练过程中网络被前向/反向计算了多少次;他们给自己设的目标是「在不增加这个指标的前提下提高训练稳定性」。这个定义值得停一下,因为它决定了后面所有设计的形状:一旦成本按「求值次数」计,那么「多训几个实例」与「每个实例少训几步」「每个实例用小一点的批」之间就可以互相换算:这条换算关系正是整篇论文的调度空间。

有了口径,基线也就顺理成章:单个网络训练 N 步,每步评估一个大小为 B 的批,于是总成本是 N×B 次网络求值。作者随后指出,损失地形里有许多局部极小值,收敛到哪一个高度依赖初始权重,因此一定程度的损失波动是不可避免的;但容量充足时(图 1b)所有配置的表现都差不多,而容量不足时(图 1c)最终损失的分布会宽得多,不同训练运行之间的性能可能相差显著。这两句话把「基线」与「问题」都摆在了同一个坐标里:基线是单实例的一次抽样,而问题正是这次抽样的方差太大。

这套记账还有个隐含的好处,值得替作者说出来。因为成本是求值次数而不是墙钟时间,所以「同样的成本下谁的结果更好」可以严格比较;而墙钟时间则作为另一个独立的指标在第 12 章单独汇报。这种把计算量与耗时分开处理的做法,在工程论文里是相当稳的写法:它让算法层面的比较不受某一种实现的开销影响,也避免了「用更多的并行度换更短的等待时间」被误读成效率提升。

05朴素多实例的账:失败概率降到 p^K,但成本乘了 K

既然单次训练会失败,最直接的想法就是多训几个、挑最好的。作者用一小节把这条思路算清楚了,因为它虽然正确,却撞在一堵墙上。

设单次训练失败(也就是性能不可接受)的概率为 p,那么训练 K 个独立实例、最后挑最好的一个,失败概率降到 p 的 K 次方。这个式子是这一节的全部说服力所在:它以指数速度压小失败概率,因此理论上非常有效。但代价也同样干脆:暴力做法把训练成本提高了 K 倍。而本文的目标函数(第 4 章定义的求值次数)不允许成本上升,于是为了把成本拉回基线,只剩两条路可走:把训练步数除以 K,或者把批大小除以 K。作者的评语是这两条路都「不能令人满意」,它们的含义是:为了降低方差,你要么把每个实例训得更浅,要么让每个实例每次看的数据更少,两者都会削弱单个实例本来的质量。

这一节的结论看似消极,其实是全文的转折点。它把问题从「要不要多训几个」改造成了一个更精确的问题:在不增加总求值次数的前提下,怎么把这份预算分配得比平均分配更聪明。前一半的答案(早期淘汰)来自一个关于训练过程的经验观察,名次其实很早就稳定了;后一半的答案(批大小退火)来自一个关于预算再分配的机制,被淘汰实例的份额可以转给幸存者。第 6、7 两章分别处理这两半。

06早期淘汰:名次其实在训练很早就稳定下来了

第 6 章的方法来自一个经验观察:一个实例最终是好是坏,在训练早期就已经看得出来。这条观察如果成立,就把第 5 章的账解开了,既然差实例注定差,就不必让它们训到底。

作者用两张图分别从两个角度建立这条观察。第一张看的是「曲线的交叉」:如果名次在训练中频繁翻转,那么早期淘汰就没有依据;如果名次一旦拉开就基本不动,淘汰就成立。

E图 2
原文 Figure 2:(a) 64 个实例的损失曲线按最终名次着色;(b) 渐进批大小与实例淘汰(原文第 3 页)
名次早早拉开,而且用 64 倍更少的求值也能挑对怎么读:这一页左右两格是一组对照,配色规则是关键,曲线按「最终名次」着色,从最好(蓝)到最差(红),看的是名次能不能在早期被认出来。左格 (a) Batchsize B = 64k 是 64 个实例各自从头训到尾的损失曲线:曲线之间确实偶有交叉,但最终排在前面的实例,在训练的绝大部分时间里也排在前列,最差的一批同理。右格 (b) Batchsize adaptive + early culling 是本文方法:批大小随阶段增大、实例逐步淘汰。原文给出的对照读数是,右格执行的网络求值次数是左格的 1/64,但仍然找到了最好的那个实例;而且由于引入了批大小计划,最终损失还略低一些。读这一页要抓住「1/64 与仍然找对」这组数字:它同时兑现了「降方差」与「不涨成本」两个承诺。来源:图 2(原文 Fig. 2)· 原文第 3 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

第二张图把「名次稳定」这件事量化了,而且方法很讲究:它不只看一次训练的名次变化,而是重复多次并统计名次分布,从而把随机噪声排除掉。

E图 3
原文 Figure 3:64 实例任务中最好与最差实例的名次分布演化(原文第 3 页)
热身后最优实例稳定居前,淘汰阈值可以画成阶梯线怎么读:纵轴是名次(刻度 1、4、16、64,对数),横轴是训练进度;蓝为「最优实例」、红为「最差实例」,实线是中位名次,阴影带是 25–75 与 10–90 百分位,虚线阶梯就是淘汰阈值(说明它随阶段下降)。读法是三段:① 训练初期所有实例都差不多(而且都很差),名次带叠在一起;② 随后最优与最差的差距迅速拉开;③ 经过一段热身之后,最优实例稳定地排在前列(蓝线的中位名次贴着顶端),最差实例同理稳定垫底。原文的做法值得单独记:他们训练 64 个实例,训完找出最优与最差,再回看这两个实例在此前每一步的名次;为了排除随机噪声,把整个过程用不同初始化重复 100 次,统计中位名次与名次方差。左格是 Glazed ceramic,右格是 Gold and ceramic,批大小固定为 1k。页面上还有一条容易被略过的线索:最优实例的名次大致沿指数曲线变化:这正是他们把训练分成若干阶段、按固定比例淘汰的依据。来源:图 3(原文 Fig. 3)· 原文第 3 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

基于这两张图,作者把方法写成五步的渐进训练方案:初始化 K 个独立实例;把 N 个优化步分成 P 个阶段;每个阶段各训练 N/P 步;阶段结束时按损失排序,按 K 的 1/(P−1) 次方这个比例淘汰,只保留最好的那一批;重复到只剩一个实例。这套方案的性能接近昂贵得多的暴力做法,而成本约为基线的 K/log(K) 倍(原文注明这是 P 趋于无穷时的下界,有限的 P 效率会略低)。

这里有两处工程含义值得替读者点出来。一是这套方案的产出是一个幸存实例,而不是一个集成体,这正好绕开了第 3 章里「实时应用无法承受多网络推断」的障碍:淘汰既是省钱的机制,也是保证推理预算的手段。二是「按固定比例淘汰」而不是「按绝对阈值淘汰」,意味着它不需要知道损失是多少才算好,只需要知道谁比谁好,这一点在跨材质、跨资产的生产环境里很实用,因为不同材质的损失尺度本来就不可比(第 8 章的两组材质正说明了这点)。

07批大小退火:把一份固定的数据预算,在各实例间平分

淘汰解决了「训谁」的问题,却立刻暴露了成本的分布问题。第 7 章先算这笔账:设 K=64 个实例、P=4 个阶段,那么仅仅第一个阶段的成本就相当于整个基线的 16 倍:因为这一阶段要同时训练 64 个实例,每个训练 N/P 步。原文的措辞是,成本如今被早期阶段主导了。

接着是三条被逐一否掉的出路,这段推理值得完整跟一遍,因为它示范了「在硬约束下做设计」的样子。第一条:缩短初始阶段、提前淘汰:不行,因为那样会在好实例与差实例的名次还没有分开之前就动手,有丢掉最好实例的风险(这与第 6 章的观察直接冲突)。第二条:减少初始实例数 K:也不行,那会降低「找到好实例」的概率,等于把第 5 章的指数收益打回去。第三条是作者真正采用的那条:调整批大小。

具体机制是把「不增加成本」翻译成一条可执行的规则:在实例之间均分一份固定的训练数据预算。于是训练的早期是「实例很多、每人只拿到一小片预算」(也就是小批大小),之后每次淘汰都会重新分配这份预算,幸存者拿到的份额随之变大。作者把最终方案写成对第 6 章方案的一处修改:把「每个实例训练 N/P 步」改成「每个实例训练 N/P 步,且在每一步把一份固定的数据预算在活跃实例之间均分」。这一改动带来一个漂亮的性质,所有阶段的成本变得相等,总求值次数与基线完全相同,区别只在于这份预算怎么分配。

作者同时说明了这条机制的正当性,也给出了它的风险。风险是批大小变小本身可能损害收敛行为,因此必须谨慎评估:批大小决定参数梯度的方差,而方差影响训练会收敛到哪一类极小值,窄谷需要低噪声的梯度,而小批量带来的噪声梯度偏向收敛到宽阔的极小值。他们引用的解释是:训练早期模型更容易「卡」在坏的局部极小值里,小批量有助于逃出;训练末期则相反,大批量才有能力落进狭窄损失谷的谷底。于是「把批大小在活跃实例间均分」这件事,实际上等价于一条批大小计划,而这类退火已被证明与更常用的学习率衰减行为相似。这一段是全文里最能体现「协同设计」含义的地方:批大小既不是超参、也不是被搜索的对象,它是由实例数变化自动生成的一条曲线。

还有一处与既有方法的差别,作者单独做了强调,因为它容易被误认为只是实现细节。前面提到的 successive halving 一类方法分配的是训练步数的预算:幸存者获得更多步。而本文分配的是批大小的预算,迭代次数保持不变。作者解释了为什么这个差别在他们的问题上是决定性的:如果按步数分配,淘汰会开始得太早,导致潜在的好实例在名次分开之前就被剔除。换句话说,这两种分配方式在「让幸存者得到更多资源」这一点上等价,但在淘汰时机的安全性上不等价,而安全性正是小网络训练最缺的东西。

08实验设置:学的是空间变化 BRDF,两组材质各有难度

第 4 章交代实验的全部设置,读它的价值在于理解「被训练的东西到底是什么」,因为后面所有的读数都挂在这个设定上。

优化对象沿用 Zeltner 等 2024 年的方案:训练一对编码器—解码器来学习空间变化的 BRDF(SVBRDF)。单条训练记录由三部分组成:着色配置(表面位置 x,以及局部坐标系下的入射方向与出射方向)、表面属性(x 处的反照率、法线、切线、粗糙度与权重,每一层材质各一套)、以及参考 BRDF 值。编码器把表面属性编码成隐码,解码器在入射与出射方向条件下把隐码解码成近似的 BRDF 值;按 Zeltner 等的做法,入射与出射方向还会被变换到两组可学习的着色坐标系中,以更好地解析法线贴图带来的细节。训练结束后只有隐码与解码器被保留用于推理:这句交代很重要:它意味着网络的实际推理成本只由解码器决定,也就解释了为什么作者反复强调「尽可能小的 MLP」。

E图 4
原文 Figure 4:两组测试对象,左侧达芬奇工坊物件,右侧多层材质(原文第 4 页)
左组测「反射行为的宽度」,右组测「层叠与视角依赖的难度」怎么读:这一页是两张材质球阵列,读法是按原文的两句说明把两组的用途分开。左组(da Vinci 物件,9 件):Birdcage / Chandelier / Hammer / Lantern / Mirror / Palette / Chair / Scales / Table,原文说它们被选来覆盖从完全镜面到接近漫反射的宽广反射行为,作用是给出材质难度的横向谱系。右组(多层材质,6 件):Scratched steel / Bumpy plastic / Oxydized metal / Gold and Ceramic / Brushed brass / Glazed ceramic,原文说它们由基础材质加若干表层组成(模拟上釉、污渍、灰尘等),每层各有参数与纹理(含多张法线贴图),叠上高镜面反射后特别难被紧凑模型表达。读这一页时把两组的分工记住,第 9、10、11 三章的结果都会按「简单 / 复杂」这条线分开看。另需说明:这些材质球的模型由 Robin Marin 制作,以 CC BY 3.0 发布(原文致谢段注明)。来源:图 4(原文 Fig. 4)· 原文第 4 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改 · 材质测试球由 Robin Marin 制作(CC BY 3.0)

两组材质的数据来源写得也很具体,值得记下来因为它们决定了结果的可复现性。第一组取自公开的达芬奇工坊数据集,9 件物件各自展平成单个 UV 块、烘焙 4K 贴图,从而为每件产出一份参考 SVBRDF 作为训练目标;材质本身则从 MDL 转成 USDPreviewSurface。第二组是六件高质量多层材质,结构如上图注所述。训练用 Adam 优化器,权重初始化用 Glorot,各个实例之间唯一的差别就是生成初始权重的随机种子:这一句是实验设计的支点:它保证了观测到的方差确实来自初始化,而不是来自其他变量的漂移。作者还补了一句:他们也试过别的优化器,训练结果的离散程度与 Adam 相近,因此全部结果都用 Adam。

超参的数字同样要记,因为第 9 章的配置表建立在这上面。初始实例数 64、训练阶段数 P=4;每个阶段结束时实例数按 4 倍淘汰,批大小按同一倍数增长,于是实例数依次是 64、16、4、1,批大小依次是 1k、4k、16k、64k。网络架构固定:编码器三层隐藏层、每层 64 宽;解码器两层隐藏层、每层 16 宽。其余超参(学习率、动量等)在所有方法、所有材质上完全一致。作者还交代了一条实用观察:随着网络变大,多实例训练的收益会减弱(因为大网络本就收敛可靠),但他们始终把它开着,因为它不会带来损害,偶尔还能改善结果。

09结果一:把实例数换成批大小,四种配置谁更稳

第 9 章回答的是「同样一份预算,花在更多实例上还是花在更大批上」。作者用一张对照表把这个问题摆明:基线是 1 个实例配 64k 批大小;三种简单多实例配置分别是 4 个实例配 16k、16 个实例配 4k、64 个实例配 1k;本文方法则是 64→16→4→1 个实例、批大小 1k→4k→16k→64k 逐阶段变化。所有配置都训练 N=100k 步,且执行完全相同数量的网络求值:这保证了比较的公平性,也把结果的含义限定为「同一份预算的分配方式之争」。

E图 5
原文 Figure 5:四种材质上基线、三种多实例配置与本文方法的损失曲线(原文第 5 页)
多实例能换来更好的期望,但小批量的噪声会拖住收敛怎么读:这一页是一个 2×4 的阵列,读法分三层。第一层,列是材质,按视觉复杂度从左到右递增:Oxydized metal → Brushed brass → Gold and ceramic → Glazed ceramic。第二层,行是刻度:上排用线性纵轴(四张图共用同一范围,用来体现左侧材质本身更容易学、绝对损失更低),下排用对数纵轴(用来细看相对差异)。第三层,曲线身份:蓝为单实例基线,三条多实例配置按图例标注为「K @ B」(4 @ 16k / 16 @ 4k / 64 @ 1k,也就是同一份预算切给几个实例、每个用多大批),紫为本文方法(淘汰 + 批大小退火)。每一条曲线是 64 次独立优化运行的均值,曲线周围的带是一个标准差:所以带越宽就代表方差越大。原文给出的读法结论是:对粗糙的氧化金属这类简单材质,所有配置都稳,多实例只是略有改善;而对复杂多层材质,各配置的差别显著放大,在多数情况下,增加实例数、减小批大小会改善结果(更彻底地探索配置空间),但小批量带来的噪声梯度又阻止优化沉进低损失配置。本文方法把「早期探索」与「后期利用」串起来,因而既稳又常常明显优于第二好的配置。来源:图 5(原文 Fig. 5)· 原文第 5 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

这张图里有两条结论值得单独摘出来。第一条是材质难度的分水岭:在氧化金属上,「多实例 vs 大批量」几乎不构成一个真问题,几种配置的表现都在同一水平;而在釉面陶瓷与金色陶瓷这类多层材质上,配置选择的影响被放大到肉眼可见。这提示了一件工程上的事,多实例训练的价值与材质的难度成正比,把它无差别地用在所有材质上,收益的分布是很不均匀的;而正因为「无法事先知道哪个材质难」,作者选择默认开启(第 8 章那条实用观察)。

第二条结论关于「为什么不能只靠小批量」。如果单纯把预算切给更多实例、让每个实例都用很小的批,探索是充分了,但噪声梯度会让优化在低损失配置附近持续抖动、沉不下去,原文的原话是「小批量导致的噪声梯度也阻止优化沉淀到低损失配置」。这正是第 7 章那条批大小退火要修的东西:先用小批量换来探索能力,再用大批量把结果落到谷底。所以图 5 里紫色的曲线并非「另一种配置」:它是一条调度曲线,它的形状本身就是方法。

10结果二:贪心淘汰会不会误杀,保留概率给出答案

这套淘汰是贪心的,每阶段只按当前损失排序、留最好的那批。于是有一个必须回答的质疑:如果早期名次的判断有噪声,贪心淘汰就可能把真正的好实例甚至全部好实例剔掉。第 10 章用一整张表来正面回应它。表里的判据是「保留概率」,也就是最终活下来的那个实例,落在全体实例中的什么名次位置。

E图 6
原文 Table 1:存活实例的名次频率,最优、前 5%、前 10%、前 20%(原文第 6 页)
九成以上落在前 5%,最差一档也几乎总在前 20%怎么读:这是一张纵表,读法是先看列再看行。列是名次分档:第 1 列是「正好是最优(名次 1)」,之后三列分别是落在前 3(前 5%)、前 6(前 10%)、前 12(前 20%)的频率。行是材质,分两组共 15 种(对应图 4),最后一行是平均。读法建议先扫「前 5%」那一列:除了 Chandelier(80.0%)与 Table(80.0%)之外,其余 13 种材质都是 93.3%–100.0%。再看最宽松的「前 20%」列:几乎全是 100.0%,只有 Table 是 93.3%。本文的结论是:贪心淘汰并非永远选出最好的那个,但几乎总能选出一个「好的」,作者的原话是「我们没有总是保留最好的那个实例,但几乎总是产出了顶部表现者之一」。一处需要读者注意的口径问题:本表逐行数字都是 1/15 的整数倍(93.3% = 14/15、86.7% = 13/15、80% = 12/15、66.7% = 10/15、60% = 9/15),而表下方的平均行 79.1% 恰好等于 178/225;但正文另称「每种材质做 24 次试验、共 360 次」,两个分母(15 与 24)无法互相整除。原文未说明这处差异,本篇登记为待核口径,不代为解释。来源:图 6(原文 Table 1)· 原文第 6 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

除了看清数字,这张表还有一处方法论值得学:作者做这个分析时看的是每种材质的多次试验频率,而非某一次训练的成败。这个做法把「保留概率」从一个事后的运气问题变成了一个可以事先估计的工程参数,对产线来说,这意味着可以回答「如果我要训 1000 个材质,大约会有多少个需要返工」。按表里的平均行,最严格的判据(正好最优)是 79.1%,而放宽到「前 10%」就达到 98.7%:贪心淘汰的误杀确实是存在的,但误杀的后果被限制在「不是最好,仍然很好」这个区间里。这与第 9 章图 5 里紫色曲线的表现是一致的:幸存者的质量落点集中,而不是靠运气偶尔撞上最优解。

11结果三:幸存者离最优差多远,以及它到底快了多少

保留概率回答的是「选得好不好」,第 11 章换一个更严格的问法:选出来的这个实例,损失离全体实例里最好的那个差多少。这个问题比名次更硬,因为名次只说相对顺序,损失比值才说实际代价。

E图 7
原文 Table 2:最优损失、本文存活实例与随机实例的相对损失(原文第 6 页)
存活实例平均只比最优差 1.0%,而随机一个是 1.95 倍怎么读:这是一张三列对照表,读法是先把三个列的含义分清。第二列 Lb 是全体 64 个实例中最好那个的最终损失绝对值(含标准差,例如 Birdcage 是 0.054 ± 0.003)。第三列 Lo/Lb 是本文淘汰后存活实例的损失除以最优损失:比值为 1 表示与最优持平(很可能它就是最优那个),比值为 2 表示损失高一倍。第四列 Lr/Lb 是随机挑一个实例的同一比值,它对应的正是单实例基线的期望表现。读法看最后一行平均:0.081、1.010 ± 0.017、1.946 ± 0.658:也就是存活实例平均只比最优差约 1%,而随机实例平均要差约 95%(近两倍)。还要看两列的离散度差异:第三列的标准差小(0.017),第四列的大(0.658),说明本文方法的落点集中,随机基线则是「看运气」。原文特别点出随机基线在几个多层材质上比值尤其高(scratched steel、brushed brass、glazed ceramic),这正对应图 4 那组更难表达的材质。来源:图 7(原文 Table 2)· 原文第 6 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

这张表还顺手给出了一个方法论上的对照,值得单独说:它为「本文方法」和「单实例基线」配了同一个参照系(Lb)。因为 Lb 是这一批 64 个实例中的最优值,所以两个比值都是「相对这批最好结果」来读的,这就避免了跨材质、跨运行的绝对损失不可比的问题,不同材质的 Lb 相差一个数量级(从 Table 的 0.019 到 Gold and ceramic 的 0.283),只有比值才有可比性。表注也交代了统计口径:列出的都是 15 次优化试验的均值与标准差。这个 15 与第 10 章图 6 里那处待核的分母是一致的,但两处的口径差异(24 与 15)原文均未说明,本篇如实登记。

E图 8
原文 Table 3:基线与本文方法的优化耗时,单张 RTX 5090(原文第 7 页)
四种材质普遍快 28%–32%,靠的是共享训练数据怎么读:这是一张两列的时间表,读法是把「列」与「数字」一起看。左列 Baseline (1 @ 64k) 是单实例、64k 批大小的基线耗时;右列 Ours 是本文方法(淘汰 + 批大小退火)的耗时;单位是秒,测量环境是单张 NVIDIA RTX 5090。四行分别对应氧化金属、金色陶瓷、釉面陶瓷与拉丝黄铜。逐行复算缩减比例:86.50 → 59.00 秒(−31.8%)、78.05 → 55.80 秒(−28.5%)、81.02 → 57.11 秒(−29.5%)、79.48 → 54.40 秒(−31.6%),与原文「比基线快 28%–32%」的表述吻合。为什么更快要回到正文的解释:他们的实现让各实例共享同一份训练数据,于是在第一、二、三阶段所需的数据量分别减少 64 倍、16 倍、4 倍。这里可以复算一遍整体缩减:按数据量计,本文方法是 1/64 + 1/16 + 1/4 + 1 = 1.328 个「阶段单位」,而基线是 4 个阶段单位,4 / 1.328 = 3.01 倍:正好是原文给出的「整体 3.01× 的数据量缩减」。反过来也可以看出:收益来自数据量而不是求值次数,因为求值次数两条路线本来完全相同(第 9 章的设定)。来源:图 8(原文 Table 3)· 原文第 7 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

这张表背后有一条容易被忽略的工程事实,原文写得很直白:他们承认共享训练数据之所以可行,是因为「初始权重对训练方差的影响远大于训练数据」。这句话解释了图 8 里那 3.01 倍的来源:它来自数据管线上的省读,而非算法上的省算:各实例既然只差初始化,就不必各自准备一份数据。作者同时注明,补充材料里的结果说明数据共享平均还有助于实例排序,且不影响最优实例的质量。他们还交代了实现环境:全部算法以 SlangPy 写成完全融合(fully fused)的 kernel,并行训练的网络数量对性能只有边际影响,因此墙钟时间与基线相当;并加了一句诚实的免责,换用其他框架可能带来不同的开销。

12输入参数化:半角向量在完美反射处的那个奇点

从第 12 章开始进入论文的第二条贡献线:不改变训练调度,而是把被训练的对象改得更容易训。第一处是方向的参数化:入射与出射方向以什么形式喂给网络。

原文先交代了前人的两种做法:直接输入方向(Zeltner 等 2024 的做法),或者表示成半角向量与差向量(Rusinkiewicz 1998)。后者能更好地表达镜面尖峰,尤其在掠射角下。但作者指出,原始形式在差向量上含一个奇点,会导致训练不稳定:

(1) ωd = Ry(−θh) Rz(−φh) ωi
式子怎么读:它把入射方向 ωi 先绕 z 轴转 −φh、再绕 y 轴转 −θh,也就是把入射方向搬进由半角向量定义的局部坐标系。奇点在哪:原文的说明是,在完美反射的位置上,半角向量 ωh 与表面法线重合,此时方位角 φh 没有定义。于是这个映射在镜面反射点附近发生畸变:几乎相同的 BRDF 值需要由「急剧变化的输入值」来表达,优化因此变难(这正是图 9 上排假彩图要展示的现象)。
E图 9
原文 Figure 6:差向量三分量的假彩图,上排 θh/φh 旋转(含奇点),下排最短弧旋转(原文第 7 页)
上排的畸变不是渲染噪声:断口来自参数化本身在镜面点失效怎么读:这一页是两组假彩图,每组三格,读法是按「上排 / 下排」对照。三格分别是差向量的三个分量 dx、dy、dz,横纵轴是把出射方向 ωo 投影到单位圆盘上的两个自由度,极坐标角度标注为 0°–315°,径向到 60°;固定的入射方向 ωi 用黑点标出。颜色范围是 −1 到 +1。上排是 Rusinkiewicz 1998 的 θh/φh 旋转形式:可以看到黑点附近出现明显的断裂与辐射状畸变:原文说这就是完美反射处的奇点;在这种畸变映射下,快速变化的输入必须去表示几乎相同的 BRDF 值,从而妨碍优化。下排是本文采用的最短弧旋转:同一组分量在整个半球上连续平滑,没有断裂。读这一页的要点是:上下两排表示的是同一个物理量(差向量),差别只在于用哪套旋转把它取出来,而训练难度就藏在这套选择的连续性里。来源:图 9(原文 Fig. 6)· 原文第 7 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

作者给出的替代方案是用最短弧旋转把半角向量对到 z 轴 [0, 0, 1] 上,从而得到一条在整个半球上都平滑的参数化:

(2) ωd′ = [ ωi hz + (v × ωi) + (v · ωi) v ] / (1 + hz)
式子怎么读:方括号里是罗德里格斯旋转公式的标准形式,hz 是半角向量的 z 分量,v 是与旋转轴相关的向量(即 ωh 与 z 轴的叉积方向)。它的作用是把 ωi 沿最短弧旋转到以 ωh 为 z 轴的坐标系里。为什么它更好用:分母的 (1 + hz) 在 hz → −1(半角向量朝下)时才退化,而在完美反射处(hz = 1)分母为 2、式子完全良态,也就是说,原来那个奇点被换到了对训练无关紧要的另一端。图 9 下排那三格的平滑正是这条式子的直接结果。

原作者在这一节末尾还补了一条很实务的观察,它的重要性不亚于公式本身:在实践中,半角/差向量这套参数化有时反而会帮倒忙,典型情形是存在法线贴图时,法线贴图会把 BRDF 波瓣转到偏离预期对齐的方向上,从而破坏这套参数化所依赖的几何假设。他们的处理办法并没有二选一:而是把完整向量组全都喂给网络:入射方向、出射方向、半角向量、以及新的差向量 ωd′。这样做的效果是让模型自己按材质去决定该优先信任哪一套参数化。这条处置值得记,因为它是那种「不靠更聪明的先验、而靠把选择权交给模型」的解法,代价是输入维度增加,而作者显然认为这笔交换在小网络上也是划算的。

13损失映射:对数映射在暗处梯度消失,幂映射两头兼顾

第二处改进是损失函数,而这一节的论证方式不靠实验现象开头,而是先推导梯度,再去图上核对,是整个第 5 章里最像理论分析的一段。

前提是预测方式:为了输出非负、高动态范围的 BRDF 值,网络输出 z 要经过指数映射,即预测值 f̂ = exp(z)。训练用的是一种「映射后」的 L1 损失:

(3) L = | M(f) − M(f̂) |
式子怎么读:M 是一个非线性映射,它决定「误差在什么尺度上被度量」:先把参考值 f 与预测值 f̂ 各自过一遍 M,再取两者差的绝对值。原文指出,最流行的选择是对数映射 Mlog(x) = log(1 + x)。它的毛病在哪里:作者实测发现它在目标值偏小的地方表现吃力,抓不住漫反射细节。下面这条式子是他们对病因的诊断。
(4) | ∂L / ∂z | = | M′(f̂) · d exp(z) / dz | = M′(f̂) · f̂
式子怎么读:它算的是损失对网络输出 z 的梯度幅值,也就是「网络在 z 上动一点,损失会变多少」,它决定了训练信号有多强。关键在最后一步化简:d exp(z)/dz = exp(z) = f̂,所以梯度幅值等于映射的导数乘上预测值本身。代入 Mlog 会得到什么:把 Mlog(x) = log(1+x) 代进去,梯度呈 S 形,即 exp(z) / (1 + exp(z))。这条曲线的两端都有问题:在小值区(漫反射区)趋近于零,在大值区(高光尖峰)饱和于 1:前者意味着漫反射的误差几乎传不回网络(原文称之为 vanishing gradients,梯度消失),后者意味着高光区的误差信号不再随误差增大而增强。这正好解释了「抓不住漫反射细节」这个现象。
E图 10
原文 Figure 7:对数映射与幂映射的曲线,以及它们对应的梯度幅值 |∂L/∂z|(原文第 8 页)
左图看映射形状,右图看梯度有没有在暗处掉到零怎么读:这一页两格是一对因果关系。左格横轴为 x(0–6),纵轴为映射值 M(x)(绘图范围 −4 到 4),两条曲线分别是对数映射(Log Mapping)与本文的幂映射(Power Mapping)。它们在小值区接近、在大值区分开:幂映射在大值处明显低于对数映射。右格是本页的重点:横轴换成网络输出 z(−6 到 6),纵轴是梯度幅值 |∂L/∂z|(0 到 4)。对数映射(蓝)是一条 S 形曲线,左端贴近 0(小值区梯度消失),右端压平在 1(大值区饱和);幂映射(红)则从左下持续单调上升,中间始终没有掉到零。原文的结论句就写在这张图下方:对数映射在小值上梯度消失、大值上饱和,而幂映射在整个动态范围上都保持梯度。读这一页只需回答一个问题:曲线的左端有没有贴地,贴地就是漫反射学不好的原因。来源:图 10(原文 Fig. 7)· 原文第 8 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

摸清病因之后,作者提出的替代映射是幂映射 Mpow(x) = n(x1/n − 1),取 n = 3。它的梯度幅值化简后是 exp(z/n),也就是一条在整个范围上持续增长的曲线,既在漫反射区保持非零,又随输出增大而继续增强(图 10 右格红线)。作者还给出了两个参数层面的性质,它们解释了为什么这个形式是个「旋钮」而不只是一个替换:当 n 增大时,幂映射收敛到自然对数映射;换句话说,n 让你可以在线性映射与对数映射之间连续插值。他们同时交代了与前人工作的关系:Xue 等 2024 年提出过一个密切相关的损失,用的是 n = 4 的根。

E图 11
原文 Figure 8:损失映射的视觉影响,左为对数映射、中为参考、右为幂映射(原文第 8 页)
对数映射只顾高光尖峰,幂映射把带状条纹也救回来了怎么读:这一页是三格并排的渲染对比,读法是把中格当基准。中格 Reference 是参考材质;左格 Mlog 是用对数映射训练的结果;右格 Mpow 是本文幂映射的结果。原文给出的判读是:对数映射在高光尖峰上表现不错,但忽略了漫反射区的不准之处:原文点名的具体现象是「条纹、污渍等」这类低幅值细节;而幂映射更从容地在极大与极小的 BRDF 值之间取得平衡。判定依据写在每格右下角的小插图里:它们是对照参考图的 HDR-FLIP 误差图(HDR-FLIP 是一种针对高动态范围图像设计的感知误差可视化方法,出处见原文参考文献 Andersson 等 2021)。读这一页要看的是误差图在低幅值区域(漫反射、条纹)的颜色深浅:对数映射在那里明显更亮,幂映射更暗。另需说明:图中材质测试球由 Robin Marin 制作,以 CC BY 3.0 发布。来源:图 11(原文 Fig. 8)· 原文第 8 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改 · 材质测试球由 Robin Marin 制作(CC BY 3.0)

把公式与图 11 合起来看,这一节的逻辑是闭合的:梯度在暗处消失 → 漫反射细节学不到 → 误差图在低幅值区偏亮。这也说明了为什么这张图能成为这条改进的主要证据,它验证的并非「损失数值更低」:它验证的是「训练信号在原本失效的那部分动态范围上恢复了作用」。这一点在工程上比损失曲线更有说服力,因为损失是加权平均,暗处那部分误差在总量里本来就占比很小,光看损失很难发现它被忽略了。

14激活函数:ReLU 在小模型高光上留下的刻面

第三处改进是激活函数,而它的动机直接来自第 2 章那条「小容量更容易出问题」的主线。原文的论证分两步:先指出 ReLU 的标准问题,再说明为什么在小网络里这两个问题都会被放大。

第一个问题是死亡梯度(dying gradients),ReLU 在某些单元上会永久失效。作者指出,这在实时神经材质所用的紧凑架构里格外有害,因为失效的神经元会严重挤占容量:网络本来就小,几个神经元一旦不再工作,可用的表达能力就少一块。第二个问题是分段线性本身:ReLU 是折线函数,于是预测出来的镜面高光上会出现可见的刻面(原文用 faceting),而高光恰恰是 BRDF 里不连续性最明显、最容易被看出破绽的地方。这两条合起来说明:ReLU 对 BRDF 建模是次优的,而网络越小编码能力越紧张,问题越突出。

E图 12
原文 Figure 9:球面极坐标图与渲染对比,ReLU 与 SmeLU、不同模型规模的刻面差异(原文第 8 页)
小模型用 ReLU 出刻面,要么加容量要么换激活怎么读:这一页分上下两大区。上半区是一个镜面材质的投影半球极坐标图(BRDF Plot)与对应渲染,作为整体参照。下半区是放大插图,把三种配置的极坐标图与渲染并排:SmeLU 2x16(两层 16 宽、SmeLU 激活)、ReLU 2x16(同规模、ReLU)、ReLU 2x32(ReLU 但容量翻倍)。读法是把三格按「同规模换激活」与「同激活加容量」两组对照来看:原文的结论是,小模型(例如 2 层 16 神经元)搭配 ReLU 时会在锐利高光上出现刻面伪影,需要更大的建模容量(例如 2 层 32 神经元)才能抹平;而换成 SmeLU 激活,即使在小模型规模下也能得到更平滑的重建。渲染图里的小插图同样是对照参考图的 HDR-FLIP 误差图(Andersson 等 2021)。读这一页要抓住这组关系:换激活与加容量买到的是同一样东西(平滑的高光),而前者不增加推理成本:这正是它对实时应用有吸引力的原因。来源:图 12(原文 Fig. 9)· 原文第 8 页 · © 2026 作者(Bitterli 等)· CC BY 4.0,未修改

作者采用的方案是平滑 ReLU(SmeLU,Shamir 等 2020),它通过一个二次过渡区保证 C¹ 连续;在此基础上他们又用了「漏(Leaky)」变体,给非活跃区补一个很小的斜率 ε,以维持梯度的流动:

(5) LeakySmeLU(x; β, ε) = { εx (x ≤ −β);(1 − ε)(x + β)² / (4β) + εx (|x| < β);x (x ≥ β)}
分段怎么读:三段各自负责一件事。右段(x ≥ β)保持恒等映射,与 ReLU 的正半轴一致,因此不改变网络在活跃区的能力。中段(|x| < β)是一段二次曲线,它把左右两段在 ±β 处光滑地接上,这就是 SmeLU 相对 ReLU 的关键:折角被换成了抛物线过渡,C¹ 连续,于是高光上不再出现折线造成的刻面。左段(x ≤ −β)是斜率 ε 的直线而非零,这就是 Leaky 的补丁:即便单元落进非活跃区,梯度仍然以 ε 的比例传回去,从而缓解死亡梯度。原文对此也给了诚实的限度:标准 LeakyReLU 有时能取得更低的训练损失,因此 LeakySmeLU 的适用条件是「必须避免高光刻面」,也就是说,这是一个以画质为优先、以损失数值为次要代价的取舍。

第 6 章把三条改进与多实例训练一起收在结论里:本文引入了一个面向小网络的高效多实例训练方法,它利用同时训练的实例集合、审慎地淘汰差实例、并调整批大小,在不增加训练成本的前提下降低优化方差,从而可靠地找到表现良好的模型;应用于学习高动态范围反射函数时,作者另外提出了新的方向参数化、平滑激活函数与新的损失函数。作者也交代了这条路线与哪些方向正交:他们的工作聚焦于「在多个候选里挑出最好的一个」,因此可以与那些「改进候选者本身」的技术结合;他们点名的具体方向是把随机权重平均(stochastic weight averaging)接进这条管线,因为该方法与本文的思路正交。

边界一:收益随网络变大而衰减,作者自己这样说

第 8 章那张超参说明的脚注里有一句很重要的话,值得放到边界清单的第一条:实践中多实例训练的收益会随网络规模增大而减弱,因为大网络本来就收敛可靠。作者的处理方式是「始终开启」,理由是它不会带来损害、偶尔还能改善结果。但读者应当据此修正自己的预期:这套方法的适用区间是「容量紧张」的那一段,不是所有网络。图 1 的四个面板其实已经把这条边界画出来了,(b) 与 (d) 在方差上表现相当,区别只在损失水平;换言之,如果你的网络容量充裕,多实例训练买到的主要是「心安」而不是「质变」。

边界二:数据共享的可行性依赖一条经验前提,而不是普适结论

第 11 章里那 3.01 倍的数据量缩减,建立在一条前提上:初始权重对训练方差的影响远大于训练数据。作者正是据此才让各实例共享同一份训练数据。这条前提在他们的实验设置下成立(实例之间唯一的差别就是随机种子),但它是一个经验观察,不是定理。原文也留了余地:补充材料给出的结果表明数据共享平均有助于实例排序、且不影响最优实例的质量,「平均」二字提示它是统计意义上的结论。对想迁移这套方法的团队来说,这意味着共享数据这一步需要先在自己的数据管线与材质类型上验证一遍,不能直接照搬。

边界三:成本口径是求值次数,墙钟时间要单独看实现

第 4 章把成本定义成网络求值次数,第 11 章则单独汇报了墙钟时间,并主动声明「换用其他框架可能带来不同的开销」。这两件事分开看是这篇论文的一个优点,但读者要留意它带来的比较边界:「总求值次数与基线完全相同」是一个算法层的陈述,它成立的前提是并行度足够(他们的实现里并行训练的网络数对性能只有边际影响);而在并行度不足的实现里,同样的求值次数可能对应明显更长的墙钟时间。图 8 里的 28%–32% 提速来自数据共享,并不在求值次数的减少:这一点在第 11 章已经复算过,是最容易被误读成「算法更快」的地方。

边界四:两处统计口径待核,本篇不代为圆说

本篇在核对时发现两处口径无法互相整除,均如实登记为待核。

第一处是保留概率的分母:图 6(原文 Table 1)逐行数字都落在 1/15 的整数倍上(93.3% = 14/15、86.7% = 13/15、80% = 12/15、66.7% = 10/15、60% = 9/15),其平均行 79.1% 恰等于 178/225;而同一段正文称「每种材质做 24 次试验、共 360 次」,并另给出 74.4% 与 99.4% 两个数。两个分母(15 与 24)无法互相整除,原文未作说明。

第二处是损失值分析的试验次数:图 7(原文 Table 2)表注写的是「15 次优化试验的均值与标准差」,与图 6 的 15 倍口径一致,但与正文所述的 24 次不一致。本篇的处置是把三处原样并列,不假定哪一个是笔误;若读者要引用这些概率,建议以图 6/图 7 的表注口径(15)为准并注明原文另称 24。

边界五:实验规模有限,结论的适用面应据此外推时打折

全部结果建立在两组共 15 种材质、单一优化器(Adam,作者另注其他优化器表现相近)、单一网络架构(编码器 3×64、解码器 2×16)、以及单一 GPU(RTX 5090)之上。作者对架构与优化器的选择都给了理由,但材质集合的规模确实不大,且第二组里包含刻意挑选的高难度多层材质(原文自述「特别难被紧凑模型表达」)。因此这套方法的定性结论(名次早期稳定、预算再分配不涨成本、批大小退火有益)比它的定量读数更可迁移;具体到某个概率或加速比,应当在自己的材质集合上重跑一遍再引用。

边界六:许可宽松但有两层署名要同时满足

本篇与分区内多数篇目不同:本论文以 CC BY 4.0 发布,允许在署名前提下复制与再分发,因此不存在非 CC 篇那种「逐件许可」的账。但有一层容易漏掉的第三方权利:图 1、图 4、图 8(原文编号)里的材质测试球由 Robin Marin 制作并以 CC BY 3.0 发布(原文致谢段说明),故本篇在对应图注的版权行里同时标注了这一层许可与作者。CC 系列的署名要求是可执行的义务:删掉作者名或改动署名方式即属违反许可,这也是本篇把来源信息写进每张图注、而非集中在文末的原因。

来源 SIGGRAPH Conference Papers '26 论文《Taming optimization variance in compact neural shading networks》,作者 Benedikt Bitterli、Petrik Clarberg、Chris Cummings、Aaron Lefohn、Steve Marschner、Jan Novák、Fabrice Rousselle、Andrea Weidlich、Tizian Zeltner(NVIDIA;Marschner 兼 Cornell),9 页,DOI 10.1145/3799902.3811231,2026-07-19–23 于 Los Angeles。代码实现见 https://research.nvidia.com/labs/rtr/publication/bitterli2026taming 引用方式:原文首页明示本作品以 Creative Commons Attribution 4.0 International 许可发布,本篇据此原样引用并逐图署名(图号 + 页码 + 作者与许可 + 未修改声明),未修改像素、未重绘、未加中文标注、未裁切拼接。另有第三方层:图 1、图 4、图 8(原文编号)中的材质测试球由 Robin Marin 制作、以 CC BY 3.0 发布(原文致谢段说明),已在对应图注并列署名。 体例说明:原文图注使用 Fig. 前缀而非 Figure,分区图注普查工具只识别 Figure,故 census 报 0 条;本篇以人工核对逐页图注为准(共 12 条)。图号按正文文档顺序重排,原文编号映射见台账。 口径登记:本篇对耗时缩减比例(28%–32%)与整体数据量缩减(3.01×)做了独立复算,复算过程与原文表述一致;对保留概率的分母(15 与 24)与试验次数口径的冲突未作解释,如实登记为待核。凡属本篇推算或读法者,正文均已显式标注。
这一篇的贡献(精读视角)
  • 把「不增加成本」这句承诺拆成可核对的账:成本口径是网络求值次数,总求值次数与基线相同,唯一变化是分配方式;而耗时上的 28%–32% 提速来自数据共享,不是来自算法省算。
  • 把两处独立复算做实:整体数据量缩减 4/(1+1/4+1/16+1/64) = 3.01× 与原文一致;四行耗时缩减比例 −31.8% / −28.5% / −29.5% / −31.6% 落在原文所述 28%–32% 区间内。
  • 把方法里最容易被忽略的一处设计讲透:分配批大小而不是分配步数,两种分配在「给幸存者更多资源」上等价,但在「淘汰时机的安全性」上不等价,而后者才是小网络训练真正缺的东西。
  • 把三处正交改进的因果链闭合:梯度在暗处消失 → 漫反射细节学不到 → HDR-FLIP 误差图在低幅值区偏亮;以及「换激活」与「加容量」买到同一样平滑高光,而前者不增推理成本。
  • 六条边界单列成节,其中第四条如实登记两处统计口径待核(保留概率分母 15 vs 24、试验次数 15 vs 24),不代为圆说。