YOLO26 目标检测原理

Ultralytics YOLO26 是一个统一的实时视觉模型系列。它引入了原生端到端推理、更轻量的检测头、更新的训练方案,以及针对检测、分割、姿态估计、分类和定向检测的特定任务头。

在五个检测尺度上,YOLO26 在 COCO 上达到了 40.9-57.5 mAP,且 T4 TensorRT 延迟仅为 1.7-11.8 毫秒。与 YOLO11n 相比,YOLO26n 在 Intel Xeon CPU @ 2.00 GHz 上的 CPU ONNX 推理速度提升了高达 43%。

YOLO26 模型系列围绕四个设计领域构建:

  1. 原生端到端推理: 默认的一对一检测头无需非极大值抑制(NMS)即可生成预测,简化了部署并减少了后处理工作。
  2. 更轻量的框回归: YOLO26 移除了分布焦点损失(DFL),在保持无约束回归范围的同时降低了检测头的复杂度。
  3. 训练配方更新: 训练流水线结合了 MuSGD、Progressive Loss 和 STAL,旨在改进优化,将监督重点转向推理时的头部,并保持对小目标的正面标签覆盖。
  4. 特定任务的头部和损失函数: YOLO26 增加了针对实例分割、语义分割变体、姿态估计和定向检测的专项设计,同时在不同任务间保持统一的模型流水线。

总而言之,这些更新优化了各模型尺度和部署目标在准确率与延迟之间的权衡。

yolo26 的创新点:

  1. 架构简化:移除分布焦点损失(DFL),简化边界框回归,提升导出兼容性。
  2. 端到端推理:采用无NMS设计,直接输出检测结果,降低延迟与部署复杂度。
  3. 训练增强:引入渐进损失平衡(ProgLoss)与小目标感知标签分配(STAL),提升小目标检测稳定性。
  4. 优化器创新:使用MuSGD优化器,结合SGD与Muon优势,加速模型收敛。
  5. 多任务支持:统一框架支持检测、实例分割、姿态估计、定向检测与分类。
  6. 边缘优化:支持FP16/INT8量化,在Jetson等设备上实现低延迟实时推理。
  7. 性能表现:在COCO等基准上达到高精度,CPU推理速度较前代提升最高43%

网络结构介绍

yolo26 的网络结构简化可以表示为:

yolo26 在保证yolo系列标准框架下做出了一些列创新优化。yolo系列的网格划分,三个预测分支,每个网格一个预测结果等这些基础逻辑都没有变化。

和之前版本的网络结构有所不同的是,yolo26中head存在两个,用于无NMS的实现。两者的功能会在后续详细介绍。

1. Backbone 主干(特征提取,与YOLOv11近似)

输入图像 → 多层CBS卷积 + C3k2残差块 + SPPF + C2PSA自注意力

输出3个多尺度特征图:

  • P3(stride=8,80×80):小目标浅层特征
  • P4(stride=16,40×40):中等目标
  • P5(stride=32,20×20):大目标深层语义

2. Neck 颈部FPN+PAN(多尺度融合)

自上而下上采样融合高层语义,自下而上下采样融合底层定位,最终输出融合后的P3/P4/P5送入检测头,主干、neck在O2M/O2O间完全共享权重。

3. Detect Head(核心创新:双分支并行输出)

三层特征图分别送入两组独立解耦头:

  • One2Many(一对多)分支:传统稠密预测头,仅训练使用;网络结构上类似于yolov8,包括输入输出
  • One2One(一对一)分支 :端到端无NMS头,训练+推理默认主分支;
    两者卷积结构一致,但权重不共享;且O2O分支梯度会做detach,避免稀疏监督破坏主干特征学习。

4. 关键结构改动:彻底移除DFL

Box分支直接输出x/y/w/h4维坐标,无分布Softmax计算,轻量化、量化友好。

训练过程

一、前向传播

图像 ---> Backbone + Neck,得到共享P3/P4/P5多尺度特征

  • O2M(一对多)分支:直接用原始特征做预测

  • O2O(一对一)分支:对输入特征先执行截断梯度(影响反向传播),再做预测

二、损失计算

Loss计算(两者都参与,ProgLoss动态加权求和)

  • O2M Loss:TAL一对多匹配损失;
  • O2O Loss:STAL一对一匹配损失 + 重复框一致性惩罚损失;

总的损失:

:::info

Loss = w_o2m * Loss_o2m + w_o2o * Loss_o2o

:::

其中 w_o2m 和 w_o2o 是权重调节参数,训练前期w_o2m=0.8,后期逐步降到0.1;w_o2o同步从0.2升到0.9。

三、反向传播

  1. O2M梯度:完整回传 Backbone / Neck / O2M 全部网络结构

O2M无detach截断,它的损失梯度一路向前传播,全部主干、颈部网络权重由O2M梯度主导更新,保证充足稠密监督,避免稀疏梯度震荡。

  1. O2O梯度:仅更新O2O自身卷积头,不会回传到Backbone/Neck

因为输入特征做了detach(),梯度到此截断,O2O分支只能更新自己专属的分类/框卷积,完全不参与主干网络参数更新。

总结训练梯度:

Backbone、Neck 只靠 O2M 的梯度更新;O2M头、O2O头各自用自身分支梯度独立更新。

梯度截断

O2O 相较于O2M最大的特点是再反向传播时做了阻隔,O2O 分支前面加了 detach():

detach() 相当于在这里砌了一堵墙:

O2O Head 自己的权重可以改,但 O2O 的误差传不过去 Backbone 和 Neck,Backbone、Neck 完全不受 O2O 分支影响。这就叫:截断 O2O 分支对主干网络的梯度传播。目的是让O2O 只改自己的头,不改前面的特征提取部分。

为什么要这么做?(核心原因)

  • O2O 是一对一稀疏监督:一张图只有几十个正样本,梯度很少、很不稳定。如果让它去改主干,Backbone 会学偏、学震荡、收敛很差
  • O2M 是一对多稠密监督:正样本多,梯度稳,适合训练主干。O2M前期负责稳定特征的学习,O2O后期负责无NMS的特征学习。

推理

推理流程

在输入尺寸为 640 * 640 时,3个检测头输出特征图为:

  • 20 * 20
  • 40 * 40
  • 80 * 80

每一个网格输出一个预测结果,总计 8400 个结果

  1. 全图8400个网格预测全部候选;

  2. 全局按置信度 TopK 筛选前300个最高分网格(max_det=300人为上限,平衡速度与稠密场景承载);

  3. 输出固定张量B,300,nc+4,不存在同物体重复预测框;

  4. 仅需置信度阈值过滤低分占位框,全程无IoU计算、无NMS。

导出

训练完成后、推理/导出阶段行为:

  1. 模型导出ONNX/TensorRT等部署文件、执行model.fuse()推理优化时,自动裁剪、永久移除O2M整个分支,只保留O2O一对一推理头;

  2. 推理前向仅走:Backbone+Neck → O2O头 → 全局TopK取前300 → 输出B,300,nc+4

  3. 仅需置信度过滤,全程无NMS;

  4. 若手动设置end2end=False,推理才启用O2M分支,需要NMS后处理。

训推完整流程

  1. 训练阶段O2M、O2O双分支同时前向,两者损失加权求和参与反向传播;
  2. 仅O2M梯度回传更新Backbone与Neck,O2O梯度仅更新自身检测头;
  3. 训练导出模型时自动移除O2M分支,推理全程只使用O2O一对一检测头。

STAL

STAL 全称:Small-Target-Aware Label Assignment 小目标感知标签分配(训练阶段核心,无推理逻辑)

1. 解决的痛点

传统TAL固定IoU阈值匹配,极小物体易丢失正样本:8像素以内小GT,锚点很难落在框内、IoU极低,直接被划为背景,全程无监督导致严重漏检。

2. 核心机制

1. 动态自适应IoU阈值

物体尺寸越小,匹配IoU门槛自动降低;大目标维持高IoU保证匹配精准度。

2. 强制小目标候选扩容

极小GT强制分配至少4个候选锚点,仅允许在浅层P3(8倍下采样)匹配,锁定小目标最优特征层;临时扩张GT搜索范围,避免锚点完全脱离目标。

可参考:https://blog.csdn.net/qq_39697468/article/details/161798744

3. 双层TopK一对一冲突消解(支撑无NMS的关键)

○ 第一层:每个GT选出代价最低7个候选网格;

○ 第二层:全局匈牙利二分图冲突消解,保证1个GT仅分配1个最优网格作为正样本,1个网格最多归属1个GT;(无NMS的关键)

○ 所有重叠候选网格全部标记为背景,训练持续压低其置信度,从根源杜绝"同一物体多个高分框

4. 小目标损失加权

微小物体分类损失权重放大,强制模型重点学习微小特征。

作用定位

● 只为One-to-One一对一检测头提供合规训练标签;

● 兼顾无NMS所需的一对一匹配约束 + 小目标防漏检双重目标;

● 推理阶段不参与计算,仅影响模型收敛权重。

无NMS

1. 前代痛点(YOLOv8/v11)

采用One-to-Many一对多头,8400网格每个GT匹配多个锚点,输出大量重叠重复框,必须依赖NMS后处理:存在延迟波动、IoU阈值调参、嵌入式部署需额外后处理代码、DFL算子量化报错等问题。

2. 两大结构改动

  1. 双头协同训练,推理仅启用One-to-One分支
  • One2Many(兼容分支):多匹配提供充足监督,保障主干特征精度;
  • One2One(推理主分支):配合STAL一对一标签分配,训练时叠加重复框一致性损失,惩罚重叠双高分预测,让模型自发只保留单个高分框;
  • 推理丢弃O2M分支,仅使用O2O输出。
  1. 彻底移除DFL分布回归,直接xywh坐标回归

    消除大量Softmax计算,降低算力,解决嵌入式量化、导出算子不兼容问题。

  2. 推理流程(无NMS核心逻辑)

  3. 全图8400个网格预测全部候选;

  4. 全局按置信度TopK筛选前300个最高分网格(max_det=300人为上限,平衡速度与稠密场景承载);

  5. 输出固定张量B,300,nc+4,不存在同物体重复预测框;

  6. 仅需置信度阈值过滤低分占位框,全程无IoU计算、无NMS。

  7. 核心优势

  8. 推理延迟恒定无波动,CPU速度最高提升43%;

  9. ONNX/TensorRT/CoreML导出纯网络图,无自定义后处理算子;

  10. 无需调优NMS IoU阈值,工业部署门槛大幅降低;

  11. 输出稀疏唯一框,稠密计数、机器人实时控制场景更稳定。

3.STAL 和 无NMS 的关系

STAL 与 无NMS检测头 协同关系(关键联动逻辑)

  1. STAL是无NMS成立的底层训练基础

若无STAL一对一分配规则,训练会出现一个GT对应多个正样本,模型推理必然输出大量重叠高分框,仅靠推理TopK无法消除重复,必须加NMS。

  1. 无NMS检测头为STAL提供专属输出通道

O2O头网络结构适配STAL一对一标签,配套一致性损失辅助STAL约束重叠网格置信度。

  1. 分工边界
  • STAL:训练阶段标签匹配规则,负责"一个物体只给一个网格监督",解决小目标匹配失效;
  • 无NMS检测头:网络结构+推理管线,负责训练双分支协同、推理截断输出、移除DFL、全程不用NMS。

极简一句话总结

STAL是面向小目标优化的一对一动态标签分配算法,训练时强制一GT一网格、压低重叠网格置信;原生端到端无NMS检测头是重构后的检测头结构与推理管线,配合STAL训练出无重复预测的模型,推理仅做全局TopK+置信度过滤,彻底抛弃NMS后处理,同时移除DFL轻量化回归。

双分支详解

一、整体三层通用架构(Backbone + Neck + 双头Detect Head)

1. Backbone 主干(特征提取,与YOLOv11近似)

输入图像 → 多层CBS卷积 + C3k2残差块 + SPPF + C2PSA自注意力

输出3个多尺度特征图:

  • P3(stride=8,80×80):小目标浅层特征
  • P4(stride=16,40×40):中等目标
  • P5(stride=32,20×20):大目标深层语义

2. Neck 颈部FPN+PAN(多尺度融合)

自上而下上采样融合高层语义,自下而上下采样融合底层定位,最终输出融合后的P3/P4/P5送入检测头,主干、neck在O2M/O2O间完全共享权重。

  1. Detect Head(核心创新:双分支并行输出)

三层特征图分别送入两组独立解耦头:

  • One2Many(一对多)分支:传统稠密预测头,仅训练使用;
  • One2One(一对一)分支 :端到端无NMS头,训练+推理默认主分支;
    两者卷积结构一致,但权重不共享;且O2O分支梯度会做detach,避免稀疏监督破坏主干特征学习。

4. 关键结构改动:彻底移除DFL

Box分支直接输出x/y/w/h4维坐标,无分布Softmax计算,轻量化、量化友好。

二、One2Many(O2M 一对多分支)------传统稠密监督分支

  1. 输出张量形态

三层网格总数:80×80 + 40×40 + 20×20 = 8400个网格点

输出shape:[B, nc+4, 8400],每个网格均可预测物体。

  1. 匹配规则(TAL宽松多匹配)

每个GT目标可匹配多个网格作为正样本(tal_topk=10),一个物体对应数十个重叠预测框。

  1. 作用定位(仅训练辅助)

  2. 稠密监督:大量正样本提供充足梯度,保证主干、neck特征提取稳定,避免O2O稀疏监督训练震荡;

  3. ProgLoss动态权重:训练前期O2M损失权重高(0.8),主导模型学习基础特征;后期权重线性衰减至0.1;

  4. 推理时若手动开启end2end=False,需搭配NMS后处理去除大量重复重叠框,延迟高、嵌入式部署复杂。

  5. 优缺点

✅ 训练收敛稳、基础特征质量高;

❌ 输出海量重复框,必须NMS,推理延迟波动大,导出易存在DFL量化bug。

损失计算

对于单个检测分支,YOLO26 并不是只剩下"一个 Box Loss + 一个分类损失"。更准确的结构是:

plain 复制代码
CIoU Box Loss  + BCE Classification Loss + L1 Direct Regression Loss

可以写为:

其中:

  • CIoU Loss:关注整体框重叠、中心距离、宽高比例
  • BCE Classification Loss:分类损失
  • L1 Loss:直接约束 Anchor Point 到四条边的回归误差

三、One2One(O2O 一对一分支)------原生端到端无NMS推理头

  1. 训练配套:STAL标签分配(无NMS成立的底层基础)

双层TopK一对一冲突消解:

  1. 每层GT先筛选代价最小7个候选网格;

  2. 全局二分匹配强制:1个GT仅分配1个最优网格、1个网格最多归属1个GT

  3. 其余重叠网格全部标记背景,训练持续压低其置信度;叠加重复框一致性损失,惩罚同一物体多高分预测。

  4. 推理流水线(端到端无NMS)

  5. 原始8400网格全部预测box+cls分数;

  6. 全局TopK筛选 :按类别置信度排序,只保留分数最高前300个网格(max_det=300人为硬上限);

  7. 输出固定张量:[B, 300, nc+4]

  8. 仅需置信度阈值过滤低分占位框,全程不计算IoU、无NMS。

  9. 输出与约束

  10. 张量固定300条条目,绝大多数是置信度接近0的背景占位框;

  11. 训练约束保证有效高分框无重叠、不重复对应同一物体;

  12. 单帧画面物体超过300个会出现截断漏检;

  13. ONNX/TensorRT导出纯网络图,无自定义后处理算子,CPU/嵌入式速度提升30%~43%。

  14. 优缺点

✅ 无需NMS、推理延迟恒定、部署极简、小目标精度经STAL优化大幅提升;

❌ 纯O2O单独训练易震荡,必须搭配O2M双分支联合训练。

四、O2M vs O2O 核心对比表

维度 One2Many(一对多) One2One(一对一)
使用阶段 仅训练辅助,推理默认关闭 训练+推理主分支(end2end默认开启)
标签分配 TAL,1GT匹配多个网格 STAL,1GT仅匹配1个最优网格
原始输出 8400个稠密网格预测 8400网格→全局TopK截断至300条
输出shape B, nc+4, 8400 B, 300, nc+4
后处理要求 必须NMS去重 仅conf阈值过滤,无NMS
DFL 早期兼容DFL,YOLO26全部移除 无DFL,直接xywh回归
训练权重 前期主导,权重线性衰减 后期主导,收敛精准匹配
部署优势 传统YOLO兼容,精度略高 速度更快、量化稳定、工业实时友好

五、双分支协同逻辑(完整训练链路)

  1. 图像输入→Backbone+Neck提取共享多尺度特征;
  2. 特征同时送入O2M、O2O两组独立检测头并行预测;
  3. 损失融合ProgLoss:前期大权重O2M稳定特征学习,后期大权重O2O拟合一对一无NMS预测逻辑;
  4. 训练完成后导出模型会裁剪移除O2M分支,推理仅保留O2O端到端管线;
  5. 若需传统NMS推理,可代码手动启用O2M分支验证。

六、一句话总结

YOLO26在共用主干与特征融合网络的基础上,设计O2M稠密监督+O2O一对一精准预测双检测头:O2M负责提供充足梯度保证训练稳定,O2O配合STAL一对一标签分配实现推理无NMS、轻量化部署,二者联合训练兼顾收敛速度与端侧推理性能。

ProgLoss 渐进损失平衡

一、核心定义

ProgLoss = Progressive Loss Balancing 渐进式损失平衡 ,专门配套 YOLO26 O2M+O2O 双分支训练,随训练轮次线性动态调整 O2M、O2O 两支损失的权重占比,总权重恒等于1,遵循「先粗后精」学习逻辑,解决固定权重带来的训练震荡、梯度冲突问题。

二、权重变化规则(官方固定调度)

  1. 训练初始(epoch=0)
    w_{o2m}=0.8,w_{o2o}=0.2
    总损失: Loss_{total} = 0.8 \\cdot Loss_{O2M} + 0.2 \\cdot Loss_{O2O}
  2. 全程线性渐变
    随训练进度均匀衰减,直到训练结束
  3. 训练末尾(最后epoch)
    w_{o2m}=0.1,w_{o2o}=0.9
    总损失: Loss_{total} = 0.1 \\cdot Loss_{O2M} + 0.9 \\cdot Loss_{O2O}
  4. 约束: w_{o2m} + w_{o2o} = 1 ,总损失量级稳定,不会剧烈跳变

三、分阶段作用逻辑(对应网络梯度设计)

阶段1:训练前期(O2M权重高,占80%)

  1. 网络刚初始化,特征完全随机,框预测乱飞、分类不准;
  2. O2M是一对多稠密监督,一张图数千个正样本,梯度充足、稳定;
  3. 主干Backbone/Neck仅靠O2M梯度更新,高权重O2M主导训练:
    • 快速学会"图里哪里存在物体",召回率快速提升;
    • 搭建基础多尺度特征提取能力;
  4. O2O权重仅20%,且O2O梯度被detach()截断,不干扰主干学习,仅微调自身一对一检测头。

阶段2:训练中期(权重平滑过渡)

物体大致位置已经能检出,逐步降低O2M话语权、抬高O2O权重;

模型开始学习STAL一对一匹配规则:同一个物体只输出单个高分框,抑制重叠重复预测。

阶段3:训练后期(O2O权重高达90%)

  1. 主干特征已经收敛、物体定位基本准确;
  2. 权重重心完全转向O2O分支,强制模型贴合 推理时真实使用的一对一无NMS逻辑
  3. 重点优化:
    • STAL一对一匹配精度;
    • 重复框一致性损失,压低重叠网格置信;
    • 小目标精准分类与定位;
  4. O2M仅保留10%权重做轻微约束,防止模型完全遗忘基础稠密匹配能力。

四、解决的传统痛点

  1. 固定权重双分支梯度冲突
    若全程各50%权重:前期O2O稀疏梯度噪声大,会拖累主干收敛;后期O2M一对多重复框监督,干扰无NMS一对一预测效果。
  2. O2O单独训练极易震荡
    O2O一对一匹配每张图只有几十个正样本,梯度稀疏不稳定;ProgLoss前期靠O2M稠密梯度兜底,保证训练平稳。
  3. 训练与推理行为不一致
    推理只使用O2O,若全程权重均衡,模型没有足够动力学习"单物体单预测框",推理容易出现大量重叠高分框,必须依赖NMS。ProgLoss后期加大O2O权重,让训练逻辑和推理逻辑完全对齐。

五、和 detach() 梯度截断的配合关系(关键联动)

  1. ProgLoss 控制两支损失对总loss的贡献大小(权重调度);
  2. detach() 控制梯度能否回传主干
    • O2M:梯度完整回传Backbone,ProgLoss前期高权重,主导主干更新;
    • O2O:梯度被截断,只能更新自身检测头,仅靠ProgLoss后期高权重精调一对一预测能力;
  3. 二者组合实现完美分工:
    O2M负责训练主干特征 ,O2O负责训练推理输出规则,ProgLoss动态分配两者的训练优先级。

六、一句话极简总结

ProgLoss 是YOLO26双分支训练的动态权重调度器:前期加重O2M稠密监督稳定主干特征,后期加重O2O一对一监督对齐无NMS推理行为,配合detach梯度截断,兼顾训练收敛稳定性与端到端推理精度。

YOLO26 MuSGD 混合优化器完整介绍

一、定义与定位

MuSGD = Muon + SGD 分层混合优化器 ,是YOLO26专门为O2M/O2O双分支、多尺度、小目标检测设计的训练优化器,借鉴LLM大模型Muon正交更新思路,分层区分参数做差异化更新,同时保留传统SGD优秀泛化能力,解决SGD收敛慢、AdamW显存高、易过拟合、多尺度梯度震荡等痛点。

:::info

Muon(MomentUm Orthogonalized by Newton-Schulz)优化器的核心,在于它引入了一个全新的"正交更新"思路:在每次更新时,它不直接使用梯度或动量方向,而是先将其"掰正"为一个近似的正交矩阵 ,再用这个处理过的方向来更新权重。

对深度学习而言,直接对动量大矩阵进行SVD分解求极分解在计算上不可行。因此,Muon采用了牛顿-舒尔茨(Newton-Schulz,NS)迭代 来高效地近似求解这个正交矩阵。

这是一种仅包含矩阵-矩阵乘法 的迭代方法,非常适合在GPU上运行

:::

二、前代优化器核心痛点(为什么需要MuSGD)

  1. 传统SGD(momentum)
    泛化能力强、显存占用低;但收敛速度慢,多尺度特征、稀疏O2O监督场景梯度波动大、损失震荡严重,小数据集极易陷入局部最优。
  2. AdamW
    自适应学习率、收敛快;但需要维护一阶+二阶动量,显存占用翻倍;容易过拟合,量化部署后精度衰减明显;检测任务分类/框回归梯度尺度差异大时更新失衡。
  3. 双分支训练特殊矛盾
    YOLO26同时存在稠密O2M、稀疏O2O两套损失,梯度尺度差异巨大,单一优化器很难同时稳定主干与一对一检测头训练。

三、MuSGD核心原理:分层差异化更新(最关键设计)

MuSGD对模型不同维度参数分开处理,一套网络同时使用两套更新逻辑:

  1. 二维矩阵参数(Conv/Linear权重,ndim≥2)→** Muon正交更新**

卷积层、全连接层权重是二维矩阵,采用Muon算法更新:

  1. 先计算动量累积梯度(同SGD动量);

  2. 使用牛顿-舒尔茨(Newton-Schulz)快速近似正交化动量更新矩阵,无需昂贵SVD分解,计算开销仅1%左右;

  3. 正交化作用:抹平梯度奇异值差异,让各个特征方向更新速度均等,避免单一梯度方向主导训练;

  4. 最终用正交后的矩阵执行参数更新。

  5. 一维向量参数(Bias、BN、O2O/O2O头偏置,ndim=1)→ 原生SGD动量更新

偏置、归一化层等一维参数不做正交化,直接使用标准带动量SGD更新,保证轻量化、稳定基础偏移学习。

  1. 梯度归一化稳定机制(Muon底层保障)

对梯度做范数归一:

g_{norm} = \\frac{g}{\|\|g\|\| + \\varepsilon}

统一不同层、分类/回归损失的梯度更新尺度,抑制梯度爆炸/消失,大幅降低多尺度、双分支训练的损失波动。

四、MuSGD三大核心优势(适配YOLO26架构)

  1. 收敛速度大幅提升

正交化梯度消除更新方向失衡,同等精度所需训练轮次减少约40%;配合ProgLoss渐进权重调度,前期O2M稠密监督快速拟合主干特征,后期O2O稀疏监督平稳收敛一对一无NMS逻辑。

  1. 显存开销远低于AdamW

Muon仅维护一阶动量,不需要存储二阶平方梯度;整体显存占用接近普通SGD,比AdamW节省近50%显存,多卡、大batch训练更友好。

  1. 兼顾收敛速度与泛化能力
  • Muon正交更新解决SGD收敛慢、震荡问题;
  • 底层更新基底是SGD,无AdamW自适应学习率带来的过拟合倾向;
  • 训练完成后模型量化(INT8/FP16)精度损失更小,完美适配YOLO26端侧部署定位。
  1. 完美适配YOLO26双分支训练
  • O2M稠密梯度:Muon正交化平滑海量网格梯度,稳定Backbone/Neck主干更新;
  • O2O稀疏梯度(detach截断、仅更新检测头):梯度归一化避免稀疏梯度剧烈抖动,一对一匹配训练更平稳;
  • 搭配STAL小目标标签分配,小目标梯度权重失衡问题显著缓解,微小物体mAP提升明显。

五、MuSGD 与 SGD / AdamW 对比表

对比维度 SGD-Momentum AdamW MuSGD(YOLO26)
梯度处理 原始动量梯度,无归一化/正交 一阶+二阶动量自适应缩放 二维权重Muon正交化,一维参数SGD,全局梯度归一
显存占用 低(仅一阶动量) 高(一阶+二阶) 低(仅一阶动量,≈SGD)
收敛速度 慢,多尺度易震荡 快,易过拟合 极快,损失波动极小
泛化能力 优秀 较差,小数据集易过拟合 接近SGD,泛化鲁棒
量化后精度衰减 极小
适配YOLO26双分支 梯度波动剧烈,收敛不稳 显存压力大,O2O稀疏梯度失衡 原生适配O2M+O2O联合训练

六、和YOLO26其他创新的协同关系

  1. 搭配ProgLoss渐进损失
    ProgLoss动态切换O2M/O2O损失权重,MuSGD分层梯度归一化抵消两支梯度量级差,避免权重切换时loss剧烈跳变。
  2. 搭配STAL一对一标签分配
    O2O分支单图仅几十个正样本,梯度极度稀疏;MuSGD梯度归一化抑制稀疏梯度噪声,保证一对一匹配稳定学习,不会出现训练震荡。
  3. 搭配detach梯度截断机制
    Backbone仅由O2M梯度更新,Muon正交化平滑海量8400网格稠密梯度;O2O梯度被截断,MuSGD稳定检测头独立训练,互不干扰。

七、一句话极简总结

MuSGD是分层混合优化器:卷积/全连接权重采用Muon矩阵正交化加速收敛,偏置等一维参数使用标准SGD,依靠梯度归一化抹平多尺度、双分支梯度差异;兼具SGD低显存、强泛化与Muon快速收敛的优势,专门适配YOLO26 O2M/O2O双分支、STAL一对一匹配的端到端无NMS训练流程。

总结

对yolo26的训练过程稍微总结一下:

  1. 前向传播:图片输入经过backbone + Neck,分别进入 O2M 和 O2O 的Head中。O2M输出:B, nc+4, 8400,O2O输出:B, 300, nc+4
  2. 标签匹配:O2M 匹配标签可实现多对多匹配,O2O 匹配标签实现一对一匹配
  3. 损失计算:两者损失想加计算,使用渐进式损失平衡
  4. 反向传播:O2M分支的损失反向传递整个网络;O2O分支损失仅传递Head网络

推理:

  1. 输出经过backbone + Neck + O2M ,直接输出l t r b ,没有 DFL 分布式输出
  2. 不需要NMS做后处理,直接可以使用

参考:https://zhuanlan.zhihu.com/p/1995423342946173331

相关推荐
QN1幻化引擎5 小时前
Gravity-Anchored Cognitive Field Architecture: The DalinX V8/V10 Implementation
java·前端·算法
学计算机的计算基5 小时前
LeetCode 图论四题精讲:BFS、拓扑排序、Trie 树的模板与优化
java·笔记·算法
浩瀚地学5 小时前
【面试算法笔记】0202-链表-基本功能实现
java·经验分享·笔记·算法·面试
tkevinjd5 小时前
416分割等和子集
java·python·算法·leetcode·职场和发展
大学生技术野农6 小时前
基于Yolo26和Grad-CAM可视化融合的深度学习的猕猴桃分级系统-Python源码
python·深度学习·yolo
Keven_116 小时前
算法札记:Tarjan与拓扑序(Topo)的关系
算法·拓扑·tarjan
ShallWeL6 小时前
AUC、F1、召回率怎么选
人工智能·算法·机器学习
水龙吟啸6 小时前
华为2026.6.3机考选择题+编程题【速刷敲黑板】
人工智能·深度学习·算法·华为
学究天人6 小时前
数学公理体系大全:第十四章 向量空间与模:线性代数的公理化与推广
线性代数·算法·矩阵·动态规划·抽象代数
zzz_23687 小时前
【Java实习面试算法冲刺】回溯
java·算法·面试