164、ATSS 自适应训练样本选择替换 TAL:基于统计 IoU 均值加标准差设动态阈值
164、ATSS 自适应训练样本选择替换 TAL:基于统计 IoU 均值加标准差设动态阈值
一、从一次线上事故说起
去年双十一大促前夜,我负责的工业质检模型在产线突然崩了——小目标召回率从92%暴跌到67%。排查了一整夜,最后定位到问题:TAL(Task Alignment Learning)的正负样本分配策略在极端长尾分布下失效了。TAL的top-k策略对密集小目标场景太敏感,一个anchor被多个GT同时匹配时,IoU阈值硬编码的top-k直接导致大量正样本被误判为负样本。
当时我盯着loss曲线,发现TAL的alignment metric在训练初期震荡剧烈,尤其是当GT框尺寸差异超过5倍时,top-k的k值根本没法自适应。这让我想起ATSS(Adaptive Training Sample Selection)——那个被YOLOv5抛弃但被RetinaNet验证有效的方案。ATSS的核心思想很简单:不要硬编码top-k,而是用统计方法动态计算每个GT的IoU阈值。
二、ATSS vs TAL:本质差异在哪
TAL的样本选择逻辑是:对每个GT,计算所有anchor的alignment metric(分类分数^α * IoU^β),取top-k作为正样本。这个k是全局超参,通常设为10或20。问题在于:当GT尺寸差异大时,大GT的候选anchor数量远多于小GT,top-k对小GT不公平。
ATSS的做法更暴力但更鲁棒:对每个GT,计算其所有候选anchor的IoU,取均值和标准差,阈值 = 均值 + 标准差。只有