(四)没过采用线的配方
《全国医保影像 AI 识图大赛》初赛记录(四):single 之后,我们试了正样本分配、末层微调、空间残差、优化器、中层特征、输出数量、学习率和 batch,没有一组达到比 single 高 0.003 的采用标准。H8 最接近,它的权重后来用在了输出融合里。
- CATEGORY
- 研究
- YEAR
- 2026
- STATUS
- 笔记
- TOOLS
- pytorch / retinanet
entry记录
上一篇选定的 single 检测头,在 1,396 例开发集上的 mAP17 是 0.165304。9 月 23 日到 27 日,我们在 single 上试了正样本分配、末层微调、空间残差、优化器、中层特征、输出数量、学习率和 batch 这几类改动,看能不能把这个单模型再提高。每组实验的要求都在评估前定好;训练出的新候选要替换 single,开发集 mAP17 至少要比 single 高 0.003。
9 月 23 日到 24 日先看正样本分配。训练检测头时,每个 GT 的监督来自分给它的正 anchor。统计每个 GT 实际分到几个正 anchor,29.17% 的 GT 不超过 2 个,监督覆盖不足。我们把规则换成受 ATSS 启发的分配方式,这不是完整的 ATSS 复现:按候选 anchor 与 GT 重叠程度的均值加标准差挑选正 anchor,没有分到正 anchor 的 GT 再补一个。候选和对照一起训练,对照从同一份 single 权重出发,用原来的分配方式,按同样的样本顺序续训同样的步数。原计划训 5 轮,评估前把方案收紧为按第 1 轮的结果决定是否继续,并预设两项要求:比对照高出预设的幅度,同时比 single 高 0.003。第 1 轮跑完,候选为 0.163841,对照为 0.163259,都低于 single 的 0.165304。两项要求都没有满足,训练在第 1 轮结束;这个结论只针对这一次调整。
9 月 24 日转向末层微调和空间残差。检测头下面的编码器一直是冻结的,要查的是两件事:冻结的特征会不会限制检测,加入局部空间特征有没有帮助。两项改动各做一轮配对训练,候选与对照同时训:一项解冻编码器的最后一个编码块;另一项在同一张 518 输入图上加一路 CNN 分支提取局部空间特征,作为残差加回,这一路的末投影从零初始化,训练开始时输出为零,模型和原来一致。解冻的候选是 0.161796,对照是 0.162194;空间残差候选是 0.153600,对照是 0.156439,全部低于 single。两个对照也在下降,所以退步不能只归到解冻或新加的分支上。空间残差这一路读取的仍是 518 的输入,图像缩放时丢掉的细节没有补回来;这个结果也不足以否定其他骨干适配方案。
续训已经多次退步:前两次实验的对照都低于 single,上一篇 quality 的同期续训对照也低于 single。于是查了三处:复核标注,寻找检测任务里可以合规使用的明确阴性标注;比较续训时新建 AdamW 优化器与恢复 single 训练结束时的优化器状态(步数和两项动量);冻结原检测器,比较从中间层特征引出的残差和参数量相同的末层残差。没有找到可以合规使用的明确阴性标注,因此保留现有数据,不把未标注的影像当作阴性样本;恢复优化器状态得到 0.164026,低于新建优化器的 0.164827;中间层残差的候选为 0.166057,只比对照高 0.000034。优化器恢复和中层残差到此结束,没有继续扫描层数或学习率。
9 月 24 日到 26 日回到 single 本身,检查每张图最多输出 100 个框(top100)会不会丢掉有效候选,以及较低的学习率能不能改善最终结果。在同一个 single 模型上,只把输出上限从 100 改成 200,其余解码设置不变;学习率方面,原配方是学习率 1e-4、batch 8、20 轮,另一组把学习率降到 5e-5,两组从相同的随机初始化各训满 20 轮。这两组训练前加了输入预取,并先核对了预取前后的输入、模型、优化器和随机状态一致。top200 的 mAP17 是 0.164373,还多出 94,230 个框;学习率 5e-5 的一组为 0.154446,低于原配方的 0.165304(与 single 相同)。我们保留了 top100 和原学习率。输入预取让这轮完整训练跑完了,但局部测速不能代表全程的加速倍数。
9 月 26 日到 27 日换了一个方向,比较更高的学习率、更大的 batch 和更多的训练轮数,已完成的原配方直接作为对照。四组配方:H8 为学习率 2e-4、batch 8、20 轮,名字里的 8 指 batch 大小;M16 为 1e-4、batch 16、20 轮;H16 为 2e-4、batch 16、20 轮;E30 为 1e-4、batch 8、30 轮。四组一起训练,约 24.14 小时跑完。H8 以 0.167247 居首,比 single 高 0.001943,没达到预设的 0.003,其余三组都低于 single。按预设,只有过线的候选才补一个随机种子复核,H8 没过线,没有补第二个随机种子;本轮单模型比较到此结束,不替换 single,四组的权重保留。
H8 的权重保留了下来,它的训练结果和 single 不同,后来用在了输出融合里。每个方向只试了一种具体设置,没有做大范围扫描,结论只代表试过的这几种设置。续训时对照为什么也下降,没有查清;多训的步数、样本顺序、学习率日程和过拟合,都没能排除。
process对比
开发集 mAP17(1,396 例)
- single · 基线
- 0.165304
- R1 补分配
- 0.163841
- R2 末层微调
- 0.161796
- R3 空间残差
- 0.153600
- R5 恢复优化器
- 0.164026
- top200
- 0.164373
- 低 LR 5e-5
- 0.154446
- H8
- 0.167247 · +0.001943
- M16
- 0.156649
- H16
- 0.158323
- E30
- 0.157283
result小结
- 结论
- 没有一组配方达到采用标准。最高的是 H8(学习率 2e-4、batch 8),mAP17 0.167247,比 single 高 0.001943,低于事先定的 +0.003。
- 参数
- 基线 single 0.165304 · 1,396 例开发集 · mAP17 · 采用线 +0.003 · 各分支按预设终点对比
- 没做完
- 多组实验的对照在续训后也低于 single,原因没有查清;每个方向只试了一种具体设置,结论只代表试过的这几种设置。
log日志
- 2026-09-24
- R0 / R1:29.17% 的 GT 正 anchor 不超过 2 个;补分配后还是低于 single
- 2026-09-24
- R2 / R3:末层微调和空间残差都低于 single,对照也在掉
- 2026-09-24
- R4–R6:查了阴性样本、优化器恢复和中层特征,都没过线
- 2026-09-26
- top200 和学习率 5e-5 训满 20 轮,都低于 single
- 2026-09-27
- H8 / M16 / H16 / E30 四组配方跑完,H8 最高但没过线