一句话定义:随机权重平均(Stochastic Weight Averaging, SWA)是一种训练后期技巧:把多个检查点的模型权重直接取平均,用平均后的权重作为最终模型,通常能提升泛化,而且推理成本几乎不变。
它怎么工作:普通训练像下山,最后停在某个谷底。由于小批量样本的噪声、学习率变化,最后几步往往在谷底边缘来回跳。SWA 不只看“最后一步在哪”,而是沿路多采几个点,把这些点的位置平均一下。生活里类似拍合影:单张照片可能有人眨眼,多拍几张再平均,脸会更稳、更自然。
技术上,模型权重就是一堆参数。只要网络结构相同,不同检查点的权重可以逐元素相加再除以个数,得到一份新权重。常见做法是:先正常训练到后期,然后每隔一段步数保存一次权重快照,最后对快照做平均;有时会配合循环学习率或较高的恒定学习率,让模型探索更宽的区域,再平均。平均后的模型不增加推理次数,只是参数换了值。需要注意,批量归一化(Batch Normalization)的统计量通常要重新估计,具体做法以所用框架的官方文档为准。
和相邻概念的区别:
| 概念 | 做法 | 推理成本 |
|---|---|---|
| SWA | 多个检查点权重平均成一个模型 | 一次 |
| 模型集成(Ensemble) | 多个模型分别预测,再投票或平均输出 | 多次 |
| 指数移动平均(EMA) | 按衰减权重滑动平均参数,偏重近期值 | 一次 |
SWA 不是简单集成:集成是“多个专家一起答题”,SWA 是“把多个专家的知识压进一个脑袋”。它也不完全等于 EMA:EMA 更强调最近时刻,SWA 更像是选取后期多个点做平均。
实际意义:对从业者,SWA 改动小、成本低,常在训练后期加一段就能尝试,尤其适合图像分类、分割等任务。对普通人,它意味着模型可能更稳,换一批数据时少一点“翻车”。但它不是万能药:训练不充分、任务不合适或超参数没调好时,收益可能有限。实践时先看框架有没有现成实现,再根据验证集决定快照间隔、开始时机和学习率策略,具体接口与行为以官方页面为准。
