149、Alpha-IoU 在 YOLOv11 中的适配:Power 变换的指数消融 α=1/2/3 的精度影响一、从一次深夜调试说起上周三凌晨两点,我在跑 YOLOv11 的消融实验,发现 mAP 卡在 0.523 死活上不去。检查了学习率、数据增强、甚至怀疑是不是显卡驱动抽风。最后用torch.autograd.set_detect_anomaly(True)一查,梯度爆炸了——问题出在 IoU 损失函数上。当时用的是标准 CIoU,对密集小目标场景,梯度回传极其不稳定。这让我想起之前读的一篇论文《Alpha-IoU: A Family of Power Intersection over Union Losses》,里面提到通过 Power 变换可以平滑梯度。于是连夜把 α=1/2/3 三个版本塞进 YOLOv11 的损失函数里,结果 mAP 直接跳到 0.547。今天就把这个适配过程完整拆开,代码注释里我会写清楚哪些地方踩过坑。二、Alpha-IoU 的核心思想:别被数学公式吓到Alpha-IoU 本质上是对标准 IoU 做 Power 变换,公式长这样:Alpha-IoU = (IoU^α) * (惩罚项^α)其中惩罚项可以是 CIoU 的宽高比惩罚、DIoU 的中心点距离惩罚等。α 控制着损失函数的凸性和梯度特性:α=1:退化为标准 IoU 变体α=2
149、Alpha-IoU 在 YOLOv11 中的适配:Power 变换的指数消融 α=1/2/3 的精度影响
149、Alpha-IoU 在 YOLOv11 中的适配:Power 变换的指数消融 α=1/2/3 的精度影响一、从一次深夜调试说起上周三凌晨两点,我在跑 YOLOv11 的消融实验,发现 mAP 卡在 0.523 死活上不去。检查了学习率、数据增强、甚至怀疑是不是显卡驱动抽风。最后用torch.autograd.set_detect_anomaly(True)一查,梯度爆炸了——问题出在 IoU 损失函数上。当时用的是标准 CIoU,对密集小目标场景,梯度回传极其不稳定。这让我想起之前读的一篇论文《Alpha-IoU: A Family of Power Intersection over Union Losses》,里面提到通过 Power 变换可以平滑梯度。于是连夜把 α=1/2/3 三个版本塞进 YOLOv11 的损失函数里,结果 mAP 直接跳到 0.547。今天就把这个适配过程完整拆开,代码注释里我会写清楚哪些地方踩过坑。二、Alpha-IoU 的核心思想:别被数学公式吓到Alpha-IoU 本质上是对标准 IoU 做 Power 变换,公式长这样:Alpha-IoU = (IoU^α) * (惩罚项^α)其中惩罚项可以是 CIoU 的宽高比惩罚、DIoU 的中心点距离惩罚等。α 控制着损失函数的凸性和梯度特性:α=1:退化为标准 IoU 变体α=2